我在MATLAB中没有使用conv函数就制作了递归移动平均滤波器

时间:2014-05-26 00:27:20

标签: matlab recursion moving-average

由于某种原因,我不得不在Matlab中使用递归移动平均滤波器而不使用conv函数。你能给我一些建议来改进我的代码吗?我的顾问说这不是一个递归函数,我不能完全理解他的话。请帮帮我

function out  = mva(x,h);
    m=length(x); %Length of input signal
    n=length(h); %Length of window
    X=[x,zeros(1,n)]; %Make x and h same length vector X,H
    H=[h,zeros(1,m)]; 
    for i=1:n+m-1 %Create output vector
       if i == 1
         Y(1) = (X(1)*H(1))/n;
       elseif i <= n
         Y(i) = Y(i-1)+X(i)/n;
       else
          Y(i) = Y(i-1)+X(i)/n-X(i-n)/n; 
       end
 out = Y;
 end

0 个答案:

没有答案