|
Окна БПФ |
|
|
2 страниц
< 1 2
|
 |
Ответов
(15 - 22)
|
Oct 15 2013, 21:02
|

Универсальный солдатик
     
Группа: Модераторы
Сообщений: 8 634
Регистрация: 1-11-05
Из: Минск
Пользователь №: 10 362

|
Окна имеют коэффициент ослабления, показывающий, во сколько раз при БПФ будет отличаться постоянная составляющая, по сравнению с прямоугольным окном. Но при этом значения всех остальных спектральных составляющих тоже изменяются. Как можно верить этим окнам? И, вообще, ДПФ? Я, правда, экспериментировал с 16-точечным БПФ. Подал точно рассчитанный по формуле сигнал, с частотами, точно укладывающимися в размер БПФ. Поэтому прямоугольное окно дает мне точные амплитуды спектральных составляющих. Остальные же окна выдают амплитуды, отличающиеся в несколько раз от поданных. Может, при размере БПФ 1024 такого явления не будет? Сомневаюсь.
|
|
|
|
|
Oct 16 2013, 09:18
|
Гуру
     
Группа: Свой
Сообщений: 2 220
Регистрация: 21-10-04
Из: Balakhna
Пользователь №: 937

|
Цитата(ViKo @ Oct 16 2013, 01:02)  Окна имеют коэффициент ослабления, показывающий, во сколько раз при БПФ будет отличаться постоянная составляющая, по сравнению с прямоугольным окном. Но при этом значения всех остальных спектральных составляющих тоже изменяются. Как можно верить этим окнам? И, вообще, ДПФ? Я, правда, экспериментировал с 16-точечным БПФ. Подал точно рассчитанный по формуле сигнал, с частотами, точно укладывающимися в размер БПФ. Поэтому прямоугольное окно дает мне точные амплитуды спектральных составляющих. Остальные же окна выдают амплитуды, отличающиеся в несколько раз от поданных. Может, при размере БПФ 1024 такого явления не будет? Сомневаюсь. FFT c окнами это всего лишь банк фильтров на картинке по ссылке https://ccrma.stanford.edu/~jos/sasp/Downsa...ilter_Bank.htmlОкно - ИХ КИХ ФНЧ. Хотите точно амплитуду синуса мерить, используйте фильтры с плоскими вершинами АЧХ перекрывающимися, так называемые flat top window, в общем обсуждалось уже на форуме.
|
|
|
|
|
Jan 22 2014, 09:58
|

Универсальный солдатик
     
Группа: Модераторы
Сообщений: 8 634
Регистрация: 1-11-05
Из: Минск
Пользователь №: 10 362

|
Цитата(ViKo @ Oct 4 2013, 14:59)  Сделал, что мог. Использую Matlab. Окна по умолчанию получаются симметричными, что мне нравится. Результат расчетов выводится в файл, который включу в проект. Только запятую лишнюю в конце каждого массива нужно удалить. Код FFT_N = 8; ... fid = fopen('FFT_Windows.h', 'w');
fprintf(fid, '/* Hann Window */\n'); fprintf(fid, 'static const float WindHann[] = {\n'); fprintf(fid, ' %E, %E, %E, %E,\n', WindHann); fprintf(fid, '};\n\n'); ... fprintf(fid, '};\n\n'); fclose(fid); Поможите, люди добрые, убрать запятую в конце массива в текстовом файле, созданном этим скриптом! В языке C она лишняя. Если сложно, то не надо.  Руками удалю. Но, может, есть элегантный способ? Сам придумал. Код fseek(fid, -2, 0); fprintf(fid, '\n};\n');
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|