m基于FPGA的多级抽取滤波器组verilog设计,包括CIC滤波,HB半带滤波以及DA分布式FIR滤波

简介: m基于FPGA的多级抽取滤波器组verilog设计,包括CIC滤波,HB半带滤波以及DA分布式FIR滤波

1.算法描述

    数字下变频中的低通滤波器是由多级抽取滤波器组实现的。信号的同相分量和正交分量再分别经由积分梳状滤波器(CIC)、半带滤波器(HB)和有限长单位脉冲响应(FIR)滤波器构成的多级抽取滤波器组进行滤波和降采样处理,再将产生的正交基带信号I (n)、Q (n)送到通用DSP处理器,进行信号识别、解调等基带信号处理。这三个滤波器在结构上组成如下的基本结构:

image.png

   下面分别对滤波器的三组不同的滤波器进行设计与分析,并得出其优化结果。

2.1CIC抽取滤波器结构图

image.png

图CIC梳状滤波器的结构一

image.png

图CIC梳状滤波器的结构二

2.2HBF模块由半带滤波器

   HBF模块由半带滤波器(HBF)和抽取模块组成。该模块的任务是实现2倍抽取进一步降低信号采样速率。由于HBF的冲激响应h(k)除零点外其余偶数点均为零,所以用HBF实现2倍抽取可以节省一半的运算量,对增强软件无线电的实时性非常重要,HBF还具有参数约束少,设计容易、方便的特点。半带滤波器的主要作用是滤除信号高频部分,防止抽取过程后信号发生频谱混叠。

   在实际中,需要将输入信号进行多次滤波和抽取,并逐次降低采样率,同时也降低对每一级抗混叠滤波器的要求,所以需要使用半带滤波器进行设计与实现。

阻带衰减: ≥50dB

通带不平坦度:≤2dB

    通常情况下,半带滤波器的有三种基本的结构,一般结构,转置结构以及复用结构,下面我们将针对这三种结构的滤波效果以及硬件占用情况进行分析,从而选用最佳的设计方案。

image.png

2.3 DA分布式FIR

image.png

2.仿真效果预览
版本vivado2019.2

image.png

3.verilog核心程序

    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_115m
相关文章
|
1月前
|
机器学习/深度学习 算法 数据安全/隐私保护
基于FPGA的SNN脉冲神经网络之LIF神经元verilog实现,包含testbench
本项目展示了 LIF(Leaky Integrate-and-Fire)神经元算法的实现与应用,含无水印运行效果预览。基于 Vivado2019.2 开发,完整代码配有中文注释及操作视频。LIF 模型模拟生物神经元特性,通过积分输入信号并判断膜电位是否达阈值产生脉冲,相较于 Hodgkin-Huxley 模型更简化,适合大规模神经网络模拟。核心程序片段示例,助您快速上手。
|
3月前
|
算法 数据安全/隐私保护 计算机视觉
基于FPGA的图像双线性插值算法verilog实现,包括tb测试文件和MATLAB辅助验证
本项目展示了256×256图像通过双线性插值放大至512×512的效果,无水印展示。使用Matlab 2022a和Vivado 2019.2开发,提供完整代码及详细中文注释、操作视频。核心程序实现图像缩放,并在Matlab中验证效果。双线性插值算法通过FPGA高效实现图像缩放,确保质量。
|
4月前
|
算法 数据安全/隐私保护 异构计算
基于FPGA的变步长LMS自适应滤波器verilog实现,包括testbench
### 自适应滤波器仿真与实现简介 本项目基于Vivado2022a实现了变步长LMS自适应滤波器的FPGA设计。通过动态调整步长因子,该滤波器在收敛速度和稳态误差之间取得良好平衡,适用于信道均衡、噪声消除等信号处理应用。Verilog代码展示了关键模块如延迟单元和LMS更新逻辑。仿真结果验证了算法的有效性,具体操作可参考配套视频。
183 74
|
2月前
|
算法 数据安全/隐私保护 异构计算
基于FPGA的2ASK+帧同步系统verilog开发,包含testbench,高斯信道,误码统计,可设置SNR
本内容展示了基于Vivado2019.2的算法仿真效果,包括设置不同信噪比(SNR=8db和20db)下的结果及整体波形。同时,详细介绍了2ASK调制解调技术的原理与实现,即通过改变载波振幅传输二进制信号,并提供数学公式支持。此外,还涉及帧同步理论,用于确定数据帧起始位置。最后,给出了Verilog核心程序代码,实现了2ASK解调与帧同步功能,结合DDS模块生成载波信号,完成信号处理流程。
36 0
|
5月前
|
算法 数据安全/隐私保护 异构计算
基于FPGA的信号发生器verilog实现,可以输出方波,脉冲波,m序列以及正弦波,可调整输出信号频率
本项目基于Vivado2019.2实现信号发生器,可输出方波、脉冲波、m随机序列和正弦波。完整程序无水印,含详细中文注释与操作视频。FPGA技术使信号发生器精度高、稳定性强、功能多样,适用于电子工程、通信等领域。方波、脉冲波、m序列及正弦波的生成原理分别介绍,代码核心部分展示。
|
4月前
|
存储 编解码 算法
基于FPGA的直接数字频率合成器verilog实现,包含testbench
本项目基于Vivado 2019.2实现DDS算法,提供完整无水印运行效果预览。DDS(直接数字频率合成器)通过数字信号处理技术生成特定频率和相位的正弦波,核心组件包括相位累加器、正弦查找表和DAC。相位累加器在每个时钟周期累加频率控制字,正弦查找表根据相位值输出幅度,DAC将数字信号转换为模拟电压。项目代码包含详细中文注释及操作视频。
|
10月前
|
算法 数据安全/隐私保护 异构计算
基于FPGA的MSK调制解调系统verilog开发,包含testbench,同步模块,高斯信道模拟模块,误码率统计模块
升级版FPGA MSK调制解调系统集成AWGN信道模型,支持在Vivado 2019.2中设置不同SNR仿真误码率。示例SNR值从0到15,结果展示解调质量随SNR提升。MATLAB仿真验证了MSK性能,图片显示了仿真结果。 ### 理论概要 研究聚焦于软件无线电中的MSK调制解调,利用Verilog实现。MSK是一种相位连续、恒包络的二进制调制技术,优点包括频谱效率高。系统采用无核设计,关键模块包括调制器、解调器和误码检测。复位、输入数据、中频信号等关键信号通过Verilog描述,并通过Chipscope在线观察。
196 6
基于FPGA的MSK调制解调系统verilog开发,包含testbench,同步模块,高斯信道模拟模块,误码率统计模块
|
2月前
|
算法 数据安全/隐私保护 异构计算
基于LSB最低有效位的音频水印嵌入提取算法FPGA实现,包含testbench和MATLAB对比
本项目展示了一种基于FPGA的音频水印算法,采用LSB(最低有效位)技术实现版权保护与数据追踪功能。使用Vivado2019.2和Matlab2022a开发,完整代码含中文注释及操作视频。算法通过修改音频采样点的最低有效位嵌入水印,人耳难以察觉变化。然而,面对滤波或压缩等攻击时,水印提取可能受影响。该项目运行效果无水印干扰,适合实时应用场景,核心逻辑简单高效,时间复杂度低。
|
2月前
|
编解码 算法 数据安全/隐私保护
基于FPGA的信号DM编解码实现,包含testbench和matlab对比仿真
本项目展示了DM编解码算法的实现与测试结果。FPGA测试结果显示为T1,Matlab仿真结果为T2。使用软件版本为Matlab 2022a和Vivado 2019.2。核心程序包含详细中文注释和操作视频。DM编解码通过比较信号样本差值进行编码,适用于音频等低频信号处理。硬件结构包括编码器(采样器、减法器、比较器)和解码器(解码器、积分器)。
|
5月前
|
算法 数据安全/隐私保护 异构计算
基于FPGA的16QAM调制+软解调系统,包含testbench,高斯信道模块,误码率统计模块,可以设置不同SNR
本项目基于FPGA实现了16QAM基带通信系统,包括调制、信道仿真、解调及误码率统计模块。通过Vivado2019.2仿真,设置不同SNR(如8dB、12dB),验证了软解调相较于传统16QAM系统的优越性,误码率显著降低。系统采用Verilog语言编写,详细介绍了16QAM软解调的原理及实现步骤,适用于高性能数据传输场景。
273 69

热门文章

最新文章