



關鍵詞:MATLAB;FPGA芯片;數字下變頻設計
中圖分類號:TN791 ? ? ? ?文獻標識碼:A ? 文章編號:2096-4706(2019)06-0032-03
Keywords:MATLAB;FPGA chip;design of digital down converter
0 ?引 ?言
作為理想概念的軟件無線電屬于開放性極強的平臺,構造一個軟件控制的通用硬件平臺是軟件無線電的中心思想,本文研究的數字下變頻屬于軟件無線電的核心技術之一。數字下變頻器主要由三部分組成,即混頻模塊、抽取模塊和濾波模塊,其性能直接受到混頻器和濾波器的影響。為了真正在應用FPGA芯片的數字下變頻設計中引入MATLAB軟件,本文研究主要圍繞基于FPGA的數字控制振蕩器設計(NCO)、積分梳狀濾波器設計(CIC)、半帶濾波器設計(HB)、FIR濾波器設計及仿真驗證展開。
1 ?數字控制振蕩器的設計與實現
1.1 ?基于FPGA的數字控制振蕩器設計
數字控制振蕩器的設計首先需要考慮設計方法的選擇,為不占用系統的內存,本文選擇CORDIC方法進行設計。為避免數字控制振蕩器模塊產生雜散,需保證其頻率控制字為2的整數冪次方,這樣才能滿足整個系統的實際需求。
設計采用40MHz時鐘,相位累加器位數N設置為32,為保證頻率在1.5M左右且不產生雜散,頻率控制字Δθ設置為227,輸出頻率如式(1)所示。
1.2 ?數字控制振蕩器模塊的驗證與仿真
雖然數字控制振蕩器設計在理論上滿足了要求,但為了直觀地驗證其功能,需編寫測試文件testbench,設置仿真軟件simulation進行系統間調用。在完成仿真軟件設置后,需選擇調用的軟件路徑,最后打開simulation工具調用仿真。
本文設計的數字控制振蕩器模塊可產生兩路正交信號,使用MATLAB對產生信號的頻譜進行分析,即可得出數字控制振蕩器模塊輸出余弦信號的頻譜,如圖1所示。結合圖片可發現,設計的輸出信號頻率為1.25MHz,仿真輸出信號的頻率為1.249MHz,設計通過仿真得到了直觀驗證。
2.1 ?基于FPGA的積分梳狀濾波器設計
抽取濾波器組屬于數字下變頻的核心部分,其第一級抽取濾波器為積分梳狀濾波器,且具備抽取因子較大、采樣速率最大的特點,結合設計需要,本文計劃設計5級8倍的積分梳狀I抽取濾波器。本文設計規格積分梳狀濾波器的第一旁瓣幅值衰減為67.3dB,因此將輸入信號帶寬設計為100kHz,結合0.02的帶寬比例因子,模數轉換芯片采用32MHz,由此可得出式(2)所示的積分梳狀濾波器阻帶衰減和式(3)所示的積分梳狀濾波器通帶衰減[2]。
2.2 ?積分梳狀模塊的驗證與仿真
為進一步驗證設計的正確性,仿真過程需應用MATLAB軟件,以此生成用于仿真的信號。信號采樣率為32MHz、頻率為100KHz,由此可得到積分梳狀模塊功能仿真圖,如圖2所示。深入分析可以發現,本文設計的積分梳狀濾波器可實現每隔8個時鐘單位進行一次抽取,即具備8倍抽取功能。積分梳狀濾波器輸入和輸出信號的頻譜分析同樣需要應用MATLAB軟件。結合圖片分析可以直觀地發現輸入信號相較于輸出信號較為稠密,這證明了本文設計的積分梳狀模塊具備抽取輸入信號的功能,并能夠真正實現8倍的輸入信號抽取,同時系統對積分梳狀濾波器的各方面性能要求也得以實現。
3 ?半帶濾波器的設計與實現
3.1 ?基于FPGA的半帶濾波器設計
作為數字下變頻抽取濾波器組第二級,半帶濾波器相較于積分梳狀濾波器來說,抽取因子較小,但由于其可以被視作一種特殊的FIR濾波器,使得半帶濾波器不僅具備較為優秀的計算效率,且積分梳狀濾波器應用過程中產生的高頻分量也能夠通過半帶濾波器有效濾除,半帶濾波器同時具備的2倍抽取作用也能夠為數字下變頻的實現提供有力支持。在經過積分梳狀濾波器后,輸入信號的采樣速率有所變化,速率由32MHz變為4MHz,結合100KHz的原始信號帶寬,可確定帶寬比例因子為0.25,但考慮到半帶濾波器的實際應用,應避免較為緊湊的帶寬比例因子設置,因此本文設計采用120KHz作為原始信號帶寬,帶寬比例因子為0.03。為滿足應用需要,本文設計半帶濾波器的阻帶衰減需不小于60dB,結合式(4),可確定半帶濾波器的階數[3]。
考慮到N需要取奇數,因此設計中將半帶濾波器的階數設為9,具體設計則采用Kaiser窗口進行。結合相關研究與計算可確定,第一類修正零階貝塞爾函數為8,由此即可應用MATLAB軟件進行半帶濾波器的建模分析,建模過程需應用軟件的Filter Design&Anaiysis工具,由此即可得到半帶濾波器幅值響應。結合半帶濾波器幅值響應可以發現,本文設計的半帶濾波器的阻帶衰減能夠較好地滿足系統要求,同時軟件的應用還能夠獲取半帶濾波器9階系數,應用Quartus II 12.0軟件結合系數進行建模,可得到半帶濾波器模塊綜合報告與RTL級電路。
3.2 ?半帶模塊的驗證與仿真
為驗證本文設計半帶濾波器模塊的正確性,需開展仿真驗證,仿真驗證過程用于半帶濾波器模塊輸入信號選擇積分梳狀濾波器模塊的輸出信號。結合仿真可以確定,本文設計的半帶濾波器模塊實現了每隔2個時鐘單位進行1次抽取,因此可認為本文設計的半帶濾波器模塊具備2倍抽取功能。值得注意的是,本文設計的半帶濾波器模塊同時存在一定延時,這類延時源于系統原因和寄存器的存在,但設計在總體上滿足要求。為進一步驗證設計,應圍繞半帶濾波器模塊開展輸入與輸出信號的頻譜分析,分析需應用MATLAB軟件。結合分析可以發現,本文設計的半帶濾波器的輸入信號相較于輸出信號較為稠密,這是由于半帶濾波器具備抽取輸入信號的功能,半帶濾波器具備2倍抽取輸入信號的功能由此得到了進一步確認,且系統對設計提出的多方面性能指數要求也得以實現。
4 ?FIR整形濾波器的設計與實現
4.1 ?基于FPGA的FIR濾波器設計
考慮到上文設計的半帶濾波器本身屬于較為特殊的低通濾波器,因此FIR整形濾波器的設計必須重點關注其數字下變頻的最后一級身份。FIR整形濾波器采用與半帶濾波器相似的設計思路,且設計需保證通帶衰減、阻帶衰減分別控制在0.1dB內和80dB內。FIR整形濾波器設計首先需應用Kaiser窗口,考慮到此類濾波器多具備階數較大的特點,因此設計未采用第一類修正零階貝塞爾函數。具體設計需應用MATLAB軟件,通過應用Filter Design&Anaiysis工具和Kaiser窗口完成具體設計,選擇Minimum order作為設計的階數,同時設置fc、通帶衰減、阻帶衰減,分別為[0.1 ?0.4]MHz、0.1dB、80dB,由此即可通過設計得到34階FIR整形濾波器幅值響應,如圖3所示。
4.2 ?FIR濾波器模塊的驗證與仿真
為驗證本文設計的FIR濾波器模塊的正確性,需應用正弦信號組成的復合信號進行仿真驗證,信號由MATLAB軟件產生,組成復合信號的正弦信號頻率分別為0.1MHz、0.42MHz,仿真采用Modelsim,由此即可最終得到FIR濾波器模塊功能仿真圖,如圖4所示。
結合圖片可以確定本文設計的FIR濾波器模塊能夠有效濾除高頻分量,且不對信號具有抽取作用,這使得FIR濾波器模塊的整形濾波功能較為優秀,其設計效果能夠較好地滿足系統需要。
5 ?結 ?論
FPGA芯片實現數字下變頻設計離不開MA TLAB軟件的支持,在此基礎上,本文基于FPGA的數字控制振蕩器設計、積分梳狀濾波器設計、半帶濾波器設計、FIR濾波器設計及仿真驗證,直觀地展示了MATLAB軟件在應用FPGA芯片的數字下變頻設計中的應用路徑,為了更好地發揮MATLAB軟件的效用,FPGA器件的靈活方便、處理速度快的優勢必須得到充分發揮,AD高速采樣的應用同樣需要得到重視。
參考文獻:
[1] 薛金鑫,馬崇鶴,周磊,等.4GS/s-12bitADC內置數字下變頻器(DDC)的ASIC實現 [J].微電子學與計算機,2019,36(1):85-89.
[2] 杜兆凱,馬宗方,谷卓.基于優化混頻器的數字下變頻系統的設計與實現 [J].液晶與顯示,2018,33(11):943-949.
[3] 佟昕,于勇,趙寶珍,等.基于DMR-CED容錯方法的多相結構數字下變頻SEU防護設計 [J].遙測遙控,2018,39(4):54-59.
作者簡介:溫浪明(1986.06-),男,漢族,廣東梅州人,中級職稱,碩士,研究方向:數字集成電路設計。