[an error occurred while processing this directive]
Ответ:
(«Телесистемы»: Конференция «Цифровые сигнальные процессоры (DSP) и их применение»)

миниатюрный аудио-видеорекордер mAVR

Отправлено -=ВН=- 20 июля 2004 г. 22:04
В ответ на: Нужна помощь по расчету IIR фильтра отправлено Slava_ 20 июля 2004 г. 17:39

У Вас может в реализации напортачено, а не в расчете фильтра?
Полосовой фильтр второго порядка конечно довольно убогий, маневру нет:-). Но все же АЧХ типа колеб. контура с добротностью ~10 получиться должна.
Я сейчас просто для справки Вам напишу, просто чтобы поняли, никаких чудес нет. Правда кто-нибудь съязвить может, струмент мол есть, в виде матлаба и чего-нибудь еще:-)
Перед. ф-ия БИХ 2 порядка:
H(Z)=(b0+b1*Z^(-1)+b2*Z^(-2))/(1+a1*Z^(-1)+a2*Z^(-2)).
b0-b2,a1,a2 - Ваши.
Частотная - модуль H(Z) при Z=exp(-j*2*pi*f/FD). FD=8000.
Знаменатель H(Z) - произведение 2-х комплексно-сопряженных полюсов (фильтр должен быть полосовым и действительным) в Z-плоскости,
т.е. знаменатель=(1-P0*Z^(-1))*(1-P0'*Z^(-1)).
P0,P0' - полюс и компл.-сопряж ему.
P0=R0*exp(j*W0), P0'=R0*exp(-j*W0). W0=2*PI*F0/FD.
Откуда a1=-2*R0*COS(W0), a2=R0^2.
F0 у Вас 1100.
Числитель - либо 2 нуля, один на Z=1 (частота=0), второй на Z=-1 (на FD/2), либо 2-кратный 0 на Z=1, либо 2-кратный 0 на Z=-1, либо пара компл-сопряж 0, либо отсутствие 0. Опять же исходя из полосовости фильтра скорее вариант 1, хотя необязательно Т.е. скорее 2 нуля, один на Z=1, второй на Z=-1.
Т.е. числитель =с*(1-Z^(-1))*(1+Z^(-1)). Т.е. b0=C, b1=0,b2=-C.
C - масштабный множитель, выбираемый из того, например, чтобы к-т передачи фильтра не превышал 1 на любой частоте. На полосы он никак не влияет.
Ну и результ. H(Z)=C*(1-Z^(-2))/(1-2*R0*cos(W0)*Z^(-1)+R0^2*Z^(-2)).
R0 находится напрямую (при C=1), хотя громоздкие выражения. Потом находите макс. значение модуля H(Z) и делаете к-т C равным обратной величине этого макс. А чтобы от громоздкости уйти при определении R0 можно воспользоваться для первого (и довольно точного) приближения передаточной х-кой однополюсного и без нулей фильтра, т.е. фильтра
с перед. ф-ей H0(Z)=1/(1-R0*exp(j*W0)*Z^(-1)).
Квадрат ее модуля=1/(1+R0^2-2*R0*cos(dW)). dW=W-W0=2*PI(F-F0)/FD.
Максимум квадрата при dW=0 (W=W0) и равен он 1/(1-R0)^2. При F-F0=100 квадрат модуля=0.5 от максимума. Ну и находите R0. 0.9245 получается.
В итоге a1~=-1.2008, a2~=0.8547,C~=1/14=b0,b2=-1/14=-b0=, b1=0.
Собственно с такими к-тами уже получается полосовой фильтр с х-ками, довольно близкими к Вашим.
В любом случае a2, как он у Вас записан в разностном ур-ии, должен быть больше 0. a1, поскольку центр. частота у Вас ниже FD/4, меньше 0.
А порядок величин - привел.


Составить ответ  |||  Конференция  |||  Архив

Ответы


Отправка ответа

Имя (обязательно): 
Пароль: 
E-mail: 

Тема (обязательно):
Сообщение:

Ссылка на URL: 
Название ссылки: 

URL изображения: 


Перейти к списку ответов  |||  Конференция  |||  Архив  |||  Главная страница  |||  Содержание  |||  Без кадра

E-mail: info@telesys.ru