Cómo grafica matlab la función fftshift

25/04/2017

Valoración: 4.74 (1926 votos)

MATLAB, un entorno de computación numérica ampliamente utilizado, ofrece la función fftshiftpara manipular los resultados de la Transformada Rápida de Fourier (FFT). Esta función es crucial para la correcta interpretación de los espectros de frecuencia, ya que reorganiza los datos de salida de la FFT para que la frecuencia cero (o componente DC) se ubique en el centro del gráfico, en lugar de en uno de los extremos.

Índice
  1. Funcionamiento de fftshift en MATLAB
  2. La Transformada Rápida de Fourier (FFT)
  3. FFT en MATLAB y la función fft
  4. Visualización con fftshift: Un Ejemplo
  5. Comparativa: fft vs. fftshift en MATLAB
  6. Consultas habituales sobre fftshift
  7. Aplicaciones de fftshift

Funcionamiento de fftshift en MATLAB

La función Y = fftshift(X)reordena los elementos de la matriz X(que típicamente contiene los resultados de una FFT) desplazando el componente de frecuencia cero al centro. Su comportamiento varía según la dimensionalidad de la entrada:

  • Vector: Si X es un vector, fftshift intercambia las mitades izquierda y derecha del vector. La mitad izquierda pasa a ser la segunda mitad, y viceversa.
  • Matriz: Si X es una matriz, fftshift intercambia los cuadrantes: el primer cuadrante con el tercero, y el segundo con el cuarto. Esto facilita la visualización de la simetría que generalmente existe en el espectro de frecuencias.

Es importante destacar que fftshiftno realiza ningún cálculo matemático sobre los datos; simplemente reorganiza su orden. Esto es fundamental para la visualización correcta de los espectros, ya que la frecuencia cero suele ser el punto de referencia más significativo en el análisis de frecuencia.

La Transformada Rápida de Fourier (FFT)

Antes de profundizar en la visualización con fftshift, es fundamental comprender la FFT. La FFT es un algoritmo eficiente para calcular la Transformada Discreta de Fourier (DFT). La DFT transforma una señal del dominio del tiempo al dominio de la frecuencia, mostrando las diferentes componentes de frecuencia que constituyen la señal. En otras palabras, descompone una señal compleja en sus frecuencias constituyentes.

La fórmula matemática de la DFT es:

como grafica matlab la fftshipt - Qué hace FFTShift

X k = Σ n=0 N-1 x n e -j2πkn/N

Donde:

  • x n representa la señal en el dominio del tiempo.
  • X k representa la señal en el dominio de la frecuencia.
  • N es el número de muestras de la señal.
  • j es la unidad imaginaria (√-1).

La FFT optimiza el cálculo de la DFT, reduciendo la complejidad computacional de O(N 2) a O(N log 2N). Esta mejora de eficiencia es fundamental para el procesamiento de señales de gran tamaño.

FFT en MATLAB y la función fft

En MATLAB, la función fft(x)calcula la FFT del vector de entrada x. El resultado es un vector de números complejos, donde cada elemento representa la amplitud y la fase de una componente de frecuencia específica. Sin embargo, la ordenación de estas componentes de frecuencia no es intuitiva: la frecuencia cero se encuentra en el primer elemento, seguida de las frecuencias positivas y, finalmente, las frecuencias negativas.

como grafica matlab la fftshipt - Qué es fft en Matlab

Para una representación más clara e interpretable, se emplea fftshiftpara reordenar los datos.

Visualización con fftshift: Un Ejemplo

Consideremos una señal sencilla, una onda sinusoidal:

t = 0:0.01:1;x = sin(2pi5t); % Señal de 5 Hzy = fft(x);z = fftshift(y);f = (-length(x)/2:length(x)/2-1)/(length(x)0.01); % Vector de frecuenciasplot(f,abs(z));xlabel('Frecuencia (Hz)');ylabel('Amplitud');title('Espectro de Frecuencia con fftshift');

En este código:

  • Se genera una onda sinusoidal de 5 Hz.
  • Se calcula la FFT usando fft .
  • Se reorganiza el espectro usando fftshift .
  • Se crea un vector de frecuencias para el eje horizontal.
  • Se grafica el espectro de magnitud (valor absoluto de los datos).

La gráfica resultante mostrará un pico pronunciado en 5 Hz, y otro en -5 Hz (debido a la simetría de la transformada de Fourier), ambos centrados en la frecuencia 0, demostrando el efecto visual de fftshift.

Comparativa: fft vs. fftshift en MATLAB

La siguiente tabla compara la visualización del espectro de frecuencia con y sin fftshift:

Función Descripción Gráfica
fft(x) Transformada Rápida de Fourier. La frecuencia 0 se encuentra al comienzo del vector resultante. El pico de frecuencia se encuentra en un extremo del gráfico.
fftshift(fft(x)) Combina FFT y fftshift . La frecuencia 0 se encuentra en el centro del vector resultante. El pico de frecuencia se encuentra en el centro del gráfico, facilitando su interpretación.

Consultas habituales sobre fftshift

A continuación, se responden algunas consultas habituales sobre el uso de fftshiften MATLAB:

como grafica matlab la fftshipt - Cómo funciona FFTShift en MATLAB

  • ¿Es necesario usar siempre fftshift después de fft? No es obligatorio, pero es altamente recomendable para una mejor visualización e interpretación del espectro de frecuencia. Si no se utiliza fftshift , la frecuencia cero estará en un extremo, lo que puede dificultar el análisis.
  • ¿Qué pasa si fftshift se aplica a una matriz de dimensiones impares? fftshift gestiona correctamente las matrices de dimensiones impares, asegurando que el componente de frecuencia cero esté en el centro.
  • ¿Puedo usar fftshift con otros tipos de transformadas? fftshift está diseñado principalmente para la reorganización de los datos de la FFT, pero se puede aplicar a otros tipos de datos para realizar reordenamientos similares.

Aplicaciones de fftshift

La función fftshifttiene diversas aplicaciones en el procesamiento de señales y análisis de datos, incluyendo:

  • Análisis espectral: Visualizar espectros de potencia y densidad espectral de potencia.
  • Filtrado de señales: Diseñar y aplicar filtros en el dominio de la frecuencia.
  • Procesamiento de imágenes: Realizar transformadas de Fourier en imágenes para el procesamiento de imágenes.
  • Análisis de vibraciones: Identificar frecuencias dominantes en señales de vibración.

En resumen, fftshiftes una herramienta esencial en MATLAB para el manejo y visualización de los resultados de la FFT, facilitando la interpretación de los espectros de frecuencia y mejorando la eficiencia del análisis de señales.

Subir