You are on page 1of 44

Procesamiento Digital de Seales

Introduccion a Filtros Digitales


Fundamentos de Filtros
Los filtros tienen 2 usos principales
Separacin de seales
Una seal ha sido contaminada con interferencia,
ruido u otra seal
Ej: Electrocardiograma de un bebe contaminado
con latidos de la madre
Restauracin de seales
Cuando la seal ha sido distorsionada
Ej: una grabacin con equipo de mala calidad
puede ser mejorada

Fundamentos de Filtros
Los filtros pueden ser tanto analgicos
como digitales
Cules son mejores?
Analogicos son ms rpidos y pueden
proporcionar gran rango dinmico
Digitales son superiores en rendimiento

Fundamentos de Filtros
Analgico vs. Digital
Un filtro digital comn tiene una ganancia de
1 +/- 0.0002 de DC a 1000 hz y una ganancia
de menos de 0.0002 para frecuencias
mayores a 1001 hz. La transicin ocurri en
solo un hz.
Los filtros digitales funcionan miles de veces
mejor que los analgicos
Fundamentos de Filtros
Analgico vs. Digital
Los filtros analgicos deben manejar las
limitaciones de la electrnica
Los filtros digitales deben manejar las
limitaciones de las seales y de la teora
matemtica
Fundamentos de Filtros
Respuesta del Filtro
Todos los filtros lineales tienen una respuesta
a impulso, respuesta a escalera y una
respuesta en frecuencia
Contienen la misma informacin sobre el filtro
pero la presentan de diferente forma
Es fcil convertir una a la otra
Fundamentos de Filtros
Fundamentos de Filtros
La manera ms fcil de implementar un
filtro digital es convolucionando la entrada
con la respuesta a impulso
Cuando la respuesta a impulso se usa de
esta manera la llamamos: ncleo del filtro
(filter kernel)

Fundamentos de Filtros
Hay otra manera de construir filtros
llamada recursin
En convolucin cada muestra de la salida
es la suma ponderada de muestras en la
entrada
Los filtros resursivos usan tambin
muestras anteriores de la salida.
Fundamentos de Filtros
En vez de usar un ncleo de filtro se usa un
conjunto de coeficientes
Fundamentos de Filtros
En vez de usar un ncleo de filtro se usa un
conjunto de coeficientes
Fundamentos de Filtros
Aun cuando no se use, todos los filtros
tienen una respuesta a impulso
La respuesta a impulso de filtros
recursivos esta compuesta por sinusoides
que decaen exponencialmente en
amplitud
De tal manera su respuesta a impulso es
infinita
Fundamentos de Filtros
Por eso los filtros recursivos son llamados
de Respuesta a Impulso Infinita (Infinite
Impulse Response) IIR
Mientras que los filtros construidos por
convolucin son llamados de Respuesta a
Impulso Finita (Finite Impulse Response)
FIR
Fundamentos de Filtros
Fundamentos de Filtros
Los decibeles expresan relacin entre dos
seales
Pero a veces se utilizan para una sola seal
dBV significa que la seal de referencia es 1
voltio rms
dBm significa que la seal de referencia
produce 1 mW en una resistencia de 600 ohms
(cerca de 0.78 rms)
Informacin en la Seal
La informacin se puede representar:
En el dominio del tiempo
La forma de la seal
En el dominio de la frecuencia
Las frecuencias presentes en la seal

Informacin en la Seal
En el domino del tiempo cada muestra
contiene informacin til
Muestras del valor de una variable cada
cierto tiempo
Es la representacin ms sencilla

Informacin en la Seal
En el domino de la frecuencia la informacin es
mas indirecta.
En la naturaleza muchas cosas muestran
comportamientos peridicos
Una muestra sola no contiene informacin sobre
el movimiento peridico
La informacin est contenida en la relacin
entre varios puntos de la seal
Informacin en la Seal
La respuesta a escalera muestra como un
filtro altera la informacin almacenada en
tiempo
La respuesta en frecuencia muestra como
un filtro altera una informacin
almacenada en la frecuencia
Parmetros en el Tiempo
Parmetros en el Tiempo
Parmetros en el Tiempo
Parmetros en Frecuencia
Parmetros en Frecuencia
Parmetros en Frecuencia
Tipos de Filtro
Por su respuesta en frecuencia existen
varios tipos de filtro
Pasa bajos
Pasa altos
Pasa banda
Rechaza banda

Tipos de Filtro
Filtro Pasa Bajo en Matlab
Fpass = 4000; % Passband Frequency
Fstop = 5000; % Stopband Frequency
Apass = 1; % Passband Ripple (dB)
Astop = 60; % Stopband Attenuation (dB)
Fs = 44100; % Sampling Frequency

h = fdesign.lowpass('fp,fst,ap,ast', Fpass,
Fstop, Apass, Astop, Fs);

filtro = design(h, 'equiripple', 'MinOrder',
'any', 'StopbandShape', 'flat');

kernel = filtro.Numerator;


Aplicar Filtro Matlab
fs = 44100; % Sample frequency (Hz)
t = 0:1/fs:10-1/fs; % 10 sec sample
x = (1.3)*sin(2*pi*4000*t) ... % 15 Hz component
+ (1.7)*sin(2*pi*10000*(t-2)) ... % 40 Hz component
+ (0.5)*randn(size(t)); % Gaussian noise;

spectrogram(x,2048,0,2048,44100,'yaxis')

y = filter(kernel,1,x);

spectrogram(y,2048,0,2048,44100,'yaxis')


Tipos de Filtro
Generalmente se construyen filtros pasa
bajos
Se pueden convertir al resto de tipos
usando
Inversin Espectral
Cambia el signo de todos y le suma uno al eje de
simetra
Reversin Espectral
Cambia el signo pasando una muestra
Tipos de Filtro
Inversin Espectral

Tipos de Filtro
Inversin Espectral

Inversion Espectral MATLAB
mid = round(length(kernel)/2);
newKernel=-kernel;
newKernel(mid)=newKernel(mid)+1;



Tipos de Filtro
Reversin Espectral

Reversion Espectral MATLAB
N=length(kernel);
n=1:N;
s=ones(1,N); % generate a vector of 1's
oddeven=rem(n,2); % 0 for odd, 1 for even
s=s-(2*oddeven); % alternating sequence of 1 and -1
newKernel=kernel.*s; % kernel reversal
Tipos de Filtro
Diseo otros filtros

Pasa Banda MATLAB
Fstop1 = 4000; Fpass1 = 5000;
Fpass2 = 9000; Fstop2 = 10000;
Apass = 1; Astop = 60; Fs = 44100;

% Pasa Bajo
h = fdesign.lowpass('fp,fst,ap,ast', Fpass2, Fstop2,
Apass, Astop, Fs);
filtro = design(h);
LowKernel = filtro.Numerator;
Pasa Banda MATLAB
% Pasa Alto
h = fdesign.highpass('fst,fp,ast,ap', Fstop1,
Fpass1, Astop, Apass, Fs);
filtro = design(h);
HighKernel = filtro.Numerator;

%PasaBanda
PassKernel=conv(LowKernel,HighKernel);


Tipos de Filtro
Diseo otros filtros

Rechaza Banda MATLAB
Fpass1 = 4000; Fstop1 = 5000;
Fstop2 = 9000; Fpass2 = 10000;
Apass = 1; Astop = 60; Fs = 44100;

% Pasa Bajo
h = fdesign.lowpass('fp,fst,ap,ast', Fpass1, Fstop1,
Apass, Astop, Fs);
filtro = design(h);
LowKernel = filtro.Numerator;
Sumar Seales
function [y,n]=sumar(x1,n1,x2,n2)
n=[min(min(n1),min(n2)):max(max(n1),max(n2))];
y1=zeros(1,length(n)); y2=y1;
y1(find((n>=min(n1)) & (n<=max(n1))==1))=x1;
y2(find((n>=min(n2)) & (n<=max(n2))==1))=x2;
y=y1 + y2;

Pasa Banda MATLAB
% Pasa Alto
h = fdesign.highpass('fst,fp,ast,ap', Fstop2,
Fpass2, Astop, Apass, Fs);
filtro = design(h);
HighKernel = filtro.Numerator;

%PasaBanda
RejKernel=sumar(LowKernel,0:length(LowKernel)-
1,HighKernel,0:length(HighKernel)-1);


Clasificacin de los Filtros
Los filtros se pueden clasificar segn su
implementacin
Convolucin
Recursivos
O segn su uso
Tiempo
Frecuencia
Personalizados
Clasificacin de Filtros
Convolucon
(FIR)
Recursin
(IIR)
Tiempo
(suavizado, remocin
DC)
Promedio Mvil Polo Simple
Frecuencia
(separar frecuencias)
Windowed Sinc Chebyshev
Personalizado
(Deconvolucin)
FIR
personalizado /
Filtros Adaptivos
Diseo iterativo
/ Filtros
Adaptivos