ifft

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

Синтаксис

X = ifft(Y)
X = ifft(Y,n)
X = ifft(Y,n,dim)
X = ifft(___,symflag)

Описание

пример

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 как сопряженный симметричный.

Примеры

свернуть все

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

Создайте вектор и вычислите его преобразование Фурье.

X = [1 2 3 4 5];
Y = fft(X)
Y = 1×5 complex

  15.0000 + 0.0000i  -2.5000 + 3.4410i  -2.5000 + 0.8123i  -2.5000 - 0.8123i  -2.5000 - 3.4410i

Вычислите обратное преобразование Y, который совпадает с исходным вектором X.

ifft(Y)
ans = 1×5

     1     2     3     4     5

Функция ifft позволяет вам управлять размером преобразования.

Создайте случайную матрицу 3 на 5 и вычислите обратное преобразование Фурье с 8 точками каждой строки. Каждая строка результата имеет длину 8.

Y = rand(3,5);
n = 8;
X = ifft(Y,n,2);
size(X)
ans = 1×2

     3     8

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

Создайте векторный Y, который является почти сопряжен симметричный, и вычислите его обратное преобразование Фурье. Затем вычислите обратное преобразование, задающее опцию 'symmetric', которая устраняет эти почти 0 мнимых частей.

Y = [1 2:4+eps(4) 4:-1:2]
Y = 1×7

    1.0000    2.0000    3.0000    4.0000    4.0000    3.0000    2.0000

X = ifft(Y)
X = 1×7 complex

   2.7143 + 0.0000i  -0.7213 + 0.0000i  -0.0440 - 0.0000i  -0.0919 + 0.0000i  -0.0919 - 0.0000i  -0.0440 + 0.0000i  -0.7213 - 0.0000i

Xsym = ifft(Y,'symmetric')
Xsym = 1×7

    2.7143   -0.7213   -0.0440   -0.0919   -0.0919   -0.0440   -0.7213

Входные параметры

свернуть все

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

Типы данных: double | single | int8 | int16 | int32 | uint8 | uint16 | uint32 | logical
Поддержка комплексного числа: Да

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

Типы данных: double | single | int8 | int16 | int32 | uint8 | uint16 | uint32 | logical

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

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

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

Типы данных: double | single | int8 | int16 | int32 | uint8 | uint16 | uint32 | logical

Тип симметрии, заданный как 'nonsymmetric' или 'symmetric'. Когда Y не точно сопряжен симметричный из-за ошибки округления, ifft(Y,'symmetric') обрабатывает Y, как будто это было сопряжено симметричный. Для получения дополнительной информации о сопряженной симметрии см. Алгоритмы.

Больше о

свернуть все

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

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

Y(k)=j=1nX(j)Wn(j1)(k1)X(j)=1nk=1nY(k)Wn(j1)(k1),

где

Wn=e(2πi)/n

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

Алгоритмы

  • Функция ifft тестирует, являются ли векторы в Y сопряженными симметричный. Векторный v сопряжен симметричный, когда он равняется conj(v([1,end:-1:2])). Если векторы в Y сопряжены симметричный, то обратное вычисление преобразования быстрее, и вывод действителен.

Расширенные возможности

Смотрите также

| | | |

Представлено до R2006a