Main Content

La traducción de esta página aún no se ha actualizado a la versión más reciente. Haga clic aquí para ver la última versión en inglés.

ifft

Transformada rápida de Fourier inversa

Descripción

ejemplo

X = ifft(Y) calcula la transformada discreta de Fourier inversa de Y utilizando un algoritmo de transformada rápida de Fourier. X es del mismo tamaño que Y.

  • Si Y es un vector, ifft(Y) devuelve la transformada inversa del vector.

  • Si Y es una matriz, ifft(Y) devuelve la transformada inversa de cada columna de la matriz.

  • Si Y es un arreglo multidimensional, ifft(Y) trata los valores de la primera dimensión cuyo tamaño no es igual a 1 como vectores y devuelve la transformada inversa de cada vector.

ejemplo

X = ifft(Y,n) devuelve la transformada de Fourier inversa de n puntos de Y rellenando Y con ceros al final hasta la longitud n.

ejemplo

X = ifft(Y,n,dim) devuelve la transformada de Fourier inversa en la dimensión dim. Por ejemplo, si Y es una matriz, ifft(Y,n,2) devuelve la transformada inversa de n puntos de cada fila.

ejemplo

X = ifft(___,symflag) especifica la simetría de Y además de cualquiera de las combinaciones de argumentos de entrada de las sintaxis anteriores. Por ejemplo, ifft(Y,'symmetric') trata Y como simétrica conjugada.

Ejemplos

contraer todo

La transformada de Fourier y su inversa convierten datos muestreados en tiempo y espacio en datos muestreados en frecuencia.

Cree un vector y calcule su transformada de Fourier.

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

Calcule la transformada inversa de Y, que es igual que el vector original X.

ifft(Y)
ans = 1×5

     1     2     3     4     5

La función ifft le permite controlar el tamaño de la transformada.

Cree una matriz aleatoria de 3 por 5 y calcule la transformada de Fourier inversa de 8 puntos de cada fila. Cada fila del resultado tiene longitud 8.

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

     3     8

En el caso de vectores simétricos casi conjugados, puede calcular la transformada de Fourier inversa más rápido especificando la opción 'symmetric', que también garantiza que la salida sea real. Los datos simétricos casi conjugados pueden aparecer cuando los cálculos introducen un error de redondeo.

Cree un vector Y que sea casi simétrico conjugado y calcule su transformada de Fourier inversa. A continuación, calcule la transformada inversa especificando la opción 'symmetric', que elimina las partes imaginarias cercanas a 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

Argumentos de entrada

contraer todo

Arreglo de entrada, especificado como vector, matriz o arreglo multidimensional. Si Y es del tipo single, ifft calcula de forma nativa en precisión simple e X es también del tipo single. De lo contrario, X se devuelve como tipo double.

Tipos de datos: double | single | int8 | int16 | int32 | uint8 | uint16 | uint32 | logical
Soporte de números complejos:

Longitud de transformada inversa, especificada como [] o un escalar entero no negativo. Rellenar Y con ceros especificando una longitud de transformada mayor que la longitud de Y puede mejorar el rendimiento de ifft. La longitud se especifica normalmente como una potencia de 2 o un producto de números primos pequeños. Si n es menor que la longitud de la señal, ifft ignora el resto de valores de señal más allá de la n-ésima entrada y devuelve el resultado truncado. Si n es 0, ifft devuelve una matriz vacía.

Tipos de datos: double | single | int8 | int16 | int32 | uint8 | uint16 | uint32 | logical

Dimensión en la que operar, especificada como escalar entero positivo. De forma predeterminada, dim es la primera dimensión del arreglo cuyo tamaño no es igual a 1. Por ejemplo, considere una matriz Y.

  • ifft(Y,[],1) devuelve la transformada de Fourier inversa de cada columna.

    ifft(Y,[],1) column-wise operation

  • ifft(Y,[],2) devuelve la transformada de Fourier inversa de cada fila.

    ifft(Y,[],2) row-wise operation

Tipos de datos: double | single | int8 | int16 | int32 | uint8 | uint16 | uint32 | logical

Tipo de simetría, especificado como 'nonsymmetric' o 'symmetric'. Cuando Y no es exactamente simétrica conjugada debido a un error de redondeo, ifft(Y,'symmetric') trata Y como si fuera simétrica conjugada ignorando la segunda mitad de sus elementos (que están en el espectro de frecuencias negativas). Para obtener más información sobre la simetría conjugada, consulte Algoritmos.

Más acerca de

contraer todo

Transformada discreta de Fourier de un vector

Y = fft(X) y X = ifft(Y) implementan la transformada de Fourier y la transformada inversa de Fourier, respectivamente. Para X e Y de longitud n, estas transformadas se definen de la siguiente manera:

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

donde

Wn=e(2πi)/n

es una de n raíces de unidad.

Algoritmos

  • La función ifft comprueba si los vectores de Y son simétricos conjugados. Si los vectores de Y son simétricos conjugados, el cálculo de la transformada inversa es más rápido y la salida es real.

    Una función g(a) es simétrica conjugada si g(a)=g*(a). Sin embargo, la transformada rápida de Fourier de una señal en el dominio del tiempo tiene una mitad de su espectro en frecuencias positivas y la otra en frecuencias negativas, y el primer elemento se reserva para la frecuencia cero. Por esta razón, un vector v es simétrico conjugado cuando v(2:end) es igual a conj(v(end:-1:2)).

Capacidades ampliadas

Historial de versiones

Introducido antes de R2006a