Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Procesamiento de Señales
Procesamiento de Señales
DE LA SEAL Y
COMUNICACIONES
DISEO DE FILTROS
PRCTICA 1:
NDICE
1. Objetivos.
2. Herramientas.
3. Introduccin terica.
10
14
4. Desarrollo de la prctica.
16
16
Cuestiones.
16
17
18
5. Memoria.
20
1. Objetivos.
En esta prctica se pretende en primer lugar familiarizarse con el entorno de
programacin que proporciona Matlab para el manejo de seales y filtros analgicos. Para
ello se proponen los dos apartados primeros donde se debern generar seales y filtrarlas
con un filtro proporcionado. Igualmente se analizar el proceso de filtrado analgico a la
vez que se aprender a caracterizar un filtro dado. Una vez conocidos los procedimientos
bsicos de anlisis y gestin de seales y filtros analgicos, se proponen otros apartados
donde ser necesario disear filtros para eliminar ruido aadido a seales. Con esto se
pretende analizar los distintos tipos de filtros que se pueden presentar as como los
problemas que pueden surgir del proceso natural de filtrado.
El presente documento est dividido en dos partes fundamentales: por un lado una
introduccin terica de las seales, filtrado y las funciones principales que proporciona
Matlab para su manejo y por otro lado los apartados de la prctica propiamente dicha.
2. Herramientas.
Ser necesario nicamente el programa MATLAB con el toolbox de Seales
instalado.
3. Introduccin terica.
Al iniciarse esta prctica el alumno ha de conocer los distintos tipos de filtros en
funcin de su respuesta en amplitud:
Paso-Bajo.
Paso-Alto.
Paso-Banda.
Banda Eliminada.
Diseo de filtros
Curso 2009/10
En esta introduccin lo que veremos son las funciones que nos permiten realizar los
distintos filtros segn su aproximacin y respuesta en amplitud y algunas otras que nos
sern tiles para comprobar algunas caractersticas de los filtros.
Las funciones de MATLAB que nos permiten obtener las funciones de
transferencia segn la aproximacin se encuentran en el toolbox de seales y muchas de
ellas son vlidas para el diseo de filtros analgicos y filtros digitales. Aunque a
continuacin se hace una pequea introduccin de esas funciones, es conveniente la
consulta de la ayuda para ver, en cada caso, los parmetros de entrada y salida.
a0
f t = a ncosn t b nsenn t
2 n=1
donde el periodo T=2/, y a0 a1 ...ai ... y b1 b2 .... bi .... son los denominados coeficientes
de Fourier.
modo:
a0 2
=
2 T
an =
2
T
2
bn =
T
Diseo de filtros
Curso 2009/10
T
2
f ( t ) dt
T
2
T
2
f ( t ) cos ( n t ) dt
n = 1, 2,3...
2
T
2
f ( t ) sen ( n t ) dt
n = 1, 2,3...
Las integrales tienen como lmite inferior -T/2 y como lmite superior T/2.
Si la funcin f(t) tiene simetra, algunos de los coeficientes resultan nulos.
Diseo de filtros
Curso 2009/10
Como vemos, aunque la seal es continua slo podemos trabajar con muestras de la
misma puesto que de otra manera necesitaramos infinitos puntos para su definicin.
Otro punto interesante que vamos a utilizar en la prctica es la suma de seales.
Para sumar dos seales y visualizarlas, simplemente hay que sumar los vectores que las
definen y utilizar el plot de manera anloga a la anterior. Los vectores han de tener la
misma longitud, es decir, las seales deben estar definidas en el mismo intervalo de
tiempo.
>> t=0:1e-5:4/100; % Definimos el eje de tiempos como un vector de
% que abarca 4 periodos de la seal.
>> y1=sin(2*pi*100*t);
>> y2=sin(2*pi*200*t);
>> y=y1+y2;
>> plot(t,y); % Representacin de la funcin frente al tiempo.
Diseo de filtros
Curso 2009/10
Diseo de filtros
Curso 2009/10
En las rdenes anteriores podemos ver algunas funciones tiles en estos casos:
>> x1=sin(0.5*t);
>> x2=sin(2.5*t);
>> x=x1+x2;
>> NUM = [0 0 0 1], DEN = [1.0000 2.6131 3.4142 2.6131 1.0000]
>> H=freqs(NUM,DEN,[0.5 2.5])
>> y=abs(H(1))*sin(0.5*t+angle(H(1)))+abs(H(2))*sin(2.5*t+angle(H(2)));
>> subplot(211),plot(t,x),subplot(212),plot(t,y)
Diseo de filtros
Curso 2009/10
Cmo vemos las sinusoides se multiplican por el valor del mdulo del filtro a la
frecuencia de dicha sinusoide y se les suma un trmino de fase que es el obtenido de la
funcin a esa frecuencia.
Cuando la seal no es sinusoidal simplemente hemos de descomponerla segn su
serie de Fourier y aplicar el principio de linealidad. Es decir, filtrar cada sinusoide de la
serie por separado, sumndolas al final.
Diseo de filtros
Curso 2009/10
Estas funciones sirven tanto para disear filtros digitales como analgicos y para
distinguir unos de otros se les ha de pasar como quinto parmetro de entrada una cadena de
caracteres s en caso de ser analgico, como es nuestro caso.
Veamos un ejemplo de su funcionamiento:
>> [N, Wn] = BUTTORD(10, 20, 2, 40, 's')
N=
8
Wn =
11.2469
En este ejemplo obtenemos el orden y la pulsacin de corte de un filtro de
Butterworth donde sus especificaciones nos dicen que p=10 rad/seg, a=20 rad/seg, p=2
dB y a=40 dB. Para los otros tipos de filtros se actuara de forma similar. Slo cambiara
la pulsacin de corte que se devuelve, y que tiene un significado distinto como ya se vio en
cada funcin.
Diseo de filtros
Curso 2009/10
10
Diseo de filtros
Curso 2009/10
11
2 + 02
B
B
+ 02
2
Como ejemplo de aplicacin de estas funciones, veamos el efecto que tienen sobre
una funcin de transferencia normalizada de Chebychev de orden 5 con p=2 dB que tiene
la siguiente expresin:
H ( s) =
0.0817
s + 0.7065s +1.4995s +0.6935s 2 + 0.4593s+0.0817
5
0.0817]
NUM =
0
>> DEN=[1.0000
0.7065
0.0817
1.4995
0.6935
0.4593
0.0817]
DEN =
1.0000
0.7065
1.4995
0.6935
0.4593
0.0817
Diseo de filtros
Curso 2009/10
12
>> W=0:0.01:10;
>> H=freqs(NUM,DEN,W);
>> HT=freqs(NUMT,DENT,W);
>> plot(W,abs(H),W,abs(HT))
Ahora, sobre ese mismo filtro queremos obtener un filtro paso-alto con pulsacin de
corte de 5 rad/seg.
>> [NUMT,DENT] = LP2HP(NUM,DEN,5) % Transformamos a 5 rad/seg
NUMT =
1.0000
0.0000
0.0000 -0.0000
0.0000 -0.0000
0.0212
0.5405
DENT =
1.0e+004 *
0.0001
0.0028
0.2294
3.8250
>> HT=freqs(NUMT,DENT,W);
>> plot(W,abs(H),W,abs(HT))
Diseo de filtros
Curso 2009/10
13
Como ltimo ejemplo veamos el caso de un filtro paso-banda que queremos obtener
a partir del paso-bajo anterior. Este paso-banda tiene como pulsaciones de corte de la banda
de paso 1=3 rad/seg y 2=5 rad/seg. Los comandos que permiten su obtencin se
muestran a continuacin:
>> [NUMT,DENT] = LP2BP(NUM,DEN,sqrt(3*5),5-3)
NUMT =
2.6144 -0.0000 -0.0000
0.0000 -0.0000
0.0000
DENT =
1.0e+005 *
Columns 1 through 9
0.0000
0.0000
0.0008
0.0009
0.0253
0.0208
0.3791
0.2032
2.7337
Columns 10 through 11
0.7153
7.5937
>> W=0:0.01:10;
>> H=freqs(NUM,DEN,W);
>> HT=freqs(NUMT,DENT,W);
Diseo de filtros
Curso 2009/10
14
>> plot(W,abs(H),W,abs(HT))
32
NUM =
0
Curso 2009/10
32
6.4721 20.9443 41.8885 51.7771 32.0000
Departamento de Teora de la Seal y Comunicaciones
15
DEN =
1.0000
>> zplane(NUM,DEN)
Vemos que este es un filtro de Butterworth puesto que sus polos estn
colocados en una circunferencia. El radio de esa circunferencia ser igual a la
pulsacin de corte a 3 dB de dicho filtro. En la representacin vemos tambin
un circulo de trazado discontinuo, este circulo tiene por radio la unidad y es de
importancia en el diseo de filtros digitales.
Existe una funcin similar llamada pzmap que tambin representa los polos y
los ceros, pero en este caso no representa el circulo unidad puesto que no est
enfocado a los filtros digitales como el anterior.
c) Funciones directas para el diseo de filtros. Butter, Cheby1, Cheby2, Ellip.
Estas funciones permiten el diseo de filtros segn la aproximacin elegida pero
tienen la particularidad de que devuelven directamente el numerador y el
denominador del filtro. Y no slo de filtros paso bajo, sino de cualquier tipo y
con cualquier pulsacin de corte. Sin embargo, nosotros no vamos a utilizar
estas funciones en el desarrollo de la prctica porque queremos realizar el
proceso de diseo completo desde el prototipo al filtro final. Esta funcin sirve
tanto para disear filtros analgicos como digitales y hay que indicar de alguna
manera que tipo queremos obtener, esto se hace aadiendo un ltimo parmetro
de entrada que es una letra s.
Diseo de filtros
Curso 2009/10
16
4. Desarrollo de la prctica.
En la primera parte de la prctica se generar una seal peridica por medio de
suma de sus armnicos, para, en el apartado siguiente ser filtrada con un filtro
proporcionado. En este apartado se analizar el filtro proporcionado y se comprobar el
efecto de filtrado sobre la seal.
Posteriormente en los apartados siguientes vamos a disear dos filtros para unas
aplicaciones especficas. Se tratar de eliminar seales indeseadas que se han sumado como
ruido a otras que s son tiles. Para ello debemos definir la plantilla de especificacin del
filtro, obtener el orden necesario, calcular la funcin de transferencia normalizada y
desnormalizar o transformar para obtener el filtro final.
x t =a 0 2ancos
n =1
2
nt
T
Cuestiones.
1) Qu observa al aumentar el nmero de armnicos? .
2) Qu diferencia observa entre la primera y segunda grfica?. A qu se debe
esto?.
Diseo de filtros
Curso 2009/10
17
Se pide:
a) Obtener el diagrama polo-cero y discutir en funcin de ste el tipo de filtro en
funcin de su respuesta en amplitud.
b) Representar la respuesta en amplitud y en fase del sistema. Para ello usar la
funcin freqs(). Adems decir:
1. Tipo de aproximacin.
2. Obtener los valores de p , p , a utilizando Matlab. Comentar el
procedimiento seguido. Puede utilizar la funcin ginput de Matlab
o bien obtener los valores exactos examinando las variables creadas
en Matlab.
3. Presenta distorsin de fase en la banda de paso?.Por qu?.
4. A qu son debidos los saltos en la fase?.
c) Para comprobar el efecto que produce esta funcin de transferencia sobre
nuestra seal original x(t), vamos a hacer que una aproximacin a sta,
compuesta por 40 armnicos, pase por el sistema representado por dicha
funcin. Usaremos para ello la funcin freqs() de nuevo y aplicaremos la
propiedad de linealidad, calculando el efecto sobre cada uno de los armnicos,
para sumarlos finalmente a la salida. Representar la seal de salida.
d) Es la seal de salida que esperaba?Por qu?. Dibujar en una misma grfica el
espectro de la seal de entrada y la respuesta en amplitud del filtro y relacionar
la seal de salida obtenida con la informacin de esta grfica. Para que se pueda
ver mejor, represente nicamente los primeros 8 armnicos. (Utilizar la funcin
LINE de Matlab para dibujar lneas y la funcin STEM para el espectro de la
seal).
Diseo de filtros
Curso 2009/10
18
1
n 1
n
a n= sinc 2
sinc
2
2 2
3
40
x t =a 0 2a ncos
n=1
2
nt
T
5
t ;
T
y t= x tn t
Se pide:
1. Representar en grficas separadas la seal de entrada sin ruido, la seal de entrada con
el ruido aadido y en una tercera grfica representar el espectro de la seal de entrada
con el ruido aadido. En este ltimo caso pintar con otro color el espectro del ruido.
2. Disear razonadamente la plantilla del filtro que permita eliminar el ruido de la seal
y(t) y recuperar la original x(t). Como condiciones para el diseo se pide:
Diseo de filtros
Curso 2009/10
19
La atenuacin mnima para que una seal sea eliminada ser de 40 dB.
Chebychev directo.
Chebychev Inverso.
Elptica.
Curso 2009/10
20
11. Disear el filtro necesario para obtener nicamente el ruido aadido a la seal original.
Igualmente considerar un ancho de banda de 10 Hz y las atenuaciones en banda de
paso y eliminada igual al filtro diseado en el apartado 2. En este caso igualmente
obtener el filtro con las cuatro aproximaciones estudiadas, sus diagramas polo-cero y
respuestas en amplitud, atenuacin y fase. Comprobar el proceso de filtrado y que la
seal obtenida coincide con el ruido aadido. Para reutilizar el cdigo de apartados
anteriores, se puede hacer este filtro con la misma aproximacin que la utilizada para
el filtro anterior.
5. Memoria.
La memoria de esta prctica incluir un(os) programa(s) de Matlab (comentados) en
los que se calcule y visualice lo pedido en las cuestiones del apartado 4. Adems se
proporcionar una explicacin y comentario de cmo se ha realizado la prctica y porqu
se ha realizado de esa forma.
Se debe aadir en cada punto un apartado de conclusiones donde se comentarn los
resultados en relacin con la teora ya conocida. Siempre que se pueda, se aadirn las
grficas necesarias para poder seguir las explicaciones.
NOTA: Para la realizacin de los filtros no se permite utilizar las funciones butter,
cheby1, cheby2 y ellip.
Diseo de filtros
Curso 2009/10