У меня есть сигнал с нежелательной колеблющейся несущей, показанной синей кривой. Я сделал фильтр нижних частот (баттерворт 5-го порядка) и применил его с функцией filtfilt
, а нижний отфильтрованный результат — красная кривая.
[b,a] = butter(5,.7);
y = filtfilt(b,a,y);
Красная кривая от значения x 500 до конца - это именно то, что я хотел, однако начальное колебание все еще там. Похоже, что функция фильтра пытается сопоставить начальное/конечное значение входа и выхода фильтра, поэтому колебание сохраняется. Есть ли способ не соответствовать начальному значению, чтобы я мог получить плавный вывод без каких-либо колебаний?
Обновление: я думаю, что мой вопрос не был ясен. Я хочу что-то вроде черной кривой (рисунок от руки): полностью удалить колебание и НЕ соответствовать начальному значению. Как я могу это сделать?
y
, чтобы мы могли попробовать разные подходы? - person bla   schedule 31.12.2012