頻譜分析儀是微電子測量領域中最基礎、最重要的測量儀器之一,是從事各種電子產品研發、生產、檢驗的重要工具。高分辨率、寬頻帶數字頻譜分析的方法和實現一直是該領域的研究熱點[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等可以使性能得到大幅度提升;實現了片上設計,降低了系統的成本,實現了高集成度和可靠度。 |