鄭艷芳1,唐海娣2,李雪寶1
?。?.江蘇科技大學,江蘇 張家港 215600;2.江蘇耐維思通科技股份有限公司,江蘇 張家港 215600)
摘要:基于靈活自適應的空口波形技術FOFDM(Filtered OFDM)是現代通信技術的研究熱點,設計并實現可調FIR濾波器是實現該技術的核心工作之一。本文設計的基于FPGA的可調節FIR濾波器系數的自適應調整是通過控制算法對信道中的信號進行快速檢測,然后將結果和濾波器的輸出結果進行差值計算進行反饋調節。利用Quartus II和DSP Builder設計基于FPGA的16階系數可調FIR濾波器,給出核心模塊的設計電路圖和仿真結果。仿真結果表明:基于靈活自適應空口波形技術可以在FPGA上實現,而且由于FPGA具有天然的并行性,實際的通信系統中可以采用并發模式進行,達到提高信號傳送速率的目的。
關鍵詞:可調FIR濾波器;FPGA;F-OFDM
中圖分類號:TN713+.7文獻標識碼:ADOI: 10.19358/j.issn.1674-7720.2017.04.009
引用格式:鄭艷芳,唐海娣,李雪寶.基于FPGA的可調節FIR濾波器的設計與實現[J].微型機與應用,2017,36(4):29-31,35.
0引言
4G移動通信方興未艾,業界對于5G移動通信技術的討論已經如火如荼。作為移動通信領域“皇冠”上的一顆明珠,基于靈活自適應的空口波形技術和成倍提升頻譜效率的多址技術SCMA(Sparse Code Multiple Access)成為業內人士關注的焦點,其中,優化頻帶資源的利用率是FOFDM的核心。人們在研究算法優化的同時,也在關注算法的硬件實現。FPGA(Field Programmable Gate Array)在能耗、成本、運算速度等方面具有得天獨厚的優勢, 已經被廣泛應用于各種數字信號處理和數字通信領域。本文重點研究FOFDM核心技術之一的可調FIR濾波器,設計并實現基于FPGA的可調節FIR濾波器。
近年來,基于FPGA的數字濾波器研究已經取得了很多成果[114],其中文獻[14]的設計理念最接近本文。然而,從現有的文獻來看,并沒有可供參考的用于基于自適應的空口波形技術的方法,此外,本文設計流程和側重點與文獻[14]也是不同的。本文第1節為核心模塊設計,第2節為MATLAB仿真結果和系統仿真結果,第3節給出了基本結論和下一步研究目標。
1基于FPGA的可調FIR濾波器設計
該設計總體思路是:利用輸入波形的各項參數,借助MATLAB中的FDAtool工具計算出FIR濾波器所需參數,存入RAM。濾波器核心模塊讀取參數信息,調節濾波器的截止頻率等參數,調節該模塊的功能。
利用DSP_Builder開發核心濾波器模塊的流程示意圖如圖1所示。
最基本的FIR濾波器的系統函數為:
可以用卷積表示為:
y(n)=x(n)*h(n)(2)
例如,一個典型的直接型4階FIR濾波器,其表達式[11] 可寫為式(3):
h(n)=h(0)x(n)+h(1)x(n-1)+h(2)x(n-2)+h(3)x(n-3)(3)
在圖2中,總共存在3個延時單元、4個乘法器和一個4輸入的加法器。
如果使用普通的數字信號處理器來實現這個4階FIR濾波器,只能用串行的方式順序地執行延時、乘、加操作。這必須用到多個指令周期,而無法在一個指令周期內完成。但是如果采用FPGA來實現,就可以利用FPGA指令可以并行的優點,在一個指令周期內得到結果。
根據公式(3)和圖2,可以在Simulink中用DSP_Builder里的相關器件畫出一個圖3所示的4階FIR濾波器模型?!?/p>
圖3中“Delay”為延時單元,“Product”為乘法器單元,“ParallelAdderSubtractor”為加法器單元,“Input”與“Output”分別為輸入輸出。
?。?)設計4階FIR濾波器子系統
新建一個文件,將子系統模塊(Subsystem)放入文件中,雙擊打開子系統模塊,將上面已經設計好的4階FIR濾波器放進去,并對端口進行修改。修改后的Subsystem模塊有5個輸入和2個輸出,“input”與“output”都修改為“Altbus”(因為它們不再作為主輸入端口,而是作為子系統的傳輸端口)。
?。?)設計16階FIR濾波器
4階子系統完成后,按照圖4搭建一個16階的FIR濾波器。其中Constant模塊的初始值為5,需要另外計算,下文講解如何計算Constant值。
(3)計算Constant的值
Constant的值就相當于h(n),是決定FIR濾波器具體性能的重要參數,該值為濾波器要調節的核心參數,它是通過濾波器的輸出和輸入信號的差值得到的。
(4)導出參數
點擊左上角的File,單擊Export,跳出Export界面,點擊下方的Export按鈕,可以將16個參數導出到MATLAB的主窗口。
?。?)將參數填入FIR濾波器的模型中
在MATLAB仿真階段,該參數可以手動輸入到FIR濾波器Constant模塊中,這樣便完成了一個16階低通FIR濾波器的設計。在系統設計階段,步驟(4)計算結果會暫存在定制的RAM模塊中。
2設計驗證
2.1核心模塊仿真
為了驗證設計的16階FIR濾波器正確與否,需要進行仿真。為此,給濾波器的輸入端加上一個混合信號,混合信號包含一個40 Hz的高頻信號和一個0.013 Hz的低頻信號,兩個信號由Add模塊相疊加,再分別加上示波器模塊“Scope”來顯示波形結果。FDAtool設置就和上文所述相同,并將所得數據填入Constant模塊中,仿真時間設為500 s。
圖5的上方為40 Hz的波形,下方為0.013 Hz的波形。圖6的上方為輸入的混合信號波形,下方為濾波器輸出波形。將兩幅圖比較可以明顯看出,高頻信號40 Hz的波形被濾除,濾波器輸出的是低頻的0.013 Hz的信號。
2.2系統仿真
(1)將將mdl文件編譯生成VHDL語言;
(2)計算輸入信號和濾波器輸出的差值,將該值存入RAM;
?。?)讀入RAM數據,逐漸確定濾波器截止頻率;
?。?)仿真。
為了驗證所設計的可調FIR濾波器的正確性,設計了基于上述模塊的低通濾波器進行波形的仿真。兩個正弦波疊加形成輸入信號,一個25 kHz信號人為標記為噪聲信號,另一個4 kHz作為目標信號,程序調節濾波器的截止頻率到4.5 kHz。仿真結果如圖7所示。由圖中可知,該濾波器濾除了高于截止頻率的信號部分,保留了低于截止頻率的信號部分,因此濾波器功能正確。調節輸入信號和截止頻率后,結果也能達到如圖7所示的效果。
3結論
本文FPGA設計了一種可調FIR濾波器,利用DSP Builder結合MATLAB的優勢將該濾波器的設計簡化為MATLAB Simulink設計,大大縮短了設計時間。未來將進一步完善可調濾波器設計,探索基于FPGA的可調FIR濾波器在實際通信系統中的實現方法,進而提高通信系統效率。
參考文獻
[1] 李彬. FIR數字濾波器的FPGA實現技術研究[D]. 成都:西南交通大學,2004.
?。?] 劉朋全. 基于FPGA的FIR數字濾波器的設計和實現[D]. 西安:西北工業大學,2006.
?。?] 楊娜. 基于MATLAB與DSP的自適應濾波器設計與實現[J]. 微型機應用,2015,34(21):16-20.
[4] 杜勇. 數字調制解調技術的MATLAB與FPGA實現[M]. 北京:電子工業出版社,2015.
?。?] 高耀鴻. 基于FPGA的FIR低通濾波器[D].長沙:湖南大學,2012.
[6] 張馳. 基于Matlab的FIR濾波器設計及FPGA實現[J]. 應用科技,2005,33(6):84-86.
[7] 孫耀奇. 基于Matlab和FPGA的FIR數字濾波器設計及實現[J]. 現代電子技術,2008(11):89-92.
[8] 張園. 基于MATLAB和QuartusⅡ的FIR濾波器設計與仿真[J]. 電子工程師,2008,34(2):25-27.
?。?] 阿依夏木·力提甫. 一種基于MATLAB及FPGA的FIR低通濾波器的設計與實現[D]. 烏魯木齊:新疆師范大學,2011.
?。?0] 陳雁. 用MATLAB設計及FPGA實現FIR濾波器的方法[D].北京:北京航空航天大學,2003.
[11] 宋千. 基于FPGA的FIR濾波器高效實現[J]. 信號處理,2001,17(5):385-391.
?。?2] 馬桂芳.基于FPGA和DSP Builder的FIR數字濾波器設計[J]. 常州工學院學報,2011,24(5):23-26.
?。?3] 彭雪峰. 基于MATLAB與QuartusⅡ的FIR濾波器設計與驗證[J]. 電子設計工程,2009,17(11):118-124.
[14] 陳虹,崔葛瑾.基于FPGA的系數可調FIR濾波器設計[J].實驗室研究與探索,2008,27(6)47-50.