[an error occurred while processing this directive]
|
Решил помочь товарищу в разработке ЕКГ монитора.
http://www.analog.com/library/analogDialogue/archives/37-11/ecg.pdf
По скольку цифровой фильтрацией пока не занимался,
то решил в начале повторить чужое :-) и спросить у знающих.
И так исходная задача цифровой фильтрации.
На вход АЦП поступает сигнал ограниченый аналоговым фильтром
с полосой 0..250 герц.
АЦП захватывает сигнал с частотой 500 герц.
Затем в пропускается через два фильтра.
Пятизвенный фильтр состоящий из звеньев второго порядка (0,05..100)
и двухзвенный фильтр пробку тоже из звеньев второго порядка на 50Герц
c шириной задержания 10.
Нужно проверить/рассчитать коэффициенты фильтра приведенные в указаном выше документе.
Поставил MATLAB, начал изучать.
Полосовой фильтр указан точно Butterworth.
Напбрал в окошке команд:
>> [B,A] = BUTTER(1,100/250)
B = 0.4208 0.4208
A = 1.0000 -0.1584
Расхождение с приведенными в примере 0,002 то есть все сходится.
Фильт пробка IIR pole-zero placement method.
В книжке А.Б. Сергиенко не нашел pole-zero placement method.
Но нашел что IIR это тот же Баттерворт, два типа Чебышева и эллиптический.
Нашел также функцию iirnotch
Вот что у меня получилось:
;---------------------------------------------
>> Wo=50/(500/2);
>> WB=Wo/5;
>> [b,a] = iirnotch(Wo,WB)
b = 0.9695 -1.5687 0.9695
a = 1.0000 -1.5687 0.9391
;----------------------------------------------------
>> WN=[45/250 55/250]; [B,A] = BUTTER(1,WN,'stop')
B = 0.9408 -1.5253 0.9408
A = 1.0000 -1.5253 0.8816
;----------------------------------------------------
>> [B,A] = CHEBY1(1,10,WN,'stop')
B = 0.8412 -1.3638 0.8412
A = 1.0000 -1.3638 0.6824
;----------------------------------------------------
>> [B,A] = CHEBY2(1,10,WN,'stop')
B = 0.8412 -1.3638 0.8412
A = 1.0000 -1.3638 0.6824
;----------------------------------------------------
>> [B,A] = ELLIP(1,0.5,20,WN)
B = 0.1526 0 -0.1526
A = 1.0000 -1.3738 0.6948
Наиболее похожы на приведенный в указаном выше документе
коэфициенты iirnotch;
В примере
1 -1,618 1
1 -1,5164 0.8783
Как мне получить такие же цифры?
Какую функцию использовать?
Спасибо за внимание :-)
E-mail: info@telesys.ru