仍然使用FDATOOL设计滤波器,当前设计一个数字带通滤波器。至于用的是冲击响应不变法,还是其它的方法。暂时不考虑。FIR 需要的阶数太多,也不考虑。使用IIR滤波,线性相位就不要想了。可以选巴特沃兹(最大平整度),或切比雪夫(最大陡降特性。)发现在相同的性能下切比雪夫需要的阶数少。
生成的传递函数是按照多个二阶单元级联。系统提供 SOS(Second Order Section)也可以称为“救命”矩阵。其思路是将高阶传递函数分解为多个稳定的二阶函数级联,保持系统稳定。因为使用的是IIR (无限冲击响应)构成,注定其是非线性相位。会导致滤波后的信号波形畸变。导出滤波器参数文件.
每个SOS参数可以使用直接II型,实现如下:
编写一段代码测试一下。
待滤波信号的频谱特性
可以看到org 信号上有噪声,有直流偏置和低频交流干扰。经过带通滤波后,去除了直流,去除了噪声,基本还原原始信号signal。刚开始时并不稳定需要等一段时间才能达到稳定。
可见,此段代码可以将一个输入序列x 转换为一个输出序列 y,完成对x序列的滤波。
按照生成的结构图,编写m文件的解释:
每采集到一个数据时,以输入数据作为参数,调用BandPassFilter(),得到一个滤波输出。相当于实时处理。
经过滤波后的信号
经过滤波+陷波后的信号
复制代码,请点击阅读原文
作者:southcreek, 来源:面包板社区
链接:https://mbb.eet-china.com/blog/uid-me-408807.html
版权声明:本文为博主原创,未经本人允许,禁止转载!