0
我刚刚在MATLAB中用fdatool设计了一个IIR滤波器,并将这些系数导出到一个头文件中。我将数组复制到MATLAB,现在我试图绘制频率响应。然而,由于某些原因,数组是多维的,我不知道如何让MATLAB处理它。MATLAB多维滤波器阵列
这是我的滤波器系数的样子:
num = [
[0.7167852126947,0,0],
[1,-1.919646855375,1],
[0.4393545211166,0,0],
[1,-1.603319802493,1],
[0.03175470360035,0,0],
[1,-1.942960840584,1],
[1,0,0]
];
den = [
[1,0,0],
[1,-1.904445073337,0.9382561062801],
[1,0,0],
[1,-1.837789625289,0.8507293334097],
[1,0,0],
[1,-1.942552416592,0.9865719866549],
[1,0,0]
];
如果他们是一维的我可以将它们传递到freqz功能的MATLAB像这样:
freqz(num,den);
但这给我一个上述数组的错误。
绘制滤波器频率响应的最佳方法是什么?
这样摆脱了错误,但它仍然看上去一点也不像在的FDATool过滤器预览。我使用了以下代码: freqz(num,den,1:1:10000,48000) 这就是它的样子:http://i.imgur.com/CZwBaOh.png – codedude 2015-04-04 15:25:25
只需使用'num'和你在你的问题和我发布的代码中有没有其他的变化。那么你将得到相同的预览在'fdatool' – hbaderts 2015-04-04 15:47:07
这产生这个:http://i.imgur.com/0Eaimb2.png – codedude 2015-04-04 15:49:53