0
num = zeros(1,freq);
den = zeros(1,freq);
for R = 1:freq
[num(R), den(R)]=butter(4, [0.1 0.9]);
end
我认为这是相当微不足道的,但一旦我运行它,我得到:Matlab的矢量返回到多个矢量
在一个分配A(I)= B,B中的元素的数量和我必须是一样的。
我在做什么错?
num = zeros(1,freq);
den = zeros(1,freq);
for R = 1:freq
[num(R), den(R)]=butter(4, [0.1 0.9]);
end
我认为这是相当微不足道的,但一旦我运行它,我得到:Matlab的矢量返回到多个矢量
在一个分配A(I)= B,B中的元素的数量和我必须是一样的。
我在做什么错?
你所做错的是,无论num
和den
将包含多个系数:
[b,a] = butter(n,Wn)
返回一个n阶低通数字巴特沃斯归一化截止频率Wn
滤波器的传递函数系数。
b
,a
- 传递函数系数 行向量
复制到让你的代码工作将是要么设置num
和den
到矩阵的方式,或以单元阵列:
num = zeros(freq,4);
den = zeros(freq,4);
for R = 1:freq
[num(R,:), den(R,:)]=butter(4, [A(R) B(R)]); % matrix
end
for R = 1:freq
[num{R}, den{R}]=butter(4, [A(R) B(R)]); % cell
end
可能矩阵被下注适合你的目的。
我知道这是一个愚蠢的错误,但30分钟后看起来无能为力,我需要别人帮助。谢谢你的时间! –
没问题,我很高兴能帮到 – Adriaan
@MiguelHorta当心''''''''''''''''''''输出形式的'黄油'。它可以很容易地给出大的数值误差。零极点形式避免了这一点。请参阅[这里](http://stackoverflow.com/a/23665440/2586922) –