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