移动窗口集成过滤器matlab

时间:2011-12-06 17:35:38

标签: matlab filter signal-processing

我需要在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 ));

2 个答案:

答案 0 :(得分:1)

你尝试过吗?它只是一个移动平均滤波器 - 做得不好。它只创建一个矩形窗口(semiwidth = 15),以便新信号的每个值是原始值的31个邻居的平均值(原始值本身,15到右边,15到左边)。卷积做平均值,下一行纠正“延迟”。最后一行只是一个归一化,它与平均滤波器本身无关。

答案 1 :(得分: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