[an error occurred while processing this directive]
|
Суть сего в том, что каждый отсчет ПФ можно рассмотреть как цифровой фильтр. Как свертку входного сигнала с N периодами комплексной экспоненты. X(n) = sum(k=0, N-1, x(k)*exp(j*2*pi*(n/N)(N-k)). Слегка помудрив с математикой, получается H(z)=(1-Z^-N)/(1-exp(j*2*pi*n/N)*z^-1). Выбросив числитель (вместо этого можно просто перед каждлй пачкой из N отсчетов занулять состояние фильтра), и преобразовав знаменатель так, чтобы выкинуть оттуда все мнимое, получится H(z)=(1-exp(-j*2*pi*n/N)*z^-1)/(1-2*cos(2*pi*n/N)*z^-1+z^-2). Итого надо вычислить N раз рекурсивную часть фильтра, и потом один раз нерекурсивную, и получить интересующий отсчет ДПФ. Ели интересует всего несколько точек ДПФ, этот алгоритм эффективнее остальных.
P.S. Если уж хотите засунуть исходник в сообщение, то не забывайте, что знаки больше и меньше это спец-символы в HTML. А то Вам даже и не ответишь как положено
E-mail: info@telesys.ru