采用FPGA实现四阶IIR数字滤波电路设计
扫描二维码
随时随地手机看文章
采用FPGA实现四阶IIR数字滤波器,通过两个二阶节级联构成数字椭圆低通滤波器。通带内波纹小于0.1dB,阻带衰减大于32dB。常用的数字滤波器有FIR数字滤波器和IIR数字滤波器。FIR数字滤波器具有精确的线性相位特性, 在信号处理方面应用极为广泛,而且可以采用事先设计调试好的FIR数字滤波器IP Core来完成设计。另外,对于相同的设计指标,FIR滤波器所要求的阶数比IIR滤波器高5~10倍,成本较高,而且信号的延迟也较大。IIR滤波器所要求的阶数不仅比FIR滤波器低,而且可以利用模拟滤波器的设计成果,设计工作量相对较小,采用FPGA实现的IIR滤波器同样具有多种优越性。
数字滤波器实际上是一个采用有限精度算法实现的线性非时变离散系统,它的设计步骤为:首先根据实际需要确定其性能指标,再求得系统函数,最后采用有限精度算法实现。根据需要,本系统的设计指标为:模拟信号采样频率为2MHz,每周期最少采样20点,即模拟信号的通带边缘频率为fp=100kHz,阻带边缘频率 =1MHz,通带波动 不大于0.1dB (通带误差不大于5%),阻带衰减A s不小于32dB。系统函数的计算采用Matlab软件比较方便。
本文采用一个折中的方法实现,即乘加单元(MAC)的乘法器采用阵列乘法器,而不使用串行乘法器,以提高运算速度。需要注意的是,MAX+plus II的LPM库中乘法运算为无符号数的阵列乘法,所以使用时需要先将两个补码乘数转换为无符号数相乘后,再将乘积转换为补码乘积输出。每个二阶节完成一次运算共需要6个时钟周期, 而且需采用各自独立的MAC实现两级流水线结构,即每个数据经过两个二阶节输出只需要6个时钟周期。