Интегрированный фильтр с подвижным окном matlab - PullRequest
0 голосов
/ 06 декабря 2011

Мне нужно применить фильтр интеграции движущихся окон к сигналу в 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 ]

1 голос
/ 06 декабря 2011

Я не уверен, что упомянутый вами код действительно выполняет фильтр интеграции движущихся окон, но что он делает:

  • определяет импульсную характеристику

тогда:

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
1 голос
/ 06 декабря 2011

Вы пробовали это? Это просто фильтр скользящих средних - не очень хорошо сделано. Он просто создает прямоугольное окно (semiwidth = 15), так что каждое значение нового сигнала является средним значением 31 соседа исходного значения (самого исходного значения, 15 справа и 15 слева). Свертка делает среднее, следующая строка исправляет «задержку». Последняя строка - просто нормализация, она не имеет ничего общего с самим фильтром усреднения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...