Узкополосная фильтрация минимизирует артефакты в сигнале - PullRequest
0 голосов
/ 04 июля 2019

Я должен срезать фильтр следующим сигналом. enter image description here

Как вы можете видеть, это сигнал с очень высокой амплитудой. И это вызывает у меня много проблем.Я разработал полосовой фильтр (46-55 Гц). Код MATLAB равен

Fs=5000; sampling frequency

Wp_NOTCH = [36/(Fs/2) 71/(Fs/2)];
Ws_NOTCH= [46/(Fs/2) 55/(Fs/2)];
Rp_db=-20*log10(.95);
Rs_db=-20*log10(.05);
[order_NOTCH,wn_NOTCH] = buttord(Wp_NOTCH,Ws_NOTCH,Rp_db,Rs_db);
[B_NOTCH,A_NOTCH]=butter(order_NOTCH,wn_NOTCH,'stop');

И фильтр равен enter image description here Когда я фильтрую сигнал (используя фильтрфильтр), яВот следующий сигнал enter image description here Как видите, в нем много артефактов и «волн».Есть ли способ минимизировать эти артефакты? Как я могу удалить компонент 50 Гц, минимизируя эти артефакты? Любое предложение?Заранее спасибо

1 Ответ

0 голосов
/ 04 июля 2019

Режекторные фильтры предназначены для удаления синусоид с заданной частотой, они не могут работать для резкого изменения данных. Приведенный вами пример не похож на артефакт 50 Гц, поэтому узкополосные фильтры здесь не помогут. Вы можете найти информацию о том, как бороться с несоответствиями данных, скачками или пошаговыми артефактами или переходными реакциями. Здесь - это некоторое объяснение в среде Matlab

...