我使用fdatool设计了一个IIR过滤器,在设计之后我导出了合作伙伴SOS
和G
然后我使用Output1=filtfilt(SOS,G,wave);
,这是正确的,因为当它运行时需要很长时间,当我绘制频率和时间响应时,没有值出现?
答案 0 :(得分:2)
filtfilt
函数期望传递函数的分子和分母系数向量(分别为B和A)作为前两个参数。您可以使用SOS2TF函数将二阶部分转换为这些系数向量:
[B,A] = sos2tf(SOS,G);
然后你可以使用filtfilt函数:
Output = filtfilt(B,A,wave);
虽然这可行,但我会在使用高阶系统时注意;将高阶滤波器分解为许多级联低阶滤波器是避免系数误差的好方法。