基于MSP430F1611單片機的音頻信號分析
摘要:為了使音頻信號分析儀小巧可靠,成本低廉,設(shè)計了以2片MSP430F1611單片機為核心的系統(tǒng)。該系統(tǒng)將音頻信號送入八階巴特沃茲低通濾波器,對信號進(jìn)行限幅放大、衰減、電平位移、緩沖,并利用一單片機負(fù)責(zé)對前級處理后的模擬信號進(jìn)行采樣,將采集得到的音頻信號進(jìn)行4 096點基2的FFT計算,并對信號加窗函數(shù)提高分辨率,另一單片機負(fù)責(zé)對信號的分析及控制顯示設(shè)備。此設(shè)計精確的測量了音頻信號的功率譜、周期性、失真度指標(biāo),達(dá)到較高的頻率分辨率,并能將測量結(jié)果通過紅外遙控器顯示在液晶屏上。
關(guān)鍵詞:MSP430F1611;FFT;窗函數(shù);頻率分辨率;周期性;失真度;功率譜
音頻信號分析是語音識別的基礎(chǔ),現(xiàn)在大多數(shù)音頻信號分析儀不僅體積大而且價格貴,某些特殊方面難以普及,而嵌入式系統(tǒng)分析儀具有小巧可靠的特點,所以開發(fā)基于特殊功能單片機的音頻信號分析儀器具有很好的現(xiàn)實意義。
本系統(tǒng)將采用集成有μC/OS-Ⅱ操作系統(tǒng)的單片機,利用快速傅里葉變換并加窗函數(shù)的方法來實現(xiàn)對音頻信號各項參數(shù)的分析。
1 系統(tǒng)總體方案
信號首先通過8階有源巴特沃茲濾波器進(jìn)行抗混疊處理,然后通過放大衰減,電平搬移緩沖網(wǎng)絡(luò)后,送單片機處理。
系統(tǒng)的2片MSP430F1611單片機,一片負(fù)責(zé)對模擬信號進(jìn)行采樣,并對采集得到的信號進(jìn)行4096點的FFT計算,另一片負(fù)責(zé)控制顯示設(shè)備以及完成對信號功率譜,周期性,失真度的分析。
系統(tǒng)的總體方框圖如圖1所示。
2 系統(tǒng)各硬件設(shè)計
2.1 抗混疊濾波器的設(shè)計
根據(jù)Nyquist定理,AD模數(shù)轉(zhuǎn)換器以fs的頻率采樣輸入信號時,頻率f>fs/2的信號將被關(guān)于fs/2的頻率鏡像到2fs-f處,帶外雜散信號所引起的混疊現(xiàn)象如果沒有經(jīng)過適當(dāng)?shù)臑V波處理,這些頻率成分將會影響到帶內(nèi)數(shù)據(jù)采集的性能指標(biāo)。本系統(tǒng)選擇了約40 kHz的換檔采樣頻率,而輸入信號最高為10 kHz,過采樣率較低,故對濾波器提出了比較高的要求??紤]到巴特沃茲濾波器平坦的帶內(nèi)幅頻特性,使用了連續(xù)時間有源濾波器MAX274設(shè)計了8階的巴特沃茲濾波器(如圖2所示),使20 kHz外的信號得到有效地衰減,經(jīng)過試驗,效果比較好。
2.2 前端放大器的設(shè)計
由于輸入音頻信號的幅度可能會較大,我們假設(shè)外界給予的信號能達(dá)到10 V峰峰值,而MSP430F1611單片機片內(nèi)AD采集信號范圍為0~2.51 V,故需將信號進(jìn)行壓縮。經(jīng)綜合考慮,本系統(tǒng)分為4檔,并保證每檔都有重疊的部分。100 mV以下通過低失調(diào)運放op07放大27.6 dB(24倍),90 mV~2.5V范圍內(nèi)直通,而在2~5 V范圍內(nèi)通過電阻分壓衰減6.02 dB(2倍)。同樣在4~10 V范圍內(nèi)衰減12.04 dB(4倍),然后通過輸入設(shè)備進(jìn)行手動選檔,控制每路繼電器的通斷,選擇到最適合的檔位,再將此信號經(jīng)過電平搬移電路后緩沖輸入單片機采樣進(jìn)行FFT計算。本模塊在級聯(lián)時注重了對前后級的隔離,加入了緩沖級,使測量信號幅度的誤差減小,如圖3所示。
2.3 音頻信號周期性的判斷及周期測量
本系統(tǒng)通過設(shè)定功率門限值,能有效地判斷所送入的信號是否具有周期性,并計算出周期信號的周期值。對于一般的周期信號f(t),將f(t)展開成傅里葉級數(shù)得:
將式(1)兩邊取傅里葉變換得:
可看出一般的周期信號是由一系列的沖激函數(shù)組成的離散頻譜,且沖激發(fā)生在信號的諧波頻率處(0,±w1,±2w2...),而非周期信號的頻譜是連續(xù)的,所以信號頻譜分布較分散,在頻譜上不可能有大的階躍,這樣可通過設(shè)定一功率門限值,如果有大于此門限值的頻譜存在就是周期信號,反之則不是,當(dāng)判斷信號為周期信號時,將信號送入比較器,產(chǎn)生的脈沖信號送入單片機計數(shù)從而判斷其周期。經(jīng)過多次試驗,選擇一個較好的門限值,這樣就能判斷很大部分的信號(如三角波、鋸齒波、正弦波)是否具有周期性,從而準(zhǔn)確計算出信號的周期。
2.4 音頻信號失真度的測量
對于正弦信號來說,基波頻譜的功率值總是最大的,可通過此方法來判斷基波的頻譜,從而得到基波的功率。正弦信號的失真度定義為信號中全部諧波分量的能量與基波能量之比的平方根值,設(shè)正弦信號的基波功率為P1,信號的總功率為P,則正弦信號的失真度為
通過所分析出來的各頻譜功率即可計算出正弦信號的失真度。
3 系統(tǒng)軟件設(shè)計
3.1 嵌入式系統(tǒng)設(shè)計
本設(shè)計在MSP430F1611單片機中嵌入了μC/OS-Ⅱ操作系統(tǒng),可以很方便地實現(xiàn)多任務(wù)的調(diào)度與協(xié)調(diào),極大地節(jié)約了軟件開發(fā)時間和減少了出錯幾率。系統(tǒng)的軟件流程圖如下:圖4為FFT的軟件流程圖,圖5為負(fù)責(zé)信號采集并進(jìn)行FFT計算的從機MSP430F1611的流程圖,圖6為負(fù)責(zé)外設(shè)信號分析的主機MSP430F1611的流程圖。
3.2 FFT算法的具體設(shè)計
3.2.1 FFT點數(shù)與采樣頻率的分析
本系統(tǒng)應(yīng)用基2的傅里葉變換進(jìn)行計算,考慮到使用的16位MSP430F1611單片機的RAM存儲空間為10 k,由于經(jīng)過FFT計算后譜線的幅值關(guān)于中心對稱,為了節(jié)省硬件資源,將FFT計算后的2048個點舍去,故可節(jié)省一半的資源,由于2 048x16 bitx2=8.192 k,故最大取N=4 096個點作FFT。本系統(tǒng)將頻率分辨力設(shè)定為20 Hz,如果取采樣頻率fs=40kHz,那么此FFT的頻率分辨力△f=fs/N=10 Hz。但在實際情況下,由于FFT只能分析有限個點,必須對連續(xù)時間的信號進(jìn)行截斷,相當(dāng)于在時域信號加了一個窗,使信號頻譜向兩邊擴散產(chǎn)生頻譜泄漏效應(yīng);再加上FFT的頻率分辨力有限,使信號頻譜不能完全與FFT的譜線重合,從而產(chǎn)生柵欄效應(yīng),這兩種效應(yīng)使分析出來的譜線擴散分布;對兩個相距只有20 Hz的信號,所以可采取提高FFT的頻率分辨力△f即減小采樣頻率或提高FFT點數(shù),或通過加窗的方法來更精確地分析頻譜。本系統(tǒng)將所采集信號的頻率分成兩段,當(dāng)信號頻率較高時,可利用fs=40 kHz的采樣頻率采樣,當(dāng)所采集信號的頻率較低時,通過輸入裝置改變采樣頻率至fs=20kHz,這樣FFT的采樣頻率甚至可提高到△f=fs/N=5 Hz,通過此方法可提高整體系統(tǒng)的頻率分辨力,而分析FFT的點數(shù)受到硬件資源的限制,最后也可通過加窗的方法來提高分析精度。
3.2.2 窗函數(shù)的選擇
不同的窗函數(shù)對信號會產(chǎn)生不同的作用,旁瓣幅度比較小的窗函數(shù)有利于減小頻譜泄漏,對信號頻譜幅值的測量較為準(zhǔn)確,但這種窗函數(shù)的主瓣寬度較大,會使分析出來的譜線向兩邊擴散得比較多,導(dǎo)致測量單頻,多頻信號頻率的準(zhǔn)確度下降,如blackman窗,F(xiàn)lattop窗等。而旁瓣幅度衰減較弱的窗函數(shù)主瓣寬度較窄,這樣有利于對頻率準(zhǔn)確度的測量,如矩形窗,也有兼顧兩者的如banning窗,bumming窗等。所以頻率與幅度的測量準(zhǔn)確性是矛盾的。本系統(tǒng)利用matlab仿真初步估計應(yīng)選用的窗函數(shù),所分析的信號為單頻率函數(shù)
將此信號加上各窗函數(shù)后的matlab仿真結(jié)果如下:圖7為加blackman窗后的頻率譜線,圖8為加hanning窗后的頻率譜線。
根據(jù)上圖可以看出1 000 Hz和1 005 Hz的頻譜被分成了幾根幅值比較高的譜線,這是由于泄漏效應(yīng)與柵欄效應(yīng)所造成的,當(dāng)加banning窗時,信號頻率剛好是FFT頻率分辨率fs/N=10 Hz的整數(shù)倍時,信號譜線分成了7根幅值比較高的譜線。當(dāng)加blackman窗時,譜線分成了將近20根幅值較高的譜線。但在實際情況下,當(dāng)加hanning窗時,中心譜線處分成了3或4根幅值比較大的譜線,比仿真結(jié)果要好些,但加blaekman窗譜線分布得比仿真結(jié)果更廣,但計算出來的幅度值會比banning窗的精度稍微高些,為了提高音頻分析儀的頻率分辨力,應(yīng)盡量使相鄰的譜線不相互重疊,這樣才能計算各個頻率信號的功率和提高頻率分辨力,經(jīng)過綜合考慮,本系統(tǒng)選擇加hanning窗。
4 測試方法與測試結(jié)果
4.1 測試環(huán)境及測試儀器
對該音頻信號分析儀在30℃室溫下進(jìn)行測試,測試儀器如下:南京盛普40 M函數(shù)發(fā)生器2臺,泰克60 M數(shù)字示波器1臺,晶體管毫伏表DA-16,失真度測試儀ZC4128。
4.2 信號功率譜的測量
使用兩臺函數(shù)發(fā)生器產(chǎn)生兩路信號進(jìn)行疊加后測試,A,B兩路輸入電壓為VppA=2.000 V(0.04 W),頻率為1 kHz,VppB=3.000V(0.09 W),頻率為1 kHz。表1為測試的結(jié)果,可知單信號功率譜測量誤差在0.2%之內(nèi),而總功率測量誤差也在0.2%左右。
4.3 信號頻率分辨率及周期性的測量
通過函數(shù)發(fā)生器輸入一般的周期信號,輸入50 Hz的正弦波,以及1 000 Hz的方波,三角波,鋸齒的周期波和非周期噪聲信號,表2為測試結(jié)果,可見對一般的信號的周期性判斷很準(zhǔn)確,頻率測試誤差在1%以內(nèi)。
4.4 信號失真度的測量
用函數(shù)發(fā)生器分別產(chǎn)生1 000 Hz、100 Hz、20 Hz的三角波以及1 000 Hz、100 Hz、20 Hz的方波,并將各信號分成兩路,一路送失真度測試儀,一路送音頻信號分析儀,通過對比所得結(jié)果來判斷測試的精度。表3為測試結(jié)果,可見由于1 k左右的的諧波分量較高,抗混疊濾波器將高次諧波的能量濾除,故會使失真度偏差較大,當(dāng)信號的頻率降低時,失真度會測量得比較準(zhǔn)確。
5 結(jié)束語
本系統(tǒng)利用快速傅里葉變換(FFT)的算法,綜合外圍采樣電路,利用兩塊MSP430F1611單片機對信號進(jìn)行處理,并借助了matlab工具進(jìn)行預(yù)估計和判斷,有效地減小了軟件設(shè)計的盲目性。并通過加緩沖電路減小了前后級電路的相互影響,使音頻信號分析儀的精度得到了有效地提高。
在測試較高頻率信號的失真度時,如果能適當(dāng)提高抗混疊濾波器的低通截止頻率,那么失真度的準(zhǔn)確率會顯著的提高。此設(shè)計成本低廉,體積小,外圍電路簡單,具有廣泛的市場空間。