num = zeros(1,freq);
den = zeros(1,freq);
for R = 1:freq
[num(R), den(R)]=butter(4, [0.1 0.9]);
end
我认为这是微不足道的,但是一旦我运行它,我得到:
在作业A(I)= B中,B和I中的元素数必须相同。
我做错了什么?
答案 0 :(得分:3)
你做错了是num
和den
都包含多个系数:
复制
[b,a] = butter(n,Wn)
返回具有归一化截止频率Wn
的n阶低通数字巴特沃斯滤波器的传递函数系数。
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
可能矩阵更适合您的目的。