0% encontró este documento útil (0 votos)
9 vistas28 páginas

D01 PDBS A9 Fregoso Hernandez

El documento describe la aplicación de filtros digitales a señales de EEG, enfocándose en la implementación de filtros FIR e IIR para extraer información y mejorar la visualización de las señales. Se presentan procedimientos detallados para el procesamiento de bioseñales, incluyendo la aplicación de transformadas de Fourier y la convolución, así como el diseño de filtros pasa-bandas y rechaza-bandas. Además, se discuten observaciones sobre la efectividad de los filtros en el análisis de crisis epilépticas a partir de datos obtenidos de la base de datos PhysioNet.
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
9 vistas28 páginas

D01 PDBS A9 Fregoso Hernandez

El documento describe la aplicación de filtros digitales a señales de EEG, enfocándose en la implementación de filtros FIR e IIR para extraer información y mejorar la visualización de las señales. Se presentan procedimientos detallados para el procesamiento de bioseñales, incluyendo la aplicación de transformadas de Fourier y la convolución, así como el diseño de filtros pasa-bandas y rechaza-bandas. Además, se discuten observaciones sobre la efectividad de los filtros en el análisis de crisis epilépticas a partir de datos obtenidos de la base de datos PhysioNet.
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd

INGENIERÍA BIOMÉDICA

Procesamiento de Bioseñales
Sección: D-01
24-febrero-2020

Aplicación de filtros
Actividad 8: digitales a señales de
EEG

Presenta:
Fregoso López Miguel Esteban
Hernandez Gallegos Bruno
Adrian

Profesor:
Dr. Salido Ruiz Ricardo Antonio
 Objetivo:
Extraer información desde una base de datos y cambiar el formato de los archivos, así como
implementar los filtros FIR e IIR con fines comparativos.

 Introducción:

El electroencefalograma (EEG) es un análisis


o estudio neurofisiológico que se utiliza para
detectar y registrar la actividad eléctrica del
cerebro (Figura 1).
El electroencefalograma se puede realizar en
una situación normal, sometiendo al paciente
a diferentes estímulos (hiperventilación y
fotoestimulación) o durante el sueño, a este
último caso se le conoce como
Figura 1
EEG polisomnografía [1] [2].
Recuperado de
[[Link]
Por otro lado, un filtro digital es aquel, como
[Link]]
su nombre lo indica, que opera en señales o
imágenes digitales. Es una operación matemática que toma una serie de números que
representa la señal de entrada con el fin de modificarla produciendo otra serie de número que
representan la señal de salida, esto se produce generalmente mediante el uso de la
Transformada de Fourier [3][4].
Cualquier señal está expuesta a interferencias que afectan su visualización, lo que hace
complicado su estudio. El uso de filtros también conocido como proceso de filtrado son un
conjunto de técnicas que son parte del pre-procesamiento de las señales cuyo objetivo
fundamental es obtener, a partir de una señal original, otra señal final cuyo resultado sea más
adecuado para una óptima visualización y el estudio de la señal, y esto se produce gracias a
la reducción o eliminación del ruido. Lo que hace la transformada de Fourier en estos casos
es distribuir las frecuencias de la señal, esto discretiza dicha señal lo que permite que se
almacenen digitalmente los valores de frecuencias para cada tiempo determinado y al
procesar la señal como una combinación lineal de términos, nos permite tener una señal clara
y limpia [3][5].
Los filtros de frecuencia procesan la señal trabajando sobre el dominio de la frecuencia en la
Transformada de Fourier de dicha señal [5]. Para ello, ésta se modifica siguiendo el Teorema
de la Convolución, dicho teorema nos dice que, bajo determinadas circunstancias, la
transformada de Fourier de una convolución es el producto punto a punto de las
transformadas individuales. La ecuación es la siguiente:

𝐺(𝑢, 𝑣) = 𝐹(𝑢, 𝑣) ∗ 𝐻(𝑢, 𝑣)


Donde F(u,v) es la transformada de Fourier de la señal original y H(u,v) representa el filtro
que atenúa la frecuencia [6].
Lo primero que se tiene que hacer es aplicar la transformada de Fourier a la señal,
posteriormente se multiplica por la función del filtro y una vez realizado esto se aplica la
transformada inversa de Fourier [5].
El siguiente diagrama presenta lo explicado anteriormente para un mejor entendimiento.

Transformada Transformada
Señal de Filtro
de Fourier inversa de Señal filtrada
entrada H(u,v)*F(u,v)
F(u,v) Fourier
 Instrucciones y Resultados:
Paso 1.
Descargar de la plataforma Classroom las señales de Physionet para probar los filtros
digitales.
Paso 2.
Realice los siguientes ejercicios:
Parte 1
a) Determine la respuesta en frecuencia para el algoritmo de derivación de la diferencia
central entre dos puntos para dos factores de salto distintos (L1 = 1 y L2 =5) utilizando
la fft y grafíquela en una misma gráfica para los dos factores de salto junto con la
derivada ideal. Para ello considere un tiempo de muestreo de Ts = 1/256 s, una
ventana de la longitud de los datos (Figura 2).

Data_1 = load("[Link]");
N = round(length(Data_1.EEG01_EXA));
L = [1 5];
Ts = 1/256;
Fs = Ts^-1;
t = linspace(0,N/Ts^-1,N);
y = paso_1(mean(Data_1.EEG01_EXA),L,Ts,N);
function yI = paso_1(data,Ln,Ts,N)
try
if exist("N",'var')==0
N = Ts^-1;
end
catch
N = 256;
end

fs=Ts^-1;
y = zeros(2,round(N/2));
frecuencia = linspace(0,fs/2,round(N/2));
figure(1)
for i = 1:length(Ln) % Repeat for each skip factor
L = Ln(i);
bn = zeros((2*L)+1,1); %Set up b(n). Initialize to zero
bn(1,1) = -1/(2*L*Ts); % Put negative coefficient at b(1)
bn((2*L)+1,1) = 1/(2*L*Ts); % Put positive coefficient at
b(2L+1)
H = abs(fft(bn,N)); % Cal. frequency response using FFT
H=H/max(H);
subplot(1,2,i); % Plot the result
hold on;
plot(frecuencia,H(1:round(N/2)),"k"); %Plot to fs/2
axis([0 fs/2 0 max(H)+.2*max(H)]);
text(100,max(H),"Skip Factor = "+num2str(L));
xlabel("Frequency (Hz)"); ylabel("H(f)");
y(i,:) = linspace(0,fs/2,round(N/2)) * 2 * pi;
plot(frecuencia,y(i,:),'--k'); % Plot ideal derivative
% function
end
title("Derivación de la diferencia central")
yI = fft(data).* H';
yI = ifft(yI);

end

Figura 2
Derivación de la diferencia central entre dos puntos para dos factores de salto distintos

b) Aplique el filtro utilizando la convolución en la señal del archivo [Link], el cual


es un segmento de crisis epiléptica de una señal EEG en el banco de datos de
PhysioNet ([Link] (Figura 3).
figure(2)
plot(t,y)
ylabel("amplitud")
xlabel("tiempo")
title("Señal filtrada")
Figura 3
Señal filtrada utilizando la convolución de dicha señal.

c) Escriba sus observaciones.


La señal no es afectada de una manera tan sencilla ni controlada, no es un método que
usaría comúnmente para desarrollar mis filtros, pero es una manera matemática de
realizarlo con aplicaciones.

Parte 2
a) Desarrolle un filtro FIR pasa-bandas con un número de coeficientes L = 128, basado
en una ventana blackman. Encuentre su respuesta en frecuencia H y grafíquela, las
frecuencias de corte normalizadas que se desean son wh = 0.3*pi y wl = 0.1*pi, estime
la longitud de los datos (Figura 4 y Figura 5).
% filtro diseñado como paso_2
pause
close all
L = [1 3];

unction y = paso_2(data,w,fs,N)

% Application of an FIR bandpass filter based on a rectangular


window design as
% shown in Figure 4.7

close all
wh = w(1)/10 * pi; % Set bandpass cutoff frequencies
wl = w(2)/10 *pi;
L = 128; % Number of coeffients equals 128
bn =zeros(1,L);
for i = 1:L+1 % Generate bandpass coefficient function
n = i-L/2 ; % and make symmetrical
if n == 0
bn(i) = wh/pi-wl/pi;
else
bn(i) = (sin(wh*n))/(pi*n)-(sin(wl*n))/(pi*n) ;
% Filter impulse response
end
end

bn = bn .* blackman(L+1)'; % Apply Blackman window to filter coeffs.


H_data = abs(fft(data)); % Plot data spectrum for comparison
freq = (1:N/2)*fs/N; % Frequency vector for plotting
plot(freq,H_data(1:N/2),'k'); % Plot data FFT only to fs/2
hold on;
%
H = abs(fft(bn,N)); % Find the filter frequency response
H = H*1.2 * (max(H_data)/max(H)); % Scale filter H(z) for comparison
plot(freq,H(1:N/2),'--k'); % Plot the filter frequency response
xlabel("Frequency (Hz)"); ylabel("H(f)");title("FIR bandpass
filter")
y = conv(data,bn)*-1; % Filter the data using convolution
figure;
t = (1:N)/fs; % Time vector for plotting
subplot(2,1,1);
plot(t(1:N/2),data(1:N/2),'k') % Plot only 1/2 of the data set for
clarity
xlabel("Time (sec)") ;ylabel("EEG");title("Señal original")
subplot(2,1,2); % Plot the bandpass filtered data
plot (t(1:N/2), y(1:N/2),"k");
xlabel("Time (sec)"); ylabel("Filtered EEG");title("Señal filtrada")
end
Figura 4
Respuesta en frecuencia de un filtro pasa bandas basado en una ventana blackman.

Figura 5
Respuesta en frecuencia de un filtro pasa bandas basado en una ventana blackman.
Figura 6
Respuesta en frecuencia de un filtro pasa bandas basado en una ventana blackman.

b) Aplique el filtro considerando una frecuencia de muestreo fs = 256 muestras/s para


los datos fisiológicos de los archivos ([Link] y [Link]) los cuales son un
segmento de crisis epilépticas de una señal EEG en el banco de datos de PhysioNet
([Link] Grafique el espectro en frecuencia de los datos antes y
después del filtrado para compararlos, así como las curvas de los datos en el dominio
del tiempo antes y después del filtrado (Figura 7 y Figura 8).
Data_2 = load("[Link]");
Data_3 = load("[Link]");
paso_2(mean(Data_2.EEG02_EXA),L,Fs,N);
pause
paso_2(mean(Data_3.EEG03_EXA),L,Fs,N);
pause
Figura 5
Señal original y señal filtrada del archivo EE02

Figura 8
Señal original y señal filtrada del archivo EE03
c) A partir del espectro de frecuencia de la señal identifique la banda de frecuencias de
la crisis y proponga las frecuencias de corte wh y wl, necesarias para eliminarla de
los datos conservando la mayor información posible de los datos fuera de la crisis.
Escriba sus observaciones.
%no se que tipo de señal buscamos asi que supondre que es todo lo que no
%esta dentro del pico de informacion al de bajas frecuencias.
L = [10/(Fs/2) 100/(Fs/2)];

paso_2(mean(Data_2.EEG01_EXA),L,Fs,N);
pause

L = [(10*2)*10/Fs (100*2)*10/Fs];
paso_2(mean(Data_3.EEG01_EXA),L,Fs,N);
pause
close all

En esta parte podemos apreciar una respuesta a un filtro mucho más controlada, pero al tratar
de aislar información además de la crisis epiléptica se vuelve un reto casi imposible,
principalmente porque no sabemos qué tipo de señal buscamos, porque la señal del cuadro
epiléptico abarca unas grandes amplitudes y pareciera que lo demás es ruido.

Parte 3
a) Diseñe un filtro pasa-bandas FIR de orden 128, basado en ventanas con frecuencias
de corte fc1 = 5Hz y fc2 = 15 Hz y una frecuencia de muestreo de 256 muestras/s y
grafique su respuesta en frecuencia utilizando una ventana Hamming (Figura 9).
wn = [5/(Fs/2) 15/(Fs/2)];
paso_3(Fs,wn,N);
pause
close all

function b = paso_3(Fs,wn,N)
figure(1)
order = 128; % Filter order
b = fir1(order,wn); % On line filter design, Hamming window
[h,freq] = freqz(b,1,N,Fs); % Get frequency response
plot(freq,abs(h),'k'); % Plot frequency response
title("Espectro de la señal")%espectro patronus
xlabel('Frequency (Hz)');
ylabel('H(f)');

end
Figura 9
Respuesta de frecuencia de un filtro pasa banda FIR utilizando una ventana Hamming.

b) Después aplique el filtro a los datos fisiológicos de los archivos ([Link] y


[Link]) los cuales son un segmento de crisis epilépticas de una señal EEG en el
banco de datos de PhysioNet ([Link] (Figura 10 y Figura 11).
Data_4 = load("[Link]");
Data_5 = load("[Link]");

N = round(length(mean(Data_4.EEG04_EXA)));
t = linspace(0,N/Ts^-1,N);
b = paso_3(Fs,wn,N);
y = filter(b,1,mean(Data_4.EEG04_EXA) );

figure(2)
plot(t,y)
title("Señal EEG04 Filtrada")
xlabel("Tiempo (s)")
ylabel("Amplitud (mV)")

clear y
N = round(length(mean(Data_5.EEG05_EXA)));
t = linspace(0,N/Ts^-1,N);
b = paso_3(Fs,wn,N);
y = filter(b,1,mean(Data_5.EEG05_EXA) );

figure(3)
plot(t,y)
title("Señal EEG05 Filtrada")
xlabel("Tiempo (s)")
ylabel("Amplitud (mV)")
pause

Figura 10
Filtro de la señal EEG04
Figura 11
Filtro de la señal EEG05
c) Escriba sus observaciones.
Si bien al aplicar el filtro no se aprecia una diferencia notoria, es una realidad que los
filtros diseñados y perfeccionados a lo largo de la historia dan unos buenos resultados
combinados y son de fácil implementación gracias a los algoritmos de Matalb.

Parte 4
a) Diseñe un filtro rechaza-bandas que tenga las siguientes características: una ganancia
de 1 (0 db) en la banda de paso entre 0 y 30 Hz, una ganancia de -40db en la banda
de rechazo entre 50 y 80 Hz, y una ganancia de 1 en la banda de paso superior entre
100 y fs/2 Hz=128 Hz. La máxima ondulación para la banda de paso debería ser de
±1.5 db (Figura 12).
close all
Fs = 256;
f = [30 50 80 100]; % Define frequency ranges
paso = 1.5; % Specify ripple tolerance in passband
atenuacion = 40; % Specify error tolerance in passband
a = [1 0 1]; % Specify gain in those regions
b = paso_4(Fs,f,paso,atenuacion,a);

function b = paso_4(Fs,f,rp_pass,rp_stop,a)
%
% Now specify the deviation converting from db to linear
dev = [(10^(rp_pass/20)-1)/(10^(rp_pass/20)+1) 10^(-rp_stop/20)...
(10^(rp_pass/20)-1)/(10^(rp_pass/20)+1)];
%
% Design filter - determine filter order
[n, fo, ao, w] = remezord(f,a,dev,Fs); % Determine filter order, Stage 1
b = remez(n, fo, ao, w); % Determine filter weights, Stage 2
figure (1)
freqz(b,1,1000,Fs); % Plot filter frequency response
title("Respuesta en frecuencia")

end

Figura 12
Respuesta en frecuencia de un filtro rechaza banda.

b) Utilice el proceso de diseño de tres etapas, grafique la respuesta en frecuencia del


filtro y aplíquelo a los datos fisiológicos de los archivos ([Link] y [Link])
los cuales son un segmento de crisis epilépticas de una señal EEG en el banco de
datos de PhysioNet ([Link] (Figura 13 y Figura 14).

Data_5 = load("[Link]");
Data_6 = load("[Link]");

N = round(length(mean(Data_5.EEG05_EXA)));
t = linspace(0,N/Ts^-1,N);
y = filter(b,1,mean(Data_5.EEG05_EXA) );
figure(2)
plot(t,y)
title("Señal EEG05 Filtrada")
xlabel("Tiempo (s)")
ylabel("Amplitud (mV)")

clear y
N = round(length(mean(Data_6.EEG06_EXA)));
t = linspace(0,N/Ts^-1,N);
y = filter(b,1,mean(Data_6.EEG06_EXA) );
figure(3)
plot(t,y)
title("Señal EEG06 Filtrada")
xlabel("Tiempo (s)")
ylabel("Amplitud (mV)")
pause

Figura 13
Filtro de la señal EEG05
Figura 14
Filtro de la señal EEG06
c) Escriba sus observaciones.
Aquí nuevamente se aprecia poco en las gráficas debido a como está diseñado el filtro, pero
la aplicación de los filtros y los parámetros que te permite modificar son esplendidos, muy
apropiados, solo es necesario pedirle a la función “remezord” los parámetros de cómo quieres
que quede el filtro y esta hace todo el procesamiento para solo ingresar las variables de salida
al tipo de filtro deseado.

Parte 5
a) Diseñe un filtro FIR derivativo de 28avo orden, con una frecuencia de corte derivativa
de 0.05 y compárelo con el algoritmo de la diferencia central entre 2 puntos utilizando
un factor de salto de 4, una frecuencia de corte derivativa fc = 0.05 y una frecuencia
de muestreo de 256 muestras/s.
function paso_5(data)
Ts = 1/256; % Assume a Ts of 5 msec.
fs = 1/Ts; % Sampling frequency
order = 28; % FIR Filter order
L = 4; % Use skip factor of 4
fc = .05; % Derivative cutoff frequency
t = (1:length(data))*Ts;% Design filter
f = [ 0 fc fc+.1 .9]; % Construct desired freq. Characteristic
a = [0 (fc*fs*pi) 0 0]; % Upward slope until .05 fs then lowpass
b = remez(order,f,a, 'differentiator'); % Design filter coefficients
and
d_dt1 = filter(b,1,data); % apply FIR Differentiator
subplot(1,2,1);
plot(t,data+12,'k'); % Plot FIR filter derivative (data offset)
hold on;
plot(t,d_dt1/2,'k'); % Scale velocity by 1/2
title("FIR filter derivative")
ylabel('Time(sec)');
ylabel('x(t) & v(t)/2');
% Now apply two-point central difference algorithm
hn = zeros((2*L)+1,1); % Set up h(n)
hn(1,1) = 1/(2*L* Ts);
hn((2*L)+1,1) = -1/(2*L*Ts); % Note filter weight reversed if
d_dt2 = conv(data,hn); % using convolution
%
subplot(1,2,2);
plot(data+12,'k'); % Plot the two-point central difference
hold on;
plot(d_dt2/2,'k'); % algorithm derivative
title("Señal filtrada")
ylabel('Time(sec)');
ylabel('x(t) & v(t)/2');

end

b) Aplíquelo utilizando la convolución a los datos fisiológicos de los archivos


([Link] y [Link]) los cuales son un segmento de crisis epilépticas de una
señal EEG en el banco de datos de PhysioNet ([Link] Grafique
las señales antes y después del filtro (Figura 15 y Figura 16).
Data_7 = load("[Link]");
Data_8 = load("[Link]");

figure(1);
paso_5(mean(Data_7.EEG07_EXA));

figure(2);
paso_5(mean(Data_8.EEG08_EXA));
pause
Figura 15
Convolución del archivo EEG07 sin filtrado y con filtrado.

Figura 16
Convolución del archivo EEG08 sin filtrado y con filtrado.
c) Escriba sus observaciones.
Cabe recordar que filter no es la única manera de aplicar el filtro, pero es una manera
confiable y que ya conocemos de aplicar los filtros a las señales.

Parte 6
a) Diseñe un filtro Yulewalk de doceavo orden, frecuencias de corte de 0.25 y 0.6 15 17
y 21 y compare su respuesta en frecuencia con un filtro FIR de tipo ventana
rectangular del mismo orden utilizando la función fir2. Grafique la respuesta en
frecuencia ideal, y las respectivas respuestas en frecuencia del filtro FIR y el
Yulewalk en una misma gráfica con propósitos de comparación. Considere una
frecuencia de muestreo de 256 muestras/s (Figura 17).
close all
b = paso_6;
pause
function b = paso_6
n = 12; % Filter order
f = [0 .25 .25 .6 .6 1]; % Specify desired frequency response
m = [0 0 1 1 0 0];
[b,a] = yulewalk(n,f,m); % Construct Yule–Walker IIR Filter
h = freqz(b,a,256);
b1 = fir2(n,f,m); % Construct FIR rectangular window filter
h1 = freqz(b1,1,256);
plot(f,m,'k'); % Plot the ideal “window” freq. response
hold on
w = (1:256)/256;
plot(w,abs(h),'--k'); % Plot the Yule-Walker filter
plot(w,abs(h1),':k'); % Plot the FIR filter
xlabel('Relative Frequency');
ylabel("Amplitud")
title("Espectro")
end
Figura 17
Respuesta de frecuencia del filtro FIR y el filtro Yulewalk.

b) Aplíquelo a los datos fisiológicos de los archivos ([Link] y [Link]) los


cuales son un segmento de crisis epilépticas de una señal EEG en el banco de datos
de PhysioNet ([Link] Grafique las señales antes y después del
filtro (Figura 18 y Figura 19).
Data_9 = load("[Link]");
Data_10 = load("[Link]");
close all

N = round(length(mean(Data_9.EEG09_EXA)));
t = linspace(0,N/Ts^-1,N);
y = filter(b,1,mean(Data_9.EEG09_EXA) );
figure(1)
plot(t,y)
title("Señal EEG09 Filtrada")
xlabel("Tiempo (s)")
ylabel("Amplitud (mV)")
N = round(length(mean(Data_10.EEG10_EXA)));
t = linspace(0,N/Ts^-1,N);
y = filter(b,1,mean(Data_10.EEG10_EXA) );
figure(2)
plot(t,y)
title("Señal EEG10 Filtrada")
xlabel("Tiempo (s)")
ylabel("Amplitud (mV)")
Figura 18
Filtro de la señal EEG09

Figura 19
Filtro de la señal EEG010
c) Escriba sus observaciones.
Este paso nos recuerda que los filtros no son perfectos, todos tienen un rizo de ± "x"
cantidad de decibeles que podrán ser pocos o muchos, pero siempre está presente en los
filtros y es necesario tenerlo en cuenta.

Parte 7
a) Grafique las curvas de respuesta en frecuencia (en db) obtenidas de un filtro pasa-
bajas de octavo orden, utilizando los filtros Butterworth, Chevyshev Tipo I y II así
como Elíptico. Utilice una frecuencia de corte de 35 Hz y considere una frecuencia
de muestreo de 256 muestras/s. Para todos los filtros, la ondulación en la banda de
paso debería ser menor a 3db y la atenuación mínima en la banda de rechazo debería
ser 60 Db (Figura 20).
function x = paso_7
N = 2000; % Spectrum number of points
fs = 256; % Sampling filter
n = 8; % Filter order
wn = 35/(fs/2); % Filter cutoff frequency
rp = 3; % Maximum passband ripple in db
rs = 60; % Stopband attenuation in db

%Butterworth
[b,a] = butter(n,wn); % Determine filter coefficients
x(1,:)=b;
[h,f] = freqz(b,a,N,fs); % Determine filter spectrum
subplot(2,2,1);
h = 20*log10(abs(h)); % Convert to db
semilogx(f,h,'k'); % Plot on semilog scale
axis([0 150 -400 10]); % Adjust axis for better visibility
xlabel('Frequency (Hz)'); ylabel('X(f)(db)');
title('Butterworth');
%Chebyshev Type I
[b,a] = cheby1(n,rp,wn); % Determine filter coefficients
x(2,:)=b;
[h,f] = freqz(b,a,N,fs); % Determine filter spectrum
subplot(2,2,2);
h = 20*log10(abs(h)); % Convert to db
semilogx(f,h,'k'); % Plot on semilog scale
axis([0 150 -400 5]); % Adjust axis for better visibility
xlabel('Frequency (Hz)'); ylabel('X(f)(db)');
title('Chebyshev I');

% Chebyshev Type II
[b,a] = cheby2(n,rs,wn); % Determine filter coefficients
x(3,:)=b;
[h,f] = freqz(b,a,N,fs); % Determine filter spectrum
subplot(2,2,3);
h = 20*log10(abs(h)); % Convert to db
semilogx(f,h,'k'); % Plot on semilog scale
axis([0 150 -200 5]); % Adjust axis for better visibility
xlabel('Frequency (Hz)'); ylabel('X(f)(db)');
title('Chebyshev II');
% Elliptic
[b,a] = ellip(n,rp,rs,wn); % Determine filter coefficients
x(4,:)=b;
[h,f] = freqz(b,a,N,fs); % Determine filter spectrum
subplot(2,2,4);
h = 20*log10(abs(h)); % Convert to db
semilogx(f,h,'k'); % Plot on semilog scale
axis([0 150 -150 5]); % Adjust axis for better visibility
xlabel('Frequency (Hz)'); ylabel('X(f)(db)');
title('Elliptic');

end

Figura 20
Curvas de respuesta en frecuencia de un filtro pasa bajas de octavo orden utilizando los filtros Butterworth, Chevishev
tipo I y II y el elíptico.

b) Aplíquelo a los datos fisiológicos ([Link] y [Link]) el cual es un segmento


de crisis epiléptica de una señal EEG en el banco de datos de PhysioNet
([Link] Grafique las señales antes y después del filtro (Figura 21
y Figura 22).
Data_11 = load("[Link]");
Data_12 = load("[Link]");
close all
nombres = ["Butterworth" "Chebyshev I" "Chebyshev II" "Elliptic"];

figure(1)
N = round(length(mean(Data_11.EEG11_EXA)));
t = linspace(0,N/Ts^-1,N);
for n=1:4
subplot(2,2,n);
y = filter(b(n,:),1,mean(Data_11.EEG11_EXA) );
plot(t,y)
title(nombres(1,n))
xlabel("Tiempo (s)")
ylabel("Amplitud (mV)")
end
pause

figure(1)
N = round(length(mean(Data_12.EEG12_EXA)));
t = linspace(0,N/Ts^-1,N);
for n=1:4
subplot(2,2,n);
y = filter(b(n,:),1,mean(Data_12.EEG12_EXA) );
plot(t,y)
title(nombres(1,n))
xlabel("Tiempo (s)")
ylabel("Amplitud (mV)")
end
pause

Figura 21
Filtro de la señal EEG011 utilizando los filtros Butterworth, Chevishev tipo I y II y el elíptico.
Figura 22
Filtro de la señal EEG012 utilizando los filtros Butterworth, Chevishev tipo I y II y el elíptico.

c) Escriba sus observaciones.


Aquí se observa claramente que cada filtro tiene sus pros y contras, si tuviera que decidir, me
quedaría con el Butterworth o Chebyshev I porque me parece mejor una caída suave o
contundente con un poco de amplificación a tener que soportar el hecho de que no se cumpla
los -dB en la banda de rechazo.
 Conclusiones:
Hernandez Gallegos Bruno Adrian:
Esta actividad termina de perfeccionar los métodos para la realización de filtros
especifico en la señal, trabajar con frecuencias es muy útil y si bien, los filtros parecen
diseñados para imitar el comportamiento de dispositivos análogos en vez de realizar cosas
ideales con cortes y amplificaciones específicas, estos tipos de filtros seguirán siendo
utilizados porque se conoce su teoría, han sido perfeccionados con el tiempo y otorgan
unos resultados que ayudan a esclarecer información en determinadas frecuencias,
incluso amplificado las señales si fuera necesario.
Fregoso López Miguel Esteban:
En esta actividad el uso de funciones fue muy importante ya que nos ahorra trabajo al
momento de realizar el código. Los filtros son de gran ayuda y muy útiles para tener una
información clara al momento de aplicarla en las señales que queremos estudiar.

 Referencias
1. Pruebas médicas (Electroencefalograma) [En línea] Recuperado de:
[Link]
[Consultado el 28 de enero del 2020]

2. Loreto, R. P., & Carolina, A. D. (2013). Aporte de los distintos métodos


electroencefalográficos (eeg) al diagnóstico de las epilepsias. Revista Médica Clínica Las
Condes, 24(6), 953–957. Recuperado de
[Link]
[Consultado el 28 de enero del 2020]

1. Fernandez L. La transformada de Fourier, Aplicaciones al filtrado de imágenes. Universidad


Politécnica de Valencia.
Recuperado de: [Link]
%20La%20transformada%20de%20Fourier.%20Aplicaci%C3%B3n%20al%20filtrado%20de
%20im%C3%[Link]?sequence=1
[Consultado el 16 de febrero del 2018]

2. Filtros digitales [En línea]. Recuperado de: [Link]


filtros-digitales
[Consultado el 16 de febrero del 2018]
3. Franco V. Transformada de Fourier en procesamiento digital de Imágenes Funciones de
Variable Compleja. (marzo, 2013). Universidad Nacional del Sur, Argentina.
Recuperado de: [Link]
[Consultado el 16 de febrero del 2018]

4. Teorema de Convulsión [En línea].


Recuperado de: [Link]
[Consultado el 16 de febrero del 2018]

También podría gustarte