2016-01-21 2 views
0

Я хочу создать фильтр с полосой пропускания на частоте 6,7 Гц (от 6,2 до 7 Гц). Я использую функцию designfilt, но фильтр является полосой пропускания.Фильтр полоскового фильтра с Matlab

bsFilt = designfilt('bandstopfir','FilterOrder',3, ... 
     'CutoffFrequency1',6.2,'CutoffFrequency2',7, ... 
     'SampleRate',256); 
fvtool(bsFilt) 

bandstop filter 6.2 to 7Hz, order 3

Если я увеличить заказ до 120 я получаю режекторный фильтр. Однако каков эффект увеличения порядка?

bsFilt = designfilt('bandstopfir','FilterOrder',120, ... 
      'CutoffFrequency1',6.2,'CutoffFrequency2',7, ... 
      'SampleRate',256); 
    fvtool(bsFilt) 

bandstop filter 6.2 to 7Hz

Есть ли лучший способ создать фильтр или фильтр моего сигнала от 6,2 до 7 Гц? Частота дискретизации составляет 256 Гц.

ответ

1

Чем выше порядок фильтрации, тем больше алгоритм коэффициентов должен соответствовать фильтру для вашего запроса. Даунсайд - это то, что фильтр высокого порядка сложнее реализовать как в оборудовании (где вам понадобится больше элементов, и он будет более подозрительным для шума), так и в программном обеспечении (где вам понадобятся больше точек данных, и это будет более подозрительно для ошибки вычисления). Я думаю, что могут быть другие недостатки, я не эксперт в этой области. Так что с фильтром третьего уровня просто невозможно создать фильтр с полосой пропускания. Используйте любой заказ, который дает достаточно хорошие результаты.

+0

120 дает хорошее затухание в полосе частот, если я уменьшаю порядок, который он ослабляет от 1 Гц до 10 Гц, а затем я удаляю много информации в сигнале. Однако приемлемо ли 120 Гц? Я не пытаюсь реализовать его на аппаратных средствах, я хочу только фильтровать свой сигнал в Matlab. – nabrugir

+0

120 Это не 120 Гц. Это означает, что фильтр представляет собой уравнение с 120 корнями. Поэтому, если это сработает для вас, вы можете использовать его. – kipar

Смежные вопросы