FIR滤波器设计
滤波器原理:滤波器就是对特定的频率或者特定频率以外的频率进行消除的电路,被广泛用于通信系统和信号处理系统中。从功能角度,数字滤波器对输入离散信号的数字代码进行运算处理,以达到滤除频带外信号的目的。
有限冲激响应(FIR)滤波器就是一种常用的数字滤波器,采用对已输入样值的加权和来形成它的输出。其系统函数为:
其中表示延时一个时钟周期,
表示延时两个周期。
对于输入序列X[n]的FIR滤波器可用下图所示结构示意图来表示,其中X[n]是输入数据流。各级的输入连接和输出连接称为抽头,系数被称为抽头系数。一个M阶的FIR滤波器将会有M+1个抽头。通过移位寄存器用每个时钟边沿n(时见下标)处的数据流采样值乘以抽头系数,并将它们加起来形成输出。
其verilog HDL设计代码为:
//FIR滤波器设计的verilog HDL程序
module FIR(Data_out, Data_in, clock, reset);
output[9:0] Data_out;
input[3:0] Data_in;
input clock, reset;
wire[9:0] Data_out;
wire[3:0] samples_0,samples_1,samples_2,samples_3,
samples_4,samples_5,samples_6,samples_7,samples_8;
//例化模块
shift_register U1(.Data_in(Data_in), .clock(clock), .reset(reset),
.samples_0(samples_0),.samples_1(samples_1),
.samples_2(samples_2),.samples_3(samples_3),
.samples_4(samples_4),.samples_5(samples_5),
.samples_6(samples_6),.samples_7(samples_7),
.samples_8(samples_8));
caculator U2(.samples_0(samples_0),.samples_1(samples_1),
.samples_2(samples_2),.samples_3(samples_3),
.samples_4(samples_4),.samples_5(samples_5),