国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

音樂頻率幅度彩燈指示器的設(shè)計(jì)與實(shí)現(xiàn)*

2011-08-08 02:31鳴,尚
關(guān)鍵詞:音量幅度音頻

崔 鳴,尚 麗

(蘇州市職業(yè)大學(xué) 電子信息工程系,江蘇 蘇州215104)

本文主要討論了音樂頻率幅度彩燈指示器的設(shè)計(jì)與制作,設(shè)定音量等級為32級,頻率等級為15級,每一頻率等級下的音量等級又分為31級;以嵌入式單片機(jī)STM32F103作為主控制核心,以音樂信號自動增益、電壓抬高、真有效值測量、LCD顯示、按鍵等作為輔助硬件電路;采用快速傅里葉變換 FFT(Fast Fourier Transform)理論對音樂信號進(jìn)行詳細(xì)的頻域分析和處理。在此方案下完成音樂頻率幅度彩燈指示器的設(shè)計(jì)后,以信號發(fā)生器產(chǎn)生的標(biāo)準(zhǔn)正弦波、方波以及手機(jī)播放的任意MP3音樂(即音頻信號)作為輸入信號進(jìn)行現(xiàn)場測試,實(shí)驗(yàn)結(jié)果驗(yàn)證了設(shè)計(jì)題目的全部基礎(chǔ)和提高要求,具有較好的音樂信號頻率等級和幅度等級指示效果。

1 理論分析和計(jì)算

1.1 快速傅里葉變換原理

快速傅里葉變換(FFT)是 1965年由 J.W.庫利和 T.W.圖基提出的[1-3]計(jì)算離散傅里葉變換(DFT)的一種快速算法,其實(shí)質(zhì)是根據(jù)離散傅氏變換的奇、偶、虛、實(shí)等特性進(jìn)行改進(jìn)的一種DFT算法。計(jì)算有限長信號序列x(n)的離散傅里葉變換時,其正變換式如下所示:

傅里葉反變換公式為:

1.2 功率譜測量方法

對音頻信號采樣時,首先要確定采樣頻率fs。若原始信號頻率為F,采樣點(diǎn)數(shù)為N,則頻率分辨力Δf=fs/N。又由于音頻信號的頻率范圍為 50 Hz~10 kHz,最大頻率是10 kHz,則根據(jù)香農(nóng)采樣定理,必須保證 fs≥20 kHz,實(shí)際應(yīng)用時一般取30 kHz~40 kHz。在某一個頻率等級上,選定采樣點(diǎn)N后,所需要的采樣頻率fs=Δf×N。點(diǎn)數(shù)越多,運(yùn)算量的節(jié)約就越大,這就是FFT的優(yōu)越性。在第n個點(diǎn)時所表示的頻率為fn=(n-1)fs/N。對音頻信號采樣后的各點(diǎn)值,需用FFT原理處理,得到不同的頻率點(diǎn)對應(yīng)的功率后,就可以畫出其功率譜,并可以在頻域計(jì)算其總功率[2]。

1.3 失真度計(jì)算方法

失真度Kfo是被測信號中各次諧波的總有效值電壓與被測信號有效值的百分比,按照下面公式計(jì)算[2-3]:

式中U2,U3,…Un為各次諧波電壓有效值,即為被測信號中各次諧波的總有效值電壓與被測信號中基波的有效值比值。

2 系統(tǒng)硬件設(shè)計(jì)

2.1 總體設(shè)計(jì)

所設(shè)計(jì)系統(tǒng)的總體原理圖如圖1所示。其中,ARM控制器采用ST公司生產(chǎn)的STM32F103芯片,內(nèi)有2個12 bit的A/D轉(zhuǎn)換器、7個定時器、9個通信接口,最高工作頻率72 MHz,足以滿足設(shè)計(jì)需求;音頻信號的峰-峰值范圍為0~Vmax,Vmax的大小根據(jù)需要設(shè)定,頻率范圍為50 Hz~10 kHz。為了避免輸入信號過小和保證輸入信號的幅值為正,需要對其進(jìn)行自動增益和抬高電壓預(yù)處理,預(yù)處理后的音頻信號的峰-峰值范圍約為0~3 V,然后經(jīng)過A/D采樣,快速傅里葉(FFT)變換,得到不同的等級的頻率和音量,經(jīng)過串口輸出;點(diǎn)陣電路大小為32×64,采用AT89S51單片機(jī)對其控制[4-6]。在 LED陣列中,其中前15列表示15個頻率等級,第16列表示總音量等級;另采用一行16個LED燈,用其亮度指示每個頻段下音量的強(qiáng)弱。整體電路采用模塊化設(shè)計(jì),簡單易懂,易于調(diào)試和實(shí)現(xiàn)系統(tǒng)要求。

2.2 主要單元電路

采用STM32F103 ARM芯片,配置外部5 V的直流電源和晶振電路就可以構(gòu)成單片機(jī)最小控制系統(tǒng)電路,限于篇幅,其最小系統(tǒng)電路圖忽略,文中主要介紹關(guān)鍵的硬件單元電路,即音頻信號預(yù)處理電路和電壓真有效測量電路,限于篇幅,僅介紹電路組成及功能,硬件單元電路圖忽略。

2.2.1 音頻信號預(yù)處理電路

音頻信號預(yù)處理電路主要包含兩個部分:電壓自動增益電路、電壓抬高電路。由于輸入音頻信號的電壓范圍(峰-峰值)為 0~5 V,當(dāng)音頻信號電壓的峰-峰值比較小時,信號的幅值較小,受外界信號干擾大,容易引起測量不準(zhǔn),所以要采用放大電路。設(shè)計(jì)中選用OP2365組成三級增益可調(diào)的放大電路,電壓增益可調(diào)范圍分為四檔:10 mV~200 mV,70 mV~750 mV,200 mV~2 V和300 mV~5 V。當(dāng)輸入音頻信號電壓值較小時,就選擇增益較大的一檔進(jìn)行調(diào)節(jié);當(dāng)輸入音頻信號電壓值較大時,就不需要再對信號放大。另外,音頻信號采樣時,要求輸入信號的電壓范圍不能有負(fù)值,并保證被轉(zhuǎn)換電壓的幅值范圍在STM32F103芯片自帶的A/D轉(zhuǎn)換器的處理范圍內(nèi),這就需要對輸入信號電壓負(fù)值進(jìn)行抬高處理,保證信號電壓為正值。經(jīng)過抬高處理后,正弦信號的負(fù)峰值點(diǎn)剛好和橫軸相交,抬高電壓值vtg=3.3 V。

2.2.2 真有效值電壓檢測電路

3 系統(tǒng)軟件設(shè)計(jì)

系統(tǒng)軟件采用模塊化設(shè)計(jì),分為主程序和子程序兩大部分。主控制芯片采用STM32F103,由于處理器速度較快,所以采用C語言編程,方便簡單。子程序包括A/D采樣、周期性判斷、FFT變換、延時、LED驅(qū)動、LCD顯示等。系統(tǒng)程序流程圖如圖2所示,限于篇幅,文中僅介紹FFT變換子程序。系統(tǒng)通過模式選擇按鍵進(jìn)入不同的功能。對頻率的指示采用兩種頻率等級計(jì)算方法:線性方法和對數(shù)方法。線性方法是在最低頻率點(diǎn)和最大頻率點(diǎn)之間進(jìn)行15等分,得到各個頻率點(diǎn)及其對應(yīng)的幅度,然后根據(jù)這些頻點(diǎn)計(jì)算出中心頻率點(diǎn)及其對應(yīng)的幅度;對數(shù)方式是在最低頻率點(diǎn)和最大頻率點(diǎn)之間采用對數(shù)函數(shù)計(jì)算15個頻率等級點(diǎn)及其對應(yīng)的幅度。同時,系統(tǒng)也采用了按鍵模式來控制各個頻段對應(yīng)的音量強(qiáng)弱。系統(tǒng)輸入信號自動增益的檔位、按鍵模式、對各個頻點(diǎn)下的幅度及總的幅度會顯示在LCD液晶屏上。

4 測試方法與結(jié)果分析

測試中,輸入信號經(jīng)過音頻輸入預(yù)處理電路,系統(tǒng)處理的電壓在0~3.3 V范圍內(nèi)。同時,在硬件系統(tǒng)測試之前,要驗(yàn)證自編的FFT算法對信號處理的準(zhǔn)確性。

首先任意選擇一個WAV音頻信號進(jìn)行自編FFT程序的測試。測試中借助了MATLAB軟件中自帶的FFT子程序,設(shè)定一個采用頻率,選取不同的采樣點(diǎn)128和1 024,應(yīng)用MATLAB進(jìn)行頻譜分析,觀察采樣點(diǎn)選擇不同信號對頻域分析的影響,得到的仿真結(jié)果如圖3所示。對其進(jìn)行信號頻譜分析的結(jié)果與自編FFT程序在STM32F103單片機(jī)上運(yùn)行的結(jié)果進(jìn)行數(shù)據(jù)對比分析,測試數(shù)據(jù)誤差小于0.1%,頻譜圖形狀幾乎與MATLAB仿真波形一致,證實(shí)了自編FFT算法的正確性。

結(jié)合仿真分析結(jié)果,對系統(tǒng)選定的采樣頻率為fs=23.81 kHz,采樣點(diǎn)數(shù)為1 024,又知輸入信號的最大頻率為 10 kHz,則測定的采樣頻率 fs>20 kHz,滿足香農(nóng)采樣定理,故fs選定符合理論分析結(jié)果。在此采樣頻率下,最小采樣頻點(diǎn)為23.25 Hz,最大采樣頻點(diǎn)為 10.74 kHz,分別采用線性方法和對數(shù)方法實(shí)現(xiàn)頻率分析和處理。

然后采用方波和不同頻率的正弦波作為輸入信號,對FFT變換結(jié)果進(jìn)行量化,根據(jù)能量定理,檢驗(yàn)各頻率點(diǎn)對應(yīng)的功率值;同時觀察最大幅值在數(shù)組的位置P,以及被測信號頻率 f、采樣頻率 fs、采樣點(diǎn)數(shù)N(測試中取N=1 024)之間的關(guān)系是否滿足公式f=(fs/N)×P。對系統(tǒng)運(yùn)行得到的頻譜分析數(shù)據(jù)與采用MATLAB軟件進(jìn)行FFT分析的結(jié)果進(jìn)行對比,觀測到兩種方法在相同頻點(diǎn)處信號的幅度和功率數(shù)據(jù)變化不大,由此驗(yàn)證了所設(shè)計(jì)的STM32F103單片機(jī)系統(tǒng)進(jìn)行信號頻域分析的準(zhǔn)確性。

最后,任意選擇手機(jī)播放的男聲、女聲演唱的MP3歌曲作為輸入信號進(jìn)行測試,觀測播放時15個頻率等級、每一個頻率等級下31個等級的音量強(qiáng)弱的LED指示情況以及32個總音量等級的LED指示情況,觀察音樂幅度、頻率的LED指示效果,根據(jù)運(yùn)行情況進(jìn)行程序調(diào)試,同時觀測LCD顯示的最大4個功率 (即幅度值)所在的頻率點(diǎn)以及總功率并記錄數(shù)據(jù)。

以正弦信號作為輸入信號的總功率測量和單個頻率分量測量得到的結(jié)果分別如表1和表2所示,測試結(jié)果表明測試數(shù)據(jù)和用電腦模擬的結(jié)果很接近。

應(yīng)用STM32F103 ARM最小控制系統(tǒng)和快速傅里葉變換(FFT)算法,并結(jié)合LED點(diǎn)陣技術(shù),本文設(shè)計(jì)并實(shí)現(xiàn)了一個音樂頻率幅度彩燈指示器。系統(tǒng)的硬件電路采用模塊化設(shè)計(jì),各模塊之間串口少,調(diào)試方便;音頻輸入信號預(yù)處理電路具有自動增益和電壓抬高功能,頻率等級分析方法分為線性均分和對數(shù)處理兩種,可以通過按鍵進(jìn)行方法選擇,同時頻率等級的大小由LED燈的個數(shù)指示,且指示結(jié)果較準(zhǔn)確;每一頻段的大小及該頻段下音量的強(qiáng)弱和所有頻段下的總音量強(qiáng)弱都能由LED燈的亮度變化進(jìn)行指示。分別采用標(biāo)準(zhǔn)方波信號和正弦信號進(jìn)行測試,同時借助MATLAB的FFT分析結(jié)果,驗(yàn)證了自編FFT算法在STM32F103單片機(jī)系統(tǒng)中運(yùn)行的準(zhǔn)確性,然后應(yīng)用任意音頻輸入信號進(jìn)行測試,測試結(jié)果實(shí)現(xiàn)了比賽題目的基礎(chǔ)要求和提高要求,證實(shí)了所設(shè)計(jì)的音樂頻率幅度指示器具有較好的頻率等級和音量等級指示效果,而且整個系統(tǒng)的設(shè)計(jì)方案與實(shí)現(xiàn)都具有重要的理論研究意義和實(shí)用意義。

表1 輸入信號的總功率測量

表2 單個頻率分量測量

[1]周圍,姚麗娜.基于FFT變換的快速信道估計(jì)算法[J].重慶郵電大學(xué)學(xué)報,2010,22(5):551-554.

[2]鄧小平,張賢,譚書偉,等.基于 FFT算法的音頻信號分析儀[EB/OL].(2011-03-15).[2011-06-05].http://www.paper.edu.cn.

[3]王平,江華麗,鄭孔華,等.基于單片機(jī)的音頻信號分析儀的設(shè)計(jì)[J].現(xiàn)代電子技術(shù),2009(19):122-124.

[4]周杰英,陳曉帆,王濤,等.點(diǎn)陣LED多功能動態(tài)顯示實(shí)驗(yàn)系統(tǒng)設(shè)計(jì)[J].實(shí)驗(yàn)室研究與探索,2010,29(9):36-40.

[5]張立科.單片機(jī)典型外圍器件及應(yīng)用實(shí)例[M].北京:人民郵電出版社,2006.

[6]吳國偉.嵌入式操作系統(tǒng)原理及應(yīng)用開發(fā)[M].北京:北京航空航天大學(xué)出版社,2007.

猜你喜歡
音量幅度音頻
測測你的“音量值”
單次止損幅度對組合盈虧的影響
解放手機(jī)的音量鍵
必須了解的音頻基礎(chǔ)知識 家庭影院入門攻略:音頻認(rèn)證與推薦標(biāo)準(zhǔn)篇
基于Daubechies(dbN)的飛行器音頻特征提取
微波超寬帶高速數(shù)控幅度調(diào)節(jié)器研制
請放心地扭大音量看電影聽音樂吧!Mclntosh Sonus Faber家庭影院套裝
音頻分析儀中低失真音頻信號的發(fā)生方法
基于ANSYS的四連桿臂架系統(tǒng)全幅度應(yīng)力分析
Pro Tools音頻剪輯及修正
朝阳县| 湘潭县| 深泽县| 沧州市| 千阳县| 蚌埠市| 渭源县| 西峡县| 朝阳区| 岳阳市| 新津县| 麻江县| 海兴县| 汤阴县| 水富县| 宁强县| 彭阳县| 敦煌市| 太白县| 呈贡县| 安龙县| 桓台县| 磐安县| 鄂尔多斯市| 柳河县| 温宿县| 莱芜市| 城步| 新田县| 泰顺县| 都匀市| 铜陵市| 仲巴县| 武乡县| 马鞍山市| 嘉黎县| 昌平区| 淳安县| 河间市| 满城县| 门源|