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"