基于MSP430的FM音頻頻譜分析儀的設(shè)計(jì)方案
1.前言
在實(shí)際的廣播電視發(fā)射工作中,新的發(fā)射機(jī)的進(jìn)場(chǎng)測(cè)試,發(fā)射機(jī)的日常指標(biāo)測(cè)試等都涉及了音頻的測(cè)試。本文設(shè)計(jì)的音頻頻譜分析儀就是從信號(hào)源的角度出發(fā),測(cè)量音頻信號(hào)的頻譜,從而確定各頻率成分的大小,為調(diào)頻廣播的各項(xiàng)音頻指標(biāo)的提供參考。
在本文中主要提出了以MSP43處理器為核心的音頻頻譜分析儀的設(shè)計(jì)方案。以數(shù)字信號(hào)處理的相關(guān)理論知識(shí)為指導(dǎo),利用MSP430處理器的優(yōu)勢(shì)來(lái)進(jìn)行音頻頻譜的設(shè)計(jì)與改進(jìn),并最終實(shí)現(xiàn)了在TFT液晶HD66772上面顯示。
2.頻譜分析儀設(shè)計(jì)原理
由于在數(shù)字系統(tǒng)中處理的數(shù)據(jù)都是經(jīng)由采樣得到,所以得到的數(shù)據(jù)必然是離散的。對(duì)于離散的數(shù)據(jù),適用離散傅立葉變換來(lái)進(jìn)行處理。
快速傅里葉變換,是離散傅里葉變換的快速算法,也可用于計(jì)算離散傅里葉變換的逆變換,目前已被數(shù)字式頻譜儀廣泛采用。對(duì)于長(zhǎng)度為N的復(fù)數(shù)序列 0 1 1 , , , N ? x x L x ,離散傅里葉變換公式為:
于是一個(gè)序列的運(yùn)算被分解成兩個(gè)運(yùn)算的和的形式, ( ) 1 X k 和( ) 2 X k 可以繼續(xù)向下分解,最終分解為兩點(diǎn)的FFT運(yùn)算。如果想要FFT運(yùn)算后的輸出為自然順序排列,則輸入序列需要按位倒序來(lái)排列。
圖1為8點(diǎn)FFT的運(yùn)算圖。
經(jīng)過(guò)FFT運(yùn)算后,可以將一個(gè)時(shí)域信號(hào)變換到頻域。有些信號(hào)在時(shí)域上是很難看出什么特征的,但是如果變換到頻域之后,就很容易看出特征了,這就是頻譜儀的一般原理。
3.頻譜分析儀的設(shè)計(jì)及實(shí)現(xiàn)
本文介紹了一種基于FFT的的數(shù)字音頻頻譜分析儀的設(shè)計(jì)方案,通過(guò)ADC采樣輸入的音頻信號(hào),ADC采樣完成以后,將數(shù)據(jù)進(jìn)行倒序排列并進(jìn)行FFT運(yùn)算,結(jié)果通過(guò)TFT液晶顯示出來(lái)。系統(tǒng)的框圖如圖2所示。
3.1 音頻頻譜分析儀硬件實(shí)現(xiàn)
為了實(shí)現(xiàn)系統(tǒng)功能,采用16bit處理器MSP430來(lái)高效處理輸入的數(shù)據(jù)流。MSP430自帶ADC12模塊,ADC12的采樣數(shù)據(jù)經(jīng)過(guò)運(yùn)算,通過(guò)65K色的液晶顯示頻譜圖。本系統(tǒng)硬件系統(tǒng)圖如圖3所示。
電源模塊為整個(gè)系統(tǒng)提供供電。系統(tǒng)還能響應(yīng)用戶按鍵事件,并進(jìn)行相應(yīng)的處理。串口模塊為系統(tǒng)的擴(kuò)展預(yù)留。
3.2 音頻頻譜分析儀的系統(tǒng)軟件設(shè)計(jì)
系統(tǒng)上電后首先進(jìn)行系統(tǒng)初始化System_Init(),對(duì)看門(mén)狗、系統(tǒng)時(shí)鐘、定時(shí)器、I/O端口、ADC等各模塊進(jìn)行初始化。接下來(lái)ADC12對(duì)連續(xù)的模擬信號(hào)進(jìn)行采樣,得到離散化的數(shù)字信號(hào),由處理器讀取該數(shù)字信號(hào)并進(jìn)行相應(yīng)的處理。采樣頻率過(guò)高,采樣點(diǎn)數(shù)過(guò)多,會(huì)占用大量寶貴的處理器內(nèi)存,降低數(shù)據(jù)處理速度;采樣頻率過(guò)低,又會(huì)使采樣數(shù)據(jù)失真而無(wú)法恢復(fù)原始連續(xù)信號(hào)。因此,必須根據(jù)信號(hào)的頻率范圍來(lái)設(shè)置采樣頻率,同時(shí)要滿足采樣定理的要求。
當(dāng)采樣頻率一定時(shí),增加采樣點(diǎn)數(shù)可以提高頻率分辨率,但數(shù)據(jù)存儲(chǔ)空間和計(jì)算量也相應(yīng)增大。一般可根據(jù)實(shí)際需要進(jìn)行采樣點(diǎn)數(shù)的選取,通常設(shè)置為2的整數(shù)次冪,以便于進(jìn)行后續(xù)的FFT譜分析,本系統(tǒng)采樣點(diǎn)數(shù)為N=16.ADC12采樣流程圖如圖4所示。
采樣后的FFT數(shù)據(jù)處理是系統(tǒng)的又一個(gè)重點(diǎn)和難點(diǎn),一方面,為了得到正序FFT,需要對(duì)原始自然序列進(jìn)行碼位倒序排列;另一方面,為了減少處理器的浮點(diǎn)運(yùn)算時(shí)間,旋轉(zhuǎn)因子kN W 計(jì)算采用查表實(shí)現(xiàn)。圖5為FFT運(yùn)算的倒序流程圖。
如果提前將余弦和正弦計(jì)算出來(lái)作為全局變量,計(jì)算kN W 就可以直接調(diào)用進(jìn)行加減計(jì)算,減少了大量的浮點(diǎn)運(yùn)算時(shí)間,會(huì)以犧牲一點(diǎn)存儲(chǔ)器的代價(jià)獲得快速的系統(tǒng)響應(yīng)。表1是編制的N=16時(shí)的余弦和正弦表。
圖6表示的是FFT運(yùn)算的流程圖,整個(gè)FFT程序包含在一個(gè)迭代的過(guò)程中,最后一層計(jì)算總是2-FFT蝶形運(yùn)算,下面是蝶形運(yùn)算和FFT計(jì)算的主程序段:
當(dāng)數(shù)據(jù)經(jīng)過(guò)FFT處理完畢以后,最后一步就是直觀地把數(shù)據(jù)顯示出來(lái)了,在這里我們采用了TFT液晶HD66772.
結(jié)合HD66772的操作時(shí)序圖,利用指令對(duì)其進(jìn)行讀寫(xiě)操作,可以對(duì)液晶的讀寫(xiě)進(jìn)行編程。MSP430F149與液晶HD66772模塊之間的連接分為控制總線和數(shù)據(jù)總線。在液晶屏上正確顯示信息,必須對(duì)液晶進(jìn)行兩個(gè)基本操作:第一,寫(xiě)入指令代碼;第二,寫(xiě)入顯示數(shù)據(jù)。
4.系統(tǒng)調(diào)試與運(yùn)行
因?yàn)?strong>MSP430F149的主時(shí)鐘采用8MHz晶振,雖然系統(tǒng)的單條指令的執(zhí)行時(shí)間僅為0.125μs,但是加上處理FFT的運(yùn)算、ADC12采樣頻率和液晶的寫(xiě)入時(shí)間等影響,液晶的實(shí)際刷新頻率低于25Hz,產(chǎn)生嚴(yán)重的閃爍感。為了提高刷新頻率,將實(shí)心柱圖改為空心線條,每隔兩個(gè)空心細(xì)線條寫(xiě)入一個(gè)實(shí)心線條,這樣液晶的寫(xiě)入時(shí)間減少了2/3,既能保證顯示的結(jié)果的準(zhǔn)確性,也不犧牲系統(tǒng)的寫(xiě)入HD66772液晶的GRAM的時(shí)間。解決了信號(hào)閃爍的問(wèn)題。圖7為輸入音頻信號(hào)后TFT液晶顯示的頻譜圖。
圖7中將輸入信號(hào)30Hz-15KHz的音頻信號(hào)在頻域進(jìn)行了16等分,每一個(gè)柱子表示1KHz的頻率帶寬。從圖中可以看到一般音頻信號(hào)的能量集中在低頻段,隨著頻率的升高音頻能量也越來(lái)越弱,這也是調(diào)頻廣播采用加權(quán)技術(shù)來(lái)提高性噪比的原因了。
4.結(jié)論
本方案通過(guò)ADC采樣輸入的音頻信號(hào),ADC采樣完成以后,將數(shù)據(jù)進(jìn)行倒序排列并進(jìn)行FFT運(yùn)算,結(jié)果通過(guò)TFT液晶顯示出來(lái)。由于采用的處理器的處理能力的原因,不能做到很高的采樣頻率和很精細(xì)的頻率分辨率,要提高系統(tǒng)的頻率分辨率,就需要增加采樣點(diǎn)數(shù)??梢越柚鶳C的強(qiáng)大處理能力,將采樣的數(shù)據(jù)通過(guò)預(yù)留的串口傳送給PC,在PC上完成FFT運(yùn)算以及顯示,這就是虛擬儀器的方式,實(shí)際工作中應(yīng)用前景也非常大。