FIR滤波器及verilog代码

本文详细解读了8阶有限冲激响应(FIR)滤波器的串行结构,包括移位寄存器和乘加器的使用,以及如何利用抽头系数对称性简化电路。同时介绍了并行滤波器的潜在优化,探讨了在实际应用中的数据处理速度和芯片设计考虑。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

滤波器:对特定的频率或者特定频率以外的频率进行消除电路。从功能的角度,数字滤波器对输入离散信号的数字代码进行运算处理,以达到滤除频带外信号的目的。

有限冲激响应(FIR)滤波器的系统函数:
H ( z ) = y ( z ) / x ( z ) = a + b / z 1 + c / z 2 H(z)=y(z)/x(z)=a+b/z^1 +c/z^2 H(z)=y(z)/x(z)=a+b/z1+c/z2
y(z)和x(z)分别表输入和输出信号;a,b,c表示抽头系数;z^1 和z^2 表示延迟,其中z^1 表示延迟一个时钟周期,z^2 表示延迟2个时钟周期。

1.串行滤波器

  • 对于输入序列X[n]的FIR滤波器,X[n]是输入数据流。各级的输入连接和输出连接被称为抽头,系数(b0,b1,…,bn)被称为抽头系数;
  • M阶滤波器将会有M+1个抽头;
  • 乘累加,即通过移位寄存器用每个时钟边沿处的数据流采样值乘以抽头系数,然后将它们累加形成输出Y[n];
  • 数据的输入速率 = 系统时钟频率/滤波器长度(M+1),例如8阶滤波器,系统时钟为24MHz,则数据的输入频率(采样速率)为3MHz;
  • 串行滤波器的数据处理速度较慢;
  • 注意在8阶滤波器中,抽头系数是具有对称性的,b0=b8,b1=b7,…b3=b5;所以在乘累加时,可以先将输入信号相加,再与抽头系数相乘,减少乘法器电路的数量和芯片面积。
    在这里插入图片描述
//位宽为4 bit的8阶滤波器
//组成:
//   * 移位寄存器模块 :用于存储串行进入滤波器的数据
//   * 乘加计算模块:用于进行滤波器FIR计算

//顶层模块
module FIR(data_out,data_in,clk,rst_n);
    input		[3:0]data_in;
    input 		clk,rst_n;
    output 		
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小小verifier

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值