在MSP430F1611上實現周期圖譜分析及校正
③為節約RAM內存空間,將旋轉因子對應的正余弦表制作成表格存放在ROM空間中,而蝶形運算時可通過查表得到旋轉因子后再進行FFT運算。
④由于FFT運算過程中的旋轉因子是通過左移14位取整得到的,因此蝶形運算過程中需要乘法運算結果右移14位。MSP430F1611單片機乘法器的結果寄存器,由高16位乘法結果寄存器RESFII、低16位乘法結果寄存器RESLO組成,右移14位操作就是保留高位結果寄存器所有內容和低位結果寄存器中的高兩位,因此RESHI、RESLO一起向左移2位,然后保留高位結果寄存器作為乘法結果就可實現右移14位過程。
5 算法測試
為了驗證算法的實時性和正確性,通過信號發生器產生標準信號送入所研制的基于MSP430f1611為核心的處理系統,對算法進行了全面的測試。
(1)測試算法運行時間
測試對2 048點數據進行功率譜估計所需要的總時間。預先設置MSP430F1611單片機的P5.4引腳為普通I/O,且為輸出方式,接著,循環執行FFT運算和功率譜估計程序,且每次開始FFT計算和功率譜估算前,將P5.4輸出電平翻轉,因此P5.4輸出的相鄰兩次翻轉電平的時間間隔就是FFT運算和功率譜估計的總時間。通過數字存儲示波器觀測P5.4引腳輸出的信號波形,如圖4所示。
每次高低電平翻轉的時間間隔約為500 ms,即對2 048點數據進行功率譜估計總共需要500 ms。
(2)測試算法計算精度
由于FFT運算的最大誤差發生在非整周期采樣時,所以,選擇這些最大誤差點來進行測試。由于泄漏誤差,信號基頻表示為
f0=(k+d)fs/N (7)
式(7)中,k為整數,d為小數(定義d為泄漏誤差系數)。由于泄漏誤差不超過頻率分辨率的二分之一,所以|d|≤O.5。當d=O時,即為整周期采樣情況;當d=O.5時,就是最大非整周期采樣的地方。因為所研制的基于FFT的頻譜分析方法將應用于數字渦街流量計,在此,針對氣體40口徑頻率范圍為69~1 380 Hz,設定采樣頻率為3 717.472 199 Hz,數據點數為2 048,選擇不同的k值得到不同的頻率信號,由信號發生器產生幅值為60 mV的這些信號,送入兩線制渦街流量計信號處理系統低通濾波器前端,然后經過預放大電路和低通濾波電路后,送入MSP430F1611進行頻率估計。
評論