Transformada Fourier-informe
Enviado por lopjua • 15 de Noviembre de 2019 • Informe • 284 Palabras (2 Páginas) • 193 Visitas
[1]
INFORME 1
Transformada de fourier Matlab
OBJETIVOS
- Copiar el código en matlab para utilizar el comando de la transformada de Fourier “FFT” para aplicárselo a una señal y realizar su respectivo filtrado de sus componentes frecuenciales.
- Comprender el funcionamiento de la transformada de Fourier en las señales.
DESARROLLO TEÓRICO
Creamos las señales con el código que se muestra a continuación donde se van agregando contenidos frecuenciales y entre mas contenidos frecuenciales se agreguen va disminuyendo el rizado.
t=-3*pi:.02:3*pi;
q=size(t);
v=zeros(q(1),q(2));
for k=1:2:24;
v=v+(4/(k*pi)*cos(k*t+pi/2));
axis([-10,10 -2,2]);
subplot(3,4,(k+1)/2);
plot(t,v); grid on
end
Como observamos cuantos mas contenidos de frecuencia agreguemos a nuestro señal senosoidal, se va corrigiendo hasta volverse una señal cuadrada o un paso; y estos contenidos tienen que aumentarse hasta el infinito para que podamos observar el cambio de una señal senosoidal a una cuadrada.
[pic 1]
Con el siguiente código creamos el mensaje al cual vamos a aplicarle la transformada de Fourier.
t=0:0.01:3;
f=4;
y=2+sin(2*pi*f*t)+0.15*sin(2*pi*10*t)+sin(2*pi*20*t)+sin(2*pi*30*t);
figure(1)
plot(t,y);
[pic 2]
Continuamos aplicando el filtro pasabajos a la señal:
[B,A]=butter(7,1.5/50);
yf1=filter(B,A,y);
figure(3)
plot(yf1);
[pic 3]
Se adecua el filtro de forma que se vea de la siguiente manera:
[pic 4]
Luego le aplicamos el comando de “FFT”(Transformada rápida de Fourier) a la señal para que tenga la siguiente forma:
fy=fft(y,100);
py=fy.*conj(fy)/100^2;
freq= 100*(0:49)/100;
figure(2)
semilogy(freq,py(1:50));grid on
[pic 5]
[pic 6]
Ahora le realizamos el filtrado a la señal, pero para un filtro pasa Altos.
[B,A]=butter(7,1.5/50,'high');
yf1=filter(B,A,y);
figure(5)
plot(yf1);
fy=fft(yf1,100);
[pic 7]
Limiamos el ruido de la señal, en donde solo dejamos pasar las altas frecuencias:
py=fy.*conj(fy)/100^2;
freq=100*(0:49)/100;
figure(6)
semilogy(freq,py(1:50));
[pic 8]
Despues realizamos el trabajo para el filtro rechaza-banda.
[B,A]=butter(7,[5/50 25/50],'stop');
...