求帮助,高手解决verilog设计数字滤波器时滤波器的系数是怎么得到的?
module fir8(out,in,clk,rst);
parameter size_in = 8;
parameter size_out = 2*size_in+1;
//这下面的滤波器系数是怎么得到的?有什么作用,设计高通,带通,带阻滤波器时,是要确定这儿的系数吗?
parameter h0 = 8'd7;
parameter h1 = 8'd17;
parameter h2 = 8'd32;
parameter h3 = 8'd46;
parameter h4 = 8'd52;
parameter h5 = 8'd46;
parameter h6 = 8'd32;
parameter h7 = 8'd17;
parameter h8 = 8'd7;
output [size_out-1:0] out;
input [size_in-1:0] in;
input clk,rst;
reg [size_in-1:0] samples1;
reg [size_in-1:0] samples2;
reg [size_in-1:0] samples3;
reg [size_in-1:0] samples4;
reg [size_in-1:0] samples5;
reg [size_in-1:0] samples6;
reg [size_in-1:0] samples7;
reg [size_in-1:0] samples8;
assign out = h0*in+h1*samples1+h2*samples2+h3*samples3+h4*samples4+h5*samples5+h6*samples6+h7*samples7+h8*samples8;
always@ (posedge clk or negedge rst)
if(rst==0)
beginsamples1<=0;
samples2<=0;
samples3<=0;
samples4<=0;
samples5<=0;
samples6<=0;
samples7<=0;
samples8<=0;
endelsebeginsamples1<=in;
samples2<=samples1;
samples3<=samples2;
samples4<=samples3;
samples5<=samples4;
samples6<=samples5;
samples7<=samples6;
samples8<=samples7 ;
endendmodule
parameter size_in = 8;
parameter size_out = 2*size_in+1;
//这下面的滤波器系数是怎么得到的?有什么作用,设计高通,带通,带阻滤波器时,是要确定这儿的系数吗?
parameter h0 = 8'd7;
parameter h1 = 8'd17;
parameter h2 = 8'd32;
parameter h3 = 8'd46;
parameter h4 = 8'd52;
parameter h5 = 8'd46;
parameter h6 = 8'd32;
parameter h7 = 8'd17;
parameter h8 = 8'd7;
output [size_out-1:0] out;
input [size_in-1:0] in;
input clk,rst;
reg [size_in-1:0] samples1;
reg [size_in-1:0] samples2;
reg [size_in-1:0] samples3;
reg [size_in-1:0] samples4;
reg [size_in-1:0] samples5;
reg [size_in-1:0] samples6;
reg [size_in-1:0] samples7;
reg [size_in-1:0] samples8;
assign out = h0*in+h1*samples1+h2*samples2+h3*samples3+h4*samples4+h5*samples5+h6*samples6+h7*samples7+h8*samples8;
always@ (posedge clk or negedge rst)
if(rst==0)
beginsamples1<=0;
samples2<=0;
samples3<=0;
samples4<=0;
samples5<=0;
samples6<=0;
samples7<=0;
samples8<=0;
endelsebeginsamples1<=in;
samples2<=samples1;
samples3<=samples2;
samples4<=samples3;
samples5<=samples4;
samples6<=samples5;
samples7<=samples6;
samples8<=samples7 ;
endendmodule
...全文
相关推荐
IIR数字滤波器的verilog实现
IIR数字滤波器的Verilog实现可以通过使用Verilog语言来描述滤波器的硬件结构和行为,从而实现高效的数字滤波器设计。
FIR滤波器设计(包括Verilog HDL设计以及MATLAB设计)
FIR滤波器设计 滤波器原理:滤波器就是对特定的频率或者特定频率以外的频率进行消除的电路,被广泛用于通信系统和信号处理系统中。从功能角度,数字滤波器对输入离散信号的数字代码进行运算处理,以达到滤除频带外信号的目的。 有限冲激响应(FIR)滤波器就是一种常用的数字滤波器,采用对已输入样值的加权和来形成它的输出。其系统函数为: 其中表示延时一个时钟周期,表示延时两个周期。 对于输入序列X[n]...
《数字滤波器的MATLAB与FPGA实现——AlteraVerilog版》
总的来说,《数字滤波器的MATLAB与FPGA实现——Altera Verilog版》是连接理论与实践的桥梁,它将帮助读者掌握数字滤波器设计的全过程,从理论建模到实际硬件实现。
基于Verilog语言的FIR数字滤波器设计
设计完成后,我们可以导出滤波器系数,并在MATLAB中生成待滤波的信号。接着,使用Verilog语言在Quartus开发环境中编写FIR滤波器的硬件描述代码。
数字滤波器的MATLAB与FPGA实现——AlteraVerilog版光盘代码
MATLAB源代码:这些可能是预定义的滤波器函数或自定义的滤波器设计脚本,用于生成滤波器系数。2. Verilog代码:这是MATLAB设计转换后的硬件描述语言代码,用于在FPGA上实现滤波器功能。


硬件设计
