100% encontró este documento útil (1 voto)
190 vistas13 páginas

Análisis Espectral con FFT en Matlab

Este documento describe cómo utilizar la transformada rápida de Fourier (FFT) para obtener la descomposición espectral de señales discretas. Explica la teoría de la FFT y cómo implementarla en Matlab para analizar diversas señales, incluidas señales con múltiples tonos, impulsos y pulsos. El documento también concluye que la FFT puede usarse para analizar el comportamiento de una señal en el dominio de la frecuencia y observar la magnitud de sus componentes.

Cargado por

Adrian Narvaez
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd
100% encontró este documento útil (1 voto)
190 vistas13 páginas

Análisis Espectral con FFT en Matlab

Este documento describe cómo utilizar la transformada rápida de Fourier (FFT) para obtener la descomposición espectral de señales discretas. Explica la teoría de la FFT y cómo implementarla en Matlab para analizar diversas señales, incluidas señales con múltiples tonos, impulsos y pulsos. El documento también concluye que la FFT puede usarse para analizar el comportamiento de una señal en el dominio de la frecuencia y observar la magnitud de sus componentes.

Cargado por

Adrian Narvaez
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd

PROCESAMIENTO DIGITAL DE S

UNIVERSIDAD TECNOLOGICA DEL PER

Curso
Profesora
Tema
Turno
Integrantes

:
:

Procesamiento digital de seales

Nolasco Corrales Marlene Azucena


:

Laboratorio N 07

: Noche
:

Narvez Espinoza Jorge Adrian


Gonzales Riveros Tefilo Ral

2016-II

LABORATORIO N08

1.-OBJETIVO:
Utilizar la transformada rpida de Fourier para obtener la descomposicin de
una seal discreta en sus armnicos.
2.-MARCO TEORICO:
FFT es la abreviatura usual (del ingls Fast Fourier Transform) de un eficiente
algoritmo que permite calcular la transformada de Fourier discreta (DFT) y su
inversa. La FFT es de gran importancia en una amplia variedad de
aplicaciones, desde el tratamiento digital de seales y filtrado digital en general
a la resolucin de ecuaciones en derivadas parciales o los algoritmos de
multiplicacin rpida de grandes enteros. El algoritmo pone algunas
limitaciones en la seal y en el espectro resultante. Por ejemplo: la seal de la
que se tomaron muestras y que se va a transformar debe consistir de un
nmero de muestras igual a una potencia de dos. La mayora de los
analizadores TRF permiten la transformacin de 512, 1024, 2048 o 4096
muestras. El rango de frecuencias cubierto por el anlisis TRF depende de la
cantidad de muestras recogidas y de la proporcin de muestreo.
Uno de los algoritmos aritmticos ms ampliamente utilizados es la
transformada rpida de Fourier, un medio eficaz de ejecutar un clculo
matemtico bsico y de frecuente empleo. La transformada rpida de Fourier
es de importancia fundamental en el anlisis matemtico y ha sido objeto de
numerosos estudios. La aparicin de un algoritmo eficaz para esta operacin
fue una piedra angular en la historia de la informtica.
Las aplicaciones de la transformada rpida de Fourier son mltiples. Es la base
de muchas operaciones fundamentales del procesamiento de seales, donde
tiene amplia utilizacin. Adems, proporciona un medio oportuno para mejorar
el rendimiento de los algoritmos para un conjunto de problemas aritmticos
comunes.
El anlisis espectral se refiere al proceso de descomposicin de una seal en
sus componentes de frecuencia. Con este anlisis se obtiene de cada
componente de frecuencia una magnitud y una fase que representan lo que
conocemos como transformada de Fourier. Para el caso de seales discretas
se tiene la correspondiente transformada de Fourier de tiempo discreto (DTFT),
la cual es una representacin de la misma seal pero en el domino de la
frecuencia discreta. Con la DTFT se obtiene una funcin continua de la
frecuencia discreta que se puede obtener directamente de la expresin
matemtica que la define,

Si la seal a analizar fuera de duracin infinita sera imposible evaluar


numricamente la expresin anterior debido a las limitaciones de memoria en
los equipos de cmputo. Sin embargo si la seal es de duracin finita entonces
la ecuacin se puede calcular para cualquier valor de frecuencia.
Desafortunadamente la cantidad de operaciones y los requerimientos de
memoria aumentan de forma exponencial con el nmero de muestras.

Para sobrepasar este inconveniente se defini una nueva transformada


denominada transformada discreta de Fourier DFT que equivale al
desarrollo en series de Fourier para la seal a analizar. Para esto se supone
que la seal representa solo un periodo de una seal ficticia de la cual se
calcula su serie. Adems se desarroll la trasformada rpida de Fourier FFT
que calcula la DFT mediante un la algoritmo que realiza las operaciones de
forma eficiente.
Existe una rutina en Matlab fft que calcula la FFT y que puede usarse para
analizar espectralmente una secuencia de duracin finita. La funcin
regresa el mismo nmero de datos que los que se ingresan. Si se utiliza
una secuencia de 10 elementos la fft regresa 10 datos que representan los
componentes de frecuencia de la secuencia original espaciados por 2/N
radianes, donde N representa el nmero de muestras de la seal.
El orden en que la funcin fft de matlab entrega los componentes de
frecuencia es diferente a como estamos acostumbrados a graficarlos
(frecuencias positivas a la derecha y negativas a la izquierda), nos da los
componentes de frecuencia negativa a la derecha despus del ultimo
componente de frecuencia positiva.
Para ordenar los componentes de frecuencia en el orden acostumbrado se
utiliza la funcin fftshift.
Otras funciones comunes en el anlisis espectral son abs y angle la
primera para obtener el valor absoluto de una seal compleja y la segunda
para la fase.
3.-DESARROLLO:
Utilizar la transformada rpida de Fourier para obtener la descomposicin de
una seala discreta en sus armnicos.
3.1.-Graficar el contenido espectral de la seal:

X [ n]=cos (0.1 )
usando la transformada rpida de Fourier.
clc;
clear all;
close all;
n=linspace(0,40,4096);
f=cos(0.1*pi*n);
subplot(2,1,1)
plot(n,f);
title('Seal en el tiempo')
axis([0 40 -1.1 1.1])
nk=linspace(-206,205,4096);
F=fftshift(fft(f));
subplot(2,1,2)
stem(nk,abs(F))

title('Magnitud de frecuencia del especgro F')

3.2.- Generar una seal cuyas frecuencias sea 0.9 y graficar su


contenido espectral junto con la secuencia.
clc;
clear all;
close all;
n=linspace(0,4.44,4096);
nk=linspace(-206,205,4096);
xn=cos(0.9*pi*n);
xk1=fft(xn);
xk=fftshift(fft(xn));
k=nk;
subplot(3,1,1);
stem(nk,abs(xk));
title('Contenido espectral xk')
xn=ifft(xk1);
subplot(3,1,2);
stem(n,real(xn));
title('Secuencia de x[n]')
axis([0 4.44 -1.5 1.5])
subplot(3,1,3);
plot(n,real(xn));
title('Seal en t')
axis([0 4.44 -1.1 1.1])

3.3.-Generar una seal con tres tonos diferentes sobrepuestos cuyas


frecuencias son 0.1, 0.3 0.7 y graficar su contenido espectral junto
con la secuencia. En este caso la expresin matemtica para la seal a
analizar es una suma de tres funciones coseno a las frecuencias
mencionadas.
clc;
clear all;
close all;
n=linspace(0,20,64);
nk=linspace(-32,31,64);
xn=cos(0.1*pi*n)+cos(0.3*pi*n)+cos(0.7*pi*n);
xk1=fft(xn);
xk=fftshift(fft(xn));
k=nk;
subplot(3,1,1);
stem(nk,abs(xk));
title('Contenido espectral xk')
axis([-32 31 0 40])
xn=ifft(xk1);
subplot(3,1,2);
stem(n,real(xn));
title('Secuencia de x[n]')
subplot(3,1,3);

plot(n,real(xn));
title('Seal en t')

3.4.-Analizar el contenido espectral de la seal impulso unitario localizado


en n=100 con 0<n<200. Aqu hay que generar la secuencia definida desde
n=0 hasta n=200 con un impulso unitario en n=100 y despus aplicar la fft.
clc;
clear all;
close all;
xn=zeros(1,200);
xn(100)=1;
subplot(2,1,1);
stem(xn);
title('Seal x[n]')
axis([0 200 0 1.1])
xk=fft(xn);
subplot(2,1,2);
stem(abs(xk));
title('Contenido espectral xk')
axis([0 200 0 1.1])

3.5.- Analizar el contenido espectral de la seal impulso unitario


localizado en n=0 con 0<n<200. Se procede igual que en 4.

clc;
clear all;
close all;
xn=zeros(1,200);
xn(1)=1;
subplot(2,1,1);
stem(xn);
title('Seal x[n]')
axis([0 200 0 1.1])
xk=fft(xn);
subplot(2,1,2);
stem(abs(xk));
title('Contenido espectral xk')
axis([0 200 0 1.1])

3.6.Analizar el contenido espectral de las siguientes seales


a) x(n)=5[u(n)-u(n-20)]

-20<n<40 Pulso rectangular

clc;
clear all;
close all;
n=linspace(-20,40,61);
xn=zeros(1,61);
xn(21:40)=1;
subplot(2,1,1);
stem(n,xn);
title('Seal x[n]')
axis([-20 40 0 1.2])
subplot(2,1,2);
nk=-30:30;
xk=fftshift(fft(xn));
stem(nk,abs(xk));
title('Contenido espectral xk')
axis([-30 30 0 22])

b) x(n)=

n
25

[u(n)-u(n-100)]

clc;
clear all;
close all;
n=-100:200;
nx=zeros(1,301);
nx(101:200)=1;
A=(pi/25)*n;
y=sin(A);
z=y.*nx;
subplot(2,1,1);
stem(n,z);
title('Seal x[n]')
axis([-100 200 -1.2 1.2])
subplot(2,1,2);
nk=-150:150;
xk=fftshift(fft(z));
stem(nk,abs(xk));
title('Contenido espectral xk')
axis([-50 50 0 55])

-100<n<200 pulso sinusoidal

3.7.- un pulso rectangular con inicio en n=100 y fin en 150 con 0<n<200.
Igual pero se genera un pulso en lugar de un impulso.
clc;
clear all;
close all;
n=0:200;
xn=zeros(1,201);
xn(101:150)=1;
subplot(2,1,1);
stem(n,xn);
title('Seal x[n]')
subplot(2,1,2);
nk=-200:100;
xk=fftshift(fft(xn));
stem(nk,abs(xk));
title('Contenido espectral xk')

4.-Conclusiones:

El espectro de las frecuencia no sufre alteraciones, as la funcin haya


sido desplazada en el tiempo.

Las seales seno y coseno son representados por medio de las


funciones Delta Dirac o impulsos unitarios.

El espectro de las frecuencias de una funcin de impulso en el tiempo es


una funcin constante unitaria.

Con el espectro de frecuencias podemos analizar el comportamiento de


la seal a lo largo de la frecuencia, podemos ver el comportamiento de
su magnitud

En el espectro de frecuencia, tomamos ms importancia a la magnitud


que a la fase de la funcin

Para aplicar la transformada rpida de Fourier en Matlab tenemos que


tener en cuenta que el nmero de puntos se mltiplo de

Se comprueba el comando fftshift para graficar correctamente el


espectro de las frecuencia

Se comprueba el uso de los comando fft e ifft para la transformada de


Fourier y transformada de Fourier inversa respectivamente.

También podría gustarte