IIR数字滤波器的Matlab和FPGA实现
这是一个四阶IIR系统,通过Matlab计算出该系统的频率响应如图1所示,可见能满足设计要求。本文引用地址:https://www.eepw.com.cn/article/187441.htm
(3)确定滤波器网络结构
本设计如果采用直接型结构实现,则需用的乘法器和延迟单元相对较多,而且分子和分母的系数相差较大,需要较多的二进制位数才能实现相应的精度要求。
为了克服上述缺点,采用二阶级联实现。IIR滤波器采用级联型的网络结构既可以对各基本节的零点、极点方便地单独进行调整,又可以降低对二进制数位数的要求。
这里采用Matlab中的“二阶部分传递函数”tf2sos()完成IIR滤波器直接型网络结构到级联型网络结构的转换。
将IIR滤波器由直接型变为级联型的Matlab语言源程序如下:
可以看出,每个二阶节的分子、分母系数差异减少了。值得注意的是,在分配二阶节的增益时,要保证每个节不会发生运算溢出,可以先用Matlab软件分析计算来合理安排各节的增益。经过计算,本文采用第一级分配0.162 6,第二级分配0.065 8,可以保证在要求的输入范围,没有数据溢出发生。
(4)滤波器参数量化
差分方程的量化后各系数如表1所示,这里采用10位定点纯小数补码表示。
电源滤波器相关文章:电源滤波器原理
数字滤波器相关文章:数字滤波器原理
评论