UNIVERSIDAD AUTONOMA METROPOLITANA
UNXDAD XZTAPALAPA
PRESENTAN
tDE
LA
LUZ
PUEBLA
VICTOR
MANUEL
GHENO FLORES
JULIO
CESAR
PRESENTACION
En l o s aPSos recientes, ha habido un tremendo incremento en el
uso
de computadoras digitales
y
circuiterla digital de propdsito
especial para desarrollar una amplia gama de funciones de
procesamiento de seffales que inicialmente fueron llevadas a cabo
con equipamiento analdgico.
La evolucidn continua de circuitos integrados relativamente
baratos a propiciado una variedad de microchputadoras
y
minicomputadoras que pueden
serusadas para varias funciones de
procesami ent
o
d e seffal
es.
Ahora es posible construir procesadores digitales de propdsito
especial dentro del mismo tamaffo y al mismo costo de aquellos de
natural eta analdgi
ca.
Este trabajo aborda una pequeffa
parte de los filtros digitales
adaptivos analizando
el
desempeffo de los algoritmos
LMSy
VSLMS(algoritmos para filtros digitales adaptivos no recursivos
o
F I I R )
mediante e1
uso
de
programas computacionales para la simulacidn de
tales algoritmos observando cual
es
s u deoempeffo para diferentes
tipos de secuencias de entrada, diferentes niveles de ruido
y
condiciones cambiantes de medio de transnision,
es
decir,
de la
funcihn de transferencia
del medio.
I
NTROWCCI
ON
Un f i l t r o
d i g i t a lpuede ser d e f i n i d o como un p r o c e s o c o m p u t a c i o n a l
o
a l g o r i t m o
que
c o n v i e r t e u n a s e c u e n c i a
d enCrmeros r e p r e s e n t a n d o
una
sefial
d ee n t r a d a e n o t r a s e c u e n c i a
d enClmeros r e p r e s e n t a n d o u n a
sefial
d esal
i d a , ye n el c u a l
l a
c o n v e r s i b n
cambia
l a s
caracteristicas
d el a
sefial en una forma
preescrita.
Un f i l t r o
d i g i t a l esd i s e f i a d o
p o r
l a d e t e r s i n a c i o n
d el o s
c o e f i e i c n t e s
d e la l g o r i t m o
d ee n t r a d d s a l i d a p o r a l & n p r o c e s o
d eaproximacidn.
Los
f i l t r o s
d i g i t a l e sp r e s e n t a n
v a r i a s
v e n t a j a s
s o b r e
s u s
c o n t r a p a r t e s a n a l b g i c o s :
1.-
I n t e r v a l o d i n i m i c o .
E l
limite
s u p e r i o r
es fi j a d o p o r
el
tanaf5o
d e lnamero que
el
hardware
d i g i t a lp u e d e r e p r e s e n t a r ,
yel
llmi
t e
i n f eri
o res
f i j a d o p o r el r u i d o
d ec u a n t i z a c i b n
y errores d eredondeo.
El
i n t e r v a l o e n t r e e s t o s
limites
depende Crnicaaaente
d el a s
l o n g i t u d e s
d epalabra
u t i l i z a d a s
( o sea,el
numero
de b i t su s a d o s
e n
l a r e p r e s e n t a c i d n
b i n a r i a
d ela
seftall.
Si
l a s
l o n g i t u d e s
d epalabra
sepueden hacer l o
s u f i c i e n t e m e n t e
g r a n d e s , e n p r i n c i p i o
el
i n t e r v a l o d i n i m i c o n o t i e n e
limite.
L o s
limites
s o n i m p u e s t o s e n
l a practica
adaptandose
d emanera
2.- Ausencia de problemas
de componentes.
L o s
parametros d e los filtros
se
representan por medio
de
n6meros b i n w i o y
n o
derivan con
el
tiempo.
Al
aumentar la
longitud d e palabra
se
hace posible la obtencibn de cualquier
grado d e exactitud deseado.
Dentro de los límites de esa
exactitud, el filtro funciona tal y como se diseKo.
Nohay
problemas de tolerancia o deriva de
componentes.
Yninguno
asociado con
un comportamiento no
ideal d e
resistores,
capacitores, inductores
o
amplificadores.
Tappocoexisten
problemas de impedancia
de
entrada y salida ni
efectos de
carga entre etapas.
3.
-
Conmutabi
1
idad
Si
l o sparimetros del filtro se conservan en registros
(lo
contrario de conectarse fisicanente), el
contenido de estos
registros
se pueda cambiar a voluntad y en forma instantanea
(es
decir, entre tiempos de muestre0 consecutivos),
p o rtanto,
l o s
filtros
se
pueden hacer perfectamente
conmutables.
Un s o l o
filtro conmutable tambien
se puede multicanalizar en
el tiempo
para procesar entradas
mdltiples.
4.
-
Adaptabi 1 idad.Un
f i l t r o
d i g i t a lpuede implementarse en
hardware
ob i e n como
programa
d ecomputadora.
L o sf i l t r o s
d i g i t a l e s
d ehardware
tambien
sea d a p t a n
s i n
d i f i c u l t a d
para
el c o n t r o l
p o rcomputadora
d e susparametros.
E x i s t e n m u c h a s a p l i c a c i o n e s
d ep r o c e s a m i e n t o
d eseffales e n
c u a l e s
l a s
r e l a c i o n e s
d efase
s o n im p o r t a n t e s ,
yno deben
p e r t u r b a d a s
p o r
el
f i l t r a d o .
P a r a
e s t o s
f i n e s
serla
idealf i l t r o con d e f a s a n i e n t o
cero;e n
l a practica
se d e b eb u s c a r
f i l t r o
cuyo
d e s p l a z a m i e n t o
seap r o p o r c i o n a l a
la
f r e c u e n c i a .
1
as
ser
un
un
Una d i s t i n c i b n f u n d a m e n t a l e n l o s
sistemas
d ed a t o s n u e s t r e a d o s
yp a r t i c u l a r m e n t e e n lo s f i l t r o s
d i g i t a l e s , esl a
d u r a c i b n
d el a
r e s p u e s t a
al
impul
s o . Se h a b l a d er e s p u e s t a f i n i t a
al
impulso
(FIR,
d ef i n i t e
i m p u l s e
r e s p o n s e )
y d esistemas
d er e s p u e s t a
i n f i n i t a
al
impulso
(IIR
d ei n f i n i t e i m p u l s e r e s p o n s e ) :
a3
I I R
Un f i l t r o
IIR
es u n oe n
el
cual
l a
r e s p u e s t a i m p u l s i v a H ( n ) t i e n e
un nitmero i n f i n i t o
d e
muestras.
h i ,
H(n)
esno
ceroe n un nCtmero
b>
FIR
Un filtro
FIR
es
uno en el cual la respuesta
a limpulso
H(n)
eslimitada a un n ~ m e r o
finito de muestras.
Entre las posibles ventajas
de
l o s
filtros
F I Rson la
posible
realizaci6n d e caracteristicas ideales
d e
fasey
menos
susceptibilidad de la implementacion
a
efectos de parametros de
cuantizacidn, ademas
de que estos, son siempre estables bajo
cual
qui
ervari aci
6 n en sus coef
i ci entes.
1
Entre las desventajas son
l o s
grandes tiempos de retardo, la
necesidad d e funciones de mas alto orden para llevar
a
cabo los
requerimientos preescritos
de filtrado, y la carencia de procedi--
mientos mas
simples
de diseRo que peraitirlan la consecucibn
directa
de
las especificaciones
del filtro
I
a0
1
a 2
J,an
I
I
a 0
J.
al
J.
a 2
J.an-1
J.an
I
I
ESTRUCTURA FILTRO IIR
Que hacen los filtros adaptivos?
L o s
filtros adaptivos se adaptan a las circunstancias cambiantes.
A
diferencia d e l a mayorla
de
1
os f
i 1
t r o sconvenci
m a l e s , 1
o s
filtros adaptivos predictivos son autodefinidos
en
el 'vuelo"
p o rla secuencia
dedatos
de
entrada
mas
que
por un modelo a priori de
la sena1 esperada y las estadlsticas de ruido.
Para estadlsticas
de entrada estacionarias, los filtros adaptivos convergen
al
filtro bptiao Wiener,
el
cual
desde su primera
f
ormulacibn
expllcita en
1949,
esel
mejor predictor
d e
mlniaos cuadrados
La p r e d i c c i b n l i n e a l
es
una t b c n i c a c l A s i c a de procesamiento desefiales que p r o v e e c a l c u l o s aproximados d e l v a l o r de un proceso de
entrada en un tiempo donde l o s datos medidos no e s t a n d i s p o n i b l e s ,
basados en mediciones del m i s m o proceso realizadas durante
i n t e r v a l o s que n o c o n t i e n e n e l t i e m p o de i n t e r e s . Las t b c n i c a s
s o n usadas generalmente en l a separacibn de s e b l e s y r u i d o
basados en l a s d i f e r e n c i a s d e l tiempo de coherencia de l a s e b l y
e l r u i d o .
Esto ha sido exitosamente aplicado a una amplia gapa de caabpos
incluyendo radar, sonar, estimacibn espectral, comunicaciones,
t e o r í a de c o n t r o l . c a n c e l a c i b n de ruido, sistema de
i d e n t i f i c a c i b n , astronomía, procesamiento de imagenes, i n g e n i e r í a
b i o d d i c a y o t r a s muchas areas.
kliener fue e l primero
en
d e r i v a r una f o r m u l a c i b n e x p l í c i t a d e lp r e d i c t o r b p t i m o p o r m l n i m o r cuadrados para procesos estacionarios
c o n t i n u o s en tiempo.
Se
puede mostrar que 105 c o e f i c i e n t e s d e lp r e d i c t o r b p t i m o p o r m í n i m o s cuadrados e s t a n d e f i n i d o s en terminos
de l a s e s t a d í s t i c a s de segundo orden d e l p r o c e s o e s t o c k t i c o .
Consacuentewmte, l a determinacibn de l o s c o e f i c i e n t e s d e l f i l t r o
b p t i m o r e q u i e r e c o n o c i m i e n t o e x p l í c i t o de l a s f u n c i o n e s de
c o v a r i a n c i a de l a seRal de datos de entrada.
E l
disef'ío de f i l t r o s de Wiener r e q u i e r e a p r i o r i de informacibnacerca de l o s d a t o s e s t a d í s t i c o s de l a i n f o r m a c i b n a
ser
procesada. Cuando t a l i n f o r m a c i b n no e s t a d i s p o n i b l e , l a
i n f o r n a c i d n e s t a d í s t i c a r e q u e r i d a puede ser determinada de
l o s
datos de entrada usando estimacibn de m í n i m o s cuadrados. CIlgunas
t & c n i c a s como m l n i m o s cuadrados r e c u r s i v o s , pueden s e r u t i l i z a d a s
para proveer una implamentacibn mas e f i c i e n t e .
La p r e d i c c i b n a d a p t i v a basada en e s t i m a c i h de , g r a d i e n t e es
tambien usada p a r a p r e d e c i r una secuencia en tiempo con p a r 4 r e t r o s
e s t a d í s t i c o s desconocidos.
Los f i l t r o s adaptivos s o n autodisefiados basados en un a l g o r i t m o
r e c u r s i v o e l c u a l p e r m i t e a l f i l t r o aprender l o s parAmetros
e s t a d í s t i c o s i n i c i a l e s de l a entrada y r a s t r e a r l o s s i v a r í a n
lentamente
en el
t i e m p o .Tales f i l t r o s empiezan de un conjunto predeterminado de
c o n d i c i o n e s i n i c i a l e s ,
las
c u a l e s no contienen suposiciones acerca de l a s c a r a c t w l s t i c a s e s t a d í s t i c a s del o s
datos y entonces,a c t u a l i z a
lor
c o e f i c i e n t e s d e l f i l t r o basado enel
a l g o r i t m oPara
e n t r a d a s
e s t a c i o n a r i a s ,
h a s i d omostrado
quef i l t r o s
a d a p t i v o s
d i s e f i a d o s
a p r o p i a d a m e n t e
al
f i l t r o dptirno
d eMeiner
d e n t r o
d eun f a c t o r c o n o c i d o como r u i d o
d edesajuste.
E l
r u i d o
d ed e s a j u s t e
es
d e t e r m i n a d o p o r
l a magnitud
d el o s
e r r o r e s i n h e r e n t e s
d e 1 0 5
d a t o s
d ee s t i m a c i b n adaptiva,
ypuede
serc o n t r o l a d o
p o rl a
a p r o p i a d a
s e l e c c i d n
d el o s
par-bmetros f i j o s
d e lf i l t r o
a d a p t i v o .
L o spar-bmetros f i j o s
d e lf i l t r o
d i g i t a ls o n
a l g u n o s
tales
como
:orden
d e lf i l t r o ,
c o n s t a n t e
d ea d a p t a c i b n ,
yd i s t a n c i a
d ep r e d i c c i d n .
La
razdn
a
la
c u a l
el
f i l t r o c o n v e r g e
es
d e f i n i d a
comoel
tiempo
d e
a p r e n d i z a j e
d e lp r o c e s o
a d r p t i v o
( l a c o n s t a n t e
d etiempo
a d a p t i v a ) . L a m a g n i t u d
d el a
c o n s t a n t e
d et i e m p o ad a p t i v o
yel
r u i d o
d ed e s a j u s t e ,
son
i n v e r s a m e n t e r e l a c i o n a d o s .
E l
ma5
s i m p l e ymas
e x t e n s i v a m e n t e a l g o r i t m o a d r p t i v o u t i l i z a d o
es
el
WCE
(least
mean
square).
E s t e a l g o r i t m o u t i l i z a u n a t 4 c n i c a
d ebusqueda
d eg r a d i e n t e
para
d e t e r m i n a r l o s c o e f i c i e n t e s ,
1
o sc u a l e s m i n i m i z a n el
errorcuadr-btico medio
d ep r e d i c c i b n .
Los
a l g o r i t a o s
LHS
r e q u i e r e n s o l o
2N
o p e r a c i o n e s p o r it e r a c i b n
para
d a t o s
reales,
yn o r e q u i e r e n
d ela
d e t e r m i n a c i d n e x p l í c i t a
d el o s
c o e f i c i e n t e s
d ela
c o r r e l a c i d n
d el a
eefial
dee n t r a d a .
Avances recientes d e algoritmos para filtrado adaptivo
y
hardware
digital de alta velocidad han producido familias
de
algoritmos
computaci
m a l m e n t e efectivos, l o s cuales, pueden ser iaplerentados
E n t r e l o s a l g o r i t m o s a d a p t i v o s mas usados tenernos a q u e l l o s basados
en l a basqueda del gradiente. Esto se debe p r i n c i p a l m e n t e a su
robustez y s i m p l i c i d a d .
En general un a l g o r i t m o basado en l a bCrsqueda d e l g r a d i e n t e e s t a
dado p o r :
H(n+l)
=
H(n)
-
p
V ( n )(1)
donde :
H(n)
=
tho , h a ,...
h n - a 3 TEs e l v e c t o r de c o e f i c i e n t e s . Y :
Es e l g r a d i e n t e de e r r o r c u a d r a t i c 0 medio y p es un f a c t o r que
c o n t r o l a l a e s t a b i l i d a d y v e l o c i d a d de adaptacidn del algoritmo.
De l a f i g u r a a n t e r i o r tenemos que :
e(n)
=
d(n)-
y ( n )CIsi asumiendo que:
X ( n )
=
C x ( n ) , x(n-1)...,
x ( n - N + l ) l Trepresenta e l vector de entrada, de
2,4
y 5 obtenemos :e(n)
=
d ( n )-
HTX (n)y sustituyendo ( 6 ) en ( 3 ) obtenemos:
E l
c a l c u l o deV ( n )
no es simple en l a p r a c t i c a debido a l operadorespcctacibn. Esta d i f i c u l t a d r a d i c a p r i n i c i p a l a e n t e en e l hecho
de que l a s u p e r f i c i e de error es en general, desconocida en l a
p r a c t i c a , y debe 5er estimada p a r t i r de
10s
datos de entrada.E l c u a l
d e ( 6 ) sepuede
reescribir
como:
V(n)
=
-2
Ce(n)x (n)
,
e ( n ) x ( n - 1 )
,
. . ..
, e ( n ) x (n-N+l)
1 ( 9 )&si, reemplazando V(n) por
V'( n ) e n
( 1 1 , d e ( 9 )obtendremos:
H(n+l)
=
H(n)
-
pV' ( n )
( 1 0 )La
c u a l se puede reescribir como:
h x ( n + l ) = h r ( n )
+
2 p c ( n ) x ( n
-
I )Las
e c u a c i o n e s
1 0 y11
se conocen como el a l g o r i t m o
LMS( 1
crast
means square)
oa l g o r i t m o
d eWidrow-Hopf.
S o l u c i o n
Optima.Considerando
l a
a i n i a i z a c i d n
d e l e r r o rc u a d r i t i c o m e d i o d a d o
porL a c u a l
d e(2)
y ( 5 ) sepuede reescribir como
:E
Ce 2 ( n )
3=
E
C(d(n)
-
XTH)'l (13)La m i n i m i t a c i h de 13 puede l l e v a r s e a cabo usando e l p r i n c i p i o de
o r t o g o n a l i d a d e l c u a l c o n s i s t e en s e l e c c i o n a r H de modo t a l que l a
sef3al de error sea ortogonal a l v e c t o r de entrada, es decir:
&sumiendo que l o s c o e f i c i e n t e s y
el
v e c t o r de entrada s o n n ocorrelacionados, de (15) obtenemos: 1
P = R H
donde:
(16)
(17)
es e l v e c t o r de c o r r e l a c i d n e n t r e
el
v e c t o r de entrada y l a ref'íalde r e f e r e n c i a , y :
R
=
E C X ( ~ ) X ~ ( ~ ) I (18)es
la
m a t r i z de a u t o c o r r e l a c i d n del a
sefial
de entrada.M u l t i p l i c a n d o a (16) por e1 l a d o i z q u i e r d o p o r R "S
,
obtenemos :H m
R"P
(19)Convergencia d e l a l g o r i t m o LMS.
Considere l a
seffal
deerror
la
cual esta dada por :donde :
H
tho,
hi,
h a , hN-61 TY
X ( n )
=
C x t n ) ,
x(n-l)...x(n-N+l)I T (21 1Sustituyendo 20 en l a expresidn correspondiente a l a l g o r i t m o LMS
Tomando e l v a l o r esperado de
24, asumiendo que
l o s c o e f i c i e n t e ss o n
n o c o r r e l e c i o n r d o r en l a sena1 de entrada, obtenemos:Seguidamente, sustrayendo H o p dado por (19) m r a b o s lados de l a
e c u a c i h
(251,
obtenemos:
ECH(n)I
-
R-'P=
ECH(n-113-
R-'P+
2pR<R-'P-
ECH(n-1)33 (29)donde:
E l significado de este proceso es una traslacidn de
ejes.
Seguidamente, usando una matriz ortonormal representarnos
R
dela
si
qui
e n t e
manera:Donde:
A r i de 32 y 33 obtenrmos
R
=
K=Q KK*K
=
I(32)
(33)
K R K ~
=
K K ~ Q
K K ~ (35)Q
=
K R K ~
donde
:
Q
=
diagCXi,
XZ,....,XN>
(36 1
(37)
y
Xies
el
i-esino eigenvalor o valor propio
de la matriz
de
autocorrelacibn
R.
Asi sustituyendo 34
en30
obtenemos
:
Multiplicando
(40) p o r Ken el .lado izquierdo, obtenemos:
q ( n )
=
KKT(I
-
2pQ)Iy(n-l)
V(n)
=
( I-
2pQ)V(n-l)
E l
significado d e
esta operacidn
esuna rotrcidn d e ajes.
(41)
(42)
I t e r a n d o
l a
e c u a c i d n
(32)obtenemos:
1
-2gA2
I
I
I
I I
.
I I
(43)
1
De
aqui
sep u e d e v e r q u e
Vi(k
1aproxima
a Osi
:1
-
2 p X ~ C1
D e
donde
seobtiene? que
si
O<
p
<
1 / Xi(44)
(45)
l a
i-esiaa
componente
d e lv e c t o r
Vc o n v e r g e r & a
O ( c e r o ) .CIsi
con el o b j e t o
d ea s e g u r a r
l a c o n v e r g e n c i a
d et o d o s
l o s
componentes
d e lv e c t o r
V ser e q u i e r e q u e
:0
<
p<
1
/ . X MAXE s t o
sededuce
d eel
hecho d eque
Una c o n d i c i b n
d ec o n v e r g e n c i a ,
l a
c u a l
ess u f i c i e n t e
p e r o
no
n e c e s a r i a , se p u e d e o b t e n e r
d el a
t e o r i a
d ematrices
observando
que:
t r R
>
X MAX ( 4 7 )Donde t r R s i g n i f i c a
l a
suma
d et o d o s l o s e l e m e n t o s e n
l a
d i a g o n a l
p r i n c i p a l
deR.
Y a
q u e
R
esta
dado
por
(181,es
facil
d e d u c i r q u e
Donde x 2 ( n ) d e n o t a
l a
p o t e n c i a
d el a
renal
d ee n t r a d a .
~ ~~ ~
A s i
f i n a l m m t a o b t e n e m o s q u e
el
a l g o r i t m o
LHSsera
c o n v e r g e n t e
si:
Para
p o d e r
t e n e r
u n a
o p t i m i z a c i d n
c o m p l e t a
e n
l a
aproximacidn
a d a p t i v a ,
debemos
d et o m a r
c u e n t a ,
e n
l a
v e l o c i d a d
d ec o n v e r g e n c i a ,
l a
d i s t o r s i d n
d el a
seffal
yl o s r e t a r d o s
d et r a n s m i -
s i d n
d ed a t o s ,
l o s
c u a l e s
d e b e n
ser
mínimos. Generalmente
l a s
e s t r u c t u r a s
adaptivas
no pueden proveer
un g r a n
f a c t o r
d edecirnacidn
yun pequeffo r e t a r d o
dat r a n s a i s i d n m i e n t r a s m a n t i e n e
u n a g r a n v a l o r
d eERLE
( e c h o r e t u r l o s s e n h a n c e m e n t ) .
Con
ung r a n
f a c t o r
d edecirnacidn
yuna a l t a a t e n u r c i b n
d e e c or e p u e r i r l a e o s
d eun orden
d e lf i l t r o muy a l t o
yc a u s a r í a
g r a n d e s
r e t a r d o s
d et r a n s m i s i d n .
E l a l g o r i t m o
VLHSes u n a p r o p u e s t a
el
c u a l permite v e l o c i d a d
yd e t e c c i o n
precisa
para
l a
a p r o x i n a c i d n
d el o s c o e f i c i e n t e s
d e lf i t r o a d a p t i v o .
E l p r i n c i p i o
basic0
d e lf u n c i o n a m i e n t o d e
este
a l g o r i t m o ,
esi r
v a r i a n d o el tamaPIo
d e l pasoa
medidae n q u e
este
sava aproximando
a
l a
sePIa1,
esdecir,
el
t a m d o
d e lp a s o va disminuyendo
a medidaq u e
el
a l g o r i t m o
vac o n v e r g i e n d o
h a c i a
e 1
v e c t o r
d p t i m o
d eEl
p r i n c i p i o
d eeste a l g o r i t m o
es
b k i c a m e n t e
similar al
LMSd e s c r i t o
a n t e r i o r m e n t e
a d i f e r e n c i a
d e l a sc o n d i c i o n e s
e n
l a
c u a l e s v a
a
v a r i a rel
paso d ec o n v e r g e n c i a .
P a r t i e n d o
d eque
l av a r i a b l e
d ep a s o
es p r o p o r c i o n a l
a
l a
p o t e n c i a
d e l err o r :
N-1
1
h ( k ) 2k 3 1
N
Por l o c u a l a l n ) q u e d a
d e l as i g u i e n t e m a n e r a :
N- 1
K=l
A s i
p o rl o t a n t o
:Cssi
paraque el algoritmo converja ma5 ripidamente definimos las
siguientes condiciones:
si
s i
A M A X
=
1.0
entonces
a(n)
=
B
entonces
a(n1
=
1.0
Las
siguientes
paginas
nuestran
el
programa
corputpciorrpl
donde
se
implenentan
ambos
algoritrrps,
asícorn
l a
i n t r r f a z
hacia
el
t
*"""""""""""""""""""""""""""""""
*I*
PROGRAMA VSNLMS
AND LMS
* )*"""""""""""""""""""""""""""""""
*IEste programa implementa
l o s algoritmos vsnlms
y
lms
*)
para la simulacion de filtros adaptivos no recurs1vos
*cS
el cual muestra la relacion señal/ruido que presenta
*)
tal simulacion.
Este programa
es capaz de analizar
*)
distintas señales de entrada desde
la mas simple funcion
*Iescalon hasta una señal totalmente aleatoria,
la cual
* Iira siendo aproximada p o r
el filtro adaptivo convergiendo
*)
a
un valor de ganancia
dado
* )
'ROGRAM
VSLMS-LMS;USES
CRT,
VENTANAS,
GRAPH,
PTOOLS;CONS
J
fct
=
'.FCT';
erl
=
'.ERL';
sig
=
' . S I G ' ;( *
el programa s e auxilia de estas
* )
( *
unidades, las cuales slrven para
* )( *
realizar la parte de graficacion,
* I( *
la parte de interface a usuario y
*)
( *
para proposlto propios del lenguaje
*)
I
( *
Estas constantes son declaradas para
*I( *
para poder identificar
l o s archivos
*I( *
de texto que generara
y
utilizara el
* I( *
programa
*)
TYPE
vector=arrayCO..
3001
o freal
;
cadena
=
stringC303;
cadena1
=
stringC41;
VAR
A ,
AT,
XT,
AR,
A R 1 ,XR,
XS,DT
n , i x 2 , i x l
libre
:
vector;
:integer;
:
boolean;
(*"""-"""""""""""""""""""""""""""
*)
(*
GENERADOR DE RUIDO GAUSSIAN0
*)
(*"""""""""""""""""""""""-"""""""
*)
(*
generador de numeros uniformemente distribuidos
*)
( *
para asi poder realizar la simulacion del ruido blanco
*I
procedure unif(uni
:integer;
V A R
i x l , i x 2
:integer;
VAR ry
:real);
V A R
BEG I N
i f u n i = l t h e n i : c : = i x l el
se
i x : = i x Z ; i s : = i x * 1 7 9 ; i f i x < O t h e n
r y : =i x / 3 2 7 6 8 . O ;
i f u n i = l t h e n
el
se
i x : = i x + 3 2 7 6 7 + 1 ;
i x l : = i x
i x Z : = i x ; END
;
*
G a u s s i a n o s n u m e r o s g e n e r a d o r d e* )
*
E s t e p r o c e d i m i e n t o se a y u d a d e l p r o c e d i m i e n t o UNIF p a r a *I*
g e n e r a r a l e a t o r i a m e n t e d a t o s q u e s i r v a n p a r a d e t e r m i n a r * I*
u n aseñal
d e e n t r a d a yl a
r e s p u e s t a i m p u l s i v a d e lsistema
*)
r o c e d u r e n o i s e ( u n i : i n t e g e r ; s d :
r e a l ;
VAR i x 1 , i x z I : i n t e g e r ; VAR x l , : c 2 :
r e a l ) ;
I
LhBEL
1.;
VAR
vl,v2,r,s,b,y
:r e a l ;
BEGIN
1 : u n i f ( m i , i x l , i x 2 , r ) ; v l : = 2 * r - l ;
u n i f ( u n i , i x l , i x 2 , r ) ; vZ: =2*r-l j
S : = s q r
( v l )
+ s q r ( v 2 );
i f
s>1.0
t h e n g o t o1;
b: "2. O*ln ( 5 );
y : = s q r t ( b / s )
;
x
1
: = s d * v l * y ;x í ! : =sd*vZ*y;
END;
(*"""""""""""""""""""""""""""""""
* I(*
PROCEDIMIENTO RESIMF*)
(*"""""""""""""""""""""""""""""""
*)
roceaure res1mp:ma : L n r i l g e r ; VAR sdl,xl,xL : r e a l ; VAR A R , A R l : v e c t o r ) ;
VAR
j , k , i x l , i x 2 : i n t e g e r ;
REG
I Ns d l
:=
1 ;i x 1 :
=232;
i x 2 : =345;
FOR k:=O t o ma-1
DO
b e g i nnoiseIl,sdl,ixl,ix2,xl,x2);
A R C k l : = ( x l / 3 . 0 ) * e x p ( - ( 6 . ~ * k ) / ( m a - l ) I ; A R l C k l : = ( x 2 / 3 . 0 ) * e x p ( - ( 6 . ~ * k ) / ~ m a - l ) ) ; end;
END;
'*~""""""""""""""""""""""""""""""
*)
:*
PROCEDIMIENTO TRANSV*)
;*""""""""""""""""""""~"""""""""--
*)
:*
E s t e p r o c e d i m i e n t o o b t i e n e v e c t o r e l o l a m a t r i z de *I [ * s a l i d a d e l s i s t e m a empleando l a sumatoria de convo-,
* I:*
l u c i o n , p a r a l a c u a l i n v i e r t e l a s e ñ a l de entrada *If * y e s l a
que
v a r e c o r r i e n d o s o b r e la r e s p u e s t a im p u l s i v a *I, r o c e d u r e t r a n s v ( V A R m a , n a : i n t e g e r ; VAR x 1 , y : r e a l ; VAH A T , X T : v e c t o r ) ;
VAR
k : i n t e g e r ;
BEG I N
FOR
k:=O
t o na-1DO
( *
r e c o r r e l a l i n e a de r e t a r d o * I b e g i nend;
XTCnal: =x 1
;
( *
i n t r o d u c e s e ñ a l l a d e e n t r a d a*)
FOR k:=O t o ma-1DO
beg¡ n
end;
XTCkl:=XTCk+ll
y :
=o.
o;
y:=y+ATCkl*XTCna-kl
( *
c o n v o l u c i o n a o b t e n i e n d o y l t )*)
END;
(*"""""""""""~"""""""""""""""""""
*)
( *
PROCEDIMIENTO STEPSIZE *I(*"""""""""""""""""""-""""""""""--
*)
( *
E s t e p r o c e d i m i e n t o e s l a mas i m p o r t a n t e d e n t r o d e l*)
(*
programa, y a d e t e r m i n a p a s o e l c o n v e r g e n c i a d e d e* )
( *
acuerdo con l a s e l e c c i o n d e l a l g o r i t m o s e l e c c i o n a d o*)
rocedure stepslze(VAR ma,na : i n t e g e r ;
VAR m i u , e r r o r , a l f a : r e a l ; VAR
XT
: v e c t o r ;ch : char ) ;
VFIR
k
: I n t e g e r ;am1 u, m i up, mmax
,
m m i n : r e a l;
BEGIN
amiu:
=O.
O;( *
c a l c u l o de l a p o t e n c i a* )
FOR
k:=O t o ma-1DO
(*
de l a señal de entrada* )
b e g i n( *
para as¡ determinar e l*)
amlu:=amlu+sqt- (XTCna-kl) ( * paso*)
end;
i f ch
=
' L '
thenel
sem i u
:=
a l f a / a m i u(*
c a l c u l o de m i u*)
begin
mmax:
=l.
O / a m i u ; ( * r a d i o de convergencia de m l u *Immin:=O.Ol/amlu; i f m i
u=O.
O then e l sem i up : =mmax
rnlup:=0.999*miu+0.00048*error*error;
miu:=miup;
( *
condiciones de m l u para *I I f miup>mmax then miu: =mmax;( *
l a convergencia del* )
I f miup(mmin then miu:=mmin;
( *
a l g o r i t m o *Iend;
END;
(*."~"""""""~"""""""~""-""""""""""---
* )
( *
PROCEDIMIENTO
LMS*)
(*""""""""""""""""""""""""""""""-
*)
( *
Este procedimiento evalua e l a l g o r i t m o con e l c u a l e l*)
c*
f i l t r o a d a p t i v a i r a aproximando su respuesta impulsiva *I( *
a l a respuesta impulsiva del sistema*)
procedure lms(VAR ma,na : i n t e g e r ;
VAR e r r o r , m i u : r e a l ;
FOR
k:=Oto ma-1 DO
begin
end;
ATCkl:=ATCkl+miu*error*XTCna-kl
END;
.*""""""""""""~""""~""""~"~"""""-
*I
*
FRESENTACION
*)
*""""""""~""""""""""""""""""""""
*I
)rocedure presentacion;
BEGIN
ventana(l,l,80,24,1,",1,14~;
gotoxy
( 2 2 , 6 )
;
write('SIMULACI0N DE FILTROS ADAPTIVOS
MEDIANTE');
write('L0S ALGORITMOS VLMS
YLMS');
write
( 'ELABORADO FOR
: 'I
;
write(' DE LA
LUZ PUEBLA VICTOR
MANUEL');
write
( 'GHENO FLORES JULIO
CESAR');
gotoxy(22,14)
;
write
( 'BAJO LA ASESORIA DE:');
g o t o x y ( 2 2 , l S )
;
write(
'Dr. HECTOR PEREZ
MEANA');
gotoxy(20,18);Write('
UAM-I
1994');
textcolor(31);Gotoxy(70,22);
write('.i;<ESFERE>>');
del
ay
(2000)
;
textcol
or
(14)
;
gotoxy(22,7)
;
gotoxy(22,9)
;
gotoxy(22,lO)
;
g o t o x y
(22,ll)
;
END;
(*""""""""""""""""""""""""""""""-
*I
( *
PROCEDIMIENTO DE INICIALIZACION
*)
(*"""""""""""""""""""""""""""-"""
*)
( *
Este procedimiento inicializa
l o s
vectores a utilizar
*)
( *
durante la ejecucion del programa, esto con
el
f i nde
*)
( *
evitar ruido
quepueda ser introducido
*Iprocedure inicializa(VAR A,AT,XT,AR,ARl,XR,XS,DT:vector);
'JAR
k
:integer;
BEGIN
FOR k :
=O
to
300
DO
begin
A C k l
:=O.O;
X T t k l : = O . O ; XSCKl:=O.O; DTCkl:=O.O; end;
END:
y""""""~""~""""""""""""""""""""-"""
*)
*
GUARDAR DATOS EN ARCHIVO *I*"""""""""""""""""""""""""""""""---
* )
*
E n e s t e p r o c e d i m i e n t o damos l a opclon de que e l u s u a r i o * )*
p u e d a g u a r d a r e n a r c h i v o s d e t e x t o l o s d a t o s que haya* )
*
generadoel
programa, dandole l a opcion de que l o pueda*)
*
guardar en c u a l q u i e r u n i d a d de d i s c o y b a j o c u a l q u i e r *I*
s u b d i r e c t o r i o . Y l a e x t e n s i o n d e l a r c h i v o g e n e r a r a l a*)
*
e s t e de acuerdoal
p r o c e d i m i e n t o r e a l i z a d o *Ir o c e d u r e g u a r d a r c
(DT:vector;extension:cadenal);
VAR
i , r e s u l t a d o : i n t e g e r ;
s a l i d a : c h a r ;
n o m b r e , a r c h i v o : cadena;
OUDA : t e x t ;
I
BEGIN
p t w s e t ( 1 , 1 3 , 7 , 6 7 , 1 7 , 1 , 7 , 0 , " ) ; ptwopen ( 1 1
;
w r i t e l n ( ' T E C L E E EL NOMBRE DEL ARCHIVO SIN EXTENSION. L A E X - ' 1 ; w r i t e l n ( ' T E N S I 0 N ASIGNADA SERA ' , e x t e n s i o n , '
.
EL ARCHIVO S E ' ) ;writeln('GUARDARA EN L A UNIDAD D E TRABAJO, S I DESEA GRABARLO');
w r i t e l n ( ' E N OTRA UNIDAD INDICARLA DE L A SIGUIENTE MANERA: ' I ; w r i t e l n ( '
C U N I D A D l : ~ \ C S U B D I R 3 \ ~ ~ E N O M E R E l
' 1;
w r i t e l n ( ' PARA ABORTAR TECLEE FIN ' 1 ;
w r i t e l n ; r e p e a t
ptwset(2,13,15,67,17,1,4,15,");
ptwopen( 2 )
;
r e a d l n ( n o m b r e )
;
i f (nombre-' ' 1 t h e nb e g i n
r e s u l t a d o : = l ; p t w c l o s e ; end
b e g i n e l se
i f (nombre
< >
' F I N ' ) then b e g i na r c h i v o
:=
concat(nombre,extension);
a s s i g n ( O U D A , a r c h i v o ) ; <$I->
r e w r i t e (OUDA)
;
r e s u l t a d o : = I O R e s u l t ; .:: B I
+
3
wrrteln('UN1DAD DE DESTINO NO V A L i L M ' ) ; w r i t e l n ;
write('PRES1ONE INTRO PARA CONTINUAR');
s a l i d a
:=
r e a d k e y ;p t w c l o s e ; { c i e r r e de
31
p t w c l o s e ; , : c i e r r e d e 23 End;end;
end;
u n t i l ( r e s u l t a d o
=
O )
o r (nombre = ' F I N ' );
i f nombre< >
' F I N ' t h e nbeg¡ n
F o r
i
:=
1 t o 180 doc l o s e ( o u d a )
;
writeln(OUDA,i:b,DTEiI:l4:6);
end;
p t w c l o s e ; E c l e r r e d e
2)
p t w c l o s e ; { c i e r r e de
1 1
END;*"""""""""""""""""""-"""""""""""""
*)
*
LEER DATOS D E ARCHIVO*)
*-""""""""""""""""""""""""""""""""
*)
*
E s t e p r o c e d i m i e n t o l e e a r c h i v o , d e l o s d a t o s que han*)
*
s i d o e d i t a d o s p r e v i a m e n t e , c o n l a e x t e n s i o n que r e q u j e r a*)
*
c a d a f u n c i o n . T a m b i e n , t i e n e l a c a p a c i d a d de l e e r de*)
*
s u b d i r e c t o r i o c u a l q u i e r y / o d i s c o u n i d a d d e *Ir o c e d u r e le e a r c (VAR DT : v e c t o r ; e x t e n s i o n : c a d e n a l ; VAR a r c h i v o : c a d e n a ) ;
VAR
i n d i c e , r e s u l t a d o , aux aux 1
s a l i d a nombre
I NDA
: i n t e g e r ; : r e a l ; : c h a r ;
: cadena;
: t e x t ;
BEGIN
p t w s e t ( 4 , 1 3 , 7 , 6 7 , 1 7 , 1 , 7 , 0 , " ) ;
ptwopen
(4)
;
W r i t e l n t ' T E C L E E EL NOMBRE DEL ARCHIVO SIN EXTENSION. L A
EX-
' 1 ;w r i t e l n ( ' T E N S I 0 N ASIGNADA SERA ' , e x t e n s i o n , '
.
EL ARCHIVO S E ' ) ; w r i t e l n ( ' L E E R D E L A UNIDAD DE TRABAJO, SI DESEA LEER DESDE ' 1 ;w r i t e l n ( ' 0 T R A UNIDAD INDICARLA, DE L A SIGUIENTE MANERA: ' 1 ;
wri t e l n ( ' CUNIDADl:C\CSUBDIR3\>CNOMBRE3 ' 1 ;
wri t e l n ( ' PARA ABORTAR TECLEE FIN ' ) ;
w r i t e l n ; r e p e a t
p t w s e t ( 5 , 1 3 , 1 5 , 6 7 , 1 7 , 1 , 4 , 1 5 , " ) ;
ptwopen (5) ; r e a d l n (Nombre) ;
i f
nombre = " thenb e g i n
r e s u l t a d o
:=
1 ; p t w c l o s e ;b e g i n
i f nombre
< >
' F I N ' then b e g i na r c h i v o
:=
c o n c a t ( n o m b r e , e x t e n s i o n ) ; a s s i g n ( I N D A , a r c h i v o ) ;.:S
1 - 3
r e s e t (INDA)
;
r e s u l t a d o :
=
IOResul t ; I +IB e g i n
i f r e s u l t a d o .<>
O
thenp t w ~ e t ~ 6 , 1 9 , 9 , 6 1 , 1 5 , 1 , 3 , 0 , " ) ;
ptwopen ( 6 )
;
w r i t e l n ( ' E L ARCHIVO ESPECIFICADO NO SE ENCUENTRA'); wri t e l n ;
w r i t e ( ' P R E S I 0 N E INTRO PARA C O N T I N U A R ' ) ; s a l i d a := r e a d k e y ;
p t w c l o s e ; ptwcl ose; End;
end; end;
u n t i l ( r e s u l t a d o
=
O )
o r (nombre=
' F I N ' );
i f nombre <:> ' F I N ' thenb e g i n
i n d i c e
:=
O ;WHILE ( ( n o t
e o + ( I N D A > )
o r ( i n d i c e ( l 8 0 ) ) do b e g i nr e a d l n ( I N D A , a u x , A U X l ) ; D T C i n d i c e J : = a w l :
i n d i c e : = i n d i c e
+
1 ; end;close(1NDH);
ende l s e a r c h i v o
:=
' F I N ' ; p t w c l o s e ;p t w c l o s e ; END;
(*""""""""""""""""""""""""""""""""
*)
( *
SELECCION
DE
L A SEGAL*)
(*""""""""""""""""""""""""""""""""
*)
( *
E s t e p r o c e d i m i e n t o g e n e r ala
s e ñ a l de e n t r a d a ala
*)
( *
que e s t a r a s u j e t oel
p r o g r a m a , p r o p o r c i o n a a l g u n a s *I(*
s e ñ a l e stales
como, s e n o i d a l , e s c a l o n , t r e n de p u l s o s *I( *
y s e ñ a l e s a l e a t o r i a s ; t a m b i e n t i e n e o p c i o n l a de que * I( *
pueda e s c r i b i r a , o l e e r de d i s c o s e ñ a l e s e l e g i d o s p o r *I(*
el
usuar i o*)
( *
este procedimiento
sirve para seleccionar el periodo
* j( * de
las señales que
1 o
requieran
* )
procedure periodo (var t
:real)
;
V A R
bandera
:byte;
BEG
I
N
Repeat
ptwset(7,15,i0,65,14,1,6,14,");
ptwopen ( 7 )
;
writeln('QUE PEfiIODO TENDRA
LA
SEÑAL
? ' I ;write('T:=
' 1 ;
<$I-)
readln
(TI;
.:$I+:.;
bandera
: =i
oresult;
i f
bandera
.:';>
O
then
ptwclose
Until (bandera
=
O )
;
textcol
or
(31
1
;
write
('.::(.::EVALUANDO).>>
'1 ;
END;
*"""""".""""""""""""""""""""""""""
*)
*
FUNCIONES
DE
SEKALES
*)
' * " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " "
"
* )
*
En
las siguientes lineas
se editan algunas funciones
*)
:*
ques o n
las utilizadas
en el programa
* II
(*""""""""""""""
SENOIDAL---
* )
function senoidal (t:real;indice:integer): real;
BEGIN
END
;
senoidal:= sin((2*pi*indice)/t)
+
2;
VAR
j : b y t e ;
BEGIN
k: =O;
while k
< =
i80
d o
BEG
I
N
for
j:=i
to
4d o
X S C k + j - 2 1
:=
1;
f o r j :=5to
8d o
X S C k + j - 2 1
:=O;
k
:=
k
+
8;END
;i " " " " " " " " " " " " " " " " " " " " " " " " " " " "
"
* )
i.
cuerpo principal del generador de señales
*I~""""""""""""""""""""""""""""--
* I3EGIN
x
:=
' z ';WHILE
x< >
'S'
d o
BEG
I
N
ventana(1,1,80,24,1,",1,14);
g o t o x y ( l 2 , 2 ) ;
write('EN ESTA OPCION PODRA INTRODUCIR LA SECíAL
DE
ENTRADA
' 1 ;g o t o x y ( l 8 , 3 ) ;
write('DEL SISTEMA
DECOMUNICACIQN');
textcol
or
( 1 5 );
g o t o x y ( 2 , 8 ) ;
write('[[:
A 1 1 ' ) ;gotoxy(2,10);write('CC
B
1 3 ' ) ;gotoxy(2,12);write('CC C
1 3 ' ) ;gotoxy(2,14);write('CC D
1 3 ' ) ;gotoxy(Z,lb);write('CC
E
1 1 ' ) ;gotoxy(2,18);write('CC
F
1 1 ' 1 ;gotoxy(Z,2O);write('LC
S 1 3 ' ) ;textcolor(l4);
gotosy(l2,8); write('SEijAL ESCALON
' 1 ;gotoxy(12,lO) ;write( 'SEÑAL SENOIDAL
' 1 ;gotoxy(l2,lZ)
;write('SEijAL ALEATORIA
' 1;
gotoxy(l2,14);write('LEER
SEÑAL DE DISCO
' 1 ;gotoxy(lZ,lb);write('ESCRIBIR SEÑAL
EN
DISCO
' ) ;gotoxy(12,18);write('TREN
DE PULSOS
Igotoxy(l2,20);write('REGRESAR
AL MENU PRINCIPAL');
p t w s e t ( 8 , 1 , 2 2 , 8 0 , 2 4 , 1 , 4 , 1 5 , " ~ ;ptwopen
(8)
;
REPEAT
clrscr;
write('SELECCI0NE
L ALETRA DE SU OPCION
' ) ;x:=
upcase(readkey1;
' ) ;
g o t o x y ( 4 , 2 1 ) ;
UNTIL
( x=
' A ' )or
( x=
'B')
or
( x=
'C') or
( x
=
'D') or
( x=
'E') o r
( x=
' F ' )or
( x=
'S');
write
( x 1;
CQSE
x O F ' A ''C'
.
BEGIN
signal
:=
'ESCALON
';
f o r k
:=!
O
t o
180 d o
X S C k I:=
escal on;
textcolor (31)
;
write(' < < < E V A L U A N D O > > > ' )
END;
BEGIN
signal
:=
'SENOIDE';
peri
o d o
(t
) ;for
k:=
0
t o 180
d o
X S C K I:=senoidal (t,k);
ptwclose;
.:cierre de
73.END;
BEGIN
signal
:='ALEATORIA';
ventana(30,10,70,13,3,",7,0);
gotoxy(31,ll)
;
' D '
' E '
'F
'ZtG 1 x iv
n o l s e ( l , l , l x l , i x 2 , x í , x 2 ) ;
XSCKl :=xl; END
;
END;
: BEGIN
s i g n a l
:=
'DE ARCHIVO'; l e e a r c ( X S , S I G , a r c h i v o ) ; END;
: g u a r d a r c ( X S , S I G ) ;
: BEGIN
s i g n a l :
=
'TREN DE FULSOS';
t r e n d e p u l s o ( X S );
END; END;
<case>
p t w c l o s e ; ' ; c i e r r e d e
83.
f l a g - s i g :
=
t r u e ;END;
END
;
*""""~"""""""""""~""""~""""""~"""""
*)
*
SELECCION DEL TAMANO DE MIU*)
*""""""""""""""""""""~"""-"""""---
*)
u
E s t e p r o c e d i m i e n t o es l a l n t e r f a z dque t i e n e e l u s u a r ) o * )*
p a r a d e t e r m i n a r q u e a l g o r i t m o d e s e a u t i l i z a r y e l tamaño*)
*
d e l p a s oque
desee *Ir o c e d u r e s e l e c - a l g ( V A R a l f a : r e a l ; VAR c h : c h a r ;
VAR a l g o r i t m o ; cadena; VAR f l a g - a l g : b o o l e a n ) ;
BEG I N
v e n t a n a ( l , 1 , 8 0 , 2 4 , 1 , " , 1 , 1 5 ) ;
g o t o x y ( l S , 2 ) ; t e x t c o l o r ( l 4 ) ;
w r i t e l n ( ' E S T E PROGRAMA PUEDE IMPLEMENTAR
DOS
TIPOS DE ALGORITMOS');gotoxy
(15,2)
;
w r i t e l n ( ' E L ALGORITMO "LMS" QUE UTILIZA UN FASO D E AFROXIMACION ' 1 ;
w r i t e l n ( ' C O N S T A N T E , EL CUAL E S INTRODUCIDO POR EL USUARIO ' 1
;
w r i t e l n ( ' Y EL ALGORITMO "VLMS", EL CUAL UTILIZA UN FASO
DE
' ) ;writeln('APROXIMACI0N VARIABLE, EL CUAL EL PROGRAMA EVALUA. ' ) ;
w r i t e l n ( ' S E L E C C I 0 N E EL ALGORITMO A IMPLEMENTAR: ' 1 ; g o t o x y ( 2 0 , 1 3 )
;
t e x t c o l o r ( 1 5 );
wri t e ( '.<< L>>
' 1;
g o t o x y ( 4 0 , 1 3 > ; w r i t e ( ' ~ ~ V > > ' ) ; t e x t c o l o r ( l 4 ) ;gotoxy(28,13);write('LMS');
g o t o x y ( 4 8 , 1 3 ) ; w r i t e ( ' V L M S
' 1 ;REPEAT
UNTIL ( ( c h = ' L ' ) o r ( c h
=
' U ' ) ) ;I F c h
=
' L ' theng o t o x y ( 1 5 , 3 ) ;
g o t o x y ( 1 5 , 4 ) ;
g o t o x y ( l S , 5 ) ;
g o t o x y ( l 5 , l O ) ;
c h :
=
u p c a s e ( r e a d k e y );
BEG I N Repeat