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

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

Отправлено -=ВН=- 30 ноября 2004 г. 10:41
В ответ на: Ответ для AlexeyV (+) отправлено SM 30 ноября 2004 г. 09:33

SM, извините, я не читал Ваш ответ, некогда, уйти должен. Просто после безуспешных попыток отправить свой именно как ответ вопрошавшему, зашел еще раз в конфу, увидел заголовок Вашего сообщения и присоединился:-)
Выражение для ДПФ, точнее для конечного ПФ (КПФ). Конечное - массив конечной длины.
X[k]=sum(x[n]*exp(-j*2pi*n*k/N)).
Герцель придумал способ ускорения вычисления этой суммы при фиксированном k.
Суть простая - X[k] получается пропусканием входного сигнала x[n] через идеальный резонатор, настроенный на частоту (цифровую) 2pi*k/N.
Т.е. через фильтр. Результатом, X[k], является N-тый отсчет с выхода этого фильтра.
Дальше немного подробнее.
Т.к. exp(-j*2pi*N*k/N)=1, то exp(-j*2pi*n*k/N])=
=exp(j*2pi*(N-n)*k/N]).
Тогда X[k]=sum(x[n]*exp(-j*2pi*n*k/N))=
=sum(x[n]*exp(j*2pi*(N-n)*k/N))=Xk[N]. Суммы везде по n и имеют пределы от 0 до N-1.
Выражение в таком виде - неприкрытая свертка входного сигнала x[n] с импульсной характеристикой некоего фильтра, равной exp(j*2pi*n*k/N).
Такую ИХ имеет БИХ фильтр с передаточной функцией:
H(Z)=1/(1-exp(j*2pi*k/N)*Z^(-1)).
Собственно это аналог идеального колебательного контура, без потерь, но только вместо sin у него на выходе сразу комплексная экспонента:-)
Если и числитель и знаменатель H(Z) умножить на
(1-exp(-j*2pi*k/N)*Z^(-1)), то получится:
H(Z)=(1-exp(-j*2pi*k/N)*Z^(-1))/(1-2*cos(2pi*k/N)*Z^(-1)+Z^(-2)).
Это произведение 2-х передаточных функций: H(Z)=H1(Z)*H2(Z).
H1(Z)=1/((1-2*cos(2pi*k/N)*Z^(-1)+Z^(-2)) - действительный (с действительным коэффициентом) БИХ фильтр 2-го порядка.
H2(Z)=)=(1-exp(-j*2pi*k/N)*Z^(-1)) это комплексный КИХ фильтр 1-го порядка.
Т.е. фильтр, через который пропускается сигнал, 2-каскадный. Первый каскад - БИХ, на входе у него x[n], на выходе пусть v[n]. Его перед ф-я = H1(Z). А v[n] и x[n] связаны разностным уравнением:
v[n]=x[n]+2*cos(2pi*k/N)*v[n-1]-v[n-2].
Второй каскад - КИХ с перед. ф-ей H2(Z), на входе у него v[n], на выходе y[n]. И y[n]=v[n]-exp(-j*2pi*k/N)*v[n-1].
Выход всего фильтра - y[n]. При n=N y[n] равен Xk[N]=X[k].
Собственно и интересует только значение при n=N.
Т.к. 2-ой каскад КИХ, то работать ему нужно только после того, как первый каскад насчитает v[N-1] и v[N]. Т.е. за все N отсчетов вх. сигнала он работает только раз, в самом конце:-)
БИХ работает все N отсчетов. Но он действительный и имеет единственный отличный от 1 к-т.
Все, писать больше не могу, может еще то добавит, а может уже и написали, пока я сочинял ответ.


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

Ответы


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

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

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

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

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


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

E-mail: info@telesys.ru