Для чего нужно быстрое преобразование Фурье или вообще дискретное
преобразование Фурье (ДПФ)? Давайте попробуем разобраться.
Пусть у нас есть функция синуса x = sin(t).
Максимальная амплитуда этого колебания равна 1. Если умножить его на
некоторый коэффициент A, то получим тот же график, растянутый
по вертикали в A раз: x = Asin(t).
Период колебания равен 2π. Если мы хотим увеличить
период до T, то надо умножить переменную t на коэффициент.
Это вызовет растяжение графика по горизонтали: x = A sin(2πt/T).
Частота колебания обратна периоду:
ν = 1/T.
Также говорят о круговой частоте, которая вычисляется по формуле:
ω= 2πν = 2πT.
Откуда: x = A sin(ωt).
И, наконец, есть фаза, обозначаемая как φ. Она
определяет сдвиг графика колебания влево. В результате сочетания всех
этих параметров получается гармоническое колебание или просто гармоника:
Очень похоже выглядит и выражение гармоники через косинус:
Большой разницы нет. Достаточно изменить фазу на π/2,
чтобы перейти от синуса к косинусу и обратно. Далее будем подразумевать
под гармоникой функцию косинуса:
x = A cos(2πt/T + φ)
= A cos(2πνt + φ)
= A cos(ωt + φ)
(18)
В природе и технике колебания, описываемые подобной функцией чрезвычайно
распространены. Например, маятник, струна, водные и звуковые волны и
прочее, и прочее.
Преобразуем (18) по формуле косинуса суммы:
x = A cos φ cos(2πt/T)
- A sin φ sin(2πt/T)
(19)
Выделим в (19) элементы, независимые от t, и обозначим их как Re и Im:
x = Re cos(2πt/T) - Im sin(2πt / T) (20)
Re = A cos φ,
Im = A sin φ
По величинам Re и Im можно однозначно восстановить амплитуду и
фазу исходной гармоники:
и (21)
Рассмотрим очень распространенную практическую ситуацию.
Пусть у нас есть звуковое или какое-то иное колебание в виде функции
x = f(t). Пусть это колебание было записано в виде графика
для отрезка времени [0, T]. Для обработки компьютером нужно выполнить
дискретизацию. Отрезок делится на N-1 равных частей, границы
частей обозначим tn = nT/N.
Сохраняются N значений функции на границах частей: xn = f(tn) = { x0, x1, x2,..., xN }.
В результате прямого дискретного преобразования Фурье были получены N
значений для Xk:
(22)
Теперь возьмем обратное преобразование Фурье:
(23)
Выполним над этой формулой следующие действия: разложим каждое комплексное
Xk на мнимую и действительную составляющие
Xk = Rek + j Imk;
разложим экспоненту по формуле Эйлера на синус и косинус действительного
аргумента; перемножим; внесем 1/N под знак суммы и
перегруппируем элементы в две суммы:
(24)
Это была цепочка равенств, которая начиналась с действительного числа
xn. В конце получилось две суммы,
одна из которых помножена на мнимую единицу j. Сами же суммы
состоят из действительных слагаемых. Отсюда следует, что вторая сумма
должна быть равна нулю. Отбросим ее и получим:
(25)
Поскольку при дискретизации мы брали tn = nT/N и
, то можем выполнить замену: n = tnN/T. Следовательно,
в синусе и косинусе вместо 2πkn/N
можно написать 2πktn/T. В результате
получим:
(26)
Сопоставим эту формулу с формулой (20) для гармоники:
x = Re cos(2πt/T) - Im sin(2πt / T) (20)
Слагаемые суммы (26) аналогичны формуле (20), а формула (20) описывает
гармоническое колебание. Значит сумма (26) представляет собой сумму из N
гармонических колебаний разной частоты, фазы и амплитуды.
Выше объяснялось, каким образом формула вида (20) может быть преобразована в формулу вида (18):
x = A cos(2πt/T + φ) (18)
Выполним такое же преобразование для слагаемых суммы (26), преобразуем их из
вида (20) в вид (18). Получим:
(27)
Далее будем функцию
Gk(t)
= Ak cos(2πtk/T + φk)
(28)
называть k-й гармоникой.
Для вычисления Ak и φk
надо использовать формулу (21).
Теперь выпишем в одном месте все формулы, которые связывают амплитуду, фазу, частоту
и период каждой из гармоник с коэффициентами Xk:
(29)
Функция Arg(X) - это аргумент комплексного числа. В языке C++ для ее вычиления
удобно использовать функцию atan2(Im, Re).
Итак. Физический смысл дискретного преобразования Фурье состоит в том, чтобы
представить некоторый дискретный сигнал в виде суммы гармоник. Параметры
каждой гармоники вычисляются прямым преобразованием, а сумма гармоник - обратным.
Знаете ли Вы, почему "черные дыры" - фикция? Согласно релятивистской мифологии, "чёрная дыра - это область в пространстве-времени, гравитационное притяжение которой настолько велико, что покинуть её не могут даже объекты, движущиеся со скоростью света (в том числе и кванты самого света). Граница этой области называется горизонтом событий, а её характерный размер - гравитационным радиусом. В простейшем случае сферически симметричной чёрной дыры он равен радиусу Шварцшильда". На самом деле миф о черных дырах есть порождение мифа о фотоне - пушечном ядре. Этот миф родился еще в античные времена. Математическое развитие он получил в трудах Исаака Ньютона в виде корпускулярной теории света. Корпускуле света приписывалась масса. Из этого следовало, что при высоких ускорениях свободного падения возможен поворот траектории луча света вспять, по параболе, как это происходит с пушечным ядром в гравитационном поле Земли. Отсюда родились сказки о "радиусе Шварцшильда", "черных дырах Хокинга" и прочих безудержных фантазиях пропагандистов релятивизма. Впрочем, эти сказки несколько древнее. В 1795 году математик Пьер Симон Лаплас писал: "Если бы диаметр светящейся звезды с той же плотностью, что и Земля, в 250 раз превосходил бы диаметр Солнца, то вследствие притяжения звезды ни один из испущенных ею лучей не смог бы дойти до нас; следовательно, не исключено, что самые большие из светящихся тел по этой причине являются невидимыми." [цитата по Брагинский В.Б., Полнарёв А. Г. Удивительная гравитация. - М., Наука, 1985] Однако, как выяснилось в 20-м веке, фотон не обладает массой и не может взаимодействовать с гравитационным полем как весомое вещество. Фотон - это квантованная электромагнитная волна, то есть даже не объект, а процесс. А процессы не могут иметь веса, так как они не являются вещественными объектами. Это всего-лишь движение некоторой среды. (сравните с аналогами: движение воды, движение воздуха, колебания почвы). Подробнее читайте в FAQ по эфирной физике.