Документация Engee

dftmtx

Матрица дискретного преобразования Фурье.

Библиотека

EngeeDSP

Синтаксис

Вызов функции

  • a = dftmtx(n) — возвращает комплексную дискретную матрицу преобразования Фурье размером n на n.

Аргументы

Входные аргументы

# n — длина дискретного преобразования Фурье
положительный целочисленный скаляр

Details

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

Типы данных

Float32, Float64

Выходные аргументы

# a — матрица дискретного преобразования Фурье
матрица

Details

Матрица дискретного преобразования Фурье.

Примеры

Матрица БПФ и ДПФ

Details

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

import EngeeDSP.Functions: dftmtx
import EngeeDSP.Functions: fft
import EngeeDSP.Functions: norm

x = collect(1:256)
y1 = fft(x)
n = length(x)
y2 = dftmtx(n) * x

norm(y1 - y2)
6.61575911216404e-12

Дополнительно

Матрица дискретного преобразования Фурье.

Details

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

Для вектора-столбца x:

y = dftmtx(n)*x

то же самое, что и y = fft(x,n). Матрица обратного дискретного преобразования Фурье:

ainv = conj(dftmtx(n))/n