Jump to content

    
Sign in to follow this  
Sergey Makarov

Быстрое преобразование Фурье не для степени 2

Recommended Posts

Добрый день!

Стоит задача осуществить быстрое преобразовние Фурье для 500 отсчетов. Аппаратно DSP поддерживает быстрое преобразование по модулю 2. Вопрос, как довести кол-во точек до 512? Достаточно ли заполнить недостающие значения нулями? Сильно ли исказится результат преобразования после такого допущения? Если можно ссылкой на математическое обоснование поделитесь плз. Или все таки придется до 512 точек дополнять интерполировав существующие значения? Кто чем может помогите плз.

Share this post


Link to post
Share on other sites

Нулей добавить - нормально. Фактически это означает результат преобразования интерполировать.

Разрешение, конечно, при этом не увеличивается, но результат получается адекватный.

Share this post


Link to post
Share on other sites
Стоит задача осуществить быстрое преобразование Фурье для 500 отсчетов.

А мне нули не нравятся, спектр совсем другой. Существует множество алгоритмов для 500 отсчетов, например Винограда(раза в полтора медленнее чем FFT на 512 точек), или FFTW (http://www.fftw.org)авторы называют его самым быстрым для любого числа точек и текст программы приведен.

Edited by SPACUM

Share this post


Link to post
Share on other sites

Чем больше добавляется нулей, тем точнее получается спектр сигнала. Конечно, это тот же самый спектр, но на более плотной сетке частот.

Share this post


Link to post
Share on other sites
Чем больше добавляется нулей, тем точнее получается спектр сигнала. Конечно, это тот же самый спектр, но на более плотной сетке частот.

А как же палка о двух концах?

Share this post


Link to post
Share on other sites
Чем больше добавляется нулей, тем точнее получается спектр сигнала. Конечно, это тот же самый спектр, но на более плотной сетке частот.

 

Ну конечно же нет. Более того, это вообще не спектр, а дпф. А степень близости дпф к спектру определяется не количеством дополнительных нулей, а числом отсчетов исследуемого сигнала. Обсуждалось это 100500 раз в том числе и на страницах данного форума.

 

Share this post


Link to post
Share on other sites

thermit, вы что-то не в кассу... Результат ДПФ — это и есть спектр.

 

GetSmart, какая палка?

 

fontp правильно написал.

 

Sergey Makarov, всё зависит от задачи. В абсолютном большинстве задач выгоднее дополнить сигнал нулями, чем считать FFT "неправильного" размера.

Edited by Alexey Lukin

Share this post


Link to post
Share on other sites
GetSmart, какая палка?

 

fontp правильно написал.

Везде надо искать подвох :biggrin:

 

И вы с fontp обманщики, мягко говоря, те ещё. Спектр, в виде частотного разрешения, может и не меняется, но амплитуда искажается.

Share this post


Link to post
Share on other sites

Ничего не искажается! Наоборот, становится видно больше правильных деталей. А спектры некоторых сигналов (например, ядер фильтров) без дополнения их нулями перед ДПФ вообще некорректно рассматривать.

Share this post


Link to post
Share on other sites

Спасибо большое за ответы! Кое что уже началось проясняться;) Не могли бы еще ответить на один небольшой вопрос. Есть массив из 500 точек, грубо говоря это отсчеты для 50тигерцового сигнала с отсчетом 40 мкс за один период. А мне надо допустим разложить сигнал с основной частотой 30Гц, тогда массив получается 833 точки на один период. Для сигнала с еще меньшей частотой, массив будет еще больше. Отсюда вопрос, надо ли знать для преобразования Фурье частоту раскладываемого сигнала? или в результате разложения частота основной гармоники и так станет известной? Вроде как судя по формулам частота раскладываемого сигнала нигде не фигурирует, а делается предположение что массив данных отсчетов значений функций это есть значения за одни период, и дальше этот сигнал будет повторяться. ТО есть я могу для 30герцового сигнала взять теже 500 отсчетов? или минимум должен взять кол-во отсчетов снятое за период сигнала? Извините за дилетантские вопросы, с обработкой цифровых сигналов пока столкнулся впервые.

 

спасибо за приведенную ссылку;) но вопрос заключался немного в другом, есть аппаратная реализация в ДСП по алгоритму двойки, и мне надо довести 500 отсчетов до 512 каким то образом, чтоб не тратиь вычеслительные ресурсы контроллера, используя аппаратный модуль.

 

всё зависит от задачи. В абсолютном большинстве задач выгоднее дополнить сигнал нулями, чем считать FFT "неправильного" размера.

согласен с вами. А например я могу весь диапазон измеряемых сигналов дискретировать 512 отсчетами? буть то 10Гц сигнал, либо 60Гц. Сильно это будет влять на точность результата?

Share this post


Link to post
Share on other sites
Сильно это будет влять на точность результата?

Это зависит от того, что Вы называете точностью. И какую точность считаете достаточной.

Если Вы уточните Ваши требования, то ответ будет более правильный. Может БПФ совсем не обладает требуемой точностью.

А Alexey Lukin привел пример конечного сигнала (ядро фильтра) тут и дополнять нечего слева и справа от ядра только нули.

Share this post


Link to post
Share on other sites
Это зависит от того, что Вы называете точностью. И какую точность считаете достаточной.

Если Вы уточните Ваши требования, то ответ будет более правильный. Может БПФ совсем не обладает требуемой точностью.

А Alexey Lukin привел пример конечного сигнала (ядро фильтра) тут и дополнять нечего слева и справа от ядра только нули.

первоначально хотел бы добавить что анализируемый сигнал является результатом оцифровки синусоидальных токов и напряжений во время частотного регулирования электроприводом, а преобразование фурье необходимо для анализа основных гармоник (например пяти) составляющих этот сигнал с исключением оставшихся, для последующей развертки и анализа сигнала

Share this post


Link to post
Share on other sites

В книге Гольденберга 1985г на стр.220, если не выполняется условие 2^N дополняют массив нулями при спектральном анализе, но вот нет математического обоснования данного требования. Как я понимаю автор темы просит дать математич.обоснование разрешения дополнения массива до нужного размера какими то величинами.

 

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this