Загрузка [MathJax]/jax/output/HTML-CSS/jax.js

Дискретное преобразование Фурье онлайн

Этот онлайн калькулятор выполняет дискретное преобразование Фурье над сигналом, заданным набором значений. Введенный сигнал также раскладывается на составные части, которые отображаются в виде графиков вещественной, мнимой частей сигнала, а также магнитуды и фазы.

Этот калькулятор позволяет поиграться с дискретным преобразованием Фурье произвольного сигнала, заданного набором значений. Калькулятор ограничивается вещественным дискретным преобразованием Фурье, то есть дискретным преобразованием Фурье, которое использует вещественные числа для представления входного и выходного сигналов. Дискретное преобразование Фурье является одним из преобразований Фурье, то есть операций, раскладывающих исходную функцию на элементарные составляющие - гармонические колебания с разными частотами. Данный калькулятор позволяет удовлетворить любопытство в части того, как же для заданного сигнала выглядит набор представляющих его гармоник и как выглядит восстановленный с их помощью сигнал.

По умолчанию дискретный сигнал, который раскладывается на гармоники и затем восстанавливается из них состоит из 32 отсчетов, все из которых имеют значение ноль, за исключением второго, который имеет значение 5.

Для заданного сигнала калькулятор показывает графики его действительных и мнимых значений, а также графики магнитуды и фазы. Также калькулятор отображает все гармоники и их суммарный сигнал.

Теперь немного теории. Применение преобразований Фурье основано на идее о том, что сигнал может быть представлен в виде суммы гармонических составляющих с разными частотами. Есть несколько типов преобразований Фурье: для непериодического непрерывного сигнала (собственно, преобразование Фурье), для периодического непрерывного сигнала (ряд Фурье), для непериодического дискретного сигнала (дискретное во времени преобразование Фурье), для периодического дискретного сигнала (дискретное преобразование Фурье). Все эти преобразования работают с сигналами продолженными в бесконечность. В области цифровой обработки сигналов мы имеем дело с конечным набором значений. Поэтому при использовании преобразований Фурье мы подразумеваем, что наше конечное число значений повторяется до бесконечности как справа, так и слева от заданных значений. Таким образом как бы имеем дело с периодическим дискретным сигналом - и используем для его разложения дискретное преобразование Фурье. Зачем нужно повторять сигнал, а не представить, например, что все остальные значения равны нулю? Потому что в таком случае мы будем иметь дело с непериодическим дискретным сигналом, и для его представления нам понадобится бесконечное число гармоник.

Стоит заметить, что каждое из преобразований Фурье есть в двух видах: вещественном и комплексном. Преобразование, работающее с вещественными числами, проще, так как использует, соответственно, вещественные числа для входных и выходных величин. Его и использует калькулятор ниже.

Дискретное преобразование Фурье превращает N отсчетов входного сигнала в два набора из N/2+1 отсчетов выходного сигнала - которые являются амплитудами синусоидальных и косинусоидальных волн. Например, для того, чтобы представить 32 отсчета, нам нужно 17 синусоидальных волн и 17 синусоидальных волн.

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

Процесс отображения сигнала в частотный спектр называется декомпозицией сигнала, анализом сигнала, прямым дискретным преобразованием Фурье или просто дискретным преобразованием Фурье. Обратный процесс называется синтезом или обратным дискретным преобразованием Фурье.

Введем обозначения:
Входной сигнал - функцию времени - обозначаем буквой x в нижнем регистре, т.е. x[ ], функцию частоты - буквой X в верхнем регистре, т.е. X[ ]. Две части выходного сигнала, вещественную и мнимую, соответственно, Re X[ ] и Im X[ ]. Значения Re X[ ] это амплитуды косинусоидальных волн, а значения Im X[ ] - амплитуды синусоидальных волн. Несмотря на то, что в названии есть слово "мнимая", это просто амплитуда синусоидальной волны, а термин пришел из обобщенного преобразования, которое работает с комплексными числами.

Синусоидальные и косинусоидальные волны с единичной амплитудой называются базисными функциями дискретного преобразования Фурье. Они имеют следующие уравнения:
c_k[i]=cos(\frac{2\pi k i}{N})\\s_k[i]=sin(\frac{2\pi k i}{N}),
где i меняется от 0 до N-1, k меняется от 0 до N/2.
Каждое значение амплитуды Re X и Im X может быть перемножено с соответствующей базисной функцией и результат может быть просуммирован для того, чтобы восстановить входной сигнал.
Это уравнение синтеза, которое выглядит следующим образом:
x[i]=\sum_{k=0}^{N/2}Re\bar{X}[k]cos(\frac{2\pi ki}{N})+\sum_{k=0}^{N/2}Im\bar{X}[k]sin(\frac{2\pi ki}{N})
Таким образом, значение любого отсчета входного сигнала из N точек может быть восстановлено путем сложения N/2+1 значений косинуcoидальных составляющих и N/2+1 значений синусоидальных составляющих в данной точке.

Обратите внимание на черту над X в формуле выше. Это нормализованное значение амплитуды, которое должно применяться при синтезе. Масштабирование частотного спектра выполняется следующим образом:
Re\bar{X}[k]=\frac{ReX[k]}{N/2}\\Im\bar{X}[k]=-\frac{ImX[k]}{N/2},
с двумя специальными случаями:
Re\bar{X}[0]=\frac{ReX[0]}{N}\\Re\bar{X}[N/2]=\frac{ReX[N/2]}{N}

Далее, вещественные и мнимые части могут быть представлены в полярных координатах, используя следующее соотношение:
Acos(x)+Bsin(x)=Mcos(x+\theta)
M и тета называются магнитудой and фазой и могут быть получены из Re и Im с использованием следующих формул:
MagX[k]=(ReX[k]^2+ImX[k]^2)^{\frac{1}{2}}\\PhaseX[k]=arctan(\frac{ImX[k]}{ReX[k]})

Таким образом, в полярной нотации результат дискретного преобразования Фурье сигнала из N отсчетов можно представить в виде N/2+1 косинусоидальных волн с указанной амплитудой и фазой. Иногда графики магнитуды и фазы более выразительны, чем графики вещественной и мнимой составляющей.

Как же найти вещественные и мнимые составляющие сигнала? Если мы посмотрим на уравнение синтеза
x[i]=\sum_{k=0}^{N/2}Re\bar{X}[k]cos(\frac{2\pi ki}{N})+\sum_{k=0}^{N/2}Im\bar{X}[k]sin(\frac{2\pi ki}{N})
то мы увидим, что Im X[0] и Im X[N/2] всегда равны нулю. Таким образом для N точек мы имеет N уравнений с N неизвестными. Причем это линейные уравнения - мы просто имеем систему линейных алгебраических уравнений с N неизвестными. Ее, в принципе, можно решать, например, методом Гаусса, но, конечно, для больших N это очень медленно. Поэтому для нахождения значений Re и Im используется быстрое преобразование Фурье.

Однако, быстрое преобразование Фурье работает для более общего, комплексного дискретного преобразования Фурье (когда N комплексных точек входного сигнала преобразуются в N комплексных точек выходного сигнала), поэтому нам надо учесть это каким-то образом при использовании его для вещественного дискретного преобразования Фурье.

К счастью, это довольно просто. N вещественных точек входного сигнала преобразуются в N комплексных точек, где мнимая часть равна нулю. Далее применяется быстрое преобразование Фурье, а результат получается из первых N/2+1 точек вещественной части и первых N/2+1 точек мнимой части результата.

Калькулятор ниже позволяет "поиграться" с дискретным преобразованием Фурье. Вы можете задать входной сигнал, калькулятор применит к нему дискретное преобразование Фурье (используя javascript реализацию быстрого преобразования Фурье от Project Nayuki) и отобразит графики Re X[ ], Im X[ ], Mag X[ ], Phase X[ ], а также графики синтезированного оригинального сигнала - суммированием синусоидальных и косинусоидальных волн, и суммированием косинусоидальных волн соответствующих магнитудам и фазам.

PLANETCALC, Дискретное преобразование Фурье

Дискретное преобразование Фурье

Набор значений сигнала

Порядковый номерЧисловое значение
10
25
30
40
50
60
70
80
90
100
Записей:
1-10 из 32

Знаков после запятой: 2
Набор значений сигнала
Файл очень большой, при загрузке и создании может наблюдаться торможение браузера.
2468101214161820222426283032-4-2024
Re X[ ]
Файл очень большой, при загрузке и создании может наблюдаться торможение браузера.
246810121416-4-2024
Im X[ ]
Файл очень большой, при загрузке и создании может наблюдаться торможение браузера.
246810121416-4-2024
Магнитуда X[ ]
Файл очень большой, при загрузке и создании может наблюдаться торможение браузера.
246810121416-6-4-20246
Фаза X[ ]
Файл очень большой, при загрузке и создании может наблюдаться торможение браузера.
246810121416-3-2-10123
Синтез (cos + sin)
Файл очень большой, при загрузке и создании может наблюдаться торможение браузера.
cos 0
sin 0
cos 1
sin 1
cos 2
sin 2
cos 3
sin 3
cos 4
sin 4
cos 5
sin 5
cos 6
sin 6
cos 7
sin 7
cos 8
sin 8
cos 9
sin 9
cos 10
sin 10
cos 11
sin 11
cos 12
sin 12
cos 13
sin 13
cos 14
sin 14
cos 15
sin 15
cos 16
sin 16
2468101214161820222426283032-0.35-0.30-0.25-0.20-0.15-0.10-0.050.000.050.100.150.200.250.300.35
Файл очень большой, при загрузке и создании может наблюдаться торможение браузера.

Уравнения синтеза (косинус и синус)

kcossin
05.0032cos2π032i=0.160.0016sin2π032i=0
14.9016cos2π132i=0.31cos232πi0.9816sin2π132i=0.06sin232πi
24.6216cos2π232i=0.29cos432πi1.9116sin2π232i=0.12sin432πi
34.1616cos2π332i=0.26cos632πi2.7816sin2π332i=0.17sin632πi
43.5416cos2π432i=0.22cos832πi3.5416sin2π432i=0.22sin832πi
52.7816cos2π532i=0.17cos1032πi4.1616sin2π532i=0.26sin1032πi
61.9116cos2π632i=0.12cos1232πi4.6216sin2π632i=0.29sin1232πi
70.9816cos2π732i=0.06cos1432πi4.9016sin2π732i=0.31sin1432πi
80.0016cos2π832i=05.0016sin2π832i=0.31sin1632πi
90.9816cos2π932i=0.06cos1832πi4.9016sin2π932i=0.31sin1832πi
101.9116cos2π1032i=0.12cos2032πi4.6216sin2π1032i=0.29sin2032πi
112.7816cos2π1132i=0.17cos2232πi4.1616sin2π1132i=0.26sin2232πi
123.5416cos2π1232i=0.22cos2432πi3.5416sin2π1232i=0.22sin2432πi
134.1616cos2π1332i=0.26cos2632πi2.7816sin2π1332i=0.17sin2632πi
144.6216cos2π1432i=0.29cos2832πi1.9116sin2π1432i=0.12sin2832πi
154.9016cos2π1532i=0.31cos3032πi0.9816sin2π1532i=0.06sin3032πi
165.0032cos2π1632i=0.16cos3232πi0.0016sin2π1632i=0
Синтез (сумма cos + sin)
Файл очень большой, при загрузке и создании может наблюдаться торможение браузера.
24681012141618202224262830-6-5-4-3-2-10123456
Синтез (магнитуда + фаза)
Файл очень большой, при загрузке и создании может наблюдаться торможение браузера.
cos 0
cos 1
cos 2
cos 3
cos 4
cos 5
cos 6
cos 7
cos 8
cos 9
cos 10
cos 11
cos 12
cos 13
cos 14
cos 15
cos 16
2468101214161820222426283032-0.35-0.30-0.25-0.20-0.15-0.10-0.050.000.050.100.150.200.250.300.35
Синтез (сумма магнитуда + фаза)
Файл очень большой, при загрузке и создании может наблюдаться торможение браузера.
24681012141618202224262830-5-4-3-2-1012345

Ссылка скопирована в буфер обмена
PLANETCALC, Дискретное преобразование Фурье онлайн

Комментарии