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

ifft

Страница в процессе разработки.

Обратное быстрое преобразование Фурье.

Библиотека

EngeeDSP

Синтаксис

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

  • X = ifft(Y) — вычисляет обратное дискретное преобразование Фурье для Y, используя алгоритм быстрого преобразования Фурье. Аргумент X имеет тот же размер, что и Y.

    • Если Y — вектор, то ifft(Y) возвращает обратное преобразование вектора.

    • Если Y — матрица, то ifft(Y) возвращает обратное преобразование каждого столбца матрицы.

    • Если Y — многомерный массив, то ifft(Y) рассматривает значения по первому измерению, размер которых не равен 1, как векторы и возвращает обратное преобразование каждого вектора.

  • X = ifft(Y,n) — возвращает n-точечное обратное преобразование Фурье для Y путем дополнения Y нулями до длины n.

  • X = ifft(Y,n,dim) — возвращает обратное преобразование Фурье по размерности dim. Например, если Y — матрица, то ifft(Y,n,2) возвращает n-точечное обратное преобразование для каждой строки.

  • X = ifft(___,symflag) — определяет симметричность Y в дополнение к любым комбинациям входных аргументов. Например, ifft(Y,"symmetric") рассматривает аргумент Y как сопряженно-симметричный.

Аргументы

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

# Y — входной массив
вектор | матрица | многомерный массив

Details

Входной массив, заданный как вектор, матрица или многомерный массив. Если Y имеет тип Float32, то функция ifft вычисляется с одинарной точностью, и X также имеет тип Float32. В противном случае X возвращается как тип Float64.

Типы данных

Float64, Float32, Int8, Int16, Int32, UInt8, UInt16, UInt32, Bool

Поддержка комплексных чисел

Да

# n — длина обратного преобразования
[] (по умолчанию) | неотрицательный целочисленный скаляр

Details

Длина обратного преобразования задается как [] или неотрицательным целым числом. Дополнение Y нулями путем указания длины преобразования, превышающей длину Y, может повысить производительность функции ifft. Длина обычно указывается как степень двойки или произведение небольших простых чисел. Если n меньше длины сигнала, то функция ifft игнорирует оставшиеся значения сигнала после n-го элемента и возвращает усеченный результат. Если n равно 0, то функция ifft возвращает пустую матрицу.

Типы данных

Float64, Float32, Int8, Int16, Int32, UInt8, UInt16, UInt32, Bool

# dim — измерение, по которому выполняется операция
положительный целочисленный скаляр

Details

Измерение, по которому выполняется операция, задается как положительное целое число. По умолчанию dim — первое измерение массива, размер которого не равен 1. Например, рассмотрим матрицу Y.

  • ifft(Y,[],1) возвращает обратное преобразование Фурье для каждого столбца.

    ifft 1

  • ifft(Y,[],2) возвращает обратное преобразование Фурье для каждой строки.

    ifft 2

Типы данных

Float64, Float32, Int8, Int16, Int32, UInt8, UInt16, UInt32, Bool

# symflag — тип симметрии
"nonsymmetric" (по умолчанию) | "symmetric"

Details

Тип симметрии, определяемый как "nonsymmetric" или "symmetric". Если аргмуент Y не является точно сопряженно-симметричным из-за ошибки округления, ifft(Y,"symmetric") трактует Y как сопряженно-симметричный, игнорируя вторую половину его элементов (находящихся в отрицательном частотном спектре). Подробнее о сопряженной симметрии см. в разделе Алгоритмы.

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

# X — выходной массив

Details

Выходной массив, возвращаемый в виде вектора, матрицы или многомерного массива.

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

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

Y = fft(X) и X = ifft(Y) реализуют преобразование Фурье и обратное преобразование Фурье соответственно. Для X и Y длины n эти преобразования определяются следующим образом:



где — один из корней из единицы.

Алгоритмы

  • Функция ifft проверяет, являются ли векторы в Y сопряженно-симметричными. Если векторы в Y сопряженно-симметричны, то вычисление обратного преобразования выполняется быстрее, а выходной сигнал — вещественный.

    Функция является сопряженно-симметричной, если . Однако быстрое преобразование Фурье сигнала во временной области имеет половину спектра в положительных частотах, а другую половину — в отрицательных, причем первый элемент зарезервирован для нулевой частоты. По этой причине вектор v является сопряженно-симметричным, когда v(2:end) равно conj(v(end:-1:2)).