В чем суть результата быстрого преобразования Фурье?

Здравствуйте, уважаемые хабраобитетели! Прошу, не бейте меня ботинками больно!

Впервые столкнулся в преобразованием Фурье, и надо быстро разобраться.

«Физический» смысл его я понимаю так: есть сигнал, меняющийся во времени определенным образом. После его преобразования получается спектр, т.е. из зависимости амплитуда(время) получается амплитуда(частота).


Полез в Википедию за алгоритмом быстрого преобразования:
Википедия БПФ

сделал ctrl+C, ctrl+V первого примера. На выходе получаю следующий файл:


0.000000 0.000000 0.000000

0.500000 0.000000 0.250000

0.000000 0.000000 0.000000

0.000000 0.000000 0.000000

0.000000 0.000000 0.000000

0.000000 0.000000 0.000000

0.000000 0.000000 0.000000

0.500000 0.000000 0.250000


Первый столбец — вещественная часть, второй — мнимая, третий — сумма квадратов вещественной и мнимой частей.

По коду, на сколько я понял, делается БПФ косинуса с частотой 2*pi/8 что примерно равно 0.785. Назревает глупый вопрос, как этот файл соотносится со спектром косинуса, который должен быть везде нулем, кроме частоты косинуса, в которой он должен быть равен 1?

Объясните, пожалуйста, уважаемые сведущие. Может я не тот пример беру?


PS в файле убрал минусы перед нулевыми значениями, чтобы он смотрелся ровно :-)
  • Вопрос задан
  • 13635 просмотров
Решения вопроса 1
@xaoc80
Что бы получить 1 пик, необходим сделать циклический сдвиг значений значений частоты
Очень подробно это описано в этой статье на хабре
habrahabr.ru/post/112068/
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
@galaxy
Ну это же не косинусное пребразование.
cos(a) = (eia+e-ia)/2
Т.е. в комплексном преобразовании будут 2 частоты: 1 и -1 (mod 8) = 7
Ответ написан
Wott
@Wott
Фурье как и любое разложение суть нахождение координат (коэффициентов для суммы ) в пространстве ортогональных векторов ( в данном случае косинусов с частотой кратной пи-чего-то-там ). Если ваш исходный вектор ( функция, в данном случае — косинус ) параллелен одному из базисов ( то есть частоты совпадают ), то вы получите нули кроме одного значения. Если же нет, то вы получите разложение на несколько векторов ( частот ), сумма которых с найденными координатами-коэффициентами даст вам исходную функцию ( с заданной точностью ).
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы