Está en la página 1de 5

UCSP - Facultad de Ingeniería y Computación – Ing.

Electrónica y De Telecomunicaciones
2018-I
Curso: Sistemas Lineales

4
Sistemas Lineales
Guía de Prácticas:
Transformada de Fourier

Grupo: Fecha: Horario: Nota:

Alumno(a): Derly Luis Alberto Valdivia Capizo

1. Introducción:
La FFT es la abreviatura usual (del inglés Fast Fourier Transform), este eficiente
algoritmo nos permite calcular la transformada de Fourier discreta (DFT) y su inversa la
IFFT. Tiene una gran importancia en una amplia variedad de aplicaciones desde el
tratamiento digital de señales y filtrado digital.
2. Objetivos
Esta guía práctica tiene como objetivo:

 Desarrollar la transformada de Fourier como una herramienta que permite


representar a las señales no periódicas como una combinación lineal de señales
senoidales.

3. Contenido teórico
Asignatura de Sistemas Lineales – Primera Unidad

Funciones para el cálculo de la Transformada de Fourier.

MATLAB está equipado con funciones especiales que nos van a permitir
realizar un análisis de Fourier de señales definidas por un conjunto de valores
discretos. Por ejemplo, el comando fft() nos permite obtener la transformada
rápida de Fourier (fast Fourier Transform) de una secuencia de números
definida por el vector x .

Por ejemplo:
X = fft(x);

Donde X es un vector de números complejos ordenados desde


k =0... N−1 . Si queremos que sea más eficiente en el cálculo de la fft, la
longitud del vector x deberá ser una potencia de 2. Podemos rellenar de
ceros el vector x para que tenga la longitud apropiada. Esto se consigue
automáticamente haciendo:

1
UCSP - Facultad de Ingeniería y Computación – Ing. Electrónica y De Telecomunicaciones
2018-I
Curso: Sistemas Lineales

X = fft(x,N);

Donde N es exponente de 2. Mientras más largo sea x, más fina será la escala
para la fft. Debido a un fenómeno de plegamiento del espectro, sólo la primera
mitad de los puntos obtenidos son de utilidad. La función fftshift() reordena el
vector X en orden creciente de frecuencia. Si X es el vector resultante de
hacer una fft, utilizando esta función reordenamos los puntos en función de la
frecuencia [1].

X = fftshift(X);

4. Actividades
 Obtenga la transformada de Fourier de una señal exponencial modulada en
amplitud con una frecuencia de portadora de 200 Hz .
x (t)=exp (−2t )sin(2 π 200 t)

t=-0.5:0.001:0.5;
x=exp(-2*t).*sin(2*pi*200*t);
figure(1)
subplot(3,1,1);
plot(t,x);
grid on;
title('x(t)=exp(-2t)·sin(2·pi·200·t)');
xlabel('Tiempo (t)');ylabel('x(t)');
Tf=fft(x);
X=fftshift(Tf);
Xm=abs(X);
Xf=unwrap(angle(X))*180/pi;
delta_t = t(2)-t(1);
f = ((1:length(t)) - ceil(length(t)/2)) / length(t) / delta_t;
subplot(3,1,2);
plot(f,Xm);
grid on;
title('Módulo de transformada de Fourier de x(t)');
xlabel('Frecuencia (Hz)');ylabel('|X(jw)|');
subplot(3,1,3);
plot(f,Xf);
grid on;
title('Fase de la transformada de Fourier de x(t)');
xlabel('Frecuencia (Hz)');ylabel('Fase X(jw)');

2
UCSP - Facultad de Ingeniería y Computación – Ing. Electrónica y De Telecomunicaciones
2018-I
Curso: Sistemas Lineales

 A partir de la transformada de Fourier, es posible reconstruir la señal en el


dominio del tiempo. El comando ifft() sirve para obtener la transformada inversa
de Fourier de una serie de números complejos:

t=-0.5:0.001:0.5;
x=exp(-2*t).*sin(2*pi*200*t);
figure(1)
subplot(3,1,1);
plot(t,x);
grid on;
title('x(t)=exp(-2t)·sin(2·pi·200·t)');
xlabel('Tiempo (t)');ylabel('x(t)');
Tf=fft(x);
X=fftshift(Tf);
Xm=abs(X);
Xf=unwrap(angle(X))*180/pi;
delta_t = t(2)-t(1);
f = ((1:length(t)) - ceil(length(t)/2)) / length(t) / delta_t;
subplot(3,1,2);
plot(f,Xm);
grid on;
title('Módulo de transformada de Fourier de x(t)');
xlabel('Frecuencia (Hz)');ylabel('|X(jw)|');
subplot(3,1,3);
plot(f,Xf);
grid on;
title('Fase de la transformada de Fourier de x(t)');
xlabel('Frecuencia (Hz)');ylabel('Fase X(jw)');
R=ifft(Tf);

3
UCSP - Facultad de Ingeniería y Computación – Ing. Electrónica y De Telecomunicaciones
2018-I
Curso: Sistemas Lineales

figure(2)
plot(t,R);
grid on;
title('Reconstrucción de x(t)');
xlabel('Tiempo (t)');ylabel('x(t)');

 Genere un fichero en MATLAB (transf. Fourier.m) para obtener la transformada


de Fourier de la señal, x ( t )=1+cos (7∗pi∗t /2) -pi < t < pi. Realice la
transformada inversa y obtenga la señal en el tiempo a partir de su
transformada.

t=-pi:0.001:pi;
x=1+cos(7*pi*t/2);
figure(1)
subplot(3,1,1);
plot(t,x);
grid on;
title('x(t)=1+cos(7*pi*t/2))');
xlabel('Tiempo (t)');ylabel('x(t)');
Tf=fft(x);
X=fftshift(Tf);
Xm=abs(X);
Xf=unwrap(angle(X))*180/pi;
delta_t = t(2)-t(1);
f = ((1:length(t)) - ceil(length(t)/2)) / length(t) / delta_t;
subplot(3,1,2);
plot(f,Xm);
grid on;
title('Módulo de transformada de Fourier de x(t)');
xlabel('Frecuencia (Hz)');ylabel('|X(jw)|');
subplot(3,1,3);
plot(f,Xf);
grid on;
title('Fase de la transformada de Fourier de x(t)');
xlabel('Frecuencia (Hz)');ylabel('Fase X(jw)');
R=ifft(Tf);
figure(2)
plot(t,R);
grid on;
title('Reconstrucción de x(t)');
xlabel('Tiempo (t)');ylabel('x(t)');

4
UCSP - Facultad de Ingeniería y Computación – Ing. Electrónica y De Telecomunicaciones
2018-I
Curso: Sistemas Lineales

5. Conclusiones:
 Los comandos fft e ifft son de gran ayuda pues simplifica o reduce las líneas
código empleadas en los anteriores ejercicios en las cuales usamos bucles para
obtener los armónicos y luego con tales armónicos poder reconstruirla.
 El comando unwrap (P) corrige los ángulos de fase en radianes en un vector P
sumando múltiplos de ± 2π cuando los saltos absolutos entre elementos
consecutivos de P son mayores o iguales a la tolerancia de salto por defecto de
π radianes.
5

También podría gustarte