0 引 言 在頻譜分析儀中,傳統的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方法能大幅度提高系統的實時性。 |