郭 勇, 楊 歡
(南京北方信息控制集團(tuán)有限公司 產(chǎn)品研發(fā)中心,江蘇 南京 211153)
基于IP核FIR濾波器的設(shè)計(jì)與FPGA實(shí)現(xiàn)
郭 勇, 楊 歡
(南京北方信息控制集團(tuán)有限公司 產(chǎn)品研發(fā)中心,江蘇 南京 211153)
介紹了一種基于Altera公司IP核進(jìn)行FIR數(shù)字濾波器的參數(shù)設(shè)計(jì)及在FPGA中的快速實(shí)現(xiàn)方法。為了達(dá)到FIR濾波器的性能要求,介紹了Matlab和IP核中信道沖激響應(yīng)的階數(shù)和時(shí)域系數(shù)的設(shè)計(jì)方法。編程實(shí)現(xiàn)了時(shí)域卷積運(yùn)算,并給出了沖激響應(yīng)和輸入數(shù)據(jù)比特量化的方法和結(jié)果。為驗(yàn)證FIR濾波器設(shè)計(jì)的正確性,分別給出了Matlab和ModelSim中FIR低通濾波器的仿真輸入波形和濾波輸出波形。仿真結(jié)果表明,設(shè)計(jì)的濾波器通帶信號(hào)完整,阻帶濾波性能良好,該方法具有較好地適用性。
FIR;IP核;FPGA;時(shí)域卷積;波形驗(yàn)證
FIR濾波器具有嚴(yán)格的線性相位,且穩(wěn)定性高,廣泛用于信號(hào)檢測(cè)和處理等領(lǐng)域?;贔PGA實(shí)現(xiàn)FIR濾波器的方法具有靈活、高效和動(dòng)態(tài)可配置等特點(diǎn)。Altera公司的FIR濾波器的IP核功能強(qiáng)大,采用IP核的方法既可以保證性能,又能極大地縮短設(shè)計(jì)時(shí)間。目前的文獻(xiàn)中,完整地介紹濾波器參數(shù)設(shè)計(jì)[1]、IP核設(shè)計(jì)方法[2]及濾波性能測(cè)試的文獻(xiàn)不多[3],而且針對(duì)卷積運(yùn)算的代碼實(shí)現(xiàn)也沒(méi)有提及[4]。本文著重介紹Matlab和IP核中FIR濾波器參數(shù)的設(shè)計(jì)方法和時(shí)域卷積運(yùn)算的編程實(shí)現(xiàn),并采用大容量仿真數(shù)據(jù)測(cè)試基于IP核FIR濾波器的濾波性能以及用Matlab設(shè)計(jì)濾波器的濾波性能。
FIR時(shí)域結(jié)構(gòu)圖如圖1所示。
圖1 FIR時(shí)域結(jié)構(gòu)
FIR濾波器是線性時(shí)不變系統(tǒng),該系統(tǒng)的特征是輸出序列y(n)等于輸入序列x(n)與單位沖激響應(yīng)h(n)的線性卷積。由圖1可知,y(n)等于當(dāng)前時(shí)刻的輸入x(n)與N-1個(gè)時(shí)刻的x(n)與N個(gè)抽頭系數(shù)相乘再相加得到。FIR濾波器具有嚴(yán)格的線性相位特性,且h(n)滿足對(duì)稱性。
x(n)為輸入序列,h(n)為FIR濾波器的單位沖激響應(yīng),y(n)為輸出序列。x(n)與h(n)做卷積運(yùn)算如下:
目前文獻(xiàn)中沒(méi)有提及對(duì)卷積運(yùn)算的編程實(shí)現(xiàn)。本文給出上述公式的Matlab代碼實(shí)現(xiàn)如下:
%信號(hào)x經(jīng)過(guò)FIR濾波器,N1=37,為FIR濾波器的階數(shù),L為輸入序列的長(zhǎng)度
z1=zeros(1,N1); %z1為1行37列的移位寄存器
y1=zeros(1,L); %y1為濾波后的信號(hào)
h1=h1’; %對(duì)信道沖激響應(yīng)進(jìn)行轉(zhuǎn)置
fori=1:L
z1(1) =x(i); %x為輸入序列
%加漢明窗進(jìn)行濾波
% 2個(gè)矩陣做乘積運(yùn)算,計(jì)算每個(gè)點(diǎn)的卷積值
y1(i) =z1*h1;
z2=z1(1:N1-1);
z1(2:N1)=z2;
z1(1)=0;
end
y1; %濾波后的信號(hào)
設(shè)計(jì)的FIR低通濾波器通帶截止頻率為1.2 MHz,采樣頻率10 MHz,要求采用窗函數(shù)法設(shè)計(jì)。經(jīng)過(guò)仿真驗(yàn)證,選擇漢明窗,階數(shù)n=37,滿足要求[5-6]。在Matlab中輸入fdatool,啟動(dòng)濾波器設(shè)計(jì)套件。在參數(shù)設(shè)置界面中輸入以下參數(shù):方法采用窗函數(shù)法,選擇的窗口類型為“Hamming”,F(xiàn)s=10 MHz,F(xiàn)c=1.2 MHz。其中n=36,表示生成的階數(shù)n=37。生成的信道沖激響應(yīng)h(n)為:
h(n)=[0.001 2,0.000 4,-0.001 0,-0.002 9,-0.003 9, -0.002 2,0.003 0,0.010 0,0.013 9,0.009 2,-0.0061, -0.026 8,-0.040 1,-0.031 3,0.008 9,0.076 7, 0.154 4,0.216 4,0.240 0,0.216 4,0.154 4,0.076 7, 0.008 9,-0.031 3,-0.040 1,-0.026 8,-0.006 1, 0.009 2,0.013 9,0.010 0,0.003 0,-0.002 2, -0.003 9,-0.002 9,-0.001 0,0.000 4,0.001 2] 。
為了驗(yàn)證FIR低通濾波器設(shè)計(jì)的正確性,設(shè)計(jì)輸入信號(hào)為2個(gè)信號(hào)的疊加:一個(gè)是50kHz正弦波信號(hào),一個(gè)是1.8MHz的正弦波信號(hào),采樣個(gè)數(shù)L=10 000。經(jīng)過(guò)FIR濾波器后,因?yàn)镕IR濾波器的通帶截止頻率fc=1.2 MHz,所以只有50kHz正弦波信號(hào)輸出,而1.8MHz的正弦波信號(hào)被濾除,如圖2所示,輸出波形只有50kHz的正弦波信號(hào),所以該FIR濾波器設(shè)計(jì)正確。
圖2 濾波器輸入輸出波形對(duì)比
設(shè)計(jì)另一種情況,輸入信號(hào)是50kHz的正弦波信號(hào),疊加高斯白噪聲。因?yàn)楦咚拱自肼曉谡麄€(gè)頻譜范圍內(nèi)都存在,但通過(guò)FIR低通濾波器,可以濾除通帶內(nèi)的白噪聲。波形如圖3所示。
圖3 疊加噪聲的正弦波信號(hào)輸入輸出波形
在FPGA中,參數(shù)為定點(diǎn)數(shù),所以需要對(duì)濾波器參數(shù)h(n)和輸入數(shù)據(jù)進(jìn)行比特量化,該文設(shè)計(jì)量化為10bit。h(n)的10bit量化在IP核設(shè)置中實(shí)現(xiàn),輸入數(shù)據(jù)的比特量化在Matlab中編程實(shí)現(xiàn),形成txt文件,便于ModelSimSE軟件讀取輸入數(shù)據(jù)文件生成仿真測(cè)試結(jié)果[7-8]。
因?yàn)檩斎霐?shù)據(jù)有負(fù)數(shù),所以采用二進(jìn)制補(bǔ)碼形式表示。n=10,歸一化輸入數(shù)據(jù),最大值量化為2n-1-1=511。10bit量化結(jié)果如圖4所示。
圖4 源數(shù)據(jù)10 bit量化對(duì)比
如前所述,F(xiàn)IR低通濾波器通帶截止頻率為1.2MHz,采樣頻率Fs=10 MHz,采用窗函數(shù)法設(shè)計(jì),全并行模式。濾波器階數(shù)為37階,選擇漢明窗。在IP核設(shè)置界面中,F(xiàn)ilter Type欄選擇Low Pass,在Coefficients欄選擇37,在Window Type欄選擇Hamming,在Sample Rate欄輸入1.0E7,在Cutoff Freq.1欄輸入1.2E6,因?yàn)椴蓸宇l率10 MHz,該文設(shè)計(jì)FIR濾波器的全局時(shí)鐘clk為10 MHz,所以時(shí)鐘周期T=100 ns。生成的信道沖激響應(yīng)h(n)的時(shí)域浮點(diǎn)值和比特量化值如圖5所示[9-10]。在QuartusII生成的頂層文件如圖6所示。其中的ask_sink_error[1..0]設(shè)為00,表示輸入數(shù)據(jù)沒(méi)有錯(cuò)誤。
圖5 IP核參數(shù)設(shè)置界面
圖6 生成的FIR頂層模塊
FIR濾波器的性能測(cè)試采用文獻(xiàn)[6]介紹的文件讀寫方法,采用Matlab和ModelSimSE聯(lián)合仿真,便于處理大容量數(shù)據(jù)。FIR濾波器輸入、輸出及參數(shù)為有符號(hào)數(shù),輸出格式為二進(jìn)制補(bǔ)碼形式[11-12]。為直觀顯示FIR濾波器的濾波效果,在ModelSimSE中采用模擬輸入和輸出的方式。仿真輸入、輸出波形如圖7所示。
輸入數(shù)據(jù)是50kHz和1.8MHz兩個(gè)正弦波信號(hào)的疊加信號(hào),通過(guò)FIR低通濾波器,希望1.8MHz的信號(hào)被完全濾除,50kHz的正弦波信號(hào)完整地輸出,由圖7可知,50kHz的信號(hào)正確地輸出,設(shè)計(jì)的FIR濾波器正確。
同時(shí)對(duì)比圖2和圖7可知,采用Matlab設(shè)計(jì)的FIR濾波器和基于IP核設(shè)計(jì)的濾波器輸出的波形完全一致,也驗(yàn)證了FIR濾波器設(shè)計(jì)的正確性。
圖7 基于IP核FIR濾波器的仿真輸入輸出波形
介紹了Matlab中使用FDATOOL工具設(shè)計(jì)濾波器的方法,給出了時(shí)域卷積運(yùn)算的代碼實(shí)現(xiàn),同時(shí)介紹了沖激響應(yīng)和數(shù)據(jù)的比特量化方法,并給出了Matlab中FIR濾波器的濾波波形圖。本文完整地介紹了基于Altera公司FIRIP核的使用方法,并給出了完整地仿真輸入、輸出波形圖,設(shè)計(jì)的濾波器完全符合要求。采用該方法可以很好地設(shè)計(jì)和驗(yàn)證項(xiàng)目要求的FIR濾波器。
[1] 劉東華.Altera系列FPGA芯片IP核詳解[M].北京:電子工業(yè)出版社,2014:187-193.
[2]Siruiks.無(wú)線通信的Matlab和FPGA實(shí)現(xiàn)[M].北京:人民郵電出版社,2009.
[3] 范紅旗,翟慶林.銳截止中頻采樣濾波器的設(shè)計(jì)與實(shí)現(xiàn)[J].電路與系統(tǒng)學(xué)報(bào),2009,14(5):31-35.
[4] 曹振吉,何 敏.基于FPGA和Matlab的FIR數(shù)字濾波器[J].現(xiàn)代電子技術(shù),2015,38(1):98-102.
[5] 喻慶華,司錫才,馮 策,等.基于IP核的FIR濾波器在新型FPGA的實(shí)現(xiàn)[J].彈箭與制導(dǎo)學(xué)報(bào),2006,26(1):491-494.
[6] 郭 勇,陳艷玲.Viterbi-IP核糾錯(cuò)性能的驗(yàn)證[J].電訊技術(shù),2012,52(10):1 640-1 643.
[7] 陳 鏡,曹芳菊.基于IP核的濾波器復(fù)用模塊的設(shè)計(jì)與實(shí)現(xiàn)[J].無(wú)線電工程,2010,40(4):26-30.
[8] 喻慶華,馮 策.基于IP核的FIR濾波器在數(shù)字正交變換中的應(yīng)用[J].應(yīng)用科技,2006,33(6):51-55.
[9] 范紅旗,翟慶林,王 勝,等.基于IP核的銳截止中頻采樣濾波器優(yōu)化設(shè)計(jì)[J].電子測(cè)量與儀器學(xué)報(bào),2008,22(1):99-103.
[10] 許金生,周春雪.基于IPCore的FIR數(shù)字濾波器的FPGA實(shí)現(xiàn)[J].安徽工業(yè)大學(xué)學(xué)報(bào),2007,24(3):309-313.
[11] 郭 勇,楊 歡.RS(63,45)編譯碼器的設(shè)計(jì)與FPGA實(shí)現(xiàn)[J].無(wú)線電通信技術(shù),2011,37(2):54-58.
[12] 郭 勇,何 軍.STM32單片機(jī)多串口通信仿真測(cè)試技術(shù)研究[J].無(wú)線電工程,2015,45(8):6-10.
郭 勇 男,(1978—),碩士,高級(jí)工程師。主要研究方向:調(diào)制解調(diào)、信道糾錯(cuò)編解碼和無(wú)線通信中的信號(hào)處理等。
楊 歡 男,(1979—),碩士,高級(jí)工程師。主要研究方向:硬件電路設(shè)計(jì)和通信電路設(shè)計(jì)等。
Design and FPGA Implementation of FIR Filter Based on IP Core
GUO Yong,YANG Huan
(ResearchDepartmentofNorthInformationControlGroupCo.,Ltd.,NanjingJiangsu211153,China)
The paper introduces a method of how to design the parameter of the FIR filter and how to implement it in FPGA based on Altera’s IP Core.In order to achieve the capability of FIR filter demanded,the paper introduces a method of how to design the number of order ofh(n)andthetimevaluesofh(n)bothinMatlabandinIPCore,andimplementstheconvolutionoperationintimedomainbyprogramming.ThepaperalsointroducesthemethodandresultsofBitQuantificationofh(n)andinputdata.InordertovalidatethecorrectnessofFIRdesigned,thepapergivesthesimulatedinputwaveformandoutputwaveformfilteredbothinMatlabandinModelSim.ThesimulatedexperimentalresultindicatestheFIRfilterdesignedcanensuretheintegrityofsignalsinpassbandandthegoodfilteringeffectinstopband.Therefore,themethodintroducedhasthegoodapplicability.
FIR;IP Core;FPGA;time-domain convolution;waveform validation
10.3969/j.issn.1003-3106.2017.01.19
郭 勇,楊 歡.基于IP核FIR濾波器的設(shè)計(jì)與FPGA實(shí)現(xiàn)[J].無(wú)線電工程,2017,47(1):79-82.
2016-10-14
TN911.12
A
1003-3106(2017)01-0079-04