Вы находитесь на странице: 1из 12

Universidad Tecnológica de Panamá

Facultad de Ingeniería Eléctrica

Comunicaciones I

Laboratorio 1B

“Análisis espectral usando la DFT/FFT”

Presentado por: Lilia Gutiérrez (8-912-581)

Ambar Ortega (2-737-147)

Marta Vásquez (8-905-530)

Grupo: 1IT141- B

Facilitador: Prof. Doranse Hurtado

Panamá, 21 de noviembre de 2017

Tabla de Contenido:

Resumen……………………………………………………………. 1

1. Introducción………………………………………………………1-2

2. Métodos y materiales utilizados ………………………………….2

3. Procedimiento experimentales……………………………………2-3

4. Resultados y Análisis de resultados………..…………………...3-11

5. Conclusiones y recomendaciones………………………………...12

6. Referencias………………………………………..........................12

Métodos y materiales utilizados

En primera instancia utilizamos una computadora que contenía instalado el software de MATLAB. En esta experiencia de
laboratorio trataremos realizar códigos para determinar el contenido espectral de señales continuas en el tiempo. Al modelar
señales con algún tipo de software se requiere presentar las señales con muestras, para esto entre las consideraciones que se deben
tomar en cuenta para modelar sistemas muestreados están: la razón o periodo de muestreo, las resoluciones de tiempo y
frecuencias, y qué transformaciones discretas (directa o inversas) de frecuencias se realizan, para realizar una transformada de
Fourier en Matlab se debe utilizar los comandos FFT en el caso de que el número de muestras sea una potencia de 2, de lo contrario
se utiliza DFT.

1
Procedimientos experimentales

Iniciamos leyendo la guía proporcionada, la cual está constituida por 3 puntos a realizar, los cuales fueron titulados de la siguiente
forma: FFT y FFTSHIFT, adición de ceros y ventanas (rectangular, hamming), análisis espectral- relación entre la resolución de
frecuencia y fuga espectral.

En la sección de FFT y FFTSHIFT: procedimos a realizar la resolución de frecuencia mediante códigos proporcionadas por el
profesor, calculamos la transformada de Fourier por medio de los códigos FFT y se graficó el espectro de amplitud de doble lado
y espectro de un solo lado. Con 2 tipos diferentes de amplitud y frecuencia.

Sección de adición de ceros y ventanas (rectangular, hamming): se usó para mejorar la estimación de los componentes de
frecuencia de una señal. Las frecuencias en la transformada discreta de Fourier están espaciadas en intervalos Fs/N (df, resolución
de frecuencias). Se interpolo la transformada DFT por medio de la adición de ceros, lo que permitió la estimación de las amplitudes
de los componentes espectrales de una señal. Pero no mejoro la resolución espectral de la DFT, la cual está determinada por
medio de números de muestras y razón de muestreo (Fs).

Sección de análisis espectral- relación entre la resolución de frecuencias y la fuga espectral: esta parte consta de 3 puntos, en el
primer punto se utilizaron 3 tipos diferentes de frecuencias: 𝑓1 = 4𝐾ℎ𝑧, 𝑓2 = 5𝐾ℎ𝑧, 𝑓3 = 6𝐾ℎ𝑧, en donde se realizó la resolución
de frecuencias, luego se realizó la gráfica de la señal X n vs el índice de muestras, se realizó el cálculo de la DFT y FFT para
graficar el espectro de un solo lado, luego se utilizó el comando IFFT para el cálculo de la transformada inversa de Fourier, se
realizó también la construcción de una ventana Hamming mediante los códigos proporcionados por el profesor.

El siguiente punto, se tiene una señal periódica rectangular x(t), con periodo T0, definida por:

𝐴, |𝑡| < 𝑡0
𝐴
𝑥(𝑡) = { , 𝑡 = ±𝑡0
2
0, 𝑑𝑒 𝑙𝑜 𝑐𝑜𝑛𝑡𝑟𝑎𝑟𝑖𝑜

Donde A=1, T0=10 y t0=1.

Se utilizó el código pulstran para generar la señal x (t) y se determinó y graficó el espectro de magnitud y la fase de la señal.

En el último punto, considerando la siguiente señal:

cos(2𝜋47𝑡) + cos(2𝜋219𝑡) , 0 < 𝑡 < 45 𝑚𝑠


𝑥(𝑡) = {
0, 0 > 𝑡 > 45 𝑚𝑠

Se graficó la señal en el intervalo -5>t>50 ms, la señal resultante (stem) con el código subplot2x1. Se graficó también el espectro
de amplitud y fase de la señal x(t). Se diseñó un filtro pasa bajas butterworth de orden 4 y frecuencia de corte de 10 hz, con el
comando butter en Matlab. Posteriormente se graficó la respuesta al impulso del filtro mediante el comando impz y se obtuvo la
gráfica de la señal de salida al introducir la señal de entrada por medio del filtro ya diseñado. Y por último se repitieron los mismos
pasos pero ahora con un filtro pasa bajas butterworth de orden 8.

2
Resultados

1. FFT y FFTSHIFT

Código:

N=1000;

Fs=1000;

df=N/Fs;

dt=1/Fs;

T=N*dt;

t=(0:N-1)*dt;

f=(0:N-1)*df;

f2=linspace(-500,500,1000);

f1=linspace(0,500,500);

a1=0.8; a2=1.2;

x=a1*cos(2*pi*100*t)+a2*sin(2*200*t);

X=(1/N)*abs(fft(x));

X2=fftshift(X);

X1=X(1:500);

subplot(3,1,1); plot(t,x);axis([0,0.5,-4,4]);title('Señal en el tiempo');

%subplot(4,1,2); plot(f,X);

subplot(3,1,2); plot(f2,X2);axis([-200,200,0,0.7]);title('Espectro de amplitud de doble lado');

subplot(3,1,3); plot(f1,X1);axis([0,200,0,0.7]);title('Espectro de amplitud de un solo lado');

Figura1.Señal en el dominio del tiempo, espectro de amplitud de doble lado y espectro de amplitud de un solo lado.

3
2. Adición de ceros y ventanas (rectangular, Hamming)

Código:

N=1000; %Numero de Muestras

Fs=1000; %Frecuencia de Muestreo

df=N/Fs; %Determinacion de la resolucion de frecuencia

dt=1/Fs;

T=N*dt;

t=(0:N-1)*dt;

f=(0:N-1)*df;

f1=(0:(N-1)/2);

%f1=linspace(0,500,1000); %//Zero Padding

x=sin(2*pi*100*t)+sin(2*pi*202.5*t);

X=(1/N)*abs(fft(x));

%X=(1/N)*abs(fft(x,2000)); %//Zero Padding

X1=X(1:500);

%X1=X(1:1000); %//Zero Padding

subplot(2,1,1); plot(t,x); title('Señal en el dominio del tiempo');axis([0,0.1,-2.5,2.5])

subplot(2,1,2); plot(f1,X1); title('Espectro de amplitud de un Solo Lado');axis([0,300,0,0.6])

Figura 2. Señal en el dominio del tiempo y espectro de amplitud de un solo lado.

4
3. Análisis espectral – relación entre la resolución de frecuencia y la fuga espectral

Código:

N=100;

Fs=20000;

f1=4000; f2=5000; f3=6000;

a1=1; a2=1; a3=1;

%Parte A

dt=1/Fs;

T=N*dt;

df=Fs/N;

f=(0:N-1)*df;

t=(0:N-1)*dt;

disp('Resolución es: '), disp(df);

Figura 3. Resolución

Código:

%Parte B

dn=0:1:N-1;

x=cos(2.*pi.*f1.*t)+cos(2.*pi.*f2.*t)+cos(2.*pi.*f3.*t);

figure

plot(dn,x);axis([0 50 -3 3]); title('Señal por muestras');

xlabel('N(número de muestras)'); ylabel('xn');

5
Figura 4. Señal por muestras.

Código:

%Parte C

n=256;

X=(1/N).*(fft(x,n));

X2=abs(X);

X1=X2(1:((n)/2)+1);

fn=f/Fs;

ft=linspace(0,1,length((X1)/Fs));

figure

plot(ft,X1); title('Espectro de Magnitud de un Solo Lado');

xlabel('Frecuencia Normalizada'); ylabel('Xn'); axis([0.2 0.8 0 0.5]);

Figura 5. Espectro de magnitud de un solo lado.

6
Codigo:

%ParteD

X3=ifft(X).*N;

figure

subplot(2,1,1); plot(x); title('Señal en el Tiempo');

xlabel('Número de muestras (N)'); ylabel('xn'); axis([50 120 -3 3]);

subplot(2,1,2); plot(X3); title('Señal Restaurada');

xlabel('Número de muestras (N)'); ylabel('Xn'); axis([50 120 -3 3]);

%%

Figura 6. Señal en el tiempo y la señal restaurada.

Código:

%ParteE;

w=hamming(N);

h=w'.*x;

figure

subplot(2,1,1); plot(x); title('Señal en el Tiempo');

xlabel('Número de muestras (N)'); ylabel('x'); axis([0 100 -3 3]);

subplot(2,1,2); plot(dn,h); title('Señal en Ventana Hamming');

xlabel('Número de muestras (N)'); ylabel('h'); axis([0 100 -3 3]);

%%

7
Figura 7. Señal en el tiempo y la señal en ventana hamming.

Código:

%ParteF

H=(1/N)*abs(fft(h,n));

H1=H(1:((n)/2)+1);

figure

plot(ft,H1); title('Espectro de Magnitud de xn*wn');

xlabel('Frecuencia Normalizada'); ylabel('H');

axis([0.2 0.8 0 0.3]);

%%

Figura 8. Espectro de magnitud de xn*wn en frecuencia normalizada.

8
Código:

%Parte G

N=10; dt=1/Fs; T=N*dt; df=Fs/N; f=(0:N-1)*df; t=(0:N-1)*dt;

x=cos(2.*pi.*f1.*t)+cos(2.*pi.*f2.*t)+cos(2.*pi.*f3.*t);

w=hamming(N); k=rectwin(N); h=w'.*x; r=k'.*x;

H=(1/N)*abs(fft(h,n)); R=(1/N)*abs(fft(r,n));

H1=H(1:((n)/2)+1); R1=R(1:((n)/2)+1);

figure

subplot(2,1,1); plot(ft,R1); title('Ventana Rectangular');

xlabel('Frecuencia Normalizada'); ylabel('N=10');

axis([0.2 0.8 0 0.8]);

subplot(2,1,2); plot(ft,H1); title('Ventana Hamming');

xlabel('Frecuencia Normalizada'); ylabel('N=10');

axis([0.2 0.8 0 0.4]);

Figura 9. Ventana rectangular y ventana hamming, en frecuencia normalizada y con un numero de muestras de 10.

9
N=25; dt=1/Fs; T=N*dt; df=Fs/N; f=(0:N-1)*df; t=(0:N-1)*dt;

x=cos(2.*pi.*f1.*t)+cos(2.*pi.*f2.*t)+cos(2.*pi.*f3.*t);

w=hamming(N); k=rectwin(N); h=w'.*x; r=k'.*x;

H=(1/N)*abs(fft(h,n)); R=(1/N)*abs(fft(r,n));

H1=H(1:((n)/2)+1); R1=R(1:((n)/2)+1);

figure

subplot(2,1,1); plot(ft,R1); title('Ventana Rectangular');

xlabel('Frecuencia Normalizada'); ylabel('N=25');

axis([0.2 0.8 0 0.8]);

subplot(2,1,2); plot(ft,H1); title('Ventana Hamming');

xlabel('Frecuencia Normalizada'); ylabel('N=25');

Figura 10. Ventana rectangular y ventana hamming, en frecuencia normalizada y con numero de frecuencia de 25.

10
N=50; dt=1/Fs; T=N*dt; df=Fs/N; f=(0:N-1)*df; t=(0:N-1)*dt;

x=cos(2.*pi.*f1.*t)+cos(2.*pi.*f2.*t)+cos(2.*pi.*f3.*t);

w=hamming(N); k=rectwin(N); h=w'.*x; r=k'.*x;

H=(1/N)*abs(fft(h,n)); R=(1/N)*abs(fft(r,n));

H1=H(1:((n)/2)+1); R1=R(1:((n)/2)+1);

figure

subplot(2,1,1); plot(ft,R1); title('Ventana Rectangular');

xlabel('Frecuencia Normalizada'); ylabel('N=50');

axis([0.2 0.8 0 0.6]);

subplot(2,1,2); plot(ft,H1); title('Ventana Hamming');

xlabel('Frecuencia Normalizada'); ylabel('N=50');

Figura 10. Ventana rectangular y ventana hamming, en frecuencia normalizada y con numero de muestra de 50.

11
12

Вам также может понравиться