没有内置功能的八度音程中的fir滤镜实现

时间:2018-02-11 07:21:29

标签: octave

我想制作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`

1 个答案:

答案 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