2011-12-06 107 views
-1

我需要应用一个移动窗口积分滤波器在Matlab中的信号,我发现下面的代码显然这样做,但我不明白它是如何工作的,有人可以解释吗?移动窗口积分滤波器matlab

% Make impulse response 
h = ones (1 ,31)/31; 
Delay = 15; % Delay in samples 

% Apply filter 
x6 = conv (x5 ,h); 
x6 = x6 (15+[1: N]); 
x6 = x6/ max(abs(x6)); 

回答

1

你试过了吗?这只是一个移动平均过滤器 - 没有做得很好。它只是创建一个矩形窗口(semiwidth = 15),这样新信号的每个值就是原始值的31个邻居的平均值(原始值本身,右边15,左边15)。卷积取平均值,下一行校正“延迟”。最后一行只是标准化,与平均过滤器本身无关。

1

我不确定如果你真的提到的代码做一个移动窗口整合过滤器,但它做什么:

  • 定义的脉冲响应

则:

x6 = conv (x5 ,h);  //this applies the filter 
x6 = x6 (15+[1: N]);  //this applies the delay, it should be x6 (Delay+[1:length(x5)]) 
x6 = x6/ max(abs(x6)); // this normalizes the response