Descargar como pptx, pdf o txt
Descargar como pptx, pdf o txt
Está en la página 1de 39

BIOINGENIERÍA

DR. CARLOS ALONSO HERRERA RAMÍREZ

UNIDAD 2
FILTROS (FUNCIONES)
FILTROS

Filtros en MatLab

• MatLAb cuenta con varias funciones para realizar filtros, en este apartado se verá como
crear filtros Butterworth y Tschebyscheff
FILTROS

Filtros Butterworth

• >> help butter


• butter Butterworth digital and analog filter design.
• [B,A] = butter(N,Wn) diseña un filtro Butterworth digital
• pasabajas de Nth orden y retorna los coeficientes del filtro
• en los vectores A (denominator) y B (numerador) de longitud N+1
• y los coeficientes del filtro se muestran en potencias descendientes de z.
• La frecuencia de corte Wn debe estar 0.0 < Wn < 1.0, con 1.0 correspondiente a
• la mitad de la frecuencia de muestreo.
FILTROS

Filtros Butterworth

• >> help butter


• si Wn es un vector de dos elementos, Wn = [W1 W2], butter regresa un
• filtro pasabanda de orden 2N con una banda de paso W1 < W < W2.

• [B,A] = butter(N,Wn,'high') designs a highpass filter.

• [B,A] = butter(N,Wn,'low') designs a lowpass filter.

• [B,A] = butter(N,Wn,'stop') is a bandstop filter if Wn = [W1 W2].


FILTROS

Filtros Butterworth

• >> help butter


• % Example 1:
• % For data sampled at 1000 Hz, design a 9th-order highpass
• % Butterworth filter with cutoff frequency of 300Hz.

• Wn = 300/500; % Normalized cutoff frequency
• [z,p,k] = butter(9,Wn,'high'); % Butterworth filter
• [sos] = zp2sos(z,p,k); % Convert to SOS form
• h = fvtool(sos); % Plot magnitude response
FILTROS

Filtros Butterworth

• >> help butter


• % Example 2:
• % Design a 4th-order butterworth band-pass filter which passes
• % frequencies between 0.15 and 0.3.

• [b,a]=butter(2,[.15,.3]); % Bandpass digital filter design
• h = fvtool(b,a); % Visualize filter
FILTROS

Filtros Butterworth

>> [t,amps,data,aux] = read_intan_data;

Data file contains 200.49 seconds of data from 2 amplifier channels.


Channels: 6 11

>> plot(t,data(:,1))
>> grid
FILTROS

Filtros Butterworth
FILTROS

Filtros Butterworth

>> Sig = data(1250001:1375000,1);


>> tsig = t(1250001:1375000);
>> plot(tsig,Sig)
>> grid
FILTROS

Filtros Butterworth

Ejemplo 3

Diseñar un arreglo de filtros para filtrar la variable “Sig”, que cumpla las siguientes
características:

• Pasabajas = 200 Hz
• Pasaaltas = 1 Hz
• Rechazabanda = 60 Hz

Utilice el espectro de Fourier para verificar sus resultados


FILTROS

Filtros Butterworth

Ejemplo 3

>> Fs = 25000;
>> PBN = 200/(25000/2);
>> PAN = 1/(25000/2);
>> RB1 = 57/(25000/2);
>> RB2 = 63/(25000/2);
>> [Bl,Al] = butter(4,PBN,'low’);
>> sigpb = filter(Bl,Al,Sig);
>> plot(tsig,sigpb)
FILTROS

Filtros Butterworth

Ejemplo 3
FILTROS

Filtros Butterworth

Ejemplo 3

>> [Bh,Ah] = butter(4,PAN,'high’);

>> sigpa = filter(Bh,Ah,sigpb);

>> plot(tsig,sigpa)
FILTROS

Filtros Butterworth

Ejemplo 3
FILTROS

Filtros Butterworth

Ejemplo 3

>> Wn = [RB1 RB2];


>> [Bs,As]=butter(3,Wn,'stop');
>> sigf=filter(Bs,As,sigpa);
>> plot(tsig,sigf)
>> [ Y ] = FastandFourier( Fs, Sig); % Señal Original
>> [ Y ] = FastandFourier( Fs, sigf); % Señal Filtrada
FILTROS

Filtros Butterworth

Señal original
FILTROS

Filtros Butterworth

Señal Original
FILTROS

Filtros Butterworth

Señal Filtrada
FILTROS

Filtros Butterworth

• Práctica 5 Filtro Butterworth con funciones

∙ De la señal de Justo, recortar del segundo 45 al 52


∙ Sacar el espectro en frecuencias de la señal original
∙ Implementar un filtro de orden 10Th con las siguientes especificaciones:
o Filtro Pasa-bajas Fc = 180 Hz
▪ Mostrar el comportamiento del filtro con el comando “freqz” (fvtool)
o Filtro Pasa-altas Fc = 3 Hz
▪ Mostrar el comportamiento del filtro con el comando “freqz” (fvtool)
FILTROS

Filtros Butterworth

• Práctica 5 Filtro Butterworth con funciones

o Filtro rechazabanda Fc = 120 Hz


▪ Mostrar el comportamiento del filtro con el comando “freqz” (fvtool)
∙ Espectro en frecuencias de la señal filtrada
∙ Comparar la señal original con la filtrada
FILTROS

Filtros Chebychev

• >> help cheby1


• cheby1 diseño de filtro digital y analógico Chebyshev Tipo 1.

• [B,A] = cheby1(N,R,Wp) diseña un filtro pasabajas digital de Nth orden Chebyshev


• con una ondulación pico a pico en la banda de paso de R decibeles.
• Utilice R=0.5 como un punto de inicio si no está seguro de que valor escoger para R
• Cheby 1 regresa los coeficientes de la función de transferencia de longitud N+1
• donde B es el numerador y A el denominador.
• La frecuencia de corte Wp debe estar entre 0.0 < Wp < 1.0 (normalizada),
• donde 1.0 corresponde a la mitad de la frecuencia de corte.
FILTROS

Filtros Chebychev

• >> help cheby1


• cheby1 diseño de filtro digital y analógico Chebyshev Tipo 1.

• [b,a] = cheby1(n,Rp,Wp,ftype) diseña un filtro Chebyshev tipo I paso bajo, paso alto,
paso banda o eliminador de banda, dependiendo del valor de ftype y del número de
elementos de Wp. Los diseños de paso banda y de eliminador de banda resultantes son de
orden 2n.

• [z,p,k] = cheby1(___) diseña un filtro digital Chebyshev tipo I paso bajo, paso alto, paso
banda o eliminador de banda y devuelve sus ceros, polos y ganancia. Esta sintaxis puede
incluir cualquiera de los argumentos de entrada de las sintaxis anteriores.
FILTROS

Filtros Chebychev

• Ejemplos (filtro pasa bajas):

• Diseñe un filtro Chebyshev tipo I paso bajo de 6.º orden con 10 dB de ondulación de
banda de paso y una frecuencia de borde de banda de paso de 300 Hz, que, para datos
muestreados a 1000 Hz, corresponde a 0.6π rad/muestra. Represente sus respuestas de
magnitud y fase. Utilícelo para filtrar una señal aleatoria de 1000 muestras.
FILTROS

Filtros Chebychev

• Ejemplos:
FILTROS

Filtros Chebychev

• Ejemplos (filtro eliminador de banda):

• Diseñe un filtro Chebyshev tipo I eliminador de banda de 6.º orden con frecuencias de
borde normalizadas de 0.2π y 0.6π rad/muestra y 5 dB de ondulación de banda de paso.
Represente sus respuestas de magnitud y fase. Utilícelo para filtrar datos aleatorios.
FILTROS

Filtros Chebychev

• Ejemplos:
FILTROS

Filtros Chebychev

• Ejemplos (filtro pasa altas)

• Diseñe un filtro Chebyshev tipo I paso alto de 9.º orden con 0,5 dB de ondulación de
banda de paso y una frecuencia de borde de banda de paso de 300 Hz, que, para datos
muestreados a 1000 Hz, corresponde a 0.6π rad/muestra. Represente las respuestas de
magnitud y fase. Convierta los ceros, los polos y la ganancia en secciones de segundo
orden para utilizarlos en fvtool.
FILTROS

Filtros Chebychev

• Ejemplos:
FILTROS

Filtros Chebychev

>> [t,amps,data,aux] = read_intan_data;

Data file contains 200.49 seconds of data from 2 amplifier channels.


Channels: 6 11

>> Sig = data(1250001:1375000,1);


>> tsig = t(1250001:1375000);
>> plot(tsig,Sig)
>> grid
FILTROS

Filtros Chebychev

Ejemplo 4

Diseñar un arreglo de filtros para filtrar la variable “Sig”, que cumpla las siguientes
características:

• Pasabajas = 200 Hz
• Pasaaltas = 3 Hz
• Rechazabanda = 60 Hz

Utilice el espectro de Fourier para verificar sus resultados


FILTROS

Filtros Chebychev

Ejemplo 4

>> Fs = 25000;
>> PBN = 200/(25000/2);
>> PAN = 3/(25000/2);
>> RB1 = 57/(25000/2);
>> RB2 = 63/(25000/2);
>> [b,a]=cheby1(6,0.5,PBN,'low’);
>> h = fvtool(b,a);
>> sigPB = filter(b,a,Sig);
>> plot(tsig,sigPB)
FILTROS

Filtros Chebychev

Ejemplo 4
FILTROS

Filtros Chebychev

Ejemplo 4

>> [b2,a2]=cheby1(4,0.5,PAN,'high’);

>> h2 = fvtool(b2,a2);

>> sigPA = filter(b2,a2,sigPB);

>> plot(tsig,sigPA)
FILTROS

Filtros Chebychev

Ejemplo 3
FILTROS

Filtros Chebychev

Ejemplo 4

>> Wn = [RB1 RB2];

>> [bs,as]=cheby1(3,0.5,Wn,'stop’);

>> h3 = fvtool(bs,as);

>> sigF = filter(bs,as,sigPA);

>> plot(tsig,sigF)
FILTROS

Filtros Chebychev

Ejemplo 4

>> [ Y ] = FastandFourier( Fs, Sig); % Señal Original

>> [ Y ] = FastandFourier( Fs, sigF); % Señal Filtrada


FILTROS

Filtros Chebychev

Ejemplo 4
FILTROS

Filtros Chebychev

• Práctica 6 Filtro Tschebyscheff, con funciones

∙ De la señal de Justo, recortar del segundo 45 al 52


∙ Sacar el espectro en frecuencias de la señal original
∙ Implementar un filtro de orden 10Th con las siguientes especificaciones:
o Filtro Pasa-bajas Fc = 180 Hz
▪ Mostrar el comportamiento del filtro con el comando “freqz”
o Filtro Pasa-altas Fc = 3 Hz
▪ Mostrar el comportamiento del filtro con el comando “freqz”
FILTROS

Filtros Chebychev

• Práctica 6 Filtro Tschebyscheff, con funciones

o Filtro rechazabanda Fc = 120 Hz


▪ Mostrar el comportamiento del filtro con el comando “freqz”
∙ Espectro en frecuencias de la señal filtrada
∙ Comparar la señal original con la filtrada

También podría gustarte