UNIVERSIDAD AUTONOMA METROPOLITANA UNIDAD ISTAPALAPA PRESENTAN DE LA LUZ PUEBLA S VICTOR " J W L GHEWO FLORES JULIO CESAR 1 J PREsEElTACION En l o s affos recientes, h a habido un tremendo incremento en e l de computadoras digitales e s p e c ip aa ld r ae s a r r o l l a r y cireuiterla digital una amplia gama de de uso propbsito funciones procesamiento de seffales que i n i c i a l m e n t ef u e r o nl l e v a d a s de a cabo con equipamientoanaldgico. La evolucidn continua baratos a de propiciado una minicoaputadoras que pueden c i r c u i t oi n st e g r a d or e slativarente variedad de y microcobputadoras ser usadas paravariasfunciones de procesamiento de seffales. Ahora es p o s i b l ec o n s t r u i r procesadores digitales de m i s m o tamaKo y a l mismo costo de especialdentrodel propdsito aquellos de naturaleza analdgica. E s t et r a b a j o aborda una pequeffa p a r t e adaptivosanalizando (algoritmos para el desenpcf’fo de de los filtros l o s algoritmos LMS y VSLHS f i l t r o s digitales adaptivos no recursivos o FIIRI mediante el uso de programas conputacionales para t a l e sa l g o r i t m o s digitales observando cual es su desempeffo t i p o s de secuencias de entrada, p a r ad i f e r e n t e s d i f e r e n t e sn i v e l e s condiciones cambiantes de medio de funcibn de t r a n s f e r e n c i a d e l l a simulacibn de transrrioion, medio. 2 8s de decir, ruido de y la INTROWCCION 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 procesocombputacional o a l g o r i t m oq u ec o n v i e r t eu n as e c u e n c i a una seffal d e entrada e n o t r a s e c u e n c i a sefial de sal i d a , en y el Un filtro digital es d e ndrrerosrepresentandouna cual caracteristicas d e l a ssRlal enuna n d m e r o sr e p r e s e n t a n d o de 1a conversidn Los las f o r m a preescrita. la d i s e f i ap do r deterainacion de los a l q h proceso c o e f i e i c n t e s d e l a l g o r i t m o de e n t r a d a / s a l i d ap o r a p r ox ímac i dn carnbi a de . filtros digitales presentan varias ventajas sobre sus c o n t r a p a r t e sa n a l b g i c o s r 1.- I n t e r v a l od i n h i c o . E l llmite s u p e r i o r es f í j a d op o r el tanafio d e l nirmero hardware d i g i t a l p u e d re e p r e s e n t a r , fijadopor y el limite que el inferior es el r u i d o d e c u a n t i z a c i b n y errores dm redondeo. E l i n t e r v a l o entre e s t olsl n i t eds e p e n d C e lnicamente l o n g i t u d e s d e palabra u t i l i z a d a s t o sea, el numero u s a d o s en l a r a p r e s e n t a c i dbni n a r i a Ir seRlal). l o n g i t u d e s de grandes, palabra e np r i n c i p i o se pueden de hacer el i n t e r v a l o d i n b i c o L o s limites s o ni m p u e s t o se n las de de bits Si las lsou f i c i e n t e m e n t e no t i e n e limite. l a practica a d r p t h 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,- &usencia de problecnas decomponentes. se L o s pararnetros de l o s f i l t r o s representan por nClrneros b i n a r i o y no derivan con e l tiempo. cI1 medio de aumentar l o n g i t u d de palabra se hace p o s i b l e l a obtencibn de grado de e x a c t i t u d deseado. e x a c t i t u de , l Dentro + i l t r o funciona t a l y como problemas de t o l e r a n c i a o d e r i v a asociado los de con un comportamiento capacitores, inductores o no se diseffo. ideal Y de amplificadores. problemas de impedancia de entrada y cualquier llrnites de componentes. de esa No hay ninguno resistores, Tappoco salida la ni existen efectos de carga e n t r e etapas. 3. - Conmutabi1idad Si l o s paratnett-os d e l f i l t r o se conservan en c o n t r a r i o de conectarsefisicaaente), el contenido r e g i s t r o s se puede cambiar a voluntad y en (es decir, entre registros forma de ( lo estos instantanea t i e m p o s de mucstreo consecutivos), p o r tanto, l o s f i l t r o s se pueden hacer perfectamente conwtables. f i l t r o conmutabletambien Un s o l o se puede m u l t i c a n a l i z a r en e l tiempo para procesar entradas mdltipler. 4 4.- Adaptabilidad. Un f i l t r o d i g i t a l p u e d ei m p l e a e n t a r s ee n programa d e computadora. L o s tambien se filtros hardware o b i e n digitales para a d a p t sadinn ificultad como hardware de c o n t rpool r el computadora d e s u s p a r a m e t r o s . E x is t e nm u c h a s a p l i caci o n e s d e p r o c e s a m i e n t o de c u a l e s l a s r e l a c i o n e s d e fase s o inm p o r t a n t e s , p e r t u r b a d a s p o r el f i l t r a d oP.a r a f i l t r oc o nd e f a s a n i e n t o ceros f i l t r o c u y od e s p l a z a m i e n t o estos deben ser no re ideal un buscar un sTla debe sea p r o p o r c i o n a l a l a f r e c u e n c i a . sistemas dm d a t o sm u a s t r e a d o r Una d i s t i n c i d 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 ee nl o sf i l t r o s r e s p u e s t a al impulso. las y fines e n l a practica seffales e n digitales, Se h a b l a d e (FIR, d e f i n i t e i m p u l sree s p o n s e ) e5 la duracibn r e s p u e s t fa i n i t a y de sistemas al de de respuesta a3 I I R IIR cn uno en el c u a l l a r e s p u e s t ai m p u l r i v aH ( n )t i e n e un n h e r o i n f i n i t o dm muestras. h i , H(n) es no c a r o i n f i n i t o d e puntos. 5 M la impulso i n f i n i t a a l i m p u l s o ( I I R de i n f i n i t ei m p u l s er e s p o n s e ) : Un f i l t r o y un na-0 b> FIR Un filtro F I R limitada es uno en el cual la respuesta al H(n) es a un namero finito de muestras- los Entre las posibles ventajas de realizacidn de filtros caracteristicas ideales susceptibilidad de la implementacion cuantitacidn, adernas de cualquier impulso que FIR son la posible de fase a efectos de y menos parametros de estos, son siempre estables bajo variaci6n en sus coeficientes. 1 de Entre las desventajas son los grandes tiempos necesidad d e funciones de mas alto orden para llevar requerimientos preescritosde filtrado, y la mientos ma5 simples directa de las de disefio ESTRUCTURA FILTRO F I R a cabo los carencia de procedi-- que permitirían especificacionesdel filtro retardo, la la consecucih FILTRO I I R ESTRUCTURA Que hacen Los filtros los filtros adaptivos? adaptivos se adaptan a las circunstancias cambiantes. CI diferencia de la mayoría de los filtros convencionales, los filtros adaptivos pradictivos son autodefinidos en el "vuelo" por la secuencia de datos de entrada que maspor un modelo la sMal e s p w a d a y las estadísticas de ruido. filtros de entradaestacionarias,los filtrobptiroWihner, el cual desde Para a prioride estadísticas rdaptivorconvergen suprimera forotulrci6n explícita en 1949, es el m e j o r predictor de para procesos continuos en tiempo. estocarticos estacionarios 7 al mínimos cuadrados La p r e d i c c i d nl i n e a l es una t k n i c a c l a s i c a de procesamiento seflales que provee calculos aproximados d e l v a l o r de de un proceso de entrada en un tiempo donde l o s datos medidos n o estan disponibles, basados en mediciones del mismo proceso realizadas durante Las i n t e r v a l o s que n o contienen e l tiempo de i n t e r d s . son usadas generalmente en la basados en l a s d i f e r e n c i a r d e l seprracibn de t + c n i cas y sefialeo ruido tiempo de coherencia de l a sefial y e lr u i d o . a una Estohasidoexitosarenteaplicado incluyendo radar, teorla de sonar, estirnacibn espectral, control. cancelacibn identificacidn, amplia de astronomía,procesamiento gapa de campos comunicaciones, ruido, sistema de inagenes, de ingenierla b i o d d i c a y o t r a s muchos areas. Wiener f u ee p l rimero predictor bptimo por continuos en tiempo. predictor bptimo por en d w 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 m l n i m o s cuadrados para procesos e s t a c i o n a r i o s Se puede mostrar que los c o e f i c i e n t e sd e l mlniaos cuadrados estan definidos de l a s eatadisticas de segundo orden proceso del en terminos estocastico. Consecuentemente, l a d e t e r r i n a c i d n de l o s c o e f i c i e n t e s d e l dptimo requiere conocimiento explfcito de c o v a r i a n c i a de l a sefial de datos de entrada. 8 la fu sn c i o n e s filtro de Ed l iscfio acerca a de f i l t r o s de Wiener equiere de l od sa t oe s t a d í s t i c o s procesada. Cuando priori la de i n f o r m a cni oh n tal d a t o s d e entrada u s a n d oe s t i m a c i h n informaci6n esta i n f o r n a c i h n estadística r e q u e r i dpa u e d e sor Lpar e d i c c i band a p t i v a t a m b i e nu s a d a ser a disponible, determinada de la los d e mínimoscuadrados.Algunas t e c n i c a s como m l n i m o sc u a d r a d o sr e c u r s i v o s ,p u e d e n para p r o v e e ru n ai m p l e m a n t a c i d n infornacihn de utilizadas ser mas e f i c i e n t e , basada cstiaacihn en de ,gradiente es para predecir u n as e c u e n c i ae nt i e m p oc o np a r h n e t r o s estadísticosdeeconocidos. Los f i l t r o s d a p t i v o s o na u t o d i s e f i a d o sb a s a d o se n r e c u r s i v o el cual permite e s t a d í s t i c oisn i c i a l e s l e n t a m e n t ee n de algoritmo f i l t raop r e n d el orpsa r i n e t r o s al la un entrada y rastrearlos si varlan el tiempo. T afliel st er omsp i e z a n de de l a r c u a l e sn oc o n t i e n e ns u p o s i c i o n e s condicionesiniciales, d e l a s carrcteristicas a c t u a l i z laocso e f i c i e n t e s a d a p t i v os e l e c c i o n a d o c o n j upnrteod e t e r m i n a d o un estadísticas del de 105 f i l t rboa s a d o y la secuencia 9 datos en acerca y entonces, el algoritmo d e v a l o r e s westreados. P aernat r a deasst a c i o n a r i a s , ha s im d oo s t r a qdfuoi let r o s 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 al f i l t rd optino de Weiner d e n t r o d e un f a c t o rc o n o c i d o como r u i d o d e d e s a j u s t e .E lr u i d o d e s a j u s t e e5 d e t e r m i n a d op o r l a magnitud d e 1 0 5 e r r o r e s i n h e r e n t e s d e l o sd a t o s la a d a p t i v a , y puede ser de estinacidn a p r o p i a sdeal e c c i d n de a d a p t i v o - L o s p a r i n e t r o fsi j o s t a l e s como : orden del c o n t r o l a d op o r lo p sa r a m e t r o f isj o s filtro del f i l t r co o, n s t a n t e de del filtro s oanl g u n o s diqital adaptacidn, de y d i s t a n c i a de prediccibn. I L ar a t b n a l a c u a l el f i l t r oc o n v e r g e de aprendizaje adaptiva). del p r o c e sa od a p t i v o es d e f i n i d a como (la constante el tiempo de tiempo L a magnitud d e l a c o n s t a n t e d e t i e m p ao d 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 a p t i v o u t i l i z a d o es el LSS (least mean square). E s t ea l g o r i t m ou t i l i z au n at k n i c a de busqueda d e g r a d i e n t e d e t e r m i n al roCso e f i c i e n t e s , c u a l e sm i n i m i z a n para 1os el error c u a d r i t i c o medio d e p r e d i c c i d n . Los a l g o r i t m o s LtlS r-aquimrcn s o l o 2N o p e r a c i o n ep s o irt e r a c i d n para d a t o s reales, y no r e q u i e r e n d e l a d e t e r a i n a c i b n e x p l i c i t 8 l o s c o e f i c i e n t e s d e l a c o r r e l a c i d n d e l a seffal d e e n t r a d a . 10 de avances recientes de algoritmos para filtrado adaptivoy digital de a l t a velocidad han producido familias de hardware algoritmos conputacionalmente efectivos, l o s cuales, pueden ser iopleaentados en tiempo r e a l para muchas aplicaciones. 11 ALGORITMO LMS E n t r e l o s algoritmos adaptivos mas usados tenemos aquellos basados se debs en l a bdsqueda delgradiente.Esto principalmente a su robustez y simplicidad. x (n) b En general un a l g o r i t m o basadoen l a bCIsqueda d e l grodiente esta dado p o r : H(n+l) = Htn) - (1) p Vtn) donde : H(n) = tho , ha, ..... hn-13 T (2) Es e l v e c t o r de c o e f i c i e n t e s . Y : Es el g r a d i e n t e de e r r o r c u a d r i t i c o medio y p es un factor c o n t r o l a la e s t a b i l i d a d y velocidad da adrptaci6n del algoritmo. 12 que D e l a f i g u r aa n t e r i o rt e n e m o sq u e : e(n) = d(n) - y(n) A s i asumiendoque: X(n) = C x ( n ) ,x ( n - 1 ) .....,x ( n - N + l ) I T r e p r e s e n t a el v e c t o r d e e n t r a d a , d e 2,4 y 5 obtenemos : y s u s t i t u y e n d o ( 6 ) e n ( 3 ) obtenemos: E lc a l c u l o de V(n)no es simple e n l a prictica d e b i d o al o p e r a d o r c s p e c t a c i d nE. s t ad i f i c u l t a d radica p r i n i c i p a l m e n t e n el d e q u e l a s u p e r f i c i e d e e r r o r es e ng e n e r a ld, e s c o n o c i d ae n hecho la p r k t i c a , y d e b e ser estimada p a r t i r d e l o s d a t o s d e e n t r a d a . Una s o l u c i d n a este p r o b l e m ac o n s i s t e nr e m p l a z a r dado por (71, p o r el g r a d i e n t ei n s t a n t a n e od a d op o r 13 el I gradiente El c u r l de ( 6 ) se puede r e e s c r i b i r como: V ( n ) = -2 Ce(n)x (n) , e l n l x (n-l), ... ,e(n)x (n-N+l) 3 &si, reemplazando V ( n ) por V' (n) en (11, = H(n) H(n+l) La cual 5epuede -y de ( 9 ) obtendremos: V' (n) r e e s c r i b i r comoz h r ( n + l ) = hr(n) + 2yctn)xtn - (11) I) Las ecurcionas 10 y 11 se conocen como e la l g o r i t m o LMS ( 1 east means square) o algoritmo de Widrow-Hopf. Solucion Optima. Considerando l a m i n i a i z r c i d n d e l error curdrAtico medio dado P o r La cual de ( 2 ) y ( S ) se puede r e e s c r i b i r como o E C e*(nl 3 = E C(d(n) - X'HI'I 14 (13) el p r i n c i p i o d e La a i n i n i z a c i d n d e 13 puede llevarse a c a b ou s a n d o o r t o g o n a l i d a d el c u a l c o n s i s t e e n s e l e c c i o n a r H d e modo t a l q u e l a seffal d e e r r o r sea o r t o q o n a l al v e c t o r d e e n t r a d a , es decir: &sumiendo que l o s c o e f i c i e n t e s el y vector da entrad s on a no c o r r e l a c i o n a d o s , d e (15) obtenemos: I P = R H donde: es el v e c t o r de c o r r c l a c i h n e n t r r de referencia, el vector da entrada y l a y : R = E CX(n)X'(n)J es l a matriz dm a u t o c o r r m l a c i c h d e l a sefial da e n t r a d a . M u l t i p l i c a n d o a (16) p o r el l a d oi z q u i e r d o H I R-'P OP 15 por R -a , obtenemos I (19) C o n v e r g e n c i a d e l a l g o r i t m o LMS. C o n s i d e r e la s d a l d e error la cual esta dada p o r : e(n) = d(n) - XT(n)H donde : H = tho, h a , hn, Y ....., hw-il T T X(n) = x(n-l)...,..x(n-N+l)l Cx(n), S u s t i t u y e n d o 20 e n l a e x p r e s i d n c o r r e s p o n d i e n t e (211 a1 a l g o r i t m o LMS obtenecnos: H(n) = H(n-1) + 2 p X (tnd)t n ) - XTH I (23) Tomando el v a l o re s p e r a d o d e 24, asumiendo que s o nn oc o r r e l r c i o n r d o re n l a seea1 da e n t r a d a ,o b t a n e m o s r S e g u i d u n e n t ms, u s t r a y e n d o Hop ecuacidn (251, obtenemos: l o sc o e f i c i e n t e s dado por (19) en ambos 18dOS de la EtH(n)3 Donde - = ECHtn-1) 3 - - R-'P = ECH(n-113 + aRR"P R-'P y: R = ECX(n)XT(nl3 I EfH(n)l R"P - + R"P - ~cIRECH~)~ P = ECd(n)X'(n) 1 2pRCR-'P - (271, (28) (29) EfH(n-1)13 1 (311 donde8 El significado de srte Seguidamente, usando una proceso es una traslacibn da matriz ortonormal representamos R ejes. de siguiente manera: R = K'Q K Dondcr K'K = I h i de 32 y 33 o b t m r r o r R = K% K 17 (34) la K R K ~= K K ~ QK K ~ (35) Q = KRKT donde I Q = diagCAí, X 2 , . . . . y Xi es el i - e s i nm o igenvalor o ,AN) v a l opr r o p i o de la matriz de a u t o c o r r a l e c i d n R. s u s t i t u y e n d o 34 M f ( n ) = (I - 30 obtenemos I 2pKTQK)e(n-l) E l s i g n i f i c a d o d e esta o p w r e i b n es una r o t r c i d n d e ejes. 18 (38) Iterando l a ecuacidn (32) obtenemos: I I I I I I I I 1 (44) De donde < O se obtiene que s i l a i - e s i r a componente delvector A s i con e l objeto de asegurar < p V convergwi a O (cero). la convergencia componentes del vector V se requiere que : O E s t o se deducede < p < (45) 1 / Ai 1 /.A e l hechodeque 19 YAX de todos los Llna c o n d i c i d n d e c o n v e r g e n c i a , necesaria, se p u e d o e btener cual es s u f i c i e n t pe w o de la teoria de matrices la no observando que: trR Donde t r R s i g n i f i c a > A (47) MAX l a suma d e t o d o s l o s e l e m e n t o se n p r i n c i p a l d e R, Y a q u e R esta dadopor la diagonal (l8),es facil d e d u c i r - trR = N x2h) Donde x P ( n ) d e n o t a / que (48) l a p o t e n c i a d e l a sePlal d e e n t r a d a . A 5 i f i n a l m e n t ao b t e n e m o sq u e a l a l g o r i t m o LFIS sera c o n v e r g e n t e si: P a rpao d etre n eurnoap t i m i r a c i dcno m p l e tean a d a p tdi ve ab,e m o s de la tcouem enna tr a , la aproximacidn velocidad de convergencia, l a d i s t o r s i d n de l a sena1 y l o s r e t a r d o s de transmis i b d e d a t o sl ,ocsu a l eds e b e n e s t r u c t u raads a p t i v a s mínimos. Generalmente 5- p u e dperno v e e r no un las g r af anc t o r de d e c i n a c i b n y un pequepZo r e t a r d o d e t r a n r r 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 r t u r loss enhancement). Con un gran f a c t o r d e decirnacidn y una a l t a a t m u a c i b n d e e c o r e p u w i r l r n o s de un orden d e l f i l t r o de muy alto y c a u s a r ígar a n d arse t a r d o s trmsaisidn. Eal l g o r i t m o VLcls es u np aropuesta cual el d a t e c c i o n precisa p a r a l a a p r o x i n e c i b n fitro de permite los coeficientes y del adaptivo. El p r i n c i p i ob 4 r i c o d e l f u n c i o n u i m t o de este v a r i a n d o el t r a l f f o dm1 p a r o a medida e nq u e algoritmo, a l g o r i t mvcoao n v e r g i e n d o hrcia aproximaci6n. 21 es ir esta 5e vaaproximando a Ir rrffrl, m% decir, e1 t a M o d e l p a s ov ad i s m i n u y e n d o q u e al velocidad el vector a medida dptirno de Epl r i n c i p i o es de este algoritmo descrito anteriormente diferencia a cuales va a v a r i a r e l pasode de u s L N condiciones 2 e ( k ) k =1 la siguiente manera: N - l N - 1 &si p o r 10tanto las t 22 LMS s i m i l aa rl convergencia. N- 1 P o r l o cual a h ) quedada basicarnente + -1e 2 (N) N en la CIsi para que e l algoritmoconverja las mas ripidamentedefinimos siguientes condiciones: si si Las siguientes paginas n w t r a n el program se ímplemntan a d x m a l g o r í t m s , asi c o w usuarfo. 23 la computpcfonal interfaz donda hacía el "_ (* (* ................................... PROGRAMA VSNLMS AND LMS ~""~~""~~""~"""""------------------- E s t o programa implementa l oasl g o r i t m ovss n l m s y lms para l a s i r n u l a c i o d n fei l t r oas d a p t i v ons roe c u r s i v o s el c u aml u e s t r a l a r e l a c i osne ñ a l / r u i d o que presenta t a l s i m u l a c i oEnsp .t reo g r a m a es c a p a z d e a n a l i z a r d i s t i n t a s seRales d e e n t r a d a d e s d e l a mas s i m p l e f u n c i o n e s c a l o n h a s t a u nsae ñ at lo t a l m e n tael e a t o r i a , la cual i r a s i e n d oa p r o x i m a d ap o r el f i l t r oa d a p t i v oc o n v e r g i e n d o a un v a l o r ddea dgoa n a n c i a *) *) *I *) *) *) *) *I *) *I *) 3ROGRAM VSLMS-LMS; ( * el programa se a u x i 1 i a d e e s t a s ( * u n i d a d e s , 1 a s c u a l e s s i r v e n para ( * r e a l i z a r l a parte d e g r a f i c a c i o n , ( w l a parte d e i n t e r f a c e a u s u a r i o y ( * para p r o p o s l t op r o p i o s d e l l e n g u a j e USES CRT, VENTANAS, GRAPH, PTOOLS; CONST *I *) *) *) *) ( * E s t a s c o n s t a n t e s s o n declaradas para *) (* para p o d e r i d e n t i f i c a r l o sa r c h i v o s *) (* de t e x t oq u eg e n e r a r a y u t i l i z a r a el * I ( * programa *) fct = '.FCT'; erl = ' . E R L ' ; si9 = ' . S I G ' ; TYPE v e c t o r - a r r a y t o . . 3001 o f real ; cadena = s t r i n g C 3 0 3 ; cadena1 = s t r i n g C 4 3 ; VAR A, A T , XT, n,ix2,ixl AR, AR1, XR, XS, DT libre (*""""""""""""""""""""""""""""""(* GAUSSIAN0 RUIDO GENERADOR DE (*"""""""""""""-""""""""""""""""" (* g e n e r a d o r de n u muenr iofso r m e mdeins t er i b u i d o s (* p a r a a s i p o d e r r e a l i z a r l a s i m u l a c i o n d e l . o r o c e d u r eu n i f( u n i : integer; VAR i x l , i x 2 : i n t e g e r ; VAR r y : r e a l ) ; 'JAR i x : integer; : vector; : integer; : boolean5 r u i dbol a n c o *) *) W) *) *) BEG I N i f u n i = lt h e n ix:=ixl e l se ix:=ix2; is:=ix*l79; i f i x < Ot h e n ix:=ix+32767+1; ry:=ix/32768.0; i f u n i = lt h e n ixl:=ix el se ix2:xix; END; * * * G a u snsui 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 ayuda d e l p r o c e d i m i e n t o UNIF para g e n e r aarl e a t o r i a m e n tde a t oqs usei r v a p n a rda e t e r m i n a r u n as e ñ a l d e e 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 a d e l sistema U *) *) *) *) r o c e d u r en o i s e ( u n i : integer; sd : real; VFIR i x l , i x 2 : i n t e g e r ; VAR x 1 , x 2 : r e a l ) ; LABEL 1 ; VAR vl,vZ,r,s,b,y : real; BEGIN 1:unif (uni,ixl,ixZ,r); vl:=2*r-1; unif (uni,ixl,ix2,r); v2: =2*r-l; S : =sqr ( v l ) +sqr (vZ) ; i f s 3 1 . 0 t h e ng o t o b: =-2.O*ln ( 5 ) ; y: = s q r t ( b / s ) ; x 1 := s d * v l + y ; x 2: =sd%v2*y; 1; END; :*"""""""""""""""""""""""""""-""":* RESIMP PROCEDIMIENTO [*""""""""""""""""""""""""""""""" :* (* (* (* (* E s t e p r o c e d i m i e n t o se a y u d a r a d e l p r o c e d i m i e n t o NOISE para d e t e r m i n a r la r e s p u e s ti m a pulsiva d e l sistema, l a c u a l s e r v i r a p a r ap o d e ar n a l i z a r l a parte g e n e r a d l 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 a d e l sistema tomando como base t a m b i e n l a señal d e e n t r a d a *) *) *) *I *) *) *) *) r o c e d u r er e s i m p :ma : lr,c'3qe"rj VS;K sal , VAR AR,AR1 : v e c t o r ) ; S I , X L : rear; VAR j , k , i x l , i x Z : integer; BEGIN s d l := I ; i x 1 :=232; ix2: 445; FOR k:=O t o ma-1 DO begin noise~l,sdl,ixl,ix2,~l,x2); ARCkl:=(xl/3.0)*exp(-(b.0+k)/(ma-l)); ARlCkJ:-(x2/3.0)*exp(-(6.0*k)/(ma-l)); end; END ; *) *) *) (*"""""""-""""""""" :* PROCEDIMIENTO TRANSV (*"""""-""""""""""" (* (* [* (* E s tper o c e d i m i e n toob t i e ne vee l ctor o lm a atriz de s a l i dd aesli s t e m a empleando l a sumatoria de convol u c i on, p a r a l a c u ai nl v i e r tls eae ñ a l de entrada y es l a que va r e c o r r i e n d os o b r e l a r e s p u e s t ai m p u l s i v a , 9) *) *) *) r o c e d u r et r a n s v ( V A R ma,na : i n t e g e r ; VAR x 1 , y : r e a l ; VAR AT,XT : v e c t o r ) ; VAR k : integer; BEG I N FOR k:=O t o na-1 DO begin XTC k 3 :=XTC k + l I end ; XTfnal:=xl; y : =o. o; FOR k:=O t o ma-1 DO begin y:=y+6TCkl*XTCna-k3 end; END; (* r e c o r r e (* l a l i n e a de r e t a r d o i n t r o d u c e la señal de e n t r a d a (* convoluciona obteniendo y(t) *) *) *) rocedurestepsrze(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 1 ; VAR k : integer; ami u, m i up, mmax m m i n : r e a l ; , BEGIN ami u: =O. O; FOR k:=O t o ma-1 DO begin amiu:=amlu+sqr (XTCna-kl) end; ( * c a l c u l o de l a p o t e n c i a *) (* de l a señaldeentrada * I ( a p a r aa s id e t e r m i n a r el *I ( * paso *) i f ch = ' L ' then m i u := a l f a / a m i u e l se begin mmax: = l . O/amiu; mmin:=O.Ol/amiu; i f miu=O.O then m i up :=mmax e l se (* (* r a d i o *) c a l c u l o de m i u de convergencia de miu *) miup:=0.999*miu+O.O0048*error*error; (* c o n d i c i o n e s de m i u ( * l a c o n v e r g e n c i da e l ( * algoritmo miu:=miup; I f miup>mmax t h e n m i u : =mmax; I f miupcmmin t h e n miu:=mmin; end; para *I END; '*"""""""""""^""""""""""""""""""""" :* *I PROCEDIMIENTO LMS I*"""""""""""""""""""""""""""""""" :Y E s tp er o c e d i m i e n te ov a l ue all g o r i t m o con ecl u ael l f i l t r o adaptiva ira aproximando su r e s p u e s tiam p u l s i v a :* a l a r essiip smtue p d em u e sltasai v a :* procedure lms(UAR ma,na : i n t e g e r ; VAR e r r o r , m i u : r e a l ; VAR AT,XT : v e c t o r ) ; VAR k: i n t e g e r ; *) *) *I *) *I *) *) FOR k r = 0 to ma-1 DO begin AT~k3:=ATCkI+miu*error*XT~na-k1 end ; END; *""" """""""""""""""------------------**"""""""""""""""~"""""-------------------PRESENTACION *) *) *) 'rocedure presentacion; BEGIN ventana(l,l,80,24,1,",1,14); gotoxy(22,6) ; write('SIMULACI0N DE FILTROS ADAPTIVOS MEDIANTE'); gotoxy(22,7) ; write('L0S ALGORITMOS VLMS Y LMS'); gotoxy(22,9); write ( ' ELABORADO POR : 1 ; gotoxy(Z2,lO) ; write ( ' DE LA LUZ PUEBLA VICTOR MANUEL'); gotoxy (22,ll); write( ' GHENOFLORESJULIO CESAR'); gotoxy(22,14) ; write(' BAJO LAASESORIA DE:'); gotoxy (22,lS); Dr. HECTOR PEREZ MEANA'); write ( ' UAM-I 1994'1 ; gotoxy (20,18);Write ( ' textcolor(31);Gotoxy(70,22); write( '<<ESPERE>>'); delay (2000); textcol or (14); END ; *) *) *) '*"~""""~""""~"""""""""""""""""~"--- :* INICIALIZACION PROCEDIMIENTO DE '*"""""~"""""""~""~"""""~""""""""--:* (* :* Este procedimiento inicializa los vectores durante la ejccucion del programa, esto introducido evitar pueda ser ruido que con a utilizar el fin de rocedure inicializatVAR A,AT,XT,AR,ARl,XR,XS,DT:vector); VAR k : integer; BEGIN FOR k: =O t o 300 DO begin A r k 3 :=O.0; A T C k l : = O . 1; I . " a . - -P. *- *I *) *I XTCkl:=O.O; XSCKJ:=O.O; DTCkl:=O.O; end; END; *) *) *) (*"""""""""""-""""""""""""""""""""" (* DATOS (*""""""""""""""-"""""""""""""""""" EN ARCHIVO GUARDAR En e s tper o c e d i m i e n t o damos l a opcion de que e uls u a r i o pueda guardar e n a r c h i v o s de t e x t o l o s d a t o s que haya generado e l programa, dandole l a opcion que de l o pueda guardar en c u a l q u iuen ridad 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 l a e x t e n s id o aen r lc h i v o l a generara e s t e de acuerdo p r o c ead l im r ei e an l itzoa d o (* (* (W (* (* (* r o c e d u r eg u a r d a r c 8) *) *I *) *) *) (DT:vector;extension:cadenal); VAR i ,resu1 tado s a l 1 da nombre,archivo OUDA : : : : integer; char; cadena; text; BEGIN ptwset(1,13,7,67,17,1,7,0,"); ptwopen ( 1 ) ; w r i t e l n ( ' 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 ',extension,' 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: '1; writeln(' CUNIDAD3:€\CSUBDIR3\>CNOMBREl '1 ; wri t e l n ( ' ABORTAR PARA FIN TECLEE '); writeln; repeat . ptwset(2,13,15,67,17,1,4,15,"~; ptwopen (2); r e a d l n (nombre) ; i f (nombre'' ' ) then begin resultado:=l; ptwcl ose; end el se begin i f (nombre 0 ' F I N ' ) then begin a r c h i v o := concat (nombre,extension) ; assign(OUDA,archivo); <%I-> rewrite(OUDA1; r e s u l t a d o : =IOResul t ; <%I+> i f r e s u l t a d o 0 O then Begin ptwset(3,19,9,61,15,1,3,0,"); ptwopen ( 3 ) ; . - '---nn n= cermlm IRA. DISCO PROTEGIDO 0' : t e l n ( 'UNIDAD D E DESTINC MO V A L I D G ' > ; writeln; w r i t e ( ' P R E S I 0 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 3) p t w c l o s e ;. : c i e r r e de 2) End; end; end; u n t i l( r e s u l t a d o = 0 ) o r (nombre = ' F I N ' ) ; i f nombre < > ' F I N ' then begin F o r i := 1 t o 180 d o wr1 writeln(OUDA,i:&,DTCiI:l4:6); close(ouda); end ; p t wocsl{ ec; i e r r e p t wocsl{ ec; i e r r e de 23 de 1 3 END; *""""""""""""""""""""""""""""""" * LEER DATOS DE ARCHIVO *""""""""""""""""""""""""""""""" * E sptreo c e d i m i e nl teoe de a r c h i v o , l o s d a t o s que han * s i deod i t a d opsr e v i a m e n t c eo ,n l a e x t e n s i o n que r e q u j e r a * c afduan c i o Tn a.m b i e t ine,n e l a c a p a c i d a d de l e e r de * c u aul q nu i di e a rd de d i s c o y / o s u b d i r e c t o r i o lrocedure leearc (VAR 5T : v e c t o re ; xtension 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 I sal ida nombre I NDA dux *) *) *) *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 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 1 O N ASIGNADA SERA ',extension,' EL ARCHIVO S E ' ) ; w r i t e l n ( ' L E E R DE L A UNIDAD D E TRABAJO, S I DESEA LEER DESDE '1; w r i t e l n ( ' 0 T R A UNIDAD INDICARLA, DE L A SIGUIENTE MANERA: ' 1; writeln ( ' CUNIDAD3:C\CSUEDIR3\3CNOMEREJ '); w r i teln ( ' ABORTAR PARA TECLEE FIN '1; writeln; repeat ptwset15,13,15,67,17,1,4,15,"); ptwopen (5); r e a d l n (Nombre) ; i f nombre = then begin r e s u l t a d o := I ; ptwcl o s e ; end . " st) begin i f nombre < > ' F I N ' then begin archivo := concat (nombre,extension); assign(INDA,archivo); .[$I-> reset (INDA) ; resultado:= IOResult; CBI+I i f resultado <> O then Begin ptwset~b,19,9,61,15,1,3,0,"); ptwopen ( 6 ); writeln('EL ARCHIVO ESPECIFICADO NO SE E N C U E N T R A ' , ) ; writeln; write('PRESI0NE INTRO PARA CONTINUAR'); salida := readkey; ptwcl ose; ptwcl ose; End; end; end; until (resultado = O) or (nombre = 'FIN') ; if nombre < > ' F I N ' then begin indice := O; WHILE ((not eo+ (INDA)) or (indice<l80)) d o begin readln(IND&,aux,AUXl); DTCindicel :=auxl; indice:=indice + 1; end ; cl ose (INDA); end else archivo := 'FIN'; ptwclose; ptwcl ose; END: (*"""~"""""""""""""""""""""""~""""" :* SELECCION DE L A SEijAL (*"""""""""""""""""""""""""""""""" Este procedimiento genera la señal de entrada a la que estara sujeto el programa, proporciona algunas señales tales como, senoidal,escalon,trendepulsos y señalesaleatorias;tambientiene la opcion de que puedaescribir a, o leer de disco señales elegidos por el usuari o (* (* (* (* (* (* XS : vector; VAR signal : cadena; VAR x l , x 2 : real; VAR flag-sig :boolean; archivo : cadena) ; rocedure selec-sig(WR 3 VAR indice,ixl,ixZ,k,ki X t : integer; : char; : real; *) *) *I *) *) *I *I *I W) (* (* estp erocedrmrento sirve p a r a s e l e c c l o n aerpl e r i o d o de las señales que 1o r e q u i e r a n p r o c e d u r ep e r i o d o ( v a r VAR bandera : b y t e ; t *) *) : real ); BEGIN Repeat ptwset(7,15,1O,65,14,1,6,14,"~; ptwopen (7); w r i t e l n ( ' Q U E PERIODO TENDRA L A SEÑAL ? ' I ; write('T:= ' ) ; €$I-) readln (T) ; .C$I+) ; bandera := i o r e s u l t; if bandera ( > O t h e n ptwclose U n t i l (bandera = O ) ; t e x t c o l o r (311 ; write('.~,~~EVALUANDO>>)'); END; y"""""""""""""""" '""""""""""""" * '*"""""""""""""""""""""""""""""""" * En l assi g u i e n t e s '* T""" FUNCIONES DE SEZALES 1i n e a s s e e d i t aanl g u n a fu sn c i o n e s que s o n l a su t i l i z a d a s en e l programa UAR j : byte; BEG I N k: =O; w h i l e k <= 180 d o BEGIN f o r j :=I t o 4 d o XSCk+j-21 := 1; f o r j :=S t o 8 d o XSCk+j-23 := O; k := k + 8 ; END ; END; *) *) *) *I W) ". ",","""""""""""""""-"-*) [*"""""" ;* cuerpo principal del ;*~""""""~""""""""""""-------------------- generador de seGales *) 46) BEGIN x := ' 2 '; WHILE x < > 'S' do BEG I N ventana(1,1,80,24,1,",1,14); gotoxy(12,2); write('EN ESTA OPCION PODRA INTRODUCIR LA SEZAL DE ENTRADA '1; gotoxy(l8,3); write('DEL SISTEMA DE COMUNICACION'); textcolor (15); gotoxy(2,8); write('[[ A 33'); gotoxy(2,10);write('CC B 33'); gotoxy(2,1Z);write('CC C 33'); gotoxy(2,14);write('CC D 3 3 ' ) ; gotoxy(2,16);write('CC E 33'); qotoxy(2,18);write('Cf F 13'); g~toxy(2,2Q);write('Cf S 33'); textcolor(l4); g o t o x y ( 1 2 , 8 ) ; write('SEZAL ESCALON '1; gotoxy(l2,lO);write('SEÑAL SENOIDAL '); gotoxy(l2,12);write('SEÑAL ALEATORIA '1 ; gotoxy(l2,14);write('LEER SESAL DE DISCO '1; gotoxy(l2,16);write('ESCRIEIR SEÑAL EN DISCO '1; gotoxy(12,18);write('TREN DE PULSOS '); gotoxy(12,20);write('REGRESAR AL MENU PRINCIPAL'); ptwset(8,1,22,8Q,24,1,4,15,"); ptwopen ( 8 ) ; REPEAT clrscr; gotoxy(4,21); write('SELECC1ONE LA LETRA DE SU OPCION ' 1 ; x: = upcase (readkey) ; UNTIL (x = ' A ' ) or ( x = 'B') or (x = 'C') or (x = 'D'I or (x = 'E') or (x = ' F ' ) or (x = ' S ' ) ; write(x); CASE x OF 'A ' . BEGIN si gnal := ' lSCALON ' ; for k : y : O t o 180 d o X S C k l := escalon; textcol or (31); write(' <<<EVALUANDO>>>') END; 'E' 'C' BEGIN signal := 'SENOIDE'; periodo(t); for k := O t o 180 d o XSLKI :=senoidal (t,k); ptwclose; (cierre de 7 9 END; BEGIN signal := 'ALEATORIA'; ventana(30,10,70,13,3,",7,0); gotoxy(31,ll) ; write('ESTA SESAL LA CALCULAEL PROGRAMA ' 1 ; textcolor(31);gotoxy(40,12I; write(' <<<EVALUANDO>>>'); i x l := 2216; ixZ := 345; --- 1- m - n C m da BEGIN noise(l,l,ixl,lx2,xl,xZ)i XSCKI END: :=x 1 ; END; 'D' : BEGIN s i g n a l := ' D E ARCHIVO'; leearc(XS,SIG,archivo); 'E' : : guardarc(XS,SIG); BEGIN s i g n a l := ' T R E ND EP U L S O S ' ; t r e n d e p u l s o ( X S ); 'F END; ' END; E N D ; .:case> p t w c l o s e ; { c i e r r e de 83. f l a g - s i g := t r u e ; END; END ; '*"""""~"""""""""""""""""""" * S E LDE ECLC I O N TAMANO D E M I U '*""~""""""""~"""""""""""""~"""""""* Este p r o c e d i m i e n t o es l a i n t e r f a z dque t i e n e :* p a r a determinar que a l g o r i t m o desea u t i l i z a r '* d e l p a sq ou d ee s e e ""_ el usuar)o y e l tamaño 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 ch : c h a r ; VBR a l g o r i t m o : c a d e n a ; VAR f l a g - a l g *) *) *) *) *I 9) : boolean); BEGIN ventana(1,1,80,24,1,",1,15); gotoxy(l5,2);textcolor~14); w r i t e l n ( ' E S T E PROGRAMA PUEDEIMPLEMENTAR DOS T I P O SD EA L G O R I T M O S ' ) ; gotoxy[15,2)j w r i t e l n ( ' E L ALGORITMO IILMS" Q U EU T I L I Z AU NP A S O DE AFROXIMACION ' 1 ; gotoxy(15,3); '1 ; w r i t e l n ( ' C O N S T A N T E , EL C U A L ES INTRODUCIDOPOR EL U S U A R I O gotoxy(15,4); '1; w r i t e l n ( ' Y , E L A L G O R I T M O" V L M S " , EL C U A LU T I L I Z A UN P A S OD E gotoxy(15,5)g '1 ; w r i t e l n ( ' A P R O X 1 M A C I O NV A R I A B L E , EL CUAL EL PROGRAMA E V A L U A . gotoxy(15,10); w r i t e l n ( ' S E L E C C 1 O N E EL ALGORITMO A IMPLEMENTAR: ' 1 ; gotoxy(20,13);textcolor(l5);write('<< L > > ' I ; gotoxy(40,13);write('<< V >>');textcolor(l41; g o t o x y (28,13); w r i t e ( ' L M S ' 1 ; gotoxy(48,13>;write('VLMS ' 1 ; REPEAT ch := u p c a s e ( r e a d k e y 1 ; UNTIL ( ( c h = ' L ' ) o r (ch = ' U ' ) ) ; I F ch = 'L' then BEGIN Repeat ventana(32,15,48,17,3r'LMS',4,15); gotoxy(33,16) ; w r i t e ( 'PASO: ' 1 ; *** I r e a d ( a l f a: ) <%I+> u n t i 1 i o r e s u l t '0; a l g o r i t m o := ' L M S ' ; END ELSE a l g o r i t m o := f l a g - a l q := t r u e ; END; 'VLMS'; *I (*"""""""""""""""""""""""""""""""" SELECCION DEL VALOR DE RUIDO :* """""*( En e s tper o c e d i m i e n tu eos l u a rd i oe t e r m i nn eail v e l r u i d o que desee en l a s i m u l a c i o n , donde i n d i cefala c t o r de r e l a c i oenn t rerelu i d o :* (* :* +ocedure selec-noise(VAR de el valor mostrado y l a señal *) *) *) *) *) op : c h a r ; VAR 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 ) ; BEG I N ventana(1,1,80,24,1,",1,15); gotoxy(15,5); J w r i t e ( ' E N ESTA OPCIONUSTEDPUEDE VARIAR EL N I V E L D E RUIDO ' I ; gotoxy (15,6); write('G!UE PRESEDE A L A SEÑAL PARAOBSERVAR SU CONVERGENCIA'); gotoxy (15,7); w r i t e ( ' A N T E DIVERSOS FACTORES DE RUIDO. ESTE PROGRAMA LE '1; gotoxy(15,8); write('PROP0RCIONA 4 OPCIONES : '1 ; g o t o x y ( l 5 , 1 0 ); write(' A := 1 B := 0.1 c := 0.01 ') ; gotoxy(29,15); w r i t e ( ' T E C L E E L A LETRA DE SU OPCION'); repeat ptwset(9,38,18,42,20,1,4,15,"); ptwopen ( 9 ) ; op := u p c a s e ( r e a d k e y ); w r i t e ('', o p ) ; d e l ay (500); 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 (op='C'); case op o f 'A' : p o t r :- 1; 'B' : potr := 0.1; 'C ' : p o t r := 0 . 0 1 ; end; f lag-no1 se := t r u e ; END: (*"""""""""""""""""""""""""""""""(* PROCEDIMIENTO (*"""""""""""""""""""""""""""""""(* E s tper o c e d i m i e n ti n o d i cu aas l uario (* que t i e n e para la seleccion (* c i a a ls a is es ts ce u tulm a jaerlata.a SELECFUNTRAS las posibilidades de l a f u n c i o n de t r a n s f e r e n - *) *) *) *) *) *) r r o c e d u r es e l e c - f u n t r a n s ( 'JAR opcl k VAR AR, A R l : v e c t o r ; VAR s d l , x l , x 2 : real; VAR opc : char; VAR f l a g - f u n : boolean; : cadena) ; archivo : char; : byte; BEG IN ventana(l,1,80,24,1,",1,14); gotoxy(21,5);write('SELECCION DE FUNCION DE TRANSFERENCIA"); gotoxy(28,10);write('A: CALCULO FOR PROGRAMA'); g o t o x y ( 2 8 , 1 2 ) ; w r i t e ( 'B: LEER DATOS DE DISCO ' 1 ; gotoxy(31,16);write('SELECCIONE SU OPCION'); repeat ventana(35,18,45,20,2,",4,15); opc := upcase (readkey) ; u n t i l (opc = ' f i ' ) o r Copc = 'B.); gotoxy(39,19);write(opc); i f opc = 'E' t h e n leearc(AR,FCT,archivo) e l se begin repeat 1 ptwset(10,1,22,80,24,-1,4,15,"); ptwopen (10) ; write('LDESEAS GUARDAR EN ARCHIVO LOS DATOS GENERADOS? CSI o [NI opc 1 := upcase (readkey) ; u n t i l( o p c l = ' S ' ) o r (opcl = ' N ' ) ; write(opc1); delay(500) ; p t w c l ose; resimp(l60,sdl,xl,xZ,AR,ARl); f o r k := 1 t o 20 do ARC160 + k 3 := 0; i f opcl = ' S ' then guardarc (AR,FCT) ; end; i f a r c h i v o 0 ' F I N t' h e n f l a g - f u n := t r u e ; END; (*""""""""""""""""""""""""""""""""(* PROCEDIMIENTO EJECUTAR (*""""""""""""""""""""""""""""""""(* E s t ep r o c e d i m i e n t oe v a l u aeal l g o r i t m om o s t r a n d o l o s valores (* de l ap o t e n c i a de la s e ñ a l ,p o t e n c i a de r u i d o , y l ar e l a c i o n (* señal a r u i d o que e s t apso t e n c i at ise n e na ,n a l i z a n deol (* a l g o r i t m o de acuerdo a l o r d e nd e l f i l t r o u t i l i z a d o Cl60 p a r a (* n u e s t r o caso3 p r o c e d u r ee j e c u t a r( a l f a , p o t r : r e a l ;c h : c h a r ; a l g o r i t m o , x i : real 1 ; *) Y) *) *) *) *) *I *I signa1:cadena; '1; VAR ki, k , j respuesta,opc 11.. ,\,ixnl,ixnZ,ma,na serrm, errm, ssig, serr, semiu, sdnl, xnl, xn2, yor,x2, yot, xnr, yspn, error, erle, erledb, omiu, emiudb,miu : byte; : char; : integer; : real; BEGIN IF libre = true THEN BEGIN ventana(l,1,80,24,1,",1,15); gotoxy(5,2); write('ALGORITM0'); gotoxy(45,2); write('RELACI0N SEÑAL / ERROR (dB)' 1 ; gotoxy(20,2); write('N1VEL DE RUIDO'); gotoxy(5,7); write('PARAMETR0 DE CONVERGENCIA'); gotoxy(5,13); write('SEKAL DE ENTRADA'); ptwsetIl1,5,3,15,5,2,4,15,"); ptwset(12,20,3,30,!5,2,4,15,"); ptwset(13,5,!3,15,10,2,4,15,"); ptwset114,5,15,25,17,2,4,15,"~; ptwset(l5, 40,3,75,22,1,7,0,"); ptwopen ( 1 1 ) ; write(' ',algoritmo); ptwopen (12)i write(' ',potr:l:4); ptwopen ( 1 4 ) ; 1 write(' ',signal); ptwopen (15); (* adaptacion de condiciones*) ptwopen (13); ixnl := 286; ixn2 := 298; ma := 160; na := 190; i x l := 2216; i x 2 := 345; iix:=O; serrm: =O. O; errm: =O. O; FOR ki:=l t o 18 DO begin FOR k:=l to 10 DO begin ssig:=O.O; serr: =O. O; semiu:=O.O; FOR j : = 1 t o 160 DO ( # determinacion de la señal begin (* aleatoria (si se eligio) if signal = ' A L E A T O R I A ' THEN noise(l,l,ixl,ix2,xl,x2) el se x 1 := X S r j l ; noise(2,1,ixnl,ixn2,xn19xn2); i f opc = ' A ' then begin I F ki)=lO THEN transv(ma,na,xl,yor,fiRl,XR) ELSE transv(ma,na,xl,yor,AR,XR); end el se transv(ma,na,xl,yor,AR,XR); transv(ma,na,xl,yot,AT,XT); I F ki=8 THEN - -.."I *> *) ELSE begin I F k i = l 5 THEN xnr:=xn2 ELSE xnr:=xn2*potr end; yspn:=yor + x n r ; error:=yspn-yot; ssig:=ssiq+(yor*yor); serr:=serr+( (yor-yot)*(yor-yot) 1 ; semiu: =semiu+sqr ( e r r o r ; stepsize(ma,na,miu,error,alfa,XT,ch); LMS(ma,na,error,miu,AT,XT); end; w r i t'e, m ('iu:l:4); iix:=iix+l; erle:=ssig/serr; erledb:=l0.O*ln(erle)/ln(lO.O); emiu:=semiu/ssig; emiudb:=lO.O+ln(emiu)/Ln(lO.O); ptwcl o s e ; 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 J := e r l e d b ; ptwopen (13); write(' ',miu:l:4); end end; repeat ptwset(16,15,9,65,14,1,3,~,"); ptwopen (16); w r i t e l n ( ' L A RELACIONSEÑAL A RUIDO NO HA SIDOSALVADA w r i t e l n ( ' D E S E A HACERLO AHORA ? ' 1 ; writeln; write(' ES3 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 1 ; UNTIL ( r e s p u e s t a = ' S ' ) o r ( r e s p u e s t a = ' N ' ) ; I F r e s p u e s t a = ' S ' THEN begin ptwclose; guardarc(DT,ERL) end el se ptwcl ose; end 1 AUN'); ELSE BEGI N ptwset117,15,8,65,16,1,1,14,"); ptwopen (17) ; w r i t e l n ( ' L A RELACION SEÑAL A RUIDO NO PUEDESER EVALUADA'); w r i t e l n ( ' D E B I D 0 A QUE NO HAN SIDO ESTABLECIDOS TODOS S U S ' ) ; writeln('PARAMETR0S[NIVEL DE RUIDO, SEÑAL, ALGORITMO, O ' 1 ; w r i t e l n ( ' F U N C I 0 N DE TRANSFERENCIA]. ' ) 5 writeln; w r i t e l n ( ' PULSE CUALQUIER TECLA PARA CONTINUAR '1; r e s p u e s t a := r e a d k e y ; ptwcl ose; END ; END; *I (~"~~"""""""""""""""""""""""-"""---- (* RUTINA DE GRAFICACION -""""""""""""""""""""---- *I *) * * * Esteprocedimiento reallza la gratrcacron oe L B S funciones que hayan s i d o grabadas bajo la extencion "erl", es decir l a relacion señal a ruido CERLEdbI de un sistema evaluado en este programa Y =a *I *I *) rocedure grafictarchivo : cadena); TYPE arreglo = arrayC0.. 1 0 3 ot strinqL301; VQR fila1:arreglo; bandera,graphdriver,graphmode,errorcode,gmaxx,gmaxy, pa5ox,pa~oy,elec,aux,aux2,j,m,anterior,actual,max d u x 1, aux3 car nombre,nombrel datos,datosl ,graf graf 1 :array C0..3OOJ :integer; :real ; :char; :cadena; :t e x t ; of integer; BEG I N REPEAT J clrscr; ptwset(18,1,1,80,24,l,l,lS,"); ptwopen (18); write1n;writeln;writeln;writeln; write('CUANTAS GRAFICAS QUIERES HACER SIMULTANEAMENTE, MAXIM0 4: [$I-> read(e1ec) ; {$I+?; UNTIL (elec<=4) and (ioresult = O); j:=l; bandera: = O; FOR j:=1 to elec DO begin ; leearc (DT,ERL,archivo) filalCjl:= archivo; i f filalCj1 = ' F I N ' then bandera: = S ; end; i f bandera = O then Begin ptwclose; graphdriverrrDEfECTg initqraph(qraphdrivsr,graphmode,' ' ) ; errorcode:=graphresult; i f errorcode<>grok then begin writeln('ERROR GRAFICO ',grapherrormsg(errorcode)); wr i te1 n ( 'PROGRAMA ABORTADO '1; halt(1); end; grnaxx:=getmaxx; gmaxy: =getmaxy; pasox: =gmaxx di v 180; pasoy: =grnaxy div 100; j :=O; anteri or: =O; cl eardevi ce; ~ -. " 1 7 , '1; (setcol (or 1) ; outtextxy(S,O,'dB'); outtextxy(50,0, ' 7 0 ' ) ; line(40,0,40,gmaxy); line(41,70+pasoy,40+180*pasoy); for j:=1 t o 18 do begin max :=j*10*pasox ; line(4O+max,70*pasoy-5,4O+max,7O*pa~oy+5); end; outtextxy(40+180*pasox-l0,70*pasoy+5,'T'~; outtextxy(40+180*pasox-lO,7O*pasoy-15,'180'~; for j:=O to 1 1 do begin max:=j*lO*pasoy; line(35,max,45,max); end; m: =O; f a r m : = 1 t o elec do begin case 1 2 3 4 m of : : .. setcolor(l1); setcol (10) or ; setcol o r ( 1 2 ) ; setcol or ( 1 4 ) ; end; for j : = l to 300 do begin g r a f C j3:=0; end ; nombre:=filalCml; assiqn(datos,nombre); reset (datos) ; j: =O; WHILE < j<180) or (not eof (datos) 1 DO begin readln(datos,aux,auxl); qrafCjl:=round(auxl); j:=j+1; end; cl ose (datos); j: =O; WHILE j<=180 DO begin i f j=O then begin i f graf C j I t 0 then anterior:=O el se anterior:=gra+Cjl*pasoy; end; actual :=pasoy+grat I:j 3; if j < > 0 then line~40+pasox~~j-l~,7O*pasoy-anterior,40+pasox~j,7O*pasoy-actual~; anterior:=pasoy+qraf t j l ; j:=j+1; end; outtextxy(gmaxx-200,gmaxy-~llO-lO*m~ ,filalCml); end; setcol or ( 11 ; outtextxy(Q,gmaxy-10,'PULSE UNA T E C L AP A R AC O N T I N U A R ' ) ; c a r : =readkey; cl oseqraph; restoreCRTMode; End; '*""""~"""~"""~"~""""""""""""""""--* *"""""""""""""""""'--'"'"""""""""" * E i ns t ea m r fu a ze s t r a .* el e j eupcsu aurtaa rri o *I MENU W) *) *) *) l a s o p c itoqi enuneees el programa l r 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'; erl = ' . E R L ' ; sig = '.SIG'; VAR opcion, f 1 a g - f u n , f 1 ag-al g h ai vl goo r i t ms oi g, n a l , e x t e n s i on x 2 a sl d f al , x pl ,o t r , ixl, , f 1 ag-si g , f 1 a g - n o i s e , b a n d e r a char; boolean; cadena; cadenal; real ; : integer; : : : : :, *I (*"""""~"""""~"""""" :* DECLARACION (*"""""""""""""~"""~"""""~"""~""""" DE CONSTANTES *I *) P r o c e d u r ec o n d - i n i c ; Begin f l a g - f un := FALSE; := FALSE; f lag-sig f lag-alg := FALSE; f 1 a g - n o i se := FALSE; 1 i bre := FALSE; End; BEG I N cond-inic; REPEAT clrscr; ventana11,1,80,24,1,'MENU',15,0); t e x t c o l o r (4); gotoxy(2,8); write('F1 ' 1 ; g o t o x y ( 4 2 ,w S )r;i t e ( ' F 2 g o t o x y ( 2 , 1 0 1 ; write ( 'F3 ' I ; g o t o x y ( 4 2 , l O ) ;w r i t e ( ' F 4 g o t o x y ( 2 , l Z I ; write('F5 ' I ; g o t o x y ( 4 2 , 1 2w ) ;r i t e ( ' F 6 g o t o x y ( 2 , 1 4 ) ; write < 'F7 ' ) ; t e x t c o l o r ( 0 ); gotoxy(4,8) ; write('.- SELECCION DE SEÑAL INTRODUCIDA '1; gotoxy(44,8); writel'.SELECCION DE ALGORITMO A APLICAR ' I ; gotoxy(4,lOI ; write('.- SELECCION DE TAMAÑO DE R U I D O ' 1 ; --L-~<, tna 1n) I '1; 'I; 'I; write('.- FUNCION DE TRANSFERENCIA'); gotoxy(4,12) j write('.- EJECUTAR')? gotoxy(44,12) ; write ' - GRAFICAR RESPUESTA ' 1 ; gotoxy(4,14) ; write('.- SALIR'); . ventana(30,20,5Q,22,3,",1,14); gotoxy(32,21); write ( 'Escoja su opci on ' ; opcion := readkey; bandera := false; i f opci on= #Q then BEGIN opcion := readkey; CASE opci onof chr(59) : selec-sig(XS,signal ,xl,x2,flag_sig,archivo); chr ( 6 0 ) : selec~alg(alfa,ch,algoritmo,flag~alg); chr (61) : selec-noise(op,potr,flag-noise); chr (62) : selec_funtrans(~R,ARl,sdl,xl,x2,opc,flag~fun,archivo~; chr(63) : Begin libre := (flag-sig) and (flag-noise) and (flag-alg) and (flag-fun); ejecutar (alfa,potr,ch,algoritmo,signal ,xl); END; chr(64) : graf ic (archivo); chr(65) : bandera := true END <case> I END: UNTIL (bandera = true); textbackground (0); textcol or (15) ; clrscr; END; w) (*""~""""""""""""""""~""-""-------------- ((*"""""~""""""~"""""""""""--------------* MAIN BEGIN inicializa~A,AT,XT,A,ARl,XR,XS,DT); presentaci o n ; menu(A,AT,XT,AR,ARl,XR,XS,DT);$ END. W) w) - O m O 9 I- o O 2 O O o D z "I O C z cn I- 2 rn O N n U O O cn O o a O O D 0 D N 10 9 1 cn O N O O u) O m O 9 I- cn o O O o 1 O O A cn O 9 o D cn cn O O 2 N O O m I N A O O O O & O x mr n Q IXI W O z 71 9 9 c) cn O O z m 2 O O A cn O N O O 4 5 cn < u> . < 5 cn CONCLUSIONES E n la tt-Act-ica se debe encont.rav opt.imizacisn un ent.re estructura5 de cflct-tctc, f i l t r ü s para lograr una mdxlma ganancia afeict.ar not.uriamente l a velocidad de cünvergencla t.lempo de retardo en los calculas, minimu: y obtener para que el f i f t r o las -sir1 un as¡ cumpla con lüs abJetiVoS para el cual fue dlseKadct. Lompar ando e 1 desempeKo de 1 CIS a lgur 1 t-mas podemos conc 1 ui t- que el a l g o r lt-mo VLMS presenta una ganancia mixima menor que LMS si embargo, la =.E " le irrt-roduce el mismo factor de ruido, velocidad de convergencia es mayctr en el VLMS. sin e1 113 J. R. Zeidler. prediction filters". P r o c of the IEEE LMS of "Performance Clnalysis Vol 78, Adoptive No 12 pp 1780-1886 December 1990. t23 Perez H. Anano F. "Acoustic Echo Cancellation Using Hultirate Techniques" Trans. o f the IEICE vol E 74 No.11 November 1991/ C33 Shahid U. H. Qureshi "Adaptive equalization". Proc. of the IEEE vol 73 No. 9 September 1985. C 4 3 Stanley, William D. "Digital Signal Procerring* Second edition, Prcntica Hall, 1984. 153 Belove, C. "Enciclopedia de la Electronics" Centrun ediciones Barcelona E s p a r 1990- C 6 3 T r e i c h l w J., Johnson signal procmssing C., Theory Larimova and Wi ley Intcrscimce. 27 Design H. "Topics of in adaptive digital f i Itarb"