一、功能描述 FIR濾波器,即有限脈沖響應(yīng)濾波器,顧名思義,是指單位脈沖響應(yīng)的長度是有限的濾波器。而根據(jù)FIR濾波器的結(jié)構(gòu)形式,分為直接型、級聯(lián)型、頻率取樣型和快速卷積型。其中直接型又可以采用串行結(jié)構(gòu)、并行結(jié)構(gòu)、分布式結(jié)構(gòu)。本案例實(shí)現(xiàn)了具有線性相位的半串行結(jié)構(gòu)的FIR濾波器。 所謂串行結(jié)構(gòu),即串行實(shí)現(xiàn)濾波器的累加運(yùn)算,將每級延時(shí)單元與相應(yīng)系數(shù)的乘積結(jié)果進(jìn)行累加后輸出,因此整個(gè)濾波器實(shí)際上只需要一個(gè)乘法器運(yùn)算單元。串行結(jié)構(gòu)還可以分為全串行和半串行結(jié)構(gòu),全串行結(jié)構(gòu)是指進(jìn)行對稱系數(shù)的加法運(yùn)算也由一個(gè)加法器串行實(shí)現(xiàn),半串行結(jié)構(gòu)則指用多個(gè)加法器同時(shí)實(shí)現(xiàn)對稱系數(shù)的加法運(yùn)算。 本案例設(shè)計(jì)了一個(gè)15階的低通線性相位FIR濾波器,采用布萊克曼窗函數(shù)設(shè)計(jì),截止頻率為500HZ,采樣頻率為2000HZ;實(shí)現(xiàn)全串行結(jié)構(gòu)的濾波器,系數(shù)的量化位數(shù)為12比特,輸入數(shù)據(jù)位寬為12比特,輸出數(shù)據(jù)位寬為29比特,系統(tǒng)時(shí)鐘為16kHZ。采用具有白噪聲特性的輸入信號,以及由200HZ及800HZ單點(diǎn)頻信號疊加的輸入信號。 濾波器系數(shù):12'd0,-12'd3,12'd15,12'd46,-12'd117,-12'd263,12'd590,12'd2047 二、平臺效果圖 1.modelsim仿真效果圖 2.MATLAB效果圖 三、實(shí)現(xiàn)過程 首先根據(jù)所需要的功能,列出工程頂層的輸入輸出信號列表。
我們可以把工程劃分成三個(gè)模塊,分別是FIR濾波器模塊和加法器模塊和乘法器模塊。 1.FIR濾波器模塊 具有線性相位的半串行FIR濾波器結(jié)構(gòu)圖: 在時(shí)鐘允許信號的控制下,將數(shù)據(jù)以1/8系統(tǒng)時(shí)鐘頻率存入16個(gè)移位寄存器中,然后將對稱系數(shù)的輸入數(shù)據(jù)相加,比如X(0)*X(N),X(1)*X(N-1),X(2)*X(N-2),同時(shí)將對應(yīng)的濾波器系數(shù)送入乘法器中得到結(jié)果mult_s,再對此乘法結(jié)果進(jìn)行累加sum <= sum + mult_s,并輸出濾波后的數(shù)據(jù)。
以此本模塊實(shí)現(xiàn)了具有線性相位的半串行FIR濾波器功能。 本模塊信號列表如下:
2.加法器模塊 調(diào)用了Quartus II 里的加法器IP核,以實(shí)現(xiàn)FIR濾波器中的加法器模塊。 信號列表如下:
3.乘法器模塊 調(diào)用了Quartus II 里的乘法器IP核,以實(shí)現(xiàn)FIR濾波器中的乘法器模塊。 信號列表如下:
四、MATLAB部分說明 使用MATLAB設(shè)計(jì)出濾波器系數(shù),仿真出濾波器測試數(shù)據(jù)、測試數(shù)據(jù)經(jīng)濾波器濾波后的輸出數(shù)據(jù)并轉(zhuǎn)換成二進(jìn)制數(shù)據(jù)寫入文本文件中供Modelsim進(jìn)行仿真。 編寫MATLAB程序,從Modelsim仿真后生成的文本文件中讀取濾波器輸出數(shù)據(jù),對數(shù)據(jù)進(jìn)行時(shí)域及頻域分析,程序運(yùn)行結(jié)果見平臺效果圖。 |