что является правильным результатом после FFT, если входной массив равен {0,1,2,3,4,5,6,7} - PullRequest
5 голосов
/ 30 мая 2011

Может кто-нибудь сказать мне, что является правильным результатом после быстрого преобразования Фурье, если входной массив равен {0,1,2,3,4,5,6,7}.

Я получил {28,0,0,0,0,0,0,0}. Это не правильно, верно?

просто хочу протестировать реализацию FFT в C.

спасибо, Андрей

Ответы [ 4 ]

6 голосов
/ 08 июня 2011

Правильный ответ на БПФ для {0,1,2,3,4,5,6,7}:

{28.0000 + 0.0000i, 
-4.0000 + 9.6569i,
-4.0000 + 4.0000i,
-4.0000 + 1.6569i,
-4.0000 + 0.0000i, 
-4.0000 - 1.6569i,
-4.0000 - 4.0000i,
-4.0000 - 9.6569i}
1 голос
/ 31 июля 2011

Согласно Wolfram Alpha это:

enter image description here

Обратите внимание, что не существует единственного «правильного ответа», поскольку существует более одного определения DFT / FFT, разница между которыми заключается в том, какой коэффициент масштабирования вы включаете для прямого и обратного преобразования. (Разница между этим ответом и ранее принятым ответом является просто коэффициентом масштабирования sqrt(8)).

1 голос
/ 30 мая 2011

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

Почему бы вам не использовать существующую реализацию FFT, такую ​​как FFTW , для получения контрольного результата? Или просто реализовать простой DFT?

0 голосов
/ 11 октября 2017

Ответ Divij предполагает, что вход {0,1,2,3,4,5,6,7} имеет размер = 8, то есть:

{0,0i}, {1,0i}, {2,0i}, {3,0i}, {4,0i}, {5,0i}, {6,0i}

для ввода, рассматриваемого как двоичныйкомплекс с размером = 4, то есть:

{0,1i}, {2,3i}, {4,5i}, {6,7i}, результат:

{12, 16i}
{-8, 0i}
{-4, -4i}
{0, -8i}
...