FPGA(FIR)数字信号处理
(1)滤波器系数设计:
在MATLAB中输入fdatool即可打开滤波器设计工具,如图所示。里面可以设置滤波器的类型,采样频率,截止频率等。
实现FIR滤波器的过程其实就是实现卷积的过程:
x(n)是待滤波信号,h(n)是滤波器系数,卷积的过程就是一个乘、累加的过程。
(2)程序编写:
Verilog编写:
用FPGA实现FIR滤波器的主要分成三级流水线,第一级、将输入信号延时,这样才能将信号和滤波器系数相乘。第二级、将输入信号和系数相乘。第三级、将乘积进行累加得到结果。
Verilog在FPGA内部编写fir滤波器很大的一个缺点是只能实现阶数较少的滤波器,否则会造成资源占用过多。所以针对多阶数FIR滤波器采用IP核的方式来实现。
IP核方式实现FIR滤波器:
实际硬件电路测试:
Rtl视图:
通过AD将数字信号输出给FPGA,并将FPGA处理转换之后的数据通过DA模块输出,观察经过FIR滤波器之后的信号。
频率500KHz
频率600KHz
频率1MHz
