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

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

Отправлено Любитель 23 июня 2004 г. 12:55

Вопрос в следующем, делается алгоритм, на вход поступают данные блоками по 32 сэмпла, внутри делается FFT по 64 точкам (перекрытие 1/2). Потом после колбасни со спектром делается IFFT и берутся 64 отсчета. Вот в чем вопрос: исключая колбасны со спектром все это действо эквивалентно свертке в частотной области с h=[1 0 0 0 0 0...]
Т.е.
N=64;
N2=32;
nf = length(IN)/N2;
for f = 1 : nf,
X( 1 : N2 ) = IN( ( f - 1 ) * N2 + 1 : f * N2 );

Y = fft( X );
Y = ifft( Y );
% Делаем перекрытие с суммированием
OUT( ( f - 1 ) * N2 + 1 : f * N2 ) = real( Y0( N2 + 1 : N) + Y( 1 : N2 ) );
Y0 = Y

end

И это работает правильно, но не учитывается spectrum leakage, т.е. FFT надо делать так (с окном):
Y = fft(hanning(N) .* X');
Но это очень сильно искажает выходной сигнал.
Чего-то я не допонимаю...

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

Ответы


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

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

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

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

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


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

E-mail: info@telesys.ru