電子設計 發表於 2019-05-31 08:05:00
引 言
在頻譜分析儀中,傳統的FFT實現方法首先是對低中頻信號進行ADC低採樣率採樣,然後將採樣數據保存在RAM中;當數據足夠後,進行FFT運算,將獲得的頻譜數據顯示在屏幕上。這種FFT方法可以說是簡單易行,但在處理寬帶高中頻信號方面,由於受Nyquist採樣定理的約束,需要使用高採樣率。此時實現窄的解析度帶寬將需要大量的採樣數據,這就使得系統不僅需要提高存儲空間,而且增加了運算量,同時有很多冗餘輸出數據,導致算法的效率非常低下。
隨著高速A/D變換和DSP技術的發展,軟體無線電設計思想也被應用到頻譜分析儀中,基於軟體無線電數字下變頻的FFT技術能夠有效減少上述傳統FFT技術存在的問題。在高中頻、高採樣率系統中,能實現信號頻譜的高解析度、低存儲量和低運算量,從而極大地提高了系統的實時性。
1 頻率解析度
在頻譜分析儀的FFT譜分析中,信號的頻率解析度RBW定義為:
式中:fs為採樣率;N為FFT點數。
如果考慮採用窗函數,則解析度帶寬RBW定義為:
式中:K為窗函數-3 dB帶寬因子。
由於fs是ADC的採樣頻率,是常數,K也是一個定值,因此要減小RBW值,只能增加N。但增加N會增加處理時間,還要增加存儲器容量,所以N的增加受到限制。在頻譜分析儀中一般N不大於64K。
2 數字下變頻FFT技術
基於數字下變頻的FFT技術的實現原理框圖如圖1所示。
假設希望對整個頻帶中頻率為fIF的兩邊±B/2的一段頻率範圍內進行FFT,整個處理過程可分為數字下變頻和FFT濾波2個模塊。
數字下變頻模塊的處理過程包括以下3個步驟:
(1) 數字變頻,將感興趣部分的頻譜下變頻到零頻附近。先以fs對信號進行採樣,得到N點序列x(n),然後與數字本振覆信號cos(2πfIFnT)+jsin(2πfIFnT)(T=fIF/fs)進行數字混頻,獲得I/Q兩路信號,將x(n)的頻譜x(k)平移了fIF,此時原信號頻率fIF的分量被移至零頻處。
(2) 高抽取濾波,用一個帶寬等於B的高抽取濾波器(如5級CIC抽取濾波器)對變頻至零頻的信號濾波,則輸出信號含有x(n)在fIF±B/2範圍內的頻率成分。
(3) 抽取,實現對濾波後信號的抽取。若fs/B=D,得D為抽取因子,此時輸出數據的採樣頻率縮小了D倍;又因為使用了高抽取抗混疊濾波器,此時的信號頻譜是不會發生混疊的。
FFT濾波模塊的處理過程則包括以下2個步驟:
(1) 加窗FFT,對經過數字下變頻的I/Q兩路信號先乘上窗函數,然後進行複數FFT。此時FFT的點數為M=N/D,其頻譜就是fIF±B/2內的頻譜,但卻有傳統N點FFT的解析度效果。
(2) 取模,就是獲取覆信號的幅度信息,由於FFT輸出值的每個點對應一個頻率點,所以輸出的就是信號的頻譜。
高抽取濾波的運算量和存儲量一般都比較小,比如CIC抽取濾波器的濾波係數都是1,不需要乘法運算,所需的存儲空間等於抽取比D;而後續的FFT只需對M=N/D點數據進行FFT變換,數據存儲量和運算量都遠低於傳統的N點FFT,數據存儲量和運算量的大幅度降低必將導致大幅度減少處理時間。上述內容均說明,基於數字下變頻的FFT技術比傳統的FFT技術在提高系統的實時性方面具有更大的優越性。
3 數字下變頻FFT在頻譜分析儀中的實現
在某新型頻譜分析儀中,基於數字下變頻的FFT技術得到成功實現,該技術是在基於TI公司DSP晶片TMS320C6701的數位訊號處理系統中通過軟體處理得以實現的。
圖2是該數位訊號處理系統的硬體結構框圖。在該系統中,模擬中頻信號由同軸電纜輸入,經中頻預濾波和ADC採樣後,數據通過FIFO送給TMS320C6701。TMS320C6701主要是做基於數字下變頻的FFT,其實現依據前面描述的實現原理來設計的。全局控制器FPGA主要是完成整個系統的掃描控制。當FPGA在收到採樣指令後啟動ADC採集,採集的數據直接緩存在FIFO中。當FIFO數半滿時,將觸發TMS320C6701外部中斷和內部DMA中斷,DMA處理程序將FIFO數據送入DSP的外部SDRAM數據存儲器。當數據足夠時,TMS320C6701對採樣數據進行數字下變頻和FFT處理,把結果轉化成主機能接收的數據格式送人雙口RAM,主-機則實時從雙口RAM讀取頻譜數據,轉換成數據顯示在屏幕上。此外,主機則把控制指令送到雙口RAM,通過HPI中斷通知DSP接0收。
圖3是其DSP基於中斷響應的軟體實現流程圖,該DSP軟體主要由2個中斷處理程序共同完成。其中,2個中斷分別為HPI中斷和FIFO半滿中斷。
主機的HPI中斷通過訪問DSP的HPI接口產生,該中斷用來通知DSP得到當前頻譜分析儀的解析度,並根據式(2)由解析度、窗函數-3 dB帶寬因子K和採樣率計算出FFT長度M,並由預先設定的抽取比D計算出採樣數據長度N=M×D。
FPGA控制產生的ADC採樣FIFO半滿中斷,則先讓DSP完成數據採集、軟體數字下變頻;當所採集的數據足夠時,再進行FFT處理(此時FPGA控制ADC停止採樣)。由於DSP片內數據空間較小,ADC採樣數據先保存在內部RAM,經CIC抽取濾波後,其輸出數據和FFT處理數據都存放在外部SDRAM空間,而SBSRAM是參數存放和傳遞的空間,裡面包括數字本振(該數據是在開機時由主機加載)、窗函數和FFT蝶形因子等參數。
4 處理時間比較與分析
本文選擇在相同ADC採樣數據下將傳統FFT和數字下變頻FFT 2種方法的處理時間進行對比測試,在測試中選擇的採樣數據量為64K,基於數字下變頻的FFT方法選擇的抽取比為64,所有FFT數據訪問都是在片外SDRAM,測試結果如表1所示。
由表1可以知,基於數字下變頻的FFT方法總共耗時為1.92+0.95=2.87 ms,遠小於傳統法的320.7 ms。傳統法處理時間過長,主要是因為FFT算法本身的大數據量運算耗時較多,而且DSP訪問外部SDRAM較之片內耗時更多。64K數據都在外部SDRAM,而FFT算法需要多次對數據進行讀寫操作,這必然導致整個處理中的數據訪問時問增加,從而引起整個處理時間增加。相比而言,基於數字下變頻的FFT方法只需進行1K點的FFT;而且CIC抽取濾波處理是在片內進行的,均是簡單的加法運算,整個處理時間自然就少多了。
5 結 論
本文分析了基於數字下變頻的FFT技術的具體方法,在實現寬帶頻譜分析和窄的解析度方面,該方法比傳統的FFT更能有效降低整個處理過程的運算量、存儲量和處理時間。實際應用證明:在某新型頻譜分析儀中,通過在單片DSP裡的軟體實現,並由處理時間對比測試可知,該方法較之傳統FFT方法能大幅度提高系統的實時性。
聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容圖片侵權或者其他問題,請聯繫本站作侵刪。 侵權投訴