m基于FPGA的多级抽取滤波器组verilog设计,包括CIC滤波,HB半带滤波以及DA分布式FIR滤波
目錄
1.算法描述
2.仿真效果預(yù)覽
3.verilog核心程序
4.完整FPGA
1.算法描述
? ? ? ? 數(shù)字下變頻中的低通濾波器是由多級抽取濾波器組實現(xiàn)的。信號的同相分量和正交分量再分別經(jīng)由積分梳狀濾波器(CIC)、半帶濾波器(HB)和有限長單位脈沖響應(yīng)(FIR)濾波器構(gòu)成的多級抽取濾波器組進(jìn)行濾波和降采樣處理,再將產(chǎn)生的正交基帶信號I (n)、Q (n)送到通用DSP處理器,進(jìn)行信號識別、解調(diào)等基帶信號處理。這三個濾波器在結(jié)構(gòu)上組成如下的基本結(jié)構(gòu):
? ? ? ?下面分別對濾波器的三組不同的濾波器進(jìn)行設(shè)計與分析,并得出其優(yōu)化結(jié)果。
2.1CIC抽取濾波器結(jié)構(gòu)圖
圖CIC梳狀濾波器的結(jié)構(gòu)一
圖CIC梳狀濾波器的結(jié)構(gòu)二
2.2HBF模塊由半帶濾波器
? ? ? ?HBF模塊由半帶濾波器(HBF)和抽取模塊組成。該模塊的任務(wù)是實現(xiàn)2倍抽取進(jìn)一步降低信號采樣速率。由于HBF的沖激響應(yīng)h(k)除零點外其余偶數(shù)點均為零,所以用HBF實現(xiàn)2倍抽取可以節(jié)省一半的運(yùn)算量,對增強(qiáng)軟件無線電的實時性非常重要,HBF還具有參數(shù)約束少,設(shè)計容易、方便的特點。半帶濾波器的主要作用是濾除信號高頻部分,防止抽取過程后信號發(fā)生頻譜混疊。
? ? ? ?在實際中,需要將輸入信號進(jìn)行多次濾波和抽取,并逐次降低采樣率,同時也降低對每一級抗混疊濾波器的要求,所以需要使用半帶濾波器進(jìn)行設(shè)計與實現(xiàn)。
阻帶衰減: ? ?≥50dB
通帶不平坦度:≤2dB
? ? ? ? 通常情況下,半帶濾波器的有三種基本的結(jié)構(gòu),一般結(jié)構(gòu),轉(zhuǎn)置結(jié)構(gòu)以及復(fù)用結(jié)構(gòu),下面我們將針對這三種結(jié)構(gòu)的濾波效果以及硬件占用情況進(jìn)行分析,從而選用最佳的設(shè)計方案。
2.3 DA分布式FIR ??
2.仿真效果預(yù)覽
版本vivado2019.2
3.verilog核心程序
module tops2(clk_20M,reset,I_d,Q_d,I_cic,I_hb,I_out,Q_out );input wire clk_20M; input wire reset; input wire [13:0] I_d; input wire [13:0] Q_d; output wire [47:0] I_cic; output wire [31:0] I_hb; output wire [15:0] I_out; output wire [15:0] Q_out;wire [47:0] I_cic_ALTERA_SYNTHESIZED; wire [31:0] I_hb_ALTERA_SYNTHESIZED; wire [47:0] Q_cic; wire [31:0] Q_hb; wire SYNTHESIZED_WIRE_0; wire SYNTHESIZED_WIRE_1; wire SYNTHESIZED_WIRE_2; wire SYNTHESIZED_WIRE_3;cic_top b2v_inst(.i_clk(clk_20M),.i_rst(reset),.i_din(I_d),.o_clk16(SYNTHESIZED_WIRE_0),.o_dout(I_cic_ALTERA_SYNTHESIZED));defparam b2v_inst.WIDTH = 48;cic_top b2v_inst1(.i_clk(clk_20M),.i_rst(reset),.i_din(Q_d),.o_clk16(SYNTHESIZED_WIRE_1),.o_dout(Q_cic));defparam b2v_inst1.WIDTH = 48;hb_filter_02 b2v_inst2(.i_clk(SYNTHESIZED_WIRE_0),.i_rst(reset),.i_din(I_cic_ALTERA_SYNTHESIZED[34:19]),.o_clk2(SYNTHESIZED_WIRE_2),.o_dout(I_hb_ALTERA_SYNTHESIZED));defparam b2v_inst2.h0 = 27316;defparam b2v_inst2.h1 = 20073;defparam b2v_inst2.h11 = 1238;defparam b2v_inst2.h13 = -1175;defparam b2v_inst2.h15 = -624;defparam b2v_inst2.h3 = -4745;defparam b2v_inst2.h5 = 965;defparam b2v_inst2.h7 = 667;defparam b2v_inst2.h9 = -1238;hb_filter_02 b2v_inst3(.i_clk(SYNTHESIZED_WIRE_1),.i_rst(reset),.i_din(Q_cic[34:19]),.o_clk2(SYNTHESIZED_WIRE_3),.o_dout(Q_hb));defparam b2v_inst3.h0 = 27316;defparam b2v_inst3.h1 = 20073;defparam b2v_inst3.h11 = 1238;defparam b2v_inst3.h13 = -1175;defparam b2v_inst3.h15 = -624;defparam b2v_inst3.h3 = -4745;defparam b2v_inst3.h5 = 965;defparam b2v_inst3.h7 = 667;defparam b2v_inst3.h9 = -1238;firfilter_da b2v_inst4(.CLK(SYNTHESIZED_WIRE_2),.Reset(reset),.DIN(I_hb_ALTERA_SYNTHESIZED[30:23]),.Dout(I_out));firfilter_da b2v_inst5(.CLK(SYNTHESIZED_WIRE_3),.Reset(reset),.DIN(Q_hb[30:23]),.Dout(Q_out));assign I_cic = I_cic_ALTERA_SYNTHESIZED; assign I_hb = I_hb_ALTERA_SYNTHESIZED;endmodule 01_115m4.完整FPGA
V
總結(jié)
以上是生活随笔為你收集整理的m基于FPGA的多级抽取滤波器组verilog设计,包括CIC滤波,HB半带滤波以及DA分布式FIR滤波的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 2022年湖南省房地产估价师(经营与管理
- 下一篇: 谱聚类算法原理及实现