• No se han encontrado resultados

PROYECTO DE INGENERIA ELECTRONICA

N/A
N/A
Protected

Academic year: 2018

Share "PROYECTO DE INGENERIA ELECTRONICA"

Copied!
31
0
0

Texto completo

(1)

UNIVERSIDAD

AUTONORIA MXTROPOLITANA

UNIDAD IZTAPALAPA

PROYECTO DE INGENERIA ELECTRONICA

(2)

1

INTRODUCCION

TEORICA

1.1

Transformada Rápida

de

Fourier

Como el algoritmo para

un

ti~tro aitaptivo q e se desarroll6 utiliza

la

transformada dpida de Fourier se dedica un espacio al d l i s i s de este importante proceso.

Consideremos una seilal muestreada x*(t) obtenida a partu de

una

seflal continua

x(t).

Es

facil ver

gue

x*(t)=x(t)pr(t) con

m+

Mt)

= G(t-mT) (Tren de impulsos de, pridT)

Este importante resultado nos dice que el espectro

de

m

SefIal

rnuesbada

es una

repetici6n periodica

de

la h c i h ori@

(o

sin muestrat).

Si

,qxxmms

que

x(t)

tiene

AB

finito e igual

B

entonces se nota que si se desea evitar un "traslape" entm los ampmnks adyacentes de la S& muestreada en el dominio

de

la frecuencia entances se deb cumplir

(3)

Este caso es totalmente d o g o al considerado inicialmente; mi pues tendremos una sefhl

periodica que tiene asociada una serie de Fourier de modo que:

sustituyendo ( 3 ) en (2) para hallar F, y UGliZando

la defbicih

de la Transformada

de

Fourier se encuentra que:

Sustituyendo (5)

en

(4) y utumdo el hecho

de

que co0=21r/T y

evaluando

en

t=MT tenemos:

~ s u s t i t u i r ~ ~ e n ~ e c ( ~ ) p o d e m o s n o t a r q u e e ~ n i m n e n , & o p e r a c i c w e a p a r a ~ ~ ~ ~ ~ de

una

secuencia es muy alto ( N 2 sumas y N2 multiplicaciioees complejas); dmtumhente

existe un algoritmo muy eficiente para la computaci6n

de

la

TDF

llamado

Trans-

RBpida de Fourier

0.

Para desarrollar el algoritmo de la

FFT

se procede como sigue:

El

primer

paso consiste en dividir la secuencia

de

datos en dos par&

Nn-1 %I

x($=

Zd

x(m) W N +

LM

x(m) W N

= x(m) WN + WN

w)n

x,,,.,,

x(m+N/2) WN m =

-

-

(4)

Considerando valores pares e impares del indice n:

N/2-1

x(2k)= [x(mjfx(m+NM)] WNR k m *=m<=N/2- 1

Ni2-1

x(2k+ I)=

Ed

([x(m)-x(m+N/2)] W N ~ } WW

Ahora se definen

las

secuencias:

g(m)= x(m)

+

x(m+ N/2 ) h(m)= x(m)

-

x( m+N/2 )

O r-

m

(= N/2-1

Se observa entonces que la T r a n s f d se puede computar como sigue:

1 .Formar las secuencias h(m) y g(m). 2% computa

la

secuencia h(m) W N ~

3.SecomputanlasTDFdeN/2p~delassecuenciasobtenidasenlospasos 1y2para obtener 10s cceiicientes

TDF

pares e impaea.

La

implementacibn

d e l

algoritmo

FFT

en lenguaje

C

se enewntm

en

el

archivo TRAPD3A.C

Es importante

seflalar

lo siguiuente:

1 .El número de iteraciones esta

dada

por a= 1~ N.

(5)

1.2

Esfrucfura

de

un

Filtro Adaptivo

Generalmente los filtros son utilisados en operaciones tales como equahcidn en frecuencia,atenuacibn o e h c i ó n de componentes fuera de un ancho de banda fijo,ehmacibn de ruido;entre otras.cada filtro esta caracterizado por su respuesta al impulso ( fdtros continuos) o por YU respuesta a un impulso unitario ( filtro discreto en

tiempo) ; o en ambos casos por la h c i h de transferencia en el dominio de la kuencia (respuesta en fkcuencia).

En el presente trabajo a menos que se especifíque otra cosa todas las sefíales seran supuestas

&scretas en tiempo.Consececuentemente hablaremos

de

filtros

discretos

en tiempo;o siendo

d s precisos nos centraremos en un caso particular de fílims denominado FILTRO

ADAPTIVO.Hacemos dos importantes distinciones sobre este filtm.primeroeate es un filtro con un número h i t o

de

parametros internos que permiten establecer

una

d e k m b d a Funci6n de Transferencia.(estos parametros definen el tipo

de

filtro ) .Segundo,un filtro adaptivo contiene un algoritmo de adaptacicjn el cual “habilita” a la fimcidn de

transferencia para que pueda “segui? algún comportamiento útil de un ambiente extemo.Especifícamenteecificamente,el algorítmo

de

adaptacibn monitorea el ambimte exterm, del

fíltm

y con esto se controla la fimcibn de transferencia haciendo variar los

parametroa

del

filtro

mencionados anteriormente.

No

siendo muy estrictos podemos decir que este tipo de

film

ea linaal.Sin embargo es natural que se trata de filtros vatiantes en tiempo

(caso

continuo) o

varhntes

al

corrimiento ( caso discreto) &vido a que los pametros del

filtro

varian al pasar el

tiempo;

observamos tambien que estos parametros v a r k lentamente en relacibn con

los

componentes de alta frecuencia de la seflal filtrada (ambiente extemo del filtro).

La

estructura para

filtros

adaptivos mas munmenteempleada e% la

llamada

respuesta fíníta al impulso (FIR) filtros discretos en tiempo.Esto9

filtrcHI

pueden representarse por la ecuación de diferencias :

Esta estructura es casi universalmente utilizada en los filtros adapt”

.

La

=.de

dihmcias puede realizarse directamente en tCrminos de reta&do~~,sumadores y multipli-

(Estructura Transversal) o en s u estructura equivalente

llamada

Estmctum Lattíce,los

(6)

Así como tenemos opción de escoger entre estos dos tips de estructura para

la

reaiización de los filtros adaptiws,tenemos tambien la opci6n de escoger entre una

gran

variedad de algoritmos de adaptacibn; de estos debemos considerar dos mediciones importantes:

La

velocidad de adaptacibn y la exactitud de la h c i h adaptada a la fimcibn de transkencia .Por otro lado es importante mencionar que normalmente se utikm-4 este filtro

en

el estado

estacionario (practicamente no hay cambios).En el estado no estacionario la situacibn no es simple ya que la exactitud del filtro esta tambien relacianada con la velocidad de adaptacibn.

(7)

2 ANALISIS DEL ALGORITMO DE ADAPTACION

2.1

Tipos

de

algoritmos

de

adaptación

Los algorítmos de adaptacibn pueden ser de bloque o recursivos. En los algoritmos

de bloque& S& de entrada es &vidda en bloques de tiempo; y cada bloque es procesado indepndientaente. b s bloques se procesan uthzando transformaciones lineales

para

finalmente m&icar en cada bloque los parametros caracteristiws del filtro. Por otro lado el

algoritmo reGursivo es implementado con un conjunto de operaciones utilizado ecuaciones

recursivas de modo que se genera un nuevo conjunto de panimetros para cada muestra de entrada de datos.

El algoritmo de adaptacibn en bloques tiene mayor

interes

m donde loa

cambiw

ocurren mhs rApidamente;Ua ejemplo de esto seria una sefíaí con varianvl estadistíca nipida

como lo es la seflal de voz por lo que es comun usar el algoritmo

de

bloque para esta seAal;por otro lado para sefiales que varian lentamente ambos algorí- dan estimaciones muy exactas.

El algoritmo de adaptacibn por bloques requiere

una

cantidad

fmita

de estados pasados del sistema ( si::temas de memoria

f

í

n

i

t

a

)

por ello es d o g o al

caso

FIR ; en

tanto

que un sistesm recursivo requiere

conocer

todos los estados pasados

del

sistema por lo que

se le considera d o g o al caso IIR (respuesta ktimta a l impulso).

Por tanto un filtro IIR time memoria infinita como el algoritmo

de

adaptacibn mxrsiva;en tanto que

un

filtro FIR time memoria fínita como el algorítmo

de

adaptacih por

bloques.

La idea del trueque entre velocidad de adaptacibn y exactitud esta

intimamente

relacionada con la cantidad de memoria del algorítmo.En particular como la ltqytud

de

la

memoria incrementa el conocimiento que se tiene de la sefIal

de

entrada y cano esto es considerado en la adaptacibn ;entonces es fhcil notar que la exactitud

creced.sin

e d a q o el aumento de la longitud de memoria incrementa la lentitud de adaptacibn desde que la -va infomcibn no es aslmilada tan dpidamente.

El algoritmo que se ha elegido para implementar en lenguaje C @ene!cea 1-

algoritmos del tipo &us? squares (,LS).En esta clase de algorítmos ,la Wcdentre la

respuesta deseada de el fíltro y

h

respuesta actual se asume cuadratica sobre t"f bloque .Esta

diferencia cuiidratica es entonces minimizada sobre la eleccibn de uno de los prhwtms del

(8)

Una de las tkcnicas d s utilizadas es la llamada least mean square (Z”,) o .mchastic gmdient (SG) ;esta tbcnica evita la solucih explicita de un conjunto de ecuaciones lineales moviendo el vector de parametros en la direccion opuesta al vector

gradiente.

2.2

Análisis

de la

convergencia

del

algoritmo

En seguida se Rnalizar$ la convergencia de un nuevo algoritmo

de

adaptacih optimizado);la descripcibn y adisis h e propuesta por los doctores Jinhui ChaoJ-kctcx Perez y Shigeo Tsujii apareciendo en el articulo “A Fast Block Adaptive Filter

Algorithm

Using Eigenvalue Reciprocal as Stepsizes“de la IEEE TRANSACTION ON ACOUSTICS,SPEECH.,AND SIGNAL PROCESSING Vo1.38.

La

modiíicacihn consiste en optimizar el tamafio del paso para alcanzar la posicih del gradiente utilizando un conjunto discreto ,esto es el eigenvalm recipocm de

la

matriz

de

autacorrelacibn de la sefíal de entrada.

Cornemamnos pues a abordar el problema;

e

t

-

es importaate notar que

los algorítmos Gradient-search-based ( basados en la examina&& del

@de)

a m muy utilizados en los algorítmos de adaptacibn por robuztes y simplicidadyin embatgo el inconveniente de estos atgoritxms es su muy lenta velocidad de

convrergesLcia

cUaDd0

la

seflat

de entrada tiene una larga propagacibn del eigenvalor. Esto es porque, a meaoa que la seplal de entrada sea blanca,los vectores gradimte g m h t e no apustan al de

la

superficie de error (4),(5) . Este algoritmo provee una t$pids cm~mía a cambio

de

(9)

La realizacicin de una velocidad de convergencia rhpida con una razonable carga computacional ~ se lleva en el transformando al dominio gradient-search-based en el

algoritmo

A D F

{algoritmo del filtro adaptivo) (ecuacibn ('7)).

En

estas aproximaciones se tiene un operador lineal fij0;generalmente una transformacih ortogonal,es usada para ortogonoh la serlial de entra&.Subsecuentemente el coeficiente

de

la i 4 s i m a transformaclon es actualizado utilisando r m t m a o de paso constante dividido por el estinlactor de la i-&sima transformación.

Paralelamente a estos fumunientos en la aceleracibn

de

la conwrgencia,los algoritmos de bloque ADF

han

sido propuestos (2)

-

(4) .Tales algoritmos proveen considerable reduccibn

en la cornputacibn,comparados con el algoritmo LMS típico (4) en el ADF coll relativameate

mayores números de coeficientes de desviaci6n.Sin embargo estos se actualizan

de

la misma forma que en el algoritmo LMS solo que esto ocurre al final de cada bloque,el límite de los

pasos es igual al algoritmo LMS.

Por lo tanto la velocidad de convergencia puede ser m8s lenta que en el algoritmo

LMS

típica cuando los eigavaíores(valores propios) de

la

matriz

de

autocarrelaci6n

de

la

seflal

de

entrada es altamente disparada.

Asi que el objeto de estudio es encontrar un algoritmo

LS

con

una

carga computacional comparable con el algoritmo fmt

L M S

(FLMS) (2)?(3)?(4).

En

vez

de

buscar el fondo de la superficie de emr,procederemoa en la direccibn del gradimte buscatado la posicibn optima para detener cada actualiutcibn. En otras palabras

usando

msS

qw una medida escalar apropiada para detenerse en alguna

d i r e e c i h

partidar

d

e

¡

gradiente; podemos esperar aproximarnos a la convergencia cuando una matriz

de

de

paso es usada.

Deacuerdo con esto ,un nuevo algoritmo adaptivo (ADF) sera derivado usando transformaciones ortogonales para estimar el tamaft0

de

paso 0ptimo.h tms-ibn

ortogod optima es conocida como T r a n s b d K d m - h w (KLT) ,en esta los renglones son eigenvectores ortonormahados de la matriz de autocorrelacibn

de la seflal

de entrada. Sin embargo la KLT es de difícil computacibn y ademas no tiene un algoritmo

rhpido asociado.

Para

secuencias aleatorias estacionarias varias transíümaci- unitarias

aproximan el comportamiento de KTL (1). Asi que se d u c e la carga computacid devido

a que puede usarse para la computacibn de la ICLT alguna transformada &pida (las cualea

(10)

donde

La s e a l deseada esta dada por:

d(n)= HT(n) X(n) -t m@)

vector de coeficientes

del

s i s t e m a a rnnowq m(n) mpmenta el vector

de

ruido

de

dda (parte de d(n) que no pudo ser identificada por y@)).

Cuando se usa el algoritmo ADF,utdizan& un gradient-search-based los coeficientes

del

FIR ADF estan dados por:

El gradiente esta dado por: L-1

(11)

e(kL+j)= XT(kL+jj[

H

-

W(k)

]+

rn(kL3)

es el error a la salida.

Sustituyendo la ecuacidn 7 en la 6 tenemos que:

AsumienJo ergdicidad en el intervalo L la ec ( 8 ) puede reescribirse como sigue:

Sustituyendo la ecuacidn (9) en la ecuaci6n (5) tenemos que:

W(k+l) =W&)

+p

H

-

W(k)

]

+P

( 1 2 )

El valor

W,

que minimiza el cuadrado del error de salida, E[e2(n)J (n=kL+j),ea obteaido al resolver la ecuci6n de Wiener-Houp siguiente:

w,=H+R-'P.

( 13)

Si W, es sustmido de ambos lados de la

ec.(

12 ) y si

(12)

donde

R

es la matriz de autocorrelacibn de la seplal de entrada;esta es simetrica y positiva definida o semidehda.

Por lo tanto se puede descomponer usando

una

transformaci6n ortogonal

K

como

sigue:

R=

K Q

K~

( 16)

siendo

Q

una matriz &agonal cuyos elementos son eigenvalom de

R

y

I= KIC'

( 17)

sustituyendo las ecs. (16) y (17) en

la

ec (15) tenemos :

E(K+ 1 )=

Kr

[ 1

-PQ

]E(K)K

( 18)

(13)

( 2 1 )

Si tomamos

p=

(&)" ,nullficmmos v,(k) de un solo paso.Por lo tanto ac tualizaremos W(k)

con pasos

(Al)-*

,....~ en el algoritmo gradient-search-based ec (5) convergiendo en

N

pasos.Este pmso,para N=Z,se muestra en

la

siguiente figura(2).

vo

Fig.:! hterpehcibn Geométrica del propsito del algoritmo ADF.Para N=2.

El cálculo del tamatio de paso con ayuda de la Transformada KLV provee la mejor ejecucih del algoritmo desde que los renglones son los eigenvectom art"

de

la matriz de autocorrelación de la se&d de entrada .KLV causa estos valom

.

Como ya se habia mencionado la KLV no tiene asociada

un

algoritmo

de

cslculo rhpih,

pero como se habia mencionado en el d o . estacionario podemos utilizar la Tmf¿xmada Rhpida de Fourier ( F I T ) de la siguiente forma:

Denotamos por C(k) al vector de 2N coeficientes en el dominio de la hcuencia

dado

por:

C(k)=FFT [W(k),O,O, . _ _ O ]

N ceros

Sea B@) la matriz diagonal 2N

X

2N dada por:

B(k)"diag (FFT [ x(kN-9, . . . ,x(kN- l ) , x O , . .

.

,x(kN+N- l)]

1

Asi el vector de S&& Y(k)=[ y(n)y(n- l), . . . ,y(n+N-l)] = Ultimas

N

thninoa

de

la

(14)

A

implementar la actualizacibn de los pesos en el dominio de la frecuencia notese que los elementos del vector gradiente estan dados por la correlaci6n c m & de la secuencia de error con el vector de entrada. Por lo tanto el gradiente puede estimarse en el dominio de la

frecuencia por la siguente computación

V(kj=Primeros N tCrrninos de F'FT' [B

*+$)E@)].

donde

E(k)=[O,O, .

.

.O ,e(kN),

.

. . ,e&N+N- l)]

N

ceros

B* (k) es la matriz complejo conjugado de

B(k).

3.

IMPLEMENTACION

DEL

ALGORITMO

DE

ADAPTACION

Como ya se a

desarrollado

y analisado la convergencia

d e l

algoritmo

de

adaptacitnq el paso natural es entonces su implementacibn; para realizar esto se

ha elegido

el

lenguaje

de

programacibn C.

Se ha incluido el ddigo fuente

del

programa principal; par

tanto

en

estas p@tm se

describid solamente lo que hace cada modulo.

Prcaxhmento Desp-Menu:

Este proudmiento muestra las opciones de trabajo del programa estas son:

A. PROGRAMA MUESTRA : Esta opcibn

de

trabajo utiliza una secuencia fija para ser identificada de 4x128 puntos; en este caso el sistema a identifícar por dehult 8 ~ p

O. 1k);en esta opción se generará "ruido blanco" a la entrada del sistema.(amdicicmes par "default").

B.FILTRO ADAFl'IVO : Esta opci6n

de

trabajo pi& variaa formas

de

operacibn ;

(15)

1.Cargar k h v o s H,Xm,Xr donde H es un archivo que el usuario puede generar;en este archivo se supone que se da el sistema a ser identificado @esos) .Xin es igualmente el mhlvo donde se supone que se encuentra guardado la secuencia de entrada del filtr0.Y

Xr

es el archvo donde se supone se tiene el ruido introducido al sistema.

Srmilarmente se pueden anabel resto de las opciones que son 2

.cargar

Arclllvoa H,Xh

3 .cagar ~ r c h v o s

r-wr

4.cxgar Archlvos Y,r4lyr

5.Cargiir Archtvo Xin

6.C,wgar Archvo

Xr

7.Cargar Archvo H

En donde por su puesto en las opciones donde no se definen

todos

los

archivos

(opci6n

2

a la 7 se toman las condiciones por “default” en los vectores no especificados.

Es importante mencionar que el programa no es robusto; es decir no prevee errorwl cum0

archvos no definidos asi que se debe c m primeramente los archivos que se van a

e,

esto se puede hacer en este programa utdizado la opcibn

D.

Dentro de la opción B tanbien se ofken otras opciones de trabajo estas 9011:

i .Cambiar H en algun instante de Tiempo 2.Cambiar Xin en algun instante de Tiempo

3.Cambiar

Xr

en a l p instante de Tiempo 4. Sin cambios en el

Tiempo

Es decir;el programa ofiece la opcih de modificILc ya sea la fimcibn

de

rtanskai a identdicar,el ruido de entrada o la secuencia de entrada al filtro m algún instante

de

tiempo en la simulacidn con la finalidad

de

observar que efectos tiene esto m el algaritnro

de

sdaptacidn.

D.Definir Archivo de Datos

Esta opci6n de trabajo permite d e b un archivo de texto generado por el usuario; tambien se puede utilizar las secuencias predefidas sobre las cuales solo se nquiexen algunos parametros.

S. Salir del Programa

Las opciones anteriores (A.. . S) son tratadas por el procedimieno Analiza_Caso(opciau) este

procedimiento invoca a la subrutina adecuada; siendo el d n del pmg” el

Pr&ento Filtm(modo de trabaj0j);donde modo de trabajo despliega modos o no

de

opciones de trabajo ,ya que modo de trabajo puede especificar

una

corrida libre! o UN

(16)

Como se mencionó anteriormente el p r b e n t o que pr6cticamente se encarga de

realizar la simuiaci6n es el procedimiento Filtro (modo de trabajo);donde modo de trabajo

puede ser A o B (vease Deap Menu). Sia embargo la "escencia" del algoritmo

no

cambia,

es decir es independiente del modo de trabajo y esta &ado en las ecuacioma

d e d u c i d a s

en la seccibn 2.2;en seguida se muestra un pseudoakhgo &l I'mcehiento Filtro.

Procedimiento Filtro (modo de trabajo) comienza

EscriWEscriba nombre del archvo de salida''); //En este mhvo se guardadn los

Lee

(nombre) ff puntos de salida

Escribe (" Escribe el número de puntos a generar"); Lee(totaldepunt0s);

Abre -Arcluvo(nombre) para escribir

en

el;

Si modo de trabajo es A fijan numdepuntos de las secuencias Otro pide despliega y guarda formas de trabajo;

nx:numdepuntos de la secuencia Xin; naux:numdepuntos de H;

bbques:nxlnaux;

Inicializa los vectores de Trabajo; Obten el sistema a identifim,

Para contador=l hasta totaldepuntos

,paso=l

haz Para k = l hasta bloques+l ,paso=l

haz

Fin de

Para

obten últimos N puntos segun la forma

de

trhjo;

Xh(2N)=[primer bloqyedeNptos

,

idtimo bloquede Nptos] CAlcula Ysal;

Y = T R F I P r n ;

Genera ruido si es necesario;

Error=(O

...

O,Emr] lMceros E vector

de

N

puntos Chlcula EavJav

E=TFS(O ... 0,Emr);

V=TRF(TRFI(XconjugadoE,O.. .

.

.

.O));

actualiza Xav, calcula p,

H=pV;

Fin de Para MSE=Eav/Xiav; MSEDB=log(MSE); Fin.

obten un bloque Xin de N-aaux puntos;

(17)

4.1

Estimaciiin

Espectral de

Voz

La nlayor aplicacibn de las kíltros adaptivos es la codifícacibn digital de voz .El primer paso es el rrtlrrlisis-sitltesis.~~ el cual el proceso de generaci&n de voz es caracterizado por un modelo simple,la s dde voz de entrada es usada para estimar los parametros del modelo. Esto es !a parte de adisis de la c ~ c a c i ~ n , p s t ~ o m m t e estos phmetms son e q u a b d o s produciendo la representacidm digital de

la

voz. Despues In S& de voz es

sintetizada para emular la saw hablada usando los valores de los parametros.

La forma nAs conociJa de chddicar la voz es conocida como pulse code modulation

PCM

(modulacihn por pulsos chdificados) esta t&cnica es simple pero requiere un alta velocidad de bit;uuo rndhcacihn de esta técnica es conocida como differential pulse code modulation DPCM .Estas son algunas tkcnicas de equakacibn.

4.2 Equalizacicin adaptivrr

1 . 7 1 ~ de las primeras aplicaciones del filtrado adaptivo en el campo

de

las camunicacianes fixe la ccuakxibn de fi-ecuencydependent attenuation en la trausmicih

de

datos. La

respuesta en fkcuencia de mayores datos en el canal no varia sigdicativamenb con el

tienlpo.Sin embargo esta respuesta fbcuentemente no es conocida por adelantado. Asi que

resulta necesario &se& un sistema gue pueda adaptarse a las

caracttnistiw

del canal y

qlliza tambien seguir las cardcteristicas variantes en el tiempo.

Una forma tipica de transmicibn digital de datos es la

pulse amplitude rnohlation

(PAM)

(modulación par la amplitud del pulso) .Sabemos que este tipo de modulacibn consiste en

la t r m m i c i h de pulsos cuya amplitud v d a en propordm a los valores muestredes .Estos

pulsos pasan atravez del c,Uaal con fi-ecuency-dependent attenuatioqy em el nxeptor los &tos son muestrados en tbm S ~ C ~con el transmisor.Si la velocidad M de mue9trw, es

igual a la velocidad de los :i1mbolos ,entonces la respuesta sobre todo el canal puede c a r a c t e k e por la respuesta muestrada del canal a un solo símbo1o;asi que la salida al

canal (sedal muestreada) pude representarse como una convoluci6n entre la s e a de

entrada de datos y la respuesta del canal con la suma (naturalmente) de ruido .El sistema

1-eceptor para un sistema PAM se compone de varias etapas. El primer paso es filtrar la setíal 2c entrada para e h v mido. La simiente tana es la ckrivaci6n en T.Porque el

fdltrario

(18)

adaptivo cornpensador para las fiecuency-dependent attenuation del

canal

,

generando un estimador del símbolo utduado para reGotrrar los símbolos originaies.

4.3 Cancelación Adaptiva

del Ruido

En este sistema tenemos básicamente dos e n t r a d a s ,alimabentrada primaria y entrada

referencial. La entrada primaria consiste en la suma de

la sefial mas ruido

y la entrada de referencia consiste en solamente ruido .El objeto es war la entrada referemial para reducir el

efecto del ruido de la entrada primaria.% supone que los ruidos estan mmlacionados asi que se busca la -cion de la diferencia cuadrada entre los ruidos (basandose en el algoritmo LSj. Es decir se busca que uno de los ruidos se adapte al otro para asi ser

eliminados gradualmente

d e l

sistema.Este proceso se utiliza en ,electrocardiografhs,en la

cancelacih de periodos de interfixencia en las sefbles de voz,entre otros.

(19)

Ide

<

stdio . h

>

Ide

<

conio

.

h >

Ide <math. h

>

lde < s t d l i b . h >

Ide < t i m e . h >

[de " C T c O I s . C"

Ide " A l . C"

f e n t a n a ( I n t n u m , I n t x 1 , i n t y 1 , i n t x 2 , i n t y21

:r( 1 ; en(num) ;

,w (xl-t2, y l + l , x2-1, y2-2) ;

y ( x l t 3 , y l t 2 ) ;

:ierra ( i n t nun)

J W ( ~ , 1,80,25) ; 'r( 1 ;

ose (num) ;

~ x y ( l , l ) ;

n t f ( "A.LLENAR ARCHIVO CON LA €WNCION exp(k*n)\r\n") ;

ntf("B.UENAR ARCHIVO CON LA RMCION exp(k*n)sen(mk+a)\r\n") ;

n t f ( "C. LLENAR " i I V 0 CON LA RM%ION sen ( fmnk+cr) /n) \r\n" 1 :

(20)

:printf ("F. LLENAR ARCHIVO DEFINIENDO PUNTO TOR PUNTO\r\n") ;

:prlntf ("n,m.a.r REXE3\r\n") ;

:printf ( "E;scRIBA OPCION . . . "1 ;

otoxy(1 I11 ;

printf ( "1 ARC31IVOS E , Xin, Xr\r\n") ;

printf ("2 .CARGAR ARCHIVOS H,Xin\r\n") ;

p r i n t f ("3.CARGAR ARCHIVOS H,Xr\r\n");

printf ("4.CARGFR ARCHIVOS Xin,Xr\r\n") ;

printf ( "5. CARGAR ARCHIVO Xin\r\n") ;

x i n t f ( " 6 . CARGAR ?!RL3IIVO Xr\r\n" ) :

&nt f ( "7. CARGAR ARCHIVO H\r\n'' ;

?r-intf ("ESCRIBA OPCION.

.

. " ) ;

,toxy(l.l) ;

Irintf ("l. CAMBIAR

H EN

ALGUN INSTANTE \r\n") ;

Irintf ("2.CAMBIAR Xin

EN

ALGUN INSTANTE \r\n") ;

n n t f ( " 3 . CAMBIAR Xr

EN

AIx;UN INSTANTE \r\n") ;

)rintf ("4.M REALIZAR NINGUN CAMBIO \r\n") :

)rintf("ESCRIBA OPCION.

.

. " ) ;

. Ini-Vec(Vector x.int Num)

k;

for( k=O;k<= Num;k++)

c

x[kl=O.OE+OO;

}

* * * * * * * * * * * * * x * * * * * * * * * * * * * * * * * * * * * * * * *

** .. . .

*/

*/

*/

/

. . .

FUNCIONES DE F'LUJO DE DAMS

bfine-Archivo(char nom-archivo[])

k, final ,error;

2 *pa;

2le x,n,m,alfa,r,pi=3.141593;

,.

opcion;

X I , ( ) ;

=fopen(nom-archivo, "wb") ;

"3"E3CRIBA NUMERO DE MUERAS\r\n") ; m f ( "ki". Cf inal ) ;

~tana(5.5.5.70.15);

l U 2 0 ;

:ion=t~upper(getcheO);

? w a ( 5 ) ; ser( 1 ;

(21)

x=exp(n*k); /*se genera

em(&)*/

fwrite(Ecx,sizeof(double),l,pa);

c p r i n t f ( " \ r \ n % 6 d %14.251f",k.x);

(22)

se I F ' . {

cprintf("\r\n

ESCRIBA

MLJETRA [ %d I ",k):

scanf ("%lf",&x) ;

fwrite(&x.sizeof (double) ,l,pa);

cprintf ("\r\n % 6 d %14.61f",k,x) ;

break ;

i

f m de los casos*/

i n del for*/ ' = O ;

:e (p;l) ;

i n de kfine-Archivo*/

n-Datos-Archivo I char cadena [ ] )

Z *ApA;

tan;

fopen (cadena, "rb" 1 ;

C(APA,U.~=-END);

ftell(ApA)/sizeof(double);/"*****e~to es el tamaflo******/

;e I ApA) ;

-n(tm) ;

- a m f i ere-

"

ApA ; . , error ;

.e x;

-Archlvo-Arreglo(int inicio,int fina1,char nombre-archivo[],Vector Ar-reDestino)

iopen (nombre-archlvo , "rb" ) ;

I i-micio; i<=f inal : i++) /*se llena el arreglo con l o s datos*/

id(ApA) ;

?ad(k.sizeof(doule),l,ApA); -ekstira[il=x:

(23)

1 se

rransfiere_Auchivo.~.Arreglo(O,nt,nombre,AR) ;

in de l a inicializacion*/

****************************************-t*************X*****

/

GENERACOR DE RUICO

*/

*/

*****x****************************************~***************/

*/

id linlf(int uni,int *~xl,lnt *ij<2,dcthle krY

(24)

* /

1 mido( int mi,

double *sd ,

i n t *ixl.int *¡x2 ,

double *xl,double *x2 1

lble vl,v2,r,s,b9y;

m i f ( m i , ixl, ix2,Eh-I ; ~1=2*r-l;

mif(uni,ixl,ix2,&r); ~2=2*r-1;

;=sqr(vl)

+

sqr(v2) :

if ( s > l .OE+OOO)

de ruido*/

f****X********************k***************************/

*/

transversal

*/

*/

. . .

1 transversal(int nt,

double *xl,double *yl,

Vector AR,Vector XR )

.nt i :

'01- (¡=O; i<= n t ; it+)

XR [nt+l-i 1 =XR tnt-i I ;

3[0l=*xl; yl=O.

o

:

'or ( ¡=O; i<=nt; i++)

*~l=*yltAR[i]*>(~[i] ;

(25)

[kl=0.0;

'K!F(M,N,Er,Ei for (k=l; k< =N

Gr [kl= (Er [k I k++)

/*ultimas N Error[kl=(y2[kl-yl[kl,0)*/

(26)

double alfa,

Vector Hr,Vector Hi,Vector Xin,

Vector Gr,Vector Gil

i n t k,kl;

double Xav,xi,mu;

Xav=U.

o

;

for (kl=O:kl<=Nadf;kl++)

{

f o r ( k l : k<=Nadf :k-t+)

i

xi=Xin[Nadftkl;

Xa\s-Xav+(xi*xi) ;

1 1

c

mu=alfa/Xav;

for (k=l;k<=2*Nadf;k+t)

I

HrZkl-Hr[kl+(mu*Gr[k] ) ;

Hi [ k l =Hi [kl +(mu*Gi [k] 1 ;

}

in de adaptar*/

3(char opcion)

uni.ixl,ix2,k.M,N.kl,k2,k3,nt,Nadf,n~~au,bloques,m;

ble sdl,xl.x2,yl,alfa,MSE,MSEDB,Eav,Xiav;

tor AR,>CR.Xin,Yout,F'r,Fi,Yr,Yi,Hr,Hi;

tor ARAux,Gr,Gi,n".Ei,Ekror,Xn;

CJ

E *ApaFile,*apl,*ap2.*ap3; tam:

r ~ombre~l0l,car,ArchivoH~lOl..~chivoX[10l,ArchivoR[10l,resp,modo;

instante,totpuntos;

r ,Ax21101 AH2[101 ;

cprintf ('%An ESCRIBA NOMBRE DEL ARCHIVO DE SALIDA ' I ) ;

scanf ( "%S", nombre) ;

cprintf ("\r\n ESCRIBA EL NUMERO DE PUNIDS A GENERjW " ) ;

(27)

ICAR " ) ;

r-\n " 1 :

: "di. Al .-.+ii' - --z . if !opcl-n=='A' )

{

num-awc= 128 ;

bloques+;

sdl=l

.o;

ixl=232 ;

1~2=%5 :

resp= 0 ' ;

mcdo='O' :

1 /*fin de la opcion A * /

else

{

Ventana(6,5,5,75,15); Menu3 ( ) :

resp=toupper (get.che 1 ;

Cierra(6) :

clrscr( 1 :

Ventana(7.5.5.60.15): Menu4 ( ) ;

modo=t oupper (get che ( ) :

Cierra(7) :

c lrscr ( ) :

switch(resp1

c

(Tase ' 1 ' : i

cprmtf ( "\r\n ESCRIBA NOMBRJ2 DEL, ARCHIVO QUE CONTIENE EL SI- A i

scanf ( "%S", ArchivoH) ;

num aux=Num-Datos-Archivo(ArchivoH);

cprintf ( "\,r\n

ESCRIBA

NOMBRE DEL ARCHIVO QUE CONTIENE LOS DATOS DE E

scanf ( "%S", ArchivoX) ; apl=fopen(ArchivoX, "rb") ;

nx=Num_Datos-.kchlvo(ArchivoX);

rewind(ap1) :

bl oques=nx/nm-,aux ;

cprintf ("\r\n EXRIBA NOMBRE DEL ARCHIVO QUE CONTIENE LOS DATOS DE R

scanf "%S", FlrchivoR) ;

ap2=fopen(ArchivoR, "rb") ;

rewind(ap2);

break ;

}

case '2':{

cprintf ("\r\n ESCRIBA NOMBRE DEL ?U?CHIVO QUE CONTIENE

EL

SIST'ENA A I

ICAR "1 ;

" ) :

scanf ( "%S", ArchivoH) ;

num-aux=Num-Datos-Archivo(ArchivoH);

cprintf ("\r\n ESCRIBA NOMBRE DEL ARCHIVO QUE CONTIENE

Las

DATOS DE E

scanf ( "%E" . .?lr-r-hivoX) ; apl=fopen Iru chiuoX, "rb") ;

nx=Num ini:f t ; Lrchivo(ArchivoX) ;

rewind(dp1

bloques=m, I . : :m -aux;

sdl=l . O ; ' . , r ~ esta opcion si se necesita generar*/

ixl=232; /' *tT.iIdo para definir Xr=Xn*/

ix2=345 ;

break :

(28)

scanf ( "%s", ArchivoH) ;

num_aux=Mun_Datos_Archivo(ArchivoH);

bloques=512/num_awc; /*aqui se supone X{O..512}*/

cprintf ("\r\n -IBA NOMBRE DEL ARCHIVO

4 "I.:

scanf ("%" , ArchivoR) ;

ap2=fopen(ArchivoR, "rb") ;

rewind(ap2) ;

sdl=l.Q; /*en esta opcion s i se necesita

ixl=232; /*ruido para definir Xin*/

ix2=345 ;

break ;

}

case ' 4 ' : {

cprintf ("\r\n ESCRIBA NOMBRE DEL ARCHIVO

scanf ( "%s" . .kchivoX) ;

apl=fopeniAr-chivoX, "rb") ;

r?;<=Nl~-ljatos-Archivo (ArchivoX) ;

rewind(ap1) ;

num-dux= 128 ;

QLE CONTIDE DATOS DE RU

generar*/

bloques=nx/l28; /*aqui se supone H{0..127)*/

cprintf ("\r\n ESCRIBA NOMBRE DEL ARCHIVO

CXIE CONTIENE

Los DATOS DE HU

scanf ( ' % s " , ArchivoR) ;

ap2=f open (Arch ivoR, "rb" ;

rewind(ap2) ;

break ;

scanf ( "%" , ArchivoX) ;

apl=fopen(ArchivoX, "rb") ;

nx=Num-Datos-Archivo(ArchivoX); rewind(ap1);

num_aw<=128 ;

blques=nx/l28; /*aqui se supone H{0..127)*/

sdl-1.0; /*en esta opcion si se necesita generar*/

ixl=232; /*ruido para definir Xr*/

break ;

ix2=345 ;

}

case '6':i

num-aux=128;

bloques=512/128; /*aqui se supone X{0..512).H{0..128)

*/

cprintf ("\r\n

ESCRIBA

WMBRE DEL ARCHIVO QUE COWIENE

m

DATOS DE R

scanf ( "%S", ArchivoR) ;

ap2=fopen(ArchivoR, "rb") ;

rewind(ap2);

sdl=l.O; /*en esta opcion si se necesita generar*/

ixl=232; /*ruido para definir Xin*/

ix2=345 ;

break ;

}

case ' 7 ' : {

cprintf ("\,r\n ESCRIBA NOMBRE DEL ARCHIVO QUE CONTIENE:

EL

s I m A ID

(29)

i " ) ;

! :

1. /*fin del case de resp*/

switch[mdo) {

case ' 1' : C

cprint f ( "';r\n ESCRIBA NOMBRE DEL ARCHIVO

DEL

sM;uNDo SISTTMA A I D W

scanf ( "?S", .\HZ) ;

cprlntf( "',r'\n ESCRIBA INSTANTE

DE

CAMBIO ' I ) ;

xanf ( "W" , &instante) ;

break ;

1

case ' 2 ' : {

oprlntf i"' 1 ' V L E3CRIBA NOMBRE DEL ARCHIVO DEL sEx;uNDo SISTEMA DE

ENTR

scanf ( ':%S" , AX2 1 ;

ap3=fopen AX2. "rb" :

cprintf ( n ECXIBj4 INSTANTE DE CAMBIO " ) ;

scanf ( " W ' , bLi!-tstante) :

r\?wlnd (ap3) ; break :

).

case '3' : {

cprintf ("\,r\n ECRIBA INSIANTE DE CAMBIO " ) ; acanf ( "%d" , &instante 1 ;

break :

}

)/*fin del case de modo*/

) / * f i n del else*/

Ini_Vec(AR,num_aux*bloques);

In¡-Vec (XI?, num_au*bloques) ;

Ini_l~ec(Xin.num_awc*bloques) ;

Ini-Vec(Yout,num-aux*bloques); Ini_Vec(Rr,num_aux*bloques); Ini-Vec(Fi.num-aux*bloques); In¡-Vec '&'r, num-aux*bloques) ;

Ini VeciYi,num_aux*blos);

IniIVec t H r

.

num-aux*bl(csques) ; Ini.-Vec(Hi.num-aux*bloques); Inl_Vec(Gr,num_aux*bloques); Ini_Vec(Gi,num_aux*bloques);

Ini_Vec(Er,num_aux*bloques); Ini,.-Vtsc (Ei, num_awc*bloques) ; Ini -','x (&or, num-aux*bloques) :

Ini_Vec(Xn,num_aux*bloques);

Ini_Vec(~ux,num_aux*bloques);

Nadf=num-aux; nt=num-aux-1;

M=redondea(log(2*num.-~1~) ''lcg(2)):

alfa-1

.o;

(30)

Xin[kl=Xin[nrun-aux+kl;

}

for(k=num_au>c+l;k<=2*num-aux;k++) i*ultimos N pts*/

r

if ((resp=='O'): I(resp-"3'): :(resp-='6')::(resp=='7'))

{

if ((modo=='2')~(kl>-instante))

else ruido(l,6sdl,Gixl,&ix2,&l,W);

fread(&xl,s¡zeof(double),l,ap3);

}

else iA1eer del archivo que tiene l o s datos de entrada*/

{

if ((m~o=='2'!SI&(kl>=instante))

fread(&xl,sizeof(double),l,ap3);

else fread(&xl,sizeof(double),l,apl);

transversal(nt.r;;tl,,~~~l,~,~); Xin [kls~l;

if ((resp=='O') I : ( r e s p = = ' 2 ' ) I : (resp=='5') : I (resp=='7'))

I I

ruido(l,&sdl.Gixl.&ix2.&Xl,&X2);/*generar ruido para XI"*/

if ((modo=='3')~(kl>=instante))

Xn[kl=xl/l.O; /*el ruido crece*/

else

Xn [kl = = w 5 . O; 1

else

{

fread(&zl,sizeof(double),l,ap2);

if ((mod0=='3' )&&(kl>=instante))

Xn[kl=xl/l. O; /*el ruido crece*/

else

Xn[kl=xl/5;

}

Yout [kl ?l+Xn [kl ;

convrapida(M.N,Hr,Hi,R-,Fi,Yr,Yi,Xin);

for (k=nm-aux+l;k<=2*num_aux;k++)

{

Error[kl=Yout[kl-Yrikl;

~v=Eav+~Error[kl-Xn[k] )*~Error[kl-Xn[kl);

Xiav=Xiav+~Yout[kl*Yout[kl):

}

gradiente(M,N,Error,F'r,Fi,Gr,Gi,R-,Ei);

adaptar(Nadf,alfa.Hr.Hi,Xin,Gr,Gi);

)/*fin de bloques a generar*/

MSEIEav/Xiav;

~ ~ 1 o . o * l o g ~ M s E ~ / l o g ~ l o . o ~ ; cprintf ("\r\n %6d %14.61f" ,kl,MSEDB) ;

fprintf (ApaF'ile,"\r\n %14.61f",kl,M);

tam=ftell(ApaFile);

1 /*fin de puntos generados*/

fclose(ApaFile1; car-getche ( 1 ;

fclose(ap1) ;

fclose (ap2) ;

rclose (ap3) ;

if (car) goto salir;

. .

. .

(31)

1 7 3 3 0 ;

t (1,1,1,80,25,"M",2,0,1~,4,7);

t. ( 2 . 1 , 1 . 8 0 , 2 5 . ' ' P ~ R A M ? , ~ " . 4 , 0 , 1 5 , 1 . 1 5 ) ;

t (4.1.1 ,BO. 25. ".WCHIVO DE TRABR_s0",4,0,15,1,15) ;

t i5,5.5,70.15, "FWNCICNES DEFINIDAS", 2, O . 15,4,7) ;

t ( 6 . S , 5.75,15, "OPCIONES DE DATOS", 2.0,15,13,9) ;

t ('7,5,5.60.15, "OPCIONES DE 'TRABAJO", 2.0.15.3.14) ;

Referencias

Documento similar

Se presenta un panorama epidemiológico de la lactancia en México, los principales constituyentes de la leche, los beneficios de ama- mantar, tanto para el bebé como para la madre,

pero ni esas definiciones estatales pueden quedar al margen de toda hipo- tética controversia ni su omisión —sobre todo— debe llevar a alterar el carácter necesariamente limitado

Este parón o bloqueo de las ventas españolas al resto de la Comunidad contrasta sin em- bargo con la evolución interior de ese mismo mercado en cuan- to a la demanda de hortalizas.

Se dice que la Administración no está obligada a seguir sus pre- cedentes y puede, por tanto, conculcar legítimamente los principios de igualdad, seguridad jurídica y buena fe,

 Noordermer: Si, si y no porque son muy pocos los docentes que cuando planifican piensan en las diferentes respuestas que van a tener en el grupo, en general como docentes, como

La Normativa de evaluación del rendimiento académico de los estudiantes y de revisión de calificaciones de la Universidad de Santiago de Compostela, aprobada por el Pleno or-

ma~orrales, y de hombres de poco ingeniD». Apoyándose en la asociación que Covarr ubias hace enh:e letras góticas y letras go rdas, el Sr. además de ser así usado en

1. LAS GARANTÍAS CONSTITUCIONALES.—2. C) La reforma constitucional de 1994. D) Las tres etapas del amparo argentino. F) Las vías previas al amparo. H) La acción es judicial en