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

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

Отправлено ВН 04 апреля 2003 г. 11:51
В ответ на: если кому-нибудь не лень - расскажите про алгоритм Герцеля, для чего и как... отправлено yes 04 апреля 2003 г. 10:33

Для гармоник в общем.
А суть простая. Любой спектральный отсчет DFT можно получить, кроме суммы произведений, пропусканием входного сигнала через комплексный фильтр первого порядка с бесконечной добротностью. Если спектральный отсчет считается по N входным, то с выхода фильтра нужно взять N-тый отсчет, он и будет нужным спектр. отсчетом.
Комплексный фильтр первого порядка с бесконечной добротностью - это полюс на единичной окружности Z плоскости и частота этого полюса=частоте, на которой нужно определить спектр. отсчет. Ну и, поскольку в БПФ частоты, на которых вычисляется спектр равны 2*pi*k/N, то и частоты полюсов фильтров логично из этого набора брать. Хотя не обязательно.
Т.е. H(Z) фильтра:
H(Z)=1/(1-exp(-j*2*pi*N/k)*Z^(-1)). Или,
обозначив W^(-k)=exp(-j*2*pi*N/k),
H(Z)=1/(1-W^(-k)*Z^(-1)).
Неудобно, что комплексный.
Можно это же записать по другому:
H(Z)=(1-W^(k)*Z^(-1))/((1-W^(-k)*Z^(-1))*(1-W^(k)*Z^(-1))).
В такой записи 1 деленная на знаменатель соответсвует произведению 2 комплексно-сопряженных полюсов, т.е. действительному рекурс. фильтру 2-го порядка. Тогда как числитель представляет собой нерекурс. фильтр 2-го порядка.
H(Z)=IIR(Z)*FIR(Z).
IIR(Z)=1/((1-W^(-k)*Z^(-1))*(1-W^(k)*Z^(-1)))=
=1/(1-2*cos(2*pi*N/k)*Z^(-1)+Z^(-2)).
FIR(Z)=1-W^(k)*Z^(-1).
IIR - действительный, FIR - комлексный.
Или в разностных уравнениях:
IIR: v(n)=x(n)+2*cos(2(pi*N/k)*v(n-1)-v(n-2)
FIR: y(n)=v(n)-W^(k)*v(n-1).
x- вход фильтра, y-выход.
Т.е. IIR первым и его выход - вход для FIR.
Поскольку нужен спектр. отсчет после обработки N входных, FIR будет практически все время бездействовать. Работать будет IIR. И для получения вых. спектр на FIR достаточно подать только 2 последних отсчета с выхода IIR, N-тый и (N-1)-ый.
Т.е. тогда:
IIR: v(n)=x(n)+2*cos(2(pi*N/k)*v(n-1)-v(n-2)
FIR: y(N-1)=v(N-1)-W^(k)*v(N-2).
Итого N+2 умножений действит. +2*N+1 сложений действительных.

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

Ответы


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

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

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

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

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


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

E-mail: info@telesys.ru