|
FFT в db, БПФ |
|
|
|
Jun 19 2014, 19:50
|
Частый гость
 
Группа: Свой
Сообщений: 168
Регистрация: 29-04-06
Пользователь №: 16 608

|
Мне необходимо построить график БПФ в том виде как он обычно представляется в даташитах на АЦП, т.е. в децибелах. У меня есть исходный файл с отсчётами АЦП на который подан синусоидальный сигнал. Нахожу БПФ по 2048 точкам и далее нахожу 10*log10(БПФ) и строю график. Далее показан сигнал и 10*log10(БПФ) (первые две картинки)- явно не совсем хороший спектр. В чём может быть ошибка? Подскажите как правильно построить такой график. Ожидал увидеть нечто такое (третья картика)
Эскизы прикрепленных изображений
|
|
|
|
|
 |
Ответов
|
Jun 20 2014, 20:25
|

Гуру
     
Группа: Модератор FTP
Сообщений: 4 479
Регистрация: 20-02-08
Из: Москва
Пользователь №: 35 237

|
Правую половину спектра надо отрезать - это зеркальная часть, побочный продукт алгоритма FFT. Тем более что по теории число коэффициентов не может превышать частоту Найквиста (половины числа точек в исходном массиве).
Откладывать на спектре следует не sin- и cos- составлющие (они дёргаются, переходя друг в друга, из-за того, что фаза плывёт), а их "гипотенузу" sqrt(sin^2+cos^2) - это будет амплитуда, от фазы независящая. Тогда эффект "шершавости", возможно, сам пропадет, без всяких окон.
|
|
|
|
|
Jun 20 2014, 21:05
|
Профессионал
    
Группа: Свой
Сообщений: 1 404
Регистрация: 11-03-11
Из: Минск, Беларусь
Пользователь №: 63 539

|
Цитата(Xenia @ Jun 20 2014, 23:25)  Правую половину спектра надо отрезать - это зеркальная часть, побочный продукт алгоритма FFT. Тем более что по теории число коэффициентов не может превышать частоту Найквиста (половины числа точек в исходном массиве). Вопрос был не в этом, тут сам смысл применения окна показан, а правую половину, если смущает, можно и выбросить. Цитата(Xenia @ Jun 20 2014, 23:25)  Откладывать на спектре следует не sin- и cos- составлющие (они дёргаются, переходя друг в друга, из-за того, что фаза плывёт), а их "гипотенузу" sqrt(sin^2+cos^2) - это будет амплитуда, от фазы независящая. Тогда эффект "шершавости", возможно, сам пропадет, без всяких окон. Вообще-то там и показана амплитуда: Код sqrt((Re{FFT})^2 + (Im{FFT})^2) , так что если правую часть выбросить, то остальное всё верно. Цитата(ViKo @ Jun 20 2014, 23:40)  Задайте в вашем примере целое число периодов исследуемой частоты, и покажите результат БПФ, без окна и с окном. Ну вот здесь получается, видимо, частный случай, не всегда в нужную выборку влезет целое число периодов. Так что на это, думаю, полагаться не стоит.
Эскизы прикрепленных изображений
|
|
|
|
|
Jun 20 2014, 21:16
|

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

|
Цитата(doom13 @ Jun 21 2014, 00:05)  Ну вот здесь получается, видимо, частный случай, не всегда в нужную выборку влезет целое число периодов. Так что на это, думаю, полагаться не стоит. Возвращаемся к началу дискуссии... Полагаться, как вы говорите, не на что. В одном случае будут красивые "палки", в другом - не очень. Как повезет. Теоретики придумали десятка два оконных функций, каждая имеет некую особенность, и еще нужно вспомнить, какую когда включать. И ни одна не гарантирует идеальную достоверность амплитуды и частоты.
|
|
|
|
|
Jun 20 2014, 21:28
|
Профессионал
    
Группа: Свой
Сообщений: 1 404
Регистрация: 11-03-11
Из: Минск, Беларусь
Пользователь №: 63 539

|
Цитата(ViKo @ Jun 21 2014, 00:16)  Возвращаемся к началу дискуссии... Полагаться, как вы говорите, не на что. В одном случае будут красивые "палки", в другом - не очень. Как повезет. Теоретики придумали десятка два оконных функций, каждая имеет некую особенность, и еще нужно вспомнить, какую когда включать. И ни одна не гарантирует идеальную достоверность амплитуды и частоты.  Красивые, как Вы говорите, палки без использования окна будут в одном частном случае, если в рассматриваемую выборку помещается целое число периодов сигнала (из всего множества анализируемых частот - одна совпадёт и то, если повезёт). С оконной функцией мы получаем красивый спектр во всех случаях.
|
|
|
|
Сообщений в этой теме
djhall FFT в db Jun 19 2014, 19:50 dm.pogrebnoy Окно жешь. Оконную функцию наложить надо. почитать... Jun 19 2014, 19:53 doom13 С окном получите спектр по внешнему виду как на тр... Jun 19 2014, 20:28 ViKo Цитата(doom13 @ Jun 19 2014, 23:28) С окн... Jun 20 2014, 10:34  prig Цитата(ViKo @ Jun 20 2014, 14:34) Никогда... Jun 20 2014, 13:56   ViKo Цитата(prig @ Jun 20 2014, 16:56) Получит... Jun 20 2014, 14:01    Fat Robot Желание быть в оппозиции подчас "превозмогает... Jun 20 2014, 16:37     ViKo Цитата(Fat Robot @ Jun 20 2014, 19:37) Же... Jun 20 2014, 19:11      doom13 Цитата(ViKo @ Jun 20 2014, 22:11) Не совс... Jun 20 2014, 19:35       ViKo Цитата(doom13 @ Jun 20 2014, 22:35) Что-т... Jun 20 2014, 19:38        doom13 Ранее Вы утверждали, что оконная функция не позвол... Jun 20 2014, 20:05         ViKo Цитата(doom13 @ Jun 20 2014, 23:05) Как в... Jun 20 2014, 20:16          doom13 Цитата(ViKo @ Jun 20 2014, 23:16) Вижу - ... Jun 20 2014, 20:31    prig Цитата(ViKo @ Jun 20 2014, 18:01) А как е... Jun 23 2014, 07:36     doom13 Цитата(prig @ Jun 23 2014, 10:36) Вообще-... Jun 23 2014, 09:08      shf_05 попробуйте дополнить сигнал слева и справа нулями.... Jun 24 2014, 13:09 gridinp Цитата(djhall @ Jun 19 2014, 23:50) Ожида... Jun 20 2014, 10:14 djhall Спасибо большое всем.
Действительно с оконной функ... Jun 20 2014, 15:47 doom13 В софте к отладочным платам от TI в качестве одног... Jun 20 2014, 17:17 ViKo Цитата(Xenia @ Jun 20 2014, 23:25) Отклад... Jun 20 2014, 20:40  Xenia Цитата(doom13 @ Jun 21 2014, 01:05) Вообщ... Jun 20 2014, 21:14   doom13 Цитата(Xenia @ Jun 21 2014, 00:14) А чем ... Jun 20 2014, 21:17   ViKo Цитата(Xenia @ Jun 21 2014, 00:14) А чем ... Jun 20 2014, 21:17       doom13 Цитата(ViKo @ Jun 21 2014, 10:18) А мы сп... Jun 21 2014, 08:28
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|