TESIUAMI

Anuncio
UNIVERSIDAD AUTONOMA METROPOLITANA
UNXDAD XZTAPALAPA
PRESENTAN t
DE LA LUZ PUEBLA VICTOR MANUEL
GHENO FLORES JULIO CESAR
DR. HECTOR
MANUEL PEREZ MEANA
1
PRESENTACION
En l o s aPSos recientes, ha habido un tremendo incremento en el
de computadoras digitales
y
uso
circuiterladigitaldepropdsito
especialparadesarrollarunaampliagamadefuncionesde
procesamiento de seffales que inicialmente fueron llevadas a
cabo
con equipamiento analdgico.
Laevolucidncontinuadecircuitosintegradosrelativamente
baratos
a
propiciado
una
variedad
de
microchputadoras
y
minicomputadoras que pueden ser usadas para varias funciones de
ent
o de seffales.
procesami
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 LMS
(algoritmos
para
filtros
digitales
mediante e1 uso de programas
adaptivos
computacionales
no
para
y
VSLMS
recursivos
o FIIR)
la
simulacidn
tales algoritmos observando cual es su deoempeffo para diferentes
tipos de secuencias de entrada, diferentes niveles de ruido
condiciones cambiantes de medio de transnision, es
funcihn de
transferenciadel medio.
2
decir,
y
de la
de
INTROWCCI ON
Un f i l t r o d i g i t a l puede ser d e f i n i d o como un p r o c e s oc o m p u t a c i o n a l
o
a l g o r i t m o q u e c o n v i e r t eu n as e c u e n c i a
una sefial d e e n t r a d a e n o t r a s e c u e n c i a
sefial
de
sal i d a ,
en
y
el
cual
filtro
digital
es
representando
d e nClmeros r e p r e s e n t a n d ou n a
la
caracteristicas d e l a sefial e nu n af o r m a
Un
nCrmeros
de
d i s e f i ap
do r
conversibn
cambia
las
preescrita.
la
detersinacion
de
los
c o e f i e i c n t e s d e l a l g o r i t m o d e e n t r a d d s a l i d ap o ra l & np r o c e s o
de
aproximacidn.
Los
filtros
digitales
p r e s e n tva anr ivaesn t a jsaosbsrues
c o n t r a p a r t e sa n a l b g i c o s :
1.-
I n t e r v a l od i n i m i c o .
E l limite s u p e r i o r es f i j a d op o r
el tanaf5o d e l nameroque
hardware d i g i t a l p u e d er e p r e s e n t a r ,
fijadopor
y el
i n f eri o r
es
el r u i d o d e c u a n t i z a c i b n y errores d e redondeo.
E l i n t e r v a l oe n t r e s t o s
limites
depende
Crnicaaaente
l o n g i t u d e s d e palabra u t i l i z a d a s ( o sea,
u s a d oe sn
llmi t e
el
l a r e p r e s e n t a c i dbni n a r i a
longitudes de
palabra
g r a n d e s ,e np r i n c i p i o
L o s limites
se
pueden
de
hacer
el
numero
la
seftall.
de
Si
las
bits
las
lsou f i c i e n t e m e n t e
el i n t e r v a l od i n i m i c on ot i e n e
s o ni m p u e s t o se n
de
limite.
l a practica a d a p t a n d o s e d e manera
c o n v e n i e n t e a l o s limites d e v e l o c i d a d ,r e n d i m i e n t o
3
y costo.
2.- Ausencia de
Los
problemasde componentes.
parametros de los filtros
se
representan por medio
n6meros b i n w i o y no derivan con el tiempo.
Al
de
aumentar la
longitud de palabra se hace posible la obtencibn de cualquier
grado de exactitud deseado.
Dentro de los límites de esa
exactitud, el filtro funciona tal y como
problemas de tolerancia o deriva de
asociadocon
un
problemas de impedancia
carga
3.
-
o
ideal
amplificadores.
de entrada
diseKo.
componentes.
comportamientono
capacitores,inductores
se
y
salida
de
Y
hay
ninguno
resistores,
Tappoco
ni
No
existen
efectos de
entre etapas.
Conmutabi 1 idad
Si
l o s
parimetros del filtro se conservan en registros
contrario de conectarse fisicanente), el
(
lo
contenido de estos
registros se pueda cambiar a voluntad y en forma instantanea
(es decir, entre tiempos de muestre0 consecutivos),
p o r tanto,
los
filtros se pueden
filtro
para
conmutable
procesar
hacer
perfectamenteconmutables. Un s o l o
tambiense puede
entradasmdltiples.
4
multicanalizar
enel tiempo
4.
-
Adaptabi 1 i d a d .
Un f i l t r o d i g i t a l p u e d ei m p l e m e n t a r s ee n
programa d e computadora.
tambien
se
filtros
Los
a d a p t sadinn
ificultad
hardware o b i e n
digitales
para
hardware
de
el
como
control
por
computadora d e sus p a r a m e t r o s .
E x i s t e nm u c h a as p l i c a c i o n e s
d e procesamiento
c u a l e s l a s r e l a c i o n e s d e fase s o n
importantes,
p e r t u r b a d apso r
seffales
de
no
deben
y
f i l t r o c o n d e f a s a n i e n t o cero; e n l a practica
se
debe
1as
ser
ideal
un
buscar
un
serla
el f i l t r a d oP. a r ea s t ofsi n e s
en
f i l t r o cuyo d e s p l a z a m i e n t o sea p r o p o r c i o n a l a la f r e c u e n c i a .
sistemas d e d a t o sn u e s t r e a d o s
Una d i s t i n c i b nf u n d a m e n t a le nl o s
p a r t i c u l a r m e n t e nl o sf i l t r o s
r e s p u e s t a al impul s o .
d i g i t a l e s , es
Se h a b l a d e
(FIR, d e f i n i tiem p u l sree s p o n s e )
la
duracibn
r e s p u e s t af i n i t a
y
de
sistemas
al
de
de
y
la
impulso
respuesta
i n f i n i t a a l i m p u l s o (IIR d e i n f i n i t ei m p u l s er e s p o n s e ) :
a3 I I R
Un f i l t r o IIR es u n o e n el cual l a r e s p u e s t ai m p u l s i v aH ( n )t i e n e
un nitmero i n f i n i t o d e m u e s t r a s .
h i , H(n) es n o cero e n un nCtmero
i n f i n i t o d e puntos.
5
b> FIR
Un filtro F I R es uno en el cual la respuesta a l
H(n)
impulso
es
limitada a un n ~ m e r ofinito de muestras.
Entre las posibles ventajas
realizaci6n
de
de los
filtros
caracteristicas
ideales
susceptibilidad de la implementacion
cuantizacidn, ademas
cual qui er vari
de
que
FIR
son la
de
fase
a efectos de
posible
y
menos
parametros de
estos, son siempre estables bajo
aci
6n en sus coef i ci entes.
1
Entre las desventajas son
los
grandes tiempos de retardo, la
necesidad d e funciones de mas alto orden para llevar
requerimientos
preescritosde filtrado, y la
mientos mas simples
de
a
cabo los
carencia de procedi--
diseRo que peraitirlan la consecucibn
directa de las especificaciones del filtro
1
Ia0
I
a2
J,
I
ESTRUCTURA
FILTRO
FIR
an
J. al
a0
J. a 2
J. an-1
I
I
ESTRUCTURAFILTRO
Que
J. an
hacen
los
L o s filtros
filtros
IIR
adaptivos?
adaptivos se adaptan a las circunstancias cambiantes.
A diferencia de l a mayorla
de
1 os
fi 1t r o s
convenci m a l e s ,
filtros adaptivos predictivos son autodefinidos
en el 'vuelo"
la secuencia de datos de entrada mas que por un modelo
la sena1 esperada y las estadlsticas de ruido.
expllcita en
para
el
cual
desde
su
1949, es el mejor predictor
procesos
estocasticos
estacionarios
7
por
a priori de
Para estadlsticas
deentradaestacionarias,losfiltrosadaptivosconvergen
filtrobptiaoWiener,
1os
primera
de
al
f ormulacibn
mlniaos cuadrados
continuos
en tiempo.
La p r e d i c c i b nl i n e a l
es una t b c n i c ac l A s i c a
sefiales que p r o v e e c a l c u l o s
de
procesamiento
aproximados d e l v a l o r
de
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
mismo
mediciones
del
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
etli e m p o
s o n usadas generalmente
en
la
basados en l a s d i f e r e n c i a s d e l
de i n t e r e s .
separacibn
de
Las
tbcnicas
sebles
y
ruido
tiempo de coherencia de l a s e b l
y
e lr u i d o .
Estohasidoexitosamenteaplicado
incluyendo
radar,
teoría
de
sonar,
a
una
estimacibn
espectral,
c o nct a
r onlc. e l a c i b n
identificacibn,
amplia
de
astronomía,procesamiento
gapa
de
caabpos
comunicaciones,
ruido,
sistema
de imagenes,
de
ingenierí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 ne x p l í c i t ad e l
p 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.
predictor bptimo por
de l a s
estadísticas
Consacuentewmte,
Se puede mostrar que
105
c o e f i c i e n t e sd e l
m í n i m o s cuadrados e s t a n d e f i n i d o s
de
segundo
orden
en terminos
d epl r o c e s o
estocktico.
l a determinacibn de l o s c o e f i c i e n t e s d e l
bptim
re
oq u i ec
re
o n o c i m i e ne
to
xplícito
c o v a r i a n c i a de l a seRalde
de
datos de entrada.
8
la
f usn c i o n e s
filtro
de
E l disef'ío
de
acerca
de
procesada.
f i l t r o s de
Wiener
los
requiere a
dato
ess t a d í s t i c o s
Cuando
priori
de
itnaflo r m a c i b n
infornacidn
estadística
requerida
la
no
informacibn
informacibn
ser
a
ed
s ti s
ap o n i b l e ,
ser
puede
de
la
determinada
de
datos de entrada usando estimacibn de m í n i m o s cuadrados.
los
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 a
nd a p t i v a
basada
tambien usada p a r a p r e d e c i r
en
estimacih
de , g r a d i e n t e
es
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
r e c u r s i ve
colu a
p le r m i tael
e s t a d í s t i c o isn i c i a l e s
filtro
de
la
entrada
aprender
y
en
un
los
rastrearlos
algoritmo
parAmetros
si
varían
lentamente en el t i e m p o .
Tales
filtros
empiezan
de
condiciones iniciales,
un
de
las c u a l e s no contienen suposiciones acerca
de l a s
caractwlsticas
estadísticas
a c t u a l i z a lor c o e f i c i e n t ed
se l
adaptivo seleccionado
conjunto
predeterminado
de
filtro
los
datos
basado
en
y
el
entonces,
algoritmo
y la secuencia de v a l o r e s muestreados.
9
Para
e n t r a deasst a c i o n a r i a s ,
mostrado
sido
ha
a d a p t i v odsi s e f i a d oasp r o p i a d a m e n t e
filtro
al
dptirno
de
d e n t r o d e un f a c t o r c o n o c i d o como r u i d o d e desajuste.
d e s a j u s t e es d e t e r m i n a d op o r
de 1 0 5 datos de estimacibn
la
a p r o p i a sdeal e c c i d n
adaptivo.
Los
a d a p t i v a , y puede ser
del
par-bmetros
los
de
orden
Meiner
El ruido de
l a magnitud d e l o s e r r o r e s i n h e r e n t e s
par-bmetros f i j o s
t a l e s como :
filtros
que
filtro
del
controlado
fijos
del
de
filtro
s oanl g u n o s
digital
f i l t r coo, n s t a n t e
por
adaptacibn,
y
d i s t a n c i a de prediccidn.
La r a z d n a la c u a l el f i l t r oc o n v e r g e
de aprendizaje
del
es d e f i n i d a como
(la
p r o c e sa od r p t i v o
a d a p t i v a )L. m
a agnitud
constante
el
tiempo
de
tiempo
d e l a c o n s t a n t e d e tiempa
od a p t i v o
y
el
r u i d o d e d e s a j u s t e , son i n v e r s a m e n t er e l a c i o n a d o s .
E l ma5 s i m p l e y mas 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 ea l g o r i t m ou t i l i z au n at 4 c n i c a
de
busqueda d e g r a d i e n t e
determinar
c u a l e sm i n i m i z a n
para
los
el error c u a d r - b t i c om e d i o
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
para d a t o s reales, y n or e q u i e r e n
2N
coeficientes,
de prediccibn.
o p e r a c i o n e ps o irt e r a c i b n
d e la d e t e r m i n a c i d n e x p l í c i t a
l o s c o e f i c i e n t e s d e la c o r r e l a c i d n d e l a eefial de e n t r a d a .
10
1os
de
Avances recientes d e algoritmos para filtrado adaptivoy
digital de alta velocidad han producido familias
de
hardware
algoritmos
computaci m a l m e n t e efectivos, l o s cuales, pueden ser iaplerentados
en tiempo real para muchas aplicaciones.
11
Entre l o s algoritmos adaptivos
mas usados tenernos a q u e l l o s basados
en l a basqueda del
gradiente.
Esto
se
debe
principalmente
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 lg r a d i e n t ee s t a
dado p o r :
H(n+l) = H(n)
-
(1)
p V(n)
donde :
H(n) = tho , h a ,
Es e l v e c t o r
de c o e f i c i e n t e s .
Es e lg r a d i e n t e
.....
hn-a3
T
Y :
de e r r o r c u a d r a t i c 0 medio y p
es
un
factor
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.
12
que
De l a f i g u r a a n t e r i o r tenemosque
:
e(n) = d(n)
-
y(n)
CIsi asumiendoque:
X(n)
=
C x(n),
x(n-1)
representa e l vector de entrada,
e(n) = d ( n )
-
.....,x ( n - N + l ) l
T
de 2,4 y 5 obtenemos :
HTX (n)
ysustituyendo
( 6 ) en ( 3 ) obtenemos:
E l c a l c u l o de
V ( n ) no es simple en l a p r a c t i c a debido a l operador
espcctacibn.
Esta
d i f i c u l t a dr a d i c ap r i n i c i p a l a e n t e
de que l as u p e r f i c i e
practica, y
de error es en
debe 5erestimada
en
general,desconocida
el
hecho
en
p a r t i r de 10s datos de entrada.
Una s o l u c i d n a este problema c o n s i s t e en
dado por ( 7 ) , por e l gradienteinstantaneo
13
remplazar
e lg r a d i e n t e
dado por :
la
E lc u a l
d e ( 6 ) se puede reescribir como:
, e ( n ) x( n - 1 ) , ...., e ( n ) x
V ( n ) = -2 C e ( n ) x( n )
&si, r e e m p l a z a n d oV ( n )p o r
V' ( n )e n
(9)
( 1 1 , d e ( 9 ) obtendremos:
= H(n)
H(n+l)
(n-N+l) 1
-
p
V' ( n )
(10)
La c u a l se puede reescribir como:
h x ( n + l ) =h r ( n )
+ 2pc(n)x(n
-
I)
Las e c u a c i o n e s 1 0 y 11 se c o n o c e n como el a l g o r i t m o
m e a n ss q u a r e )
o
( 1 crast
LMS
a l g o r i t m o d e Widrow-Hopf.
S o l u c i o n Optima.
C o n s i d e r a n d o l a a i n i a i z a c i d n d e l e r r o r c u a d r i t i c om e d i od a d o
L ac u a l
d e (2) y
por
( 5 ) se puede reescribir como :
E C e2(n) 3 = E C(d(n)
-
XTH)'l
14
(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
ortogonalidadelcualconsiste
sef3alde
en s e l e c c i o n a r H de modo t a l que l a
error sea ortogonal a l v e c t o r
l o s coeficientes y
&sumiendoque
correlacionados,
de
el
de entrada,esdecir:
vector
de
entrada
de (15) obtenemos:
son
no
1
(16)
P = R H
donde:
(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
de r e f e r e n c i a ,
el v e c t o r de entrada y l a
ref'íal
y :
R = E C X ( ~ ) X ~ ( ~ ) I
es
(18)
la m a t r i z de a u t o c o r r e l a c i d n de l a sefial de entrada.
M u l t i p l i c a n d o a (16) por e1 l a d oi z q u i e r d op o r
H m R"P
*P
15
R
"S
, obtenemos
:
(19)
Convergencia d e l a l g o r i t m o
LMS.
Considere l a seffal de error la cual esta
dada por :
donde :
H
Y
X(n)
tho, hi, h a ,
= Cxtn),
hN-61
T
T
x(n-l)......x(n-N+l)I
a l a l g o r i t m o LMS
Sustituyendo 20 en l a expresidn correspondiente
Tomando e l v a l o r esperado de 24, asumiendo
que
s 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,
(211
los
coeficientes
obtenemos:
Seguidamente, sustrayendo Hop dado por (19) m r a b o s lados
e c u a c i h (251, obtenemos:
16
de
la
ECH(n)I
-
R-'P
= ECH(n-113
-
R-'P
+ 2pR<R-'P
-
ECH(n-1)33
(29)
donde:
El
significado
de
este
Seguidamente,
usando
una
proceso
es
una
traslacidn
matriz ortonormal
representarnos
de
R
ejes.
de
la
si qui e n t e manera:
R = K=Q K
K*K = I
Donde:
A r i de32
(32)
(33)
y 33 obtenrmos
R = K ~ QK
17
(34)
K R K ~= K K ~ QK K ~
Q
donde :
(35)
= KRK~
(361
(37)
Q = diagCXi, XZ,....,XN>
y Xi es el i-esino eigenvalor o
valor propio
de
la matriz
de
autocorrelacibn R.
Asi sustituyendo 34 en 30 obtenemos :
Multiplicando (40) p o r K en el .lado izquierdo, obtenemos:
q ( n ) = KKT(I
V(n) = ( I
-
2pQ)Iy(n-l)
(41)
- 2pQ)V(n-l)
E l significado d e esta
(42)
operacidn
es
18
una
rotrcidn d e ajes.
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 a q u i
se p u e d e v e r q u e
Vi (k 1 a p r o x i m a a O si :
1
D e donde se o b t i e n e ?q u e
si
-
2pX~
O
<
<
p
1
C
(44)
1 / Xi
(45)
l a i-esiaa componente d e l v e c t o r V c o n v e r g e r & a O ( c e r o ) .
CIsi c o n el
objeto
de
la
asegurar
convergencia
c o m p o n e n t e s d e l v e c t o r V se r e q u i e r e q u e
0
<
p
<
1 /.X
MAX
E s t o se d e d u c e d e el hecho d e q u e
Xi / XMAX 5 1
19
:
de
t o d ol so s
Una c o n d i c i b n d e c o n v e r g e n c i a ,
n e c e s a r i a , se p u e d oe b t e n e r
cual
es
suficiente
de la t e o r i a
de
matrices
la
no
pero
observando
que:
trR
Donde t r R s i g n i f i c a
p r i n c i p a l de R.
~
~~
>
X
MAX
l a suma d e t o d o s l o s e l e m e n t o s e n
(47)
la
diagonal
Y a q u e R esta dado por (181, es f a c i l d e d u c i rq u e
~
Donde x 2 ( n )d e n o t a
l a p o t e n c i a d e l a renal d e e n t r a d a .
A s i f i n a l m m t ao b t e n e m o sq u e
el a l g o r i t m o LHS sera c o n v e r g e n t e si:
20
Para p o d et re n eurnoap t i m i z a c i dcno m p l e tean
adaptiva,
debemos
de
aproximacidn
la
tcouemenn
a rt a ,
la
velocidad
de
c o n v e r g e n c i a , l a d i s t o r s i d n d e l a seffal y l o s r e t a r d o s d e t r a n s m i s i d n d e d a t o sl ,ocsu a l eds e b e n
estructuras
ser
las
mínimos.
Generalmente
a d a p t i v a s pueden
no proveer
un
g r af anc t o r
de
decirnacidn y un pequeffo r e t a r d o da t r a n s a i s i d nm i e n t r a sm a n t i e n e
u n ag r a nv a l o r
de
ERLE ( e c h or e t u rl o s se n h a n c e m e n t ) .
Con un
gran
f a c t o r d e decirnacidn y una a l t a a t e n u r c i b n d e e c o r e p u e r i r l a e o s d e
un orden d e l f i l t r o
muy
alto
y
c a u s a r ígar a n d erse t a r d o s
de
transmisidn.
Eal l g o r i t m o
VLHS es u n p
aropuesta
el
cual
d e t e c c i o n precisa para l a a p r o x i n a c i d n
de
permite
velocidad
l o sc o e f i c i e n t e s
y
del
f i t r oa d a p t i v o .
Ep
l rincipio
basic0 d e l f u n c i o n a m i e n t od e
este
v a r i a n d o el tamaPIo d e l paso a medida e nq u e
algoritmo,
algoritmo
va
c o n v e r g i e n dhoa cevi a1e c t d
o rp t i m o
aproximacidn,
21
ir
este sa va aproximando
a l a sePIa1, es decir, el t a m d o d e l p a s o va disminuyendo a
q u e el
es
medida
de
E l p r i n c i p i o d e este
d e s c r i taon t e r i o r m e n t e
c u a l e sv a
algoritmo
a
es
diferencia
bkicamente
de
las
similar
c o n d i c i o n eesn
al
LMS
la
a v a r i a r el paso d e c o n v e r g e n c i a .
P a r t i e n d o d e q u e l a v a r i a b l e d e p 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 :
1
N-1
N
Por l o c u a l a l n ) q u e d a
k 31
d e l a s i g u i e n t em a n e r a :
N- 1
K=l
A s i por l ot a n t o
h 2( k )
:
22
Cssi para que el algoritmo converja ma5 ripidamente definimos las
siguientes
condiciones:
AMAX
si
a(n) = B
entonces
si
entonces
Las s i g u i e n t e s paginas nuestran el programa
se implenentan ambos algoritrrps, así corn
usuario.
23
t
= 1.0
la
a(n1 = 1.0
corputpciorrpl
intrrfaz
donde
hacia
el
*"""""""""""""""""""""""""""""""
*
*"""""""""""""""""""""""""""""""
*I
PROGRAMA VSNLMS
AND LMS
*)
*I
Este programa implementa
los algoritmos vsnlms y lms
*)
para la simulacion de filtros adaptivos no recurs1vos
c*S
el cual muestra la relacion señal/ruido que presenta
*)
tal simulacion. Esteprograma
es capaz de analizar
*)
distintas señales de entrada desdela mas simple funcion *I
escalon hasta una señal totalmente aleatoria,
la cual
*I
ira siendo aproximada p o r el filtro adaptivo convergiendo *)
a un ganancia
valor de
dado
*)
'ROGRAM VSLMS-LMS;
USES
CRT,
VENTANAS,
GRAPH,
PTOOLS;
CONSJ
fct = '.FCT';
erl = '.ERL';
sig = ' . S I G ' ;
( * el programa se 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 generaray utilizara el * I
( * programa
*)
TYPE
vector=arrayCO.. 3001 o f real ;
cadena = stringC303;
cadena1 = stringC41;
VAR
A, AT, XT, AR, A R 1 ,
n,ix2,ixl
libre
XR,
XS,
DT
(*"""-"""""""""""""""""""""""""""
(*GAUSSIAN0
RUIDO
DEGENERADOR
(*"""""""""""""""""""""""-"""""""
(*
generador
numeros
de uniformemente
distribuidos
(* para asi poder realizar la simulacion
procedure unif(uni : integer;
V A R i x l , i x 2 : integer;
VAR ry : real);
VAR
i x : integer;
: vector;
: integer;
: boolean;
*)
*)
*)
*)
del ruido blanco
*I
BEG I N
i f u n i = tl h e n
i:c:=ixl
el se
ix:=ixZ;
is:=ix*179;
i f i x < Ot h e n
ix:=ix+32767+1;
r y : =i x / 3 2 7 6 8 . O ;
i f u n i = lt h e n
ixl:=ix
e l se
ixZ:=ix;
END ;
*
*
*
*
*)
G a u sns u
i amneorso s d e g e n e r a d o r
E s t pe r o c e d i m i e n t o
se a y u dda epl r o c e d i m i e n t o
UNIF p a r a
*I
g e n e r aar l e a t o r i a m e n t de a t oqs u sei r v a p
n a r da e t e r m i n a r
*I
u n a señal d ee n t r a d a
y l a r e s p u e s t ai m p u l s i v ad e l
sistema
*)
r o c e d u r en o i s e ( u n i
: integer;
s d : real;
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
: real;
BEGIN
1:unif (mi , i x l , i x 2 , r ) ;
vl:=2*r-l;
unif (uni,ixl,ix2,r);
vZ: =2*r-l j
S : = s q r (vl)+ s q r ( v 2 ) ;
i f s>1.0 t h e ng o t o
1;
b: "2. O * l n ( 5 ) ;
y : = s q r t ( b / s );
x 1 := s d * v l * y ;
x í ! : =sd*vZ*y;
END;
(*"""""""""""""""""""""""""""""""
(*
PROCEDIMIENTO RESIMF
(*"""""""""""""""""""""""""""""""
( * E spt er o c e d i m i e n t o
s e a y u d adrpe
arl o c e d i m i e n t o
NOISE
( * p a rdae t e r m i n a r
l a r e s p u e s ti m
a p u l s i vdae l
sistema, la
( * c u a sl e r v i r a para p o d e ar n a l i z a r l a parte g e n e r a dl el o s
(* a l g o r i t m o s y e v a l u a r l a s a l i d da e l sistema tomando
como
(t a*m b bi eans e e n t r a d dal ea s e ñ a l
*I
*)
*)
*)
W)
*I
*I
*)
roceaureres1mp:ma
: L n r i l g e r ; VAR sdl,xl,xL
VAR A R , A R l : v e c t o r ) ;
: real;
VAR
j , k , i x l , i x 2 : integer;
REG I N
s d l :=
1;
i x 1 :=232;
i x 2 : =345;
F O R k:=O t o ma-1
begin
DO
noiseIl,sdl,ixl,ix2,xl,x2);
ARCkl:=(xl/3.0)*exp(-(6.~*k)/(ma-l)I;
ARlCkl:=(x2/3.0)*exp(-(6.~*k)/~ma-l));
end;
END;
'*~""""""""""""""""""""""""""""""
:*
PROCEDIMIENTO
;*""""""""""""""""""""~"""""""""-:*
Esp
t er o c e d i m i e n toob t i e n
v
eel c t o r
*)
*)
*)
TRANSV
o lm
aatriz
s a l i ddaesli s t e m a
empleando l a sumatoria
de
convoluo
c in
p ,a rlcau a
i nl v i e r tlse
ae ñ a l
e
dn
et r a d a
y e sl a
que v ar e c o r r i e n d os o b r el ar e s p u e s t ai m p u l s i v a
[*
:*
f*
de
*I
*I
*I
*I
,
, r o c e d u r et r a n s v ( V A Rm a , n a
: integer;
VAR x 1 , y : r e a l ;
VAH A T , X T : v e c t o r ) ;
VAR
k
: integer;
BEG I N
FOR k:=O t o na-1 DO
begin
XTCkl:=XTCk+ll
end;
XTCnal: =x 1 ;
y : =o. o;
F O R k:=O t o ma-1 DO
beg¡ n
y:=y+ATCkl*XTCna-kl
end;
(* r e c o r r e
l a l i n e a de r e t a r d o * I
( * i n t r o d uslceaeñ a l
ednet r a d a
( * c o n v o l u c i o no ab t e n i e n dy lot )
*)
*)
END;
(*"""""""""""~"""""""""""""""""""
((*"""""""""""""""""""-""""""""""-*
PROCEDIMIENTO STEPSIZE
(*
(*
(*
E spt reo c e d i m i e net so
l a mas i m p o r t a ndt e
e n tdr e
ol
programa, ya d e t e r mpie
a
cndlo
saeo
nvergencia
acuerdo
con
sl e
al e c c i o
dan
ellg o r i t m
se
ol e c c i o n a d o
t*
Droarama
a r e v i a m e n t e en el
de
*)
*I
*)
*)
*)
*)
*I
rocedurestepslze(VAR ma,na : i n t e g e r ;
VAR m i u , e r r o r , a l f a
: real;
VAR XT : v e c t o r ;
ch : char ) ;
VFIR
k : Integer;
am1u, m i up, mmax m m i n : r e a l ;
,
BEGIN
amiu:
( * c a l c u l o de l a p o t e n c i a * )
l a señal de entrada * )
( * para as¡ determinar e l *)
( * paso
*)
=O.O;
FOR k:=O
t o ma-1
(* de
DO
begin
amlu:=amlu+sqt- (XTCna-kl)
end;
i f ch = ' L '
then
m i u := a l f a / a m i u
(*
c a l c u l o de m i u
*)
el se
begin
mmax: =l. O / a m i u ;
mmin:=O.Ol/amlu;
i f m i u=O. O then
m i up :=mmax
e l se
(*
r a d i o de convergencia de m l u *I
rnlup:=0.999*miu+0.00048*error*error;
miu:=miup;
I f miup>mmax then miu: =mmax;
I f miup(mmin then miu:=mmin;
end;
( * condiciones de m l u
( * l a convergencia
del
( * algoritmo
para
(*."~"""""""~"""""""~""-""""""""""---
PROCEDIMIENTO LMS
(*""""""""""""""""""""""""""""""(*
Este
procedimiento
evalua
eal l g o r i t m o
con ecl u ael l
c*
f i l t r o a d a p t i v a i r a aproximando su
respuesta
impulsiva
(*
a l a respuesta
sistema
impulsiva
del
procedure lms(VAR
ma,na
: integer;
VAR e r r o r , m i u : r e a l ;
?)AH AT,XT : v e c t o r ) ;
VAR
IC:
REG I N
integer;
*)
*I
END;
(*
*I
*)
*)
*)
*)
*I
*)
FOR k:=O to ma-1 DO
begin
ATCkl:=ATCkl+miu*error*XTCna-kl
end;
END;
.*""""""""""""~""""~""""~"~"""""-
*
*""""""""~""""""""""""""""""""""
*I
FRESENTACION
*)
*I
)rocedure presentacion;
BEGIN
ventana(l,l,80,24,1,",1,14~;
gotoxy (22,6);
write('SIMULACI0N DE FILTROS ADAPTIVOSMEDIANTE');
gotoxy(22,7) ;
write('L0S ALGORITMOS VLMS Y LMS');
gotoxy(22,9) ;
write ( '
ELABORADO FOR : ' I ;
gotoxy(22,lO) ;
write('DELA
LUZPUEBLAVICTOR
MANUEL');
g o t o x y (22,ll);
GHENO FLORES JULIO CESAR');
write ( '
gotoxy(22,14) ;
write ( '
BAJO LA ASESORIA DE:');
gotoxy(22,lS) ;
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);
END;
(*""""""""""""""""""""""""""""""(*
INICIALIZACION
PROCEDIMIENTO
DE
(*"""""""""""""""""""""""""""-"""
Esteprocedimientoinicializa
l o s vectoresautilizar
durante la ejecucion del programa, esto con
el f i n de
evitar
ruido
queintroducido
pueda
ser
(*
(*
(*
procedure 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;
ATCkl:=O. 1;
XRCkl:=O.O;
*I
*)
*)
*)
*)
*I
XTtkl:=O.O;
XSCKl:=O.O;
DTCkl:=O.O;
end;
END:
*)
*I
*)
y""""""~""~""""""""""""""""""""-"""
*
GUARDAR DATOS EN ARCHIVO
*"""""""""""""""""""""""""""""""--*
Eens tper o c e d i m i e n t o
damos l a o p c l odne
que euls u a r i o
*
p u eg
du
a a r da
earnrc h i vtd
oee
sx t o
l o s d a t o s que
haya
*
generado el programa,
dandole
l a opcion
de
que l o pueda
*
g u a r d a r en c u a l q u iuenr i d a d
de d i s c o y b acj u
oa l q u i e r
*
s u b d i r e c t o r i o . Y elxat e n s i d
oae
nrlc h g
ilve
aon e r a r a
*
e s t e de a c u e r d o al p r o c e d i m
r eiaelni z
to
ado
r o c e d u r eg u a r d a r c
VAR
i,resultado
sal ida
nombre,archivo
OUDA
*)
*)
*)
*I
*)
*I
(DT:vector;extension:cadenal);
:
:
:
:
integer;
char;
cadena;
text;
I
BEGIN
ptwset(1,13,7,67,17,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');
'I;
w r i t e l n ( ' E N OTRA
UNIDAD
INDICARLA D E L A SIGUIENTE MANERA:
writeln('
CUNIDADl:~\CSUBDIR3\~~ENOMEREl
'1;
writeln ( '
ABORTAR
PARA
FIN
TECLEE
'1;
writeln;
repeat
.
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 n
begin
resultado:=l;
ptwclose;
end
e l se
begin
i f (nombre < > ' F I N ' ) t h e n
begin
a r c h i v o := concat(nombre,extension);
assign(OUDA,archivo);
<$I->
r e w r i t e (OUDA) ;
r e s u l t a d o : = I O R e s utl ;
.: B I + 3
i f r e s u l t a d o < > O then
Begin
ptwset(3,19,9,61,15,1,3,O,");
ptwopen ( 3 );
..apk
+-I
., t 'enana n c c e r n ~ Inn.
n
n7m-n Pm-mcGTnn n *
\
.
w r r t e l n ( ' U N 1 D A D DE DESTINO NO V A L i L M ' ) ;
writeln;
w r i t e ( ' P R E S 1 O N E 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 ed e
23
End;
end;
end;
u n t i l( r e s u l t a d o
= O) o r
i f nombre < > ' F I N t' h e n
beg¡ n
F o r i := 1 t o 180 do
(nombre = ' F I N ' ) ;
writeln(OUDA,i:b,DTEiI:l4:6);
c l o s e ( o u d a );
end;
p t wocslEec; l e rd
re
2)
ptwcl o s e ;
{ c i e r r e de 1 1
END;
*"""""""""""""""""""-"""""""""""""
*
LEER
*-""""""""""""""""""""""""""""""""
*
E sptreo c e d i m i e nlad
tero
eec h i v o ,
*
s i deod i t a d o
psr e v i a m e n tceo, n
*
c afd
uan c i o
Tn
a .m b i e
t ine,n e
* s u byd/dicori usecacuodltqnoeuirdi oea rd
r o c e d u r el e e a r c
DATOS D E ARCHIVO
l o s d a t o s que
han
leax t e n s i o n
que r e q u j e r a
l a c a p a c i d a d de l e e r de
: v e c t o re; x t e n s i o n
(VAR DT
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 1
sal ida
nombre
I NDA
aux
*)
*)
*)
*)
*)
*)
*I
: cadenal;
:
:
:
:
:
integer;
real;
char;
cadena;
text;
BEGIN
ptwset(4,13,7,67,17,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 FIN
TECLEE
');
w r i teln;
repeat
.
ptwset(5,13,15,67,17,1,4,15,");
ptwopen (5);
r e a d l n (Nombre) ;
i f nombre =
then
"
begin
resultado
ptwcl ose;
end
e l se
:= 1 ;
begin
i f nombre
' F I N ' then
begin
a 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 ) ;
assign(INDA,archivo);
<>
.:S 1 - 3
r e s e t (INDA) ;
r e s u l t a d o : = IOResul t ;
I +I
i f r e s u l t a d o .<> O then
Begin
ptw~et~6,19,9,61,15,1,3,0,");
ptwopen ( 6 );
w r i t e l n ( ' E L ARCHIVO ESPECIFICADO NO SE E N C U E N T R A ' ) ;
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 ;
ptwcl ose;
ptwcl ose;
End;
end;
end;
= O ) o r (nombre = ' F I N ' ) ;
u n t i l( r e s u l t a d o
i f nombre <:>
' F I N ' then
begin
i n d i c e := O ;
WHILE ( ( n o t eo+(INDA>) o r ( i n d i c e ( l 8 0 ) ) do
begin
readln(INDA,aux,AUXl);
DTCindiceJ : = a w l :
indice:=indice + 1 ;
end;
close(1NDH);
END;
end
e l s ea r c h i v o
ptwcl ose;
ptwcl ose;
:=
'FIN';
(*""""""""""""""""""""""""""""""""
(*
(*""""""""""""""""""""""""""""""""
(*
(*
(*
(*
(*
SELECCION DE L A SEGAL
Es
ptreo c e d i m i e n
gteon e r a
la s e ñ a l de e n t r a d a a la
que e s t a r a s u j e t o el p r o g r a p
mrao,p o r c i a
olngau n a s
s e ñ a l e s tales como, s e n o i d ael s, co
atn
l r,e n
de p u l s o s
y s e ñ a la
e lse a t o r i atsa;m b i teineolnp
aec i o n
que
de
pueda e s c r i b i r a , o l e e r de d i s csoe ñ a l eesl e g i d opso r
el u s u a r i o
(*
XS : v e c t o r ; VAR
s i g n a l : cadena;
VAR x l , x 2 : r e a l ; VAR f l a g - s i g: b o o l e a n ;
archivo : cadena);
p r o c e d u rs
ee l e c - s i g ( V A R
VAR
indice,ixl,ixZ,k,ki
X
t
: integer;
: char;
: real;
*)
*)
*)
*)
*I
*I
*I
*I
*)
(*
(*
esteprocedimiento
de las señales que
procedure
periodo
sirve para seleccionar el periodo
1 o requieran
*j
*)
(var :treal) ;
VAR
bandera : byte;
BEG I N
Repeat
ptwset(7,15,i0,65,14,1,6,14,");
ptwopen (7);
writeln('QUE PEfiIODO TENDRA LA SEÑAL
write('T:= ' 1 ;
?'I;
<$I-)
readln (TI;
.:$I+:. ;
bandera := i oresult;
i f bandera .:'; > O then
ptwclose
Until (bandera = O) ;
textcol or (311 ;
write ( '.::(.::EVALUANDO).>>' 1 ;
END;
*"""""".""""""""""""""""""""""""""
*
FUNCIONES DE SEKALES
*
En lassiguienteslineas
se editanalgunasfunciones
:*
que s o nutilizadas
las
en el programa
I
"""""""""""*'
(*""""""""""""""
SENOIDAL---------------------------function senoidal (t:real;indice:integer): real;
BEGIN
senoidal:= sin((2*pi*indice)/t) + 2;
END ;
VAR
j : byte;
BEGIN
k: =O;
while k <= i80 d o
BEG I N
for j :=i to 4 d o
X S C k + j - 2 1 := 1;
f o r j :=5 to 8 d o
X S C k + j - 2 1 := O;
k := k + 8;
END ;
END:
*)
*)
*)
*)
*I
*)
*)
""""i
*I
cuerpo principal del generador señales
de
i.
~""""""""""""""""""""""""""""--
*I
3EGIN
x
:= ' z
';
WHILE x < > 'S' do
BEG I N
ventana(1,1,80,24,1,",1,14);
gotoxy(l2,2);
write('EN ESTA OPCION PODRA INTRODUCIR LA SECíAL DE ENTRADA ' 1 ;
gotoxy(l8,3);
write('DEL SISTEMA DE COMUNICACIQN');
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
');
gotoxy(l2,20);write('REGRESAR AL MENU PRINCIPAL');
I
ptwset(8,1,22,80,24,1,4,15,"~;
ptwopen (8);
REPEAT
clrscr;
gotoxy(4,21);
write('SELECCI0NE L A LETRA DE SU OPCION ' ) ;
upcase(readkey1;
UNTIL ( x = ' A ' ) or ( x = 'B') or ( x = 'C') or
( x = 'D') or ( x = 'E') or ( x = ' F ' ) or
( x = 'S');
write ( x 1 ;
CQSE x O F
'A '
BEGIN
signal := 'ESCALON ' ;
f o r k :=! O t o 180 d o
X S C k I := escal on;
textcolor (31);
write(' <<<EVALUANDO>>>')
END;
x:=
.
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;
'C'
BEGIN
signal := 'ALEATORIA';
ventana(30,10,70,13,3,",7,0);
gotoxy(31,ll) ;
write('EST4 SEijAL LA CALCULA EL PROGRAMA');
textcolor(31);gotoxy(40,12~;
write('
<.<<EVALUANDO>>>');
i x l := 2216;
¡x2 := 345;
T n r b .= 0 t n
1FzO d a
ZtG 1 x iv
nolse(l,l,lxl,ix2,xí,x2);
X S C K:l= x l ;
END ;
END;
'D'
'E'
'F '
BEGIN
s i g n a l := 'DE ARCHIVO';
leearc(XS,SIG,archivo);
END ;
: guardarc(XS,SIG);
: BEGIN
s i g n a l := 'TREN D E 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 ed e
f l a g - s i g := t r u e ;
83.
END;
END ;
*""""~"""""""""""~""""~""""""~"""""
*
DEL SELECCION
*""""""""""""""""""""~"""-"""""-----u
*
*
*)
*)
*)
TAMANO DE MIU
Estp
erocedimiento
e s l a l n t e r f a z dque t i e nues ueal r ) o
y e l tamaño
p a rd
a e t e r m i n aqr ua
el g o r i t m d
o e s eu
at i l i z a r
d e l p a s o que d e s e e
r o c e d u r es 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
*)
*)
*I
: boolean);
BEG I N
ventana(l,1,80,24,1,",1,15);
gotoxy(lS,2);textcolor(l4);
w r i t e l n ( ' E S T E PROGRAMA PUEDE IMPLEMENTAR DOS TIPOSDEALGORITMOS');
g o t o x y (15,2);
w r i t e l n ( ' E L ALGORITMO "LMS" QUE UTILIZA UN F A S O D E AFROXIMACION ' 1 ;
gotoxy(15,3);
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;
gotoxy(15,4);
w r i t e l n ( ' Y EL ALGORITMO "VLMS", EL CUAL UTILIZA UN FASO DE
');
gotoxy(lS,5);
writeln('APROXIMACI0N
VARIABLE,
EL CUAL EL PROGRAMA EVALUA.
');
gotoxy(l5,lO);
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~ ~
>>');textcolor(l4);
gotoxy(28,13);write('LMS');
gotoxy(48,13);write('VLMS ' 1 ;
REPEAT
c h := u p c a s e ( r e a d k e y ) ;
UNTIL ( ( c h = ' L ' ) o r ( c h =
I F c h = ' L ' then
BEG I N
Repeat
'U'));
ventana(32,15,48,17,3,'LMS',4,15);
g o t o x y ( 3 3 , 1 6 );
w r i t e ( 'PASO: ' 1 ;
.r%7--3
r e a d ( a l + a3 )
{Sr+>
u n t i li o r e s u l t
=O;
a l g o r i t m o := ' L M S ' ;
END
E L S Ea l g o r i t m o
:= ' V L M S ' ;
f l a g - a l g := t r u e ;
END;
y""""""""""""""""""""""""""""""""
*
SELECCION DEL VALOR DE RUIDO
*""""""""""""""""""""""""""""""""
*
En este p r o c e d i m i e n u
teo
sl u a r d
i oe t e r m i n
n
ea
il v d
ee
l
*
r u i d o que
desee
en
l a s i m u l a c i o n , donde evla l om
r ostrado
*
i n d i cefaa
l c t odree l a c i oenn t r e
el r u i d o y l a s e i i a l
*I
*)
*)
*)
*)
*)
)rocedure
selec-noise(VAR
op : c h a r ; 'JAR p o t r : r e a l ;
VAR f l a g - n o i s e : b o o l e a n ) ;
BEGIN
ventana(1,1,80,24,i,",i,l5);
gotoxy(15,5);
1
w r i t e ( ' E N ESTA OPCION USTEDPUEDE
VARIAR EL NIVEL D E RUIDO " 1 ;
gotoxy(15,6);
write('G1UE PRESEDE A L A SEijAL F A R 4 OBSERVAR SU CONVERGENCIA');
gotoxyi15,7);
w r i t e ( ' A N T E DIVERSOS
FACTORES
D E RUIDO.
ESTE PROGRAMA LE
'1;
gotoxy(l5,S);
write('PROPORCI0NA 4 OPCIONES :
') ;
g o t o x y ( 15,10);
write('
A := 1
B := 0 . 1
c := 0.01
');
g o t o x y ( 2 9 , 1 5 );
w r i t e ( ' T E C L E E L A LETRA D E SU O P C I O N ' ) ;
repeat
ptwset(9,38,18,42,20,1,4,15,");
END;
ptwopen ( 9 );
op := u p c a s e ( r e a d k e y 1 ;
w r i t e ('', o p ) ;
d e l a y ( 5 0 0 );
p t w c l o s e ; € c i e r r e de 93
u n t i(l o p = ' A ' )
o r (op='B') o r
c a s e op o f
'A'
: p o t r := 1 ;
'B '
: p a t r := 0 . 1 ;
'C'
: p o t r := 0.01;
end;
f l a g - n o i s e := t r u e ;
(*"""""""""""""""""""""""""""""""(*
SELECFUNTRAS
PROCEDIMIENTO
(*"~"""""-""""""~""""~"""~""""""""""
(*
E s tper o c e d i m i e n ti n
od i c
u
aas
l uario
(*
que t i e n e p a r a la s e l e c c i o n
(*
cia a s
l ias
es
tsce
u
tulm
a
jaerlata.a
(op='C');
las posibilidades
de l af u n c i o n
de t r a n s f e r e n -
*)
*)
*)
*I
*)
*)
rocedure selec-funtrans( V A R AR, AR1 : vector;
VAR 5 d l , x l , x 2 : real;
VAR opc
: char;
V A R flag-fun : boolean;
: cadena) ;
archivo
VAR
opcl
k
: char;
: byte;
BEG I N
ventana(1,1,80,24,1,",1,14);
gotoxy(21,5);write('SELECCION DE FUNCION DE TRANSFERENCIA');
gotoxy(28,10);write('A: CALCULO FOR PROGRAMA');
gotoxy(28,12);write('B: LEER DATOS DE DISCO ' ) ;
gotoxy(31,16);write('SELECCIONE SU OPCION');
repeat
ventana(35,18,45,20,~,",4,15);
apc := upcase (readkey)
;
until (opc = ' A ' ) or (opc = 'B');
gotoxy(39,19);write(opc);
i f opc = 'B' then
leearc(AR,FCT,archivo)
el se
I
begin
repeat
ptwset(10,1,22,80,24,-1,4,15,");
ptwopen (10)j
write('LDESEAS GUARDAR EN ARCHIVO LOS DATOS GENERADOS? ES1 o EN3
opcl := upcase(readkey1 ;
until topcl='S') or (opcl = ' N ' ) ;
write(opc1);
delay (500);
ptwclose;
resimp~lbO,sdl,xl,x2,AR,ARl);
f o r k := 1 to 20 d o
A R C 1 6 0 + k l := O;
i f opcl = 'S' then
;
guardarc
(AR,FCT)
end;
i f archivo < > 'FIN' then
flag-fun := true;
END;
(*""""""""""""""""""""""""""""""""(*
EJECUTAR
PROCEDIMIENTO
(*"".""""""""""""""""""""""""""""""(* Este procedimiento evalua el algoritmo mostrando los valores
(* de la potencia de la señal, potencia de ruido, y la relacion
(* señal a ruidoque e s t a s potenciastienen,analizando el
c*
algoritmo de acuerdo al orden del filtro utilizado El60 para
(* nuestro caso1
procedure ejecutar (alfa,potr:real; ch:char;algoritmo,
x 1 : real 1 ;
*I
*)
*)
*)
*)
*)
*)
*)
signa1:cadena;
');
VAR
: byte;
: char;
: Integer;
ki, k , j
respuesta,opc
iix,ixnl,ixn2,ma,na
s e r r m ,e r r m ,s s i g ,s e r r ,s e m i u ,s d n l ,x n l ,
y o t ,x n r ,y s p n ,e r r o r ,e r l e ,e r l e d b ,e m i u ,
x n 2 ,y o r , x 2 ,
emludb,miu
: real;
BEG I N
I F l i b r e = t r u e THEN
BEGIN
ventana(l,l,80,Z4,1,",1,15);
gotoxy(5,2
w)r;i t e ( ' A L G O R I T M 0 ' ) ;
g o t o x y ( 4 5 , 2 )w
; rite('RELACI0N
SEGAL / ERROR
(dB)'
g o t o x y ( 2 0 , 2 ) ;w r i t e ( ' N 1 V E L DE R U I D O ' ) ;
DE C O N V E R G E N C I A ' ) ;
g o t o x y ( 5 , 7 )w
; rite('PARAMETR0
g o t o x y ( 5 , 1 3 ) ;w r i t e ( ' S E f i A L DE E N T R A D A ' ) ;
ptwset(11,5,3,15,5,2,4,15,");
);
ptwset(12,20,3,30,5,2,4,15,");
ptwset(13,5,8,15,10,2,4,15,");
ptwset~14,5,15,25,17,~,4,15,"~;
p t w s e t ( l 5 , 40,3,75,22,1,7,0,");
ptwopen ( 1 1 ) ;
w r i t'e, a
( 'l g o r i t m o ) ;
ptwopen ( 1 2 ) ;
w r i t 'e, (p'o t r : l : 4 ) ;
ptwopen ( 1 4 ) ;
w r i t e ('', s i g n a l ) ;
ptwopen ( 1 5 ) ;
ptwopen (13);
i x n l := 286;
i x n 2 := 298;
ma
:= 160;
na
:= 190;
i x l
:= 2216;
1
(* a d a pct oadnc eidoi nc i o n e s
*I
ixZ
:= 345;
iix:=O;
serrm: =O. O ;
errm: =O. O ;
FOR ki:=l
t o 18 DO
begin
FOR k : = l t o 10 DO
begin
s s i g: =O. O ;
s e r r : =O. O ;
semiu:=0.0;
FOR j:=1 t o 160 DO
begin
if s i g n a l = 'ALEATORIA'
(W
t*
THEN
noise(l,l,ixl,ix2,xl,x2)
el se
x 1 := XSCjl;
noise(2,l,ixnl,ixn2,xnl,xn2);
i f opc = ' A ' t h e n
beg¡ n
I F k i > . = l O THEN
transv(ma,na,xl,yor,ARl,XR)
ELSE
transv(ma,na,xl,yor,A~,XR);
end
el se
transv(ma,na,xl,yor,AR,XR);
transv(ma,na,xl,yot,AT,XT);
I F k i =8 THEN
wmw.
=vm3
*)
d e t e r m i n a c idoen
l a señal
a l e a t o r ie
a l i (gsi io )s e
*I
ELSE
begin
I F ki=15 THEN
x n r : =xnZ
ELSE
xnr:=xnZ*potr
end;
yspn:=yor + x n r ;
error:=yspn-yot;
ssig:=ssig+(yor*yor);
serr:=serr+((yor-yot)*(yor-yot));
s e m i u : = s e m i u + s q r ( e r r o r );
stepsize(ma,na,miu,error,alfa,XT,ch)i
LMS(ma,na,errar,miu,AT,XT);
end;
write('
',miu:l:4);
iix:=iix+l;
erle:=ssig/serr;
erledb:=lO.O*ln(erle)/ln(lO.O);
emiu:=semiu/ssig;
emiudb:=lO.0*ln(emiu)/ln(lO.O);
ptwcl ose;
w r i t e l n ( i i x : 3 , 'e r l e d b' , e r l e d b : 1 4 : 6 ) ;
D T C i i x l := e r l e d b ;
ptwopen (13);
write('
',miu:l:4);
end
end;
repeat
I
ptwset(16,15,9,65,14,1,3,0,");
ptwopen (16) ;
w r i t e l n ( ' L A RELACIONSEÑAL
A RUIDO NO HA SIDO SALVADA A U N ' ) ;
w r i t e l n ( ' D E S E A HACERLO AHORA ? ' 1 ;
writeln;
write(
ES1 I
CN30' 1 ;
r e s p u e s t a := u p c a s e ( r e a d k e y );
U N T I L( r e s p u e s t a
= ' S ' ) o r (respuesta = ' N ' ) ;
I F r e s p u e s t a = ' S ' THEN
begin
ptwcl ose;
guardarc(DT,ERL)
end
e l se
ptwcl ose;
end
ELSE
BEGIN
ptwset(17,15,8,65,16,1,1,14,*');
ptwopen ( 1 7 ) ,7
w r i t e l n ( ' L A RELACIONSEÑAL
A RUIDO NO PUEDE SER EVALUADA');
w r i t e l n ( ' D E B I D 0 A QUE NO HAN SIDO ESTABLECIDQS TODOS SUS');
writeln('PARAMETR0S[NIVEL
D E RUIDO,SEÑAL,
ALGORITMO, O ' 1 ;
w r i t e l n ( ' F U N C I 0 N DETRANSFERENCIA].');
writeln;
w r i t e l n ( ' PULSE CUALQUIER
TECLA
PARA CONTINUAR ' I ;
r e s p u e s t a := r e a d k e y ;
ptwclose;
END;
END;
(*""""""""""""""~""""""""""""""""
(*
GRAFICACION
RUTINA
~U""""""""""""""""""""""""""""""~
DE
*)
*)
*)
1
1
1
*)
*)
*)
*)
E s t e - p r o c e d i m i e n t o r e a l i z a l a g r a f i c a c i o n de l a s
funciones que hayan s i d o grabadas b a j o l a extencion
" e r l " , es d e c i r l ar e l a c i o n señal a r u i d o CERLEdbl
de un sistema
evaluado
en e s t e programa
-ocedure g r a f i c ( a r c h i v o : cadena) ;
TYPE
a r r e g l o = arrayto.. 101 o t stringC301;
'JAR
fila1:arreglo;
bandera,graphdriver ,graphmode,errorcode,gmaxx ,gmaxy,
pasox,pasoy,elec,aux,aux2, j,m,anterior,actual,max
:integer;
auxl ,dux3
:real ;
car
:char;
nombre,nombrel
:cadena;
datos,datosl
:text;
graf ,graf 1
: a r r a y CO..3OOl o f i n t e g e r ;
BEG I N
REPECIT
clrscr;
1
ptwset(l8,l,l,80,24,1,1,1~,"~;
ptwopen (18);
write1n;writeln;writeln;writeln;
write('CUANTAS GRAFICAS
QUIERES
HACER
SIMULTANEAMENTE,
MAXIM0
{$I->
r e a d ( eec
l 1;
<$I+>;
UNTIL (elec(=4) and ( i o r e s u l t = 0);
j:=l;
bandera: = O;
FOR j:=l
t o e l e c DO
begin
leearc(DT,ERL,archivo);
f i l a l C j l : = archivo;
i f f i l a l C j 1 = 'FIN'then
bandera: = 1;
end;
i f bandera = O then
Begin
p t w c l ose;
graphdrivertmDETECT;
initgraph(graphdrivcr,graphmode,'
'1;
errorcode: rqraphresult;
i f e r r o r c o d e O g r o kt h e n
begin
w r i t e l n ( 'ERROR GRAFICO ' ,grapherrormsg (errorcode) 1 ;
writeln('PR0GRAMA ABORTADO');
halt (1) ;
end ;
gmaxx:=getmaxx;
gmaxy: =getmaxy;
pasox: = g m a x x d i v 180;
pasoy: =gmaxy d i v 100;
j: =O;
a n t e r i o r : =O;
cleardevice;
"tLlrrn1
m-
(?\.
4:
'1;
setcol or ( 1 1 ;
outtextxy(S,O, 'dB');
outtextxy(SO,O, '70');
line(40,0,40,grnaxy);
line(41,70*pasoy,40+180*pasox,70*pasoy);
f o r j : = 1 t o 18 do
begin
max :=j 1O * p a s o x ;
line(4O+max,70*pasoy-5,40+max,7C)*pasoy+5);
end;
*
outtextxy(40+180*pasox-l0,7O*pasoy+5,'T'~;
outtextxy(40+18O*pasox-l0,70*pasoy-l5,'180'~;
for j:=O t o 1 1 d o
beg1 n
max:=j*lO*pasoy;
line(35,max,45,max);
end;
m: =O;
f o r m : = 1 to elec do
begin
case
m of
1
2
3
4
..
setcolor(l1);
setcol
or ;
(10)
setcol
or
(12);
setcol
or
( 1 4 );
end;
f o r j:=1 t o 300 do
begin
grafCj3:=0;
end ;
nombre:=filalCml;
assign
(datos,nombre)
;
reset
(datos)
;
j: =O;
WHILE ijClS0) or
I
(not eof (datos)
1 DO
begin
readln(datos,aux,auxl);
grafCjl:=round(auxl);
j:=j+l;
end;
cl ose(datos1;
j: =O;
WHILE j<=l80 DO
begin
i f j=0 then
begin
i f g r a f C j l < 0 then
anterior:=O
el se
anterior:=gratC
jl*pasoy;
end;
actual :=pasoy*grat C j 1;
if j<>0then
line~40+pasox*~j-l~,70*pasoy-anterior,4O+pasox*j,7O*pasoy-actu~l~;
anterior:=pasoy*graf C j l ;
j:=j+l;
end;
outtextxy~gmaxx-200,gmaxy-(110-10*m) ,+ilalCmJ);
end;
setcol o r I 1 1 ;
outtextxy(0,gmaxy-lO,'PULSE UNA T E C L A PARA C O N T I N U A R ' ) ;
car: =readkey;
cl osegraph;
restoreCRTMode;
End;
FNnE
c"""""""""""""""c
*)
*)
MENU
*I
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
+
E
in
ste
am
r fu
ae
z stra
r o gercje
aelu
m
pcsa
u
aurtaarrei o
l
*I
l a s o p c i o n e s que t i e n e
*)
? o c e d u r e menu(VAR A , A T , X T , A R , A R l , X R , X S , D T: v e c t o r ) ;
CONST
f c t = '.FCT';
e r l = '.ERL';
519 = ' . S I G ' ;
VAR
opcion,
f 1 ag-f u n , f 1 ag-al g
f 1 ag-si g
v
lg
oo r i t mso
ig
, nal,
extension
a l f a , p o t r , s d l , x l , x2
i x l , ix2
,
*"""""""""""""""""""""""""""""""
*
,
f 1 ag-noi s e , b a n d e r a
: char;
: boolean;
: cadena;
: ,cadenal;
:/ r e a l ;
: integer;
DECLARACION DE CONSTANTES
'*"""""""""""""""""""""""""""""""
*)
*)
*I
P r o c e d u r ec o n d - i n i c ;
Begin
f lag-fun
:= FALSE;
f lag-sig
:= FALSE;
f lag-alg
:= FALSE;
f 1 ag-noi se := FALSE;
libre
:= F A L S E ;
End;
BEGIN
cond-inic;
REPEAT
clrscr;
ventana(l,l,80,24,1,'MENU',lS,~);
textcol o r (4) ;
gotoxy(2,8
w)r;i t e ( ' F 1
'1;
gotoxy(42,8
w)r;i t e ( ' F 2
g o t o x y ( 2 , l Ow
) ;r i t e ( ' F 3
'1;
g o t o x y ( 4 2 , l Ow
) ;r i t e ( ' F 4
g o t o x y ( 2 , 1 2w
) ;r i t e ( ' F 5
'1;
g o t o x y ( 4 2 , i Zw
) ;r i t e ( ' F 6
g o t o x y ( 2 , 1 4 ) ;w r i t e ( ' F 7
'1;
t e x t c o l o r (0)
;
g o t o x y ( 4 , 8 );
w r i t e ( ' . - SELECCION D E SEÑAL INTRODUCIDA ' 1 ;
gatoxy(44,8);
w r i t e ( ' . - SELECCION DE ALGORITMO A APLICAR ' 1 ;
g o t o x y ( 4 , l O );
w r i t e ( ' . - SELECCION D E TAMAGO D E RUIDO ' ) ;
nnfnuv(44,lO):
'1;
'1;
'1;
.-
write ( '
FüNLiUN ~jtI KHNSPLKL;-LIH
I ;
g o t o x y ( 4 , 1 2 );
w r i t e ( ' . - EJECUTAR');
gotoxy(44,12);
w r i t e ( ' . - GRAFICCIR RESPUESTA ' ) ;
gotoxy(4,14);
write('.-S4LIR');
ventana(30,20,50,22,3,",1,14);
gotoxy(32,Zl);
w r i t e ( ' E s c o j a su o p c i o n ' ) ;
opcion := readkey;
bandera := f a l s e ;
i f opcion = #O then
BEG I N
opcion := readkey;
CASE o p c i on o f
chr(59) : s e l e c - s i g ( X S , s i g n a l , x l , x 2 , f l a g _ s i g , a r c h i v o ) ;
c h r ( 6 0 ) : selec-alg(alfa,ch,algoritmo,flag-alg);
c h r (61) : s e l e c - n o i s e ( o p , p o t r , f l a g _ n o i s e ) ;
chr(62) : s e l e c _ f u n t r a n s ( A R , A R l , s d l , x l , x 2 , o p c , f l a g ~ f u n , a r c ~ i v o ~ ;
c h r ( 6 3 ) : Begin
l i b r e := ( f l a g - s i g ) and ( f l a g - n o i s e )
and ( f l a g - a l g ) and ( f l a g - f u n ) ;
ejecutar~alfa,potr,ch,algoritmo,5ignal,xl);
END;
chr(64) :
chr(65) :
END <case>
graCic (archivo;
)
bandera := t r u e
I
END ;
UNTIL (bandera = t r u e ) ;
textbackground ( 0 )
;
t e x t c oor
l (15);
clrscr;
END;
*)
*)
*)
(*"""""""""""""~"""""~"""""-------------
(*
(*"~"""""""""""""""""""""--""----------
MAIN
BEGIN
inicializa(A,AT,XT,AR,ARl,XR,XS,DT);
presentacion;
menu(A,AT,XT,AR,AR1,XR,XS,DT);;
END.
.
RESULTADOS
O
h
m
O
+X
3
ZT,
2
t
X
1
7
2
O
O
3
O
Q
X
3
7
2
O
O
1
m
O
N
O
O
D
71
o
D
O
m
O
o
1
O
O
1
m
O
N
O
O
311
D
n
o
D
cn
O
O
>
m
5
O
O
o
1
O
O
o
D
x"I
z
O
C
A
1
a
O
O
O
A
N
O
O
I
2
O
O
2
O
O
N
O
w
O
P
O
0
O
z
-0
9
x
cn
O
O
Z
U
m
2
O
O
2
cn
O
N
O
O
rc
n
3
W
x
9
9 r
CONCLUSIONES
REFERENCIAS
C11
J.
R.
Zeidler.
"Performance
Analysis
prediction filters". Proc o f
the
LMS
of
IEEE Vol
78,
Adaptive
No
12
pp
1780-1886 December 1990.
f23
Perez H. Amano F.
"Acoustic Echo Cancellation Using Hultirat,e
Techniques" Trans. o f the IEICE vol E 74 No.11 November 1991.
I
133
Shahid U. H. Qureshi "Adaptive equalization".
Proc.
of
the
IEEE vol 73 No. 9 September 1985.
William
C43 Stanley,
D.
Second
"Digital
Signal
Processing"
edition, Prentice Hall, 1984.
C53
Belove, C. "Enciclopedia de la Elcctronica" Centrun ediciones
Barcel ona EspaPTa 1990.
C 6 3 Treichlw J - , Johnson
signalprocessingThmory
C.,
Lariaove
and
Wiley Interscience.
27
Design
H.
"Topics
of
in
digital
adaptivefilters"
Descargar