我想制作FIR滤镜。我有一个系数数组n2和一个数据数组n1但没有使用八度音程中的内置函数(fir)。我不确定这里有什么问题。
运行此代码时出错。 错误:y(0):下标必须是整数1到(2 ^ 31)-1或逻辑 错误:来自 第1栏第10栏的fir1
`n1=input('enter length of random sequence');
n2=input('enter length of filter');
for i=1:n1
x(i)=input('elements of x')
end
for i=1:n2
y(i)=input('elements of y')
end
c=zeros(1,(n1+n2));
for i=1:(n1+n2)
for j=1:n2
c(i)=c(i)+x(j)*y(i-j+1);
end
end
c`
答案 0 :(得分:1)
非常感谢..我想通了.. 我尝试了以下代码来解决这个问题。
clear all;
%random input sequence of 1000
random_i = randn(1,1000);
%filter coefficients of order 5
h =[1 0.5 0.25 0.125 0.0625] ;
l1=length(random_i);
l2=length(h);
length=l1+l2-1;
output_f=zeros(1,length);
%convolution
for i=1:length
for j=1:length
if ((i-j+1)<=l2 && j<=l1 && j<=i)
output_f(i)=output_f(i)+random_i(j)*h(i-j+1);
endif
end
end