Tecnología

Inicio

Cómo utilizar la FFT en MATLAB

Cómo utilizar la FFT en MATLAB


Transformada Rápida de Fourier (FFT) es una técnica usada con frecuencia en el procesamiento de señales. Una transformada de Fourier aproxima cualquier función continua como la suma de funciones periódicas (senos y cosenos). FFT hace lo mismo para las señales discretas - serie de puntos de datos en lugar de una función continua definida. FFT le permite identificar componentes periódicas en su señal discreta. Puede que sea necesario para identificar una señal periódica enterrado bajo ruido aleatorio, o analizar una señal con varios diferentes fuentes subyacentes periódicas. MATLAB incluye una aplicación integrada de la FFT para ayudarle a hacer esto.

Instrucciones

Realizar la FFT

1 Calcular la longitud (número de elementos) del vector que contiene sus datos. Por ejemplo, si los datos se almacenan en un vector llamado "d", "L = longitud (d);" en la línea de comandos de MATLAB sin comillas. L contendrá ahora el número de elementos en d.

2 Calcular la potencia de 2 que es mayor que o igual a L, escribiendo "p = nextpow2 (L);" en la línea de comandos de MATLAB sin comillas. Si L = 1000, por ejemplo, p será 10, porque 2 ^ 10 = 1,024.

3 Realizar la FFT escribiendo "Y = fft (d, 2 ^ p);" en la línea de comandos de MATLAB sin comillas. Este comando añade ceros a d para obtener un vector de longitud 2 ^ p y entonces realiza FFT en el vector 2 ^ p-elemento. Los ceros adjuntas no afectan el resultado de la FFT, pero FFT se ejecuta más rápido con un vector cuya longitud es una potencia de 2.

El vector resultante Y da los coeficientes de las funciones seno y coseno a frecuencias que van desde - (2 ^ p / 2)) a 1 + (2 ^ p / 2) (suponiendo que d se tomaron muestras a 1 muestra por segundo, o 1 Hz). Estas son las funciones seno y coseno que se suman a la señal original d. Y es complejo; sus partes real son los coeficientes de las funciones seno, y sus partes imaginarias son los coeficientes de las funciones coseno.

4 Mantener sólo las partes únicas de Y escribiendo "Y = Y (1: ((2 ^ p + 1) / 2));" sin las comillas en la línea de comandos de MATLAB. Esto es necesario porque la salida del FFT es simétrica - es decir, el segundo medio de Y es simplemente el complejo conjugado de la primera mitad. Ahora, Y da los coeficientes de las funciones seno y coseno en las frecuencias de 0 a 1 + (2 ^ p / 2)).

5 Y dividir por L / 2 escribiendo "Y = Y./(L/2);" en la línea de comandos de MATLAB sin comillas. Esto es necesario porque la salida FFT predeterminada de MATLAB se multiplica por un factor de L / 2, por lo que será mayor si d es más larga. Dividiendo por L / 2 normaliza la salida de la FFT de manera que no depende de la longitud de d.

Parcela resultados FFT

6 Si D no se tomaron muestras a 1 Hz, pero en alguna frecuencia "f", las frecuencias reales representados en Y serán 0 a f

(1 + (2 ^ p / 2))). Calcular un vector que contiene MATLAB estas frecuencias. En primer lugar, definir su frecuencia de muestreo real en una variable f. Si su frecuencia de muestreo real fue de 0.5Hz (1 muestra cada 2 segundos), debería escribir "f = 0,5;" en la línea de comandos de MATLAB sin comillas. ". Frec = f (0: (1 + (2 ^ p / 2))))" A continuación, escriba en la línea de comandos de MATLAB sin comillas. Ahora frec contiene las frecuencias reales representados en Y.

7 Obtener la amplitud de la componente de señal en cada frecuencia escribiendo "Ya = abs (Y)". en la línea de comandos de MATLAB sin comillas.

8 Trazar el espectro de amplitud de la señal escribiendo "trama (frecuencia, Ya)" en la línea de comandos de MATLAB sin comillas.

9 Obtenga la potencia de la componente de señal en cada frecuencia escribiendo "yp = Y. ^ 2" en la línea de comandos de MATLAB sin comillas.

10 Trazar el espectro de potencia de la señal escribiendo "trama (frecuencia, Yp)" en la línea de comandos de MATLAB sin comillas.

Consejos y advertencias

  • El más largo es el vector de datos de entrada d, mejor resolución de frecuencia que van a recibir.