Matlab - применить фильтр низких частот к вектору? - PullRequest
4 голосов
/ 05 мая 2010

Если у меня есть простой фильтр нижних частот, например,

filt = fir1(20, 0.2);

и матрица со списком чисел (сигнал), например, [0.1, -0.2, 0.3, -0.4] и т. Д., Как на самом деле применить фильтр, который я создал, к этому сигналу?

Похоже на простой вопрос, но я застрял в течение нескольких часов. Нужно ли вручную рассчитывать его по коэффициентам фильтра?

Ответы [ 3 ]

5 голосов
/ 05 мая 2010

Вот, пожалуйста:

filter(filt, 1, mysignal);

сделает свое дело. Поскольку это FIR-фильтр, для параметра A (второго параметра) установлено значение 1.

1 голос
/ 05 мая 2010

Функция filter - это то, что вам нужно.

Я верю, что help filter или doc filter помогут вам.

0 голосов
/ 07 марта 2017

Здесь вы не можете указать значение, которое больше 1 для первого аргумента функции fir1 . Оно должно быть между 0 и 1. Скажем, частота среза равна Fc, а частота сэмплирования равна Fs, тогда, если мы возьмем Wn в качестве первого аргумента, который является частотой среза в качестве нормализованного значения. Вот как Wn должен быть рассчитан.

     Wn = (2/Fs)*Fc

Затем вы можете применить функцию фильтра, как показано ниже:

      filt = fir1(Wn , 0.2);
      filter(filt, 1, mysignal);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...