頻譜分析儀是微電子測量領域中最基礎、最重要的測量儀器之一,是從事各種電子產品研發、生產、檢驗的重要工具。高解析度、寬頻帶數字頻譜分析的方法和實現一直是該領域的研究熱點[1]。現代頻譜分析儀是基於現代數位訊號處理理論的頻譜分析儀,信號經過前置預處理、抗混疊濾波、A/D變換、數字頻譜分析等環節而得到信號中的頻率分量, 達到與傳統頻譜分析儀同樣的結果。
本設計完全利用FPGA實現FFT,在FPGA上實現整個系統構建。其中CPU選用Altera公司的Nios II軟核處理器進行開發, 硬體平臺關鍵模塊使用Altera公司的EDA軟體QuartusIIV8.0完成設計。整個系統利用Nios II軟核處理器通過Avalon總線進行系統的控制。全文重點闡述了整個系統的設計流程,同時對於方案中的設計思路和重要部分給予說明。
1 系統設計方案
頻譜分析儀一般分為兩類:
一種是掃頻調諧式的分析儀,此類分析儀通過各類濾波,再經過一個外差的接收機,把輸入信號中的中頻信號進行分析,從而得到頻譜分析的結果。這是現在最為普遍的頻譜分析儀結構,此類分析儀結構複雜[2]。
另外一種是動態的信號分析儀,即快速傅立葉變換FFT分析儀。它利用FFT將信號分解成分立的頻率分量,由模擬/數字轉換器(ADC)直接對輸入信號取樣,經過FFT處理後獲得頻譜分布圖。此類分析儀速度明顯優於傳統分析儀,可以進行實時分析。本文的設計就採用這種原理。
在此設計中,信號經過濾波、放大之後,通過AD取樣,在FGPA內對信號進行全硬體的數字濾波後,交給FFT信息處理單元進行FFT變換,最後送到LCD顯示其頻譜分析的結果。
圖1是系統的硬體結構框圖。整個系統設計主要由FPGA的內部硬體電路及外圍接口模塊構成。
2 系統的硬體單元
2.1 AGC電路
因為輸入信號幅度變化較大,為了使信號的幅度恆定且其幅度滿足A/D採樣的範圍(高位為2 V~3 V),因此此設計中加入AGC電路。本設計中的AGC電路採用AD603型線性增益放大器[3]。
2.2 ADC電路
為保證ADC輸入動態範圍的要求和對特定幹擾的抑制,信號首先需要預處理。根據採樣定理,輸入ADC的信號必須小於採樣頻率的1/2。ADC是完成從模擬到數字轉換的關鍵環節,它的精度和速度直接決定了頻譜分析儀的性能,所以ADC應儘量選用精度和速度都比較高的晶片[4]。系統採用WM8731晶片實現ADC,該晶片採用Sigma-delta ADC方式,通過採樣和數字濾波技術實現低頻信號的高解析度轉換和含有音頻信號的低失真轉換。
2.3 LCD顯示模塊
本系統直接定義NiosⅡ控制LCD液晶顯示模塊,利用FPGA中的PIO接口模擬LCD的接口電路。外圍電路上選用320×240液晶顯示模塊,選用SEDl335作為液晶模塊的控制器。
3 FFT/DFT信號處理模塊的實現
3.1 FIFO模塊
AD採樣的數據不能立即送到Nios CPU中進行處理,因為CPU還有許多其他任務要做,所以只有等AD採集到一定數量的數據之後再讀取採樣數據,這樣節省CPU的時間[5]。因此首先需設計一個FIFO來存儲AD採樣的數據,等FIFO中的數據滿之後再將它們讀取到CPU中進行處理。
FIFO是一種先進先出的數據緩存器,根據FIFO工作的時鐘域,可以將FIFO分為同步FIFO和異步FIFO。本設計中採用了寬度為16 bit,深度為256的異步FIFO。
3.2 FFT/DFT處理模塊
根據DFT算法將信號處理的模塊分為乘累加器、平方器、加法器、開方器。
用再內建FPGA內部到16 bit雙口RAM,可方便地使刷新數據和顯示讀出數據同時進行,而不產生邏輯衝突,同時也保留了結果的精度,其FPGA實現模塊連接圖如圖2所示。
4 軟體設計方案
控制系統的主程序採用C語言和彙編語言編寫,程序分為下列幾個部分:採樣數據處理、FFT轉換、標準參數設定、操作界面和頻譜顯示。
軟體流程圖如圖3所示。
5 實驗的結果與分析
給頻譜分析儀輸入峰-峰值為2 V、頻率為100 Hz的方波信號,其信號處理結果見圖4。從圖4看出輸出的方波頻譜圖只有奇次諧波,沒有偶次諧波,而且此方波的基波、三次諧波、五次諧波和七次諧波的幅值滿足1、1/3、1/5、1/7的理論數值,這與方波理論頻譜基本相同[6],表1為其測量值與理論值的對比結果分析。
通過比對可以驗證分析儀的LCD顯示的頻譜圖形與其輸入信號的理論頻譜數值基本一致,譜線位置準確,幅度值與理論誤差較小,該頻譜分析儀較好地完成了測量信號頻譜的要求,達到了預期設計的要求。
該設計在分析和利用Nios II軟核處理器和頻譜分析儀理論的基礎上,完成儀器硬體和軟體部分的設計。分析儀採用周期圖法進行頻譜分析,這樣可以保證測試結果較高的解析度和頻率準確性;其中FFT運算模塊採用全硬體級聯結構,不僅有效滿足了儀器對於信號處理實時性的要求,同時也節省了硬體資源;本設計可重構性好,在多種不同的應用領域,可根據實際需要對模塊進行替換升級。選擇高性能AD和大邏輯資源的FPGA等可以使性能得到大幅度提升;實現了片上設計,降低了系統的成本,實現了高集成度和可靠度。
打開APP閱讀更多精彩內容聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容圖片侵權或者其他問題,請聯繫本站作侵刪。 侵權投訴