You are on page 1of 15

Cristian ivan Martinez mora cc 1013631280

1. Transformada de Fourier:
x[n] = cos(0.25pin) + cos(0.5pin)+ cos(0.52pin).

N=16
n = 0:15;
xn = cos(0.25*pi*n)+cos(0.5*pi*n)
+cos(0.52*pi*n);
L=length(xn);
XN=fft(xn,L);
j= fftshift(XN);
f=-1/2:1/L:1/2-1/L;
plot(f,abs(j))
xlabel(' FRECUENCIA Hz');
ylabel('AMPLITUD ');
grid on;
title(' ESPECTRO suma de seales');

N=32
n = 0:31;
xn = cos(0.25*pi*n)+cos(0.5*pi*n)
+cos(0.52*pi*n);
L=length(xn);
plot(n,xn)
XN=fft(xn,L);
f=-1/2:1/L:1/2-1/L;
plot(f,abs(XN))
xlabel(' FRECUENCIA Hz');
ylabel('AMPLITUD ');
grid on;
title(' ESPECTRO suma de seales');

N=64
n = 0:63;
n = 0:63;
xn = cos(0.25*pi*n)+cos(0.5*pi*n)
+cos(0.52*pi*n);
L=length(xn);
XN=fft(xn,L);
j= fftshift(XN);
f=-1/2:1/L:1/2-1/L;
plot(f,abs(j))
xlabel(' FRECUENCIA Hz');
ylabel('AMPLITUD ');
grid on;
title(' ESPECTRO suma de seales');

N=128
n = 0:127;
xn = cos(0.25*pi*n)+cos(0.5*pi*n)
+cos(0.52*pi*n);
L=length(xn);
XN=fft(xn,L);
j= fftshift(XN);
f=-1/2:1/L:1/2-1/L;
plot(f,abs(j))
xlabel(' FRECUENCIA Hz');
ylabel('AMPLITUD ');
grid on;
title(' ESPECTRO suma de seales');

N=256
n = 0:255;
xn = cos(0.25*pi*n)+cos(0.5*pi*n)
+cos(0.52*pi*n);
L=length(xn);
XN=fft(xn,L);
j= fftshift(XN);
f=-1/2:1/L:1/2-1/L;
plot(f,abs(j))
xlabel(' FRECUENCIA Hz');
ylabel('AMPLITUD ');
grid on;
title(' ESPECTRO suma de seales');

N=512
n = 0:511;
xn = cos(0.25*pi*n)+cos(0.5*pi*n)
+cos(0.52*pi*n);
L=length(xn);
XN=fft(xn,L);
j= fftshift(XN);
f=-1/2:1/L:1/2-1/L;
plot(f,abs(j))
xlabel(' FRECUENCIA Hz');
ylabel('AMPLITUD ');
grid on;
title(' ESPECTRO suma de seales');

1.1. Cmo estn relacionados los valores de L, N y la resolucin en frecuencias?


Explique
detalladamente.
Se puede observar que la ftt pide dos argumentos la seal y el numero de muestras con las
que hara la transformada de Fourier ,N debe ser un numero de muestras q debe
representarse en potencias de 2, asi que cuando hacemos los cambios de N = 16 ,32 ,
64,128,256,512. Podemos obtener una mejor visualizacin de las componentes de

frecuencias de las suma de los cosenos , si aumentamos el numero de muestras, por eso
desde 128 se logra una mejor resolucin.

1.2 Compruebe que sucede en el espectro de la seal si una secuencia de L= 100


muestras de x[n] se rellena con ceros hasta N=128. Describa el procedimiento
y agregue el segmento decdigo utilizado.
n = 0:99;
xn = cos(0.25*pi*n)+cos(0.5*pi*n)+cos(0.52*pi*n);
for i=101:128
x(i)=0;
end
L=length(xn);
XN=fft(xn,L);
j= fftshift(XN);
f=-1/2:1/L:1/2-1/L;
plot(f,abs(j))
xlabel(' FRECUENCIA Hz');
ylabel('AMPLITUD ');
grid on;
title(' ESPECTRO suma de seales');

1.3 Calcule la transformada inversa de la funcin X(ej_) utilizando la funcion ifft


(X(ej_)) para recuperar la seal en el dominio del tiempo. Verifique con el
clculo terico, aplicando propiedades de la transformada de Fourier.
Z=ifft(XN);
figure(2)
plot(t,Z)
xlabel(' TIEMPO
s');
ylabel('AMPLITU
D ');
grid on;
title('
transformada
inversa de
fourier ');

1.5. Cul es su frecuencia fundamental? Presente los clculos que justifiquen su


respuesta
La frecuencia fundamental es el mximo comn divisor entre las frecuencias de cada uno
de los cosenos.

Tambn por medio de esta funcin de Matlab


A= [200 400 500 1600 1700 ]
c = A(1);
for k = 2:length(A)
c = gcd(c,A(k));
end

c= 100;
1.6. Qu frecuencia de muestreo debe usarse? Justifique su respuesta

La teora de muestreo Nyquist dice que se debe usar 2 o mas veces la frecuencia
fundamental. Para que la seal sea muestreada correctamente.

1.7. Estime un valor adecuado de N para obtener suficiente precisin en el dominio de


la
frecuencia. Represente |X(j_)| y la fase de X(j_) en funcin de W

xt = 0.0472*cos(2*pi*(200)*t + 1.5077) +
0.1362*cos(2*pi*(400)*t + 1.8769) +
0.4884 *cos(2*pi*(500)*t- 0.1852)
+0.2942*cos(2*pi*(1600)*t -1.4488) +
0.1223*cos(2*pi*(1700)*t);
A= [200 400 500 1600 1700 ]
c = A(1);
for k = 2:length(A)
c = gcd(c,A(k));
end
Fs= c*100 ; % utilizando nyquist decimos
quela frecuencia de muestreo es 2 o mas
veces la frecuencia fundamental de la
senal
L=length(xt);
f=-1/2:1/L:1/2-1/L;
f=2*pi*f;
XN=fft(xt,L);
subplot(2,1,1)
stem(f,2*pi*abs(XN)))
xlabel(' FRECUENCIA W');
ylabel('AMPLITUD ');
grid on;
subplot(2,1,2)
plot(f,2*pi*phase(XN))
xlabel(' W');
ylabel('AMPLITUD ');
grid on;

2. Diseo de Filtros:
2.1. Disee los filtros necesarios (pasabajo) utilizando fdatool:

2.2. Exporte coeficientes y utilice las rutinas sosfilt.

2.3. Grafique en una sola figura:


2.3.1. Seal ecg proporcionada.
2.3.2. Espectro sealando componentes indeseadas
2.3.3. Seal ecg filtrada (pasan todas las frecuencias hasta 40Hz).
2.3.4. Espectro de seal ecg filtrada.

ecg=load('necg.txt');
Fs= 360;
Sfiltrada= sosfilt(SOS,ecg);
[m,n]=size(ecg);
b = fft(ecg,m);
f_esp= Fs/m;
fNy=Fs/2;
f_ini=-fNy;
f_fin=fNy-f_esp;
f=f_ini:f_esp:f_fin;
plot(f,2*fftshift(abs(b)));
[m,n]=size(ecg);
b = fft(ecg,m);
f_esp= Fs/m;
fNy=Fs/2;
f_ini=-fNy;
f_fin=fNy-f_esp;
f=f_ini:f_esp:f_fin;
subplot
subplot (3,2,[1 ])
plot(t,ecg);
axis([0 2.9 -600 900]);
xlabel(' TIMEPO s');
ylabel('AMPLITUD ');
grid on;
title('ECG');
subplot (3,2,2)

Sindeseado= sosfilt(SOS1,ecg);
g=fft(Sindeseado,m);
plot(f,fftshift(0.5*abs(g)), 'r');
xlabel(' FRECUENCIA Hz');
ylabel('AMPLITUD ');
title(' ESPECTRO ECG INDESEADO');
grid on;
subplot (3,2,3)
plot(f,fftshift(abs(b)), 'g');
xlabel(' FRECUENCIA Hz');
ylabel('AMPLITUD ');
grid on;
title(' ESPECTRO ECG SIN FILTRO');
subplot (3,2,4)
Sfiltrada= sosfilt(SOS,ecg);
plot(t,Sfiltrada);
xlim([0 3]);
xlabel(' TIMEPO s');
ylabel('AMPLITUD ');
grid on;
title(' ECG dominio tiempo FLITRADO 40 Hz');
subplot (3,2,[5 6 ])
c = fft(Sfiltrada,m);
plot(f,fftshift(abs(c)));
xlabel(' FRECUENCIA Hz');
ylabel('AMPLITUD ');
title(' ESPECTRO ECG FLITRADO 40 Hz');

VENTAJAS Y DESVENTAJAS FILTROS FIR & IIR

FIR : resuelta finita al impulso


IIR : respuesta infinita al impulso

Los filtros FIR tienen respuesta en fase lineal. Importante en transmisin de


datos, biomedicina, audio, imgenes. Los IIR tienen respuesta en fase no
lineal especialmente cerca de los bordes.

Al ser los FIR implementados por ecuaciones no recursivas siempre son


estables. La estabilidad de los IIR no est garantizada.

Ulitice un filtro butterworth del mismo orden anterior (17) pero esta vez programado
sobre la
lnea de comando: [b a]=butter(17,wn) con wn=40/360=40/(fs/2), filtre la seal ecg con
la funcin filter
y filtfilt, guarde ambas seales.
f_esp= Fs/m;
fNy=Fs/2;
f_ini=-fNy;
f_fin=fNy-f_esp;
f=f_ini:f_esp:f_fin;
subplot(4,2,1);
plot(t,ecg);
xlabel(' tiempo s');
ylabel('AMPLITUD ');
grid on;
title('Seal en tiempo de ECG')
subplot(4,2,2);
plot(f,fftshift(abs(x)));
title('espectro de ECG')
title('espectro de FILTFILT')
xlabel(' frecuencia HZ');
ylabel('AMPLITUD ');
grid on;
subplot(4,2,3);
plot(t,filtro3);
title('Seal en tiempo de SOSFILTER')
xlabel(' tiempo s');
ylabel('AMPLITUD ');
grid on;

subplot(4,2,4);
plot(f,fftshift(abs(yfiltro3)));
title('espectro de SOSFILTER')
title('espectro de FILTFILT')
xlabel(' frecuencia HZ');
ylabel('AMPLITUD ');
grid on;
subplot(4,2,5);
plot(t,filtro1);
title('Seal en tiempo de FILTER')
xlabel(' tiempo s');
ylabel('AMPLITUD ');
grid on;
subplot(4,2,6);
plot(f,fftshift(abs(yfiltro1)));
title('espectro de FILTFILT')
xlabel(' frecuencia HZ');
ylabel('AMPLITUD ');
grid on;
subplot(4,2,7);
plot(t,filtro2);
title('Seal en tiempo de FILTFILT')
xlabel(' tiempo s');
ylabel('AMPLITUD ');
grid on;
subplot(4,2,8);
plot(f,fftshift(abs(yfiltro2)));
title('espectro de FILTFILT')
xlabel(' frecuencia HZ');
ylabel('AMPLITUD ');
grid on;

Observando los ecgs en tiempo, que ventajas tiene filtfilt sobre filter?.
filtfilt

hace un filtrado de adelante-atrs, es decir, el filtro invierte la seal,

realiza filtrado digital de fase cero mediante el procesamiento


de los datos de entrada, x , tanto en las direcciones de avance y retroceso
y = filtfilt(b,a,x)

adems posee ventajas debido a que tiene Distorsin de fase cero ,Una funcin de
transferencia de filtro, que es igual a la magnitud cuadrtica de la funcin de
transferencia de filtro original y Una orden de filtro que es el doble del orden del filtro
especificado por b y a
y = filter( b , a , x ) filtra los datos de entrada x utilizando una funcin de
transferencia racional definida por el numerador y denominador coeficientes b y a .

You might also like