81
Universidad de la República Facultad de Ingeniería Monografía de Tratamiento Estadístico de Señales Título: Estudio de la conveniencia del agregado de un bloque de precancelación de ruido, en un sistema basado en el estándar de WLAN’s IEEE802.11a. AUTOR: Ing. Benigno Rodríguez Díaz DOCENTES: Ingenieros: Alvaro Tuzman, Gabriel Dutra y Santiago Lafón Agosto 2004

Universidad de la República Facultad de Ingeniería Monografía de ...iie.fing.edu.uy/ense/asign/tes/materiales/monografias/Benigno... · introducir a las redes de área local inalámbricas,

  • Upload
    others

  • View
    5

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Universidad de la República Facultad de Ingeniería Monografía de ...iie.fing.edu.uy/ense/asign/tes/materiales/monografias/Benigno... · introducir a las redes de área local inalámbricas,

Universidad de la RepúblicaFacultad de Ingeniería

Monografía de Tratamiento Estadístico de Señales

Título: Estudio de la conveniencia del agregado de unbloque de precancelación de ruido, en un sistemabasado en el estándar de WLAN’s IEEE802.11a.

AUTOR: Ing. Benigno Rodríguez Díaz

DOCENTES: Ingenieros: Alvaro Tuzman, Gabriel Dutra y Santiago Lafón

Agosto 2004

Page 2: Universidad de la República Facultad de Ingeniería Monografía de ...iie.fing.edu.uy/ense/asign/tes/materiales/monografias/Benigno... · introducir a las redes de área local inalámbricas,

Indice

1.- Objetivo

2.- Introducción

3.- Como funciona un sistema OFDM

4.- Como funciona una red de área local basada en el protocoloIEEE802.11a

5.- Sistema propuesto

6.- Simulaciones6.1.- Ensayos realizados para ruido blanco gaussiano aditivo y canal

con desvanecimiento (fading)6.1.1.- Prueba del modelo completo e impacto de algunos

módulos sobre el desempeño general6.1.2.- Evaluación del módulo propuesto con una señal (v2)

más realista 6.2.- Ensayos realizados para ruido coloreado y canal con

desvanecimiento

7.- Conclusiones

Apéndice A: Lista de Acrónimos

Apéndice B: Glosario

Bibliografía

Apéndice C: Programas realizados en Matlab

Page 3: Universidad de la República Facultad de Ingeniería Monografía de ...iie.fing.edu.uy/ense/asign/tes/materiales/monografias/Benigno... · introducir a las redes de área local inalámbricas,

1.- Objetivo

El objetivo de este trabajo es estudiar las mejoras que se le puedenintroducir a las redes de área local inalámbricas, basadas en el protocoloIEEE802.11a, al ser asistidas por un módulo cancelador de ruido. Como caso de estudio se supondrá una WLAN (Wireless Local AreaNetwork) basada en el estándar mencionado, trabajando en un ambiente ruidosoy con desvanecimiento (fading). Simulando este caso se evaluará el desempeñodel sistema con y sin el módulo cancelador de ruido.El módulo cancelador de ruido propuesto utiliza un algoritmo NLMS (NormalizedLeast Mean Square) [1].

Un objetivo secundario en este trabajo pero también importante esobservar la influencia de la codificación convolucional y la decodificación usandoel algoritmo de Viterbi, en el robustecimiento de la transmisión.

2.- Introducción

Esta monografía analiza la posibilidad de mejorar el desempeño de lossistemas WLAN, usando canceladores de ruido basados en filtros NLMS.El estudio se realiza sobre un sistema OFDM (Orthogonal Frequency DivisionMultiplexing) basado en el estándar IEEE802.11a [2], [3].Se estudian las mejoras que podrían introducir estos módulos cuando la redinalámbrica está operando en un canal con desvanecimiento y ruido blancogaussiano aditivo o ruido coloreado.

Para simular el desempeño de estas redes es necesario realizar sobre losmensajes, todas las etapas de procesamiento que este estándar prevé, ya queestos procesamientos robustecen considerablemente la comunicación. Si no serealizaran, se podría pensar que el efecto de la cancelación de ruido es mayordel que realmente se obtiene. Es decir, si simplemente se evaluara el efecto deestas cancelaciones de ruido sobre la transmisión del mensaje sin codificar, deseguro su efecto sería mucho mayor, ya que los procesamientos previstos en elestándar, hacen al sistema mucho más robusto a los errores.En particular podría llegar a ocurrir que la cancelación propuesta, dado elrobustecimiento de la información previsto por el estándar, sea innecesaria oproduzca resultados insignificantes.

Es por esta razón que debemos estudiar en detalle los bloques deprocesamiento propuestos por el estándar en cuestión (sección 4) y realizar enMatlab funciones que implementen estos procesamientos.

Page 4: Universidad de la República Facultad de Ingeniería Monografía de ...iie.fing.edu.uy/ense/asign/tes/materiales/monografias/Benigno... · introducir a las redes de área local inalámbricas,

Antes de proceder a estudiar un sistema particular basado en OFDM, esnecesario entender como funcionan en general los sistemas OFDM y cuales sonlos modelos que se suelen usar para trabajar con estos (sección 3).

Luego de superadas estas dos etapas podremos proponer un sistema ysimularlo (secciones 5 y 6), para finalmente poder concluir (sección 7) si lamodificación propuesta aporta beneficios al estándar considerado.

Page 5: Universidad de la República Facultad de Ingeniería Monografía de ...iie.fing.edu.uy/ense/asign/tes/materiales/monografias/Benigno... · introducir a las redes de área local inalámbricas,

3.- Como funciona un sistema OFDM

La idea básica del OFDM es dividir el espectro disponible en variossubcanales (subportadoras). De este modo cada uno de estos subcanales es uncanal de banda angosta, por lo cual experimentan un desvanecimiento casiplano (flat fading); esto hace que la ecualización del canal resulte muy simple.

Para obtener una mayor eficiencia espectral la respuesta en frecuencia delos subcanales está superpuesta y es ortogonal, ver Fig. 3.1. De ahí su nombreOFDM (Orthogonal Frecuency Division Multiplexing).

Fig. 3.1: Superposición de subportadoras ortogonales.

A los efectos de mantener esta ortogonalidad aún en los casos en que laseñal pasa a través de canales dispersivos en el tiempo se agrega un prefijocíclico (CP). Si bien hay sistemas OFDM que no usan este prefijo cíclico, dada lagran mejoría que introduce su uso (evita interferencia intersimbólica (ISI) einterferencia interportadora (ICI)), nos concentraremos en sistemas que usaneste prefijo cíclico. El CP no es otra cosa que la última parte del símbolo OFDM“prepegado” antes de este, es decir que una copia de la última parte del símboloOFDM se estaría transmitiendo antes de la transmisión del símbolo. Esto hace ala señal “periódica” lo cual juega un papel decisivo para evitar la ISI y la ICI. Loque sucede es que el CP al jugar un papel de espacio de guarda evita la ISI y almantener la ortogonalidad entre las subportadoras evita la ICI.Dado que en el receptor el prefijo cíclico es removido y que este contiene toda laISI del símbolo previo, la muestra de salida del banco de filtros del receptor nocontendrá ISI.

Cabe mencionar que el CP introduce una pérdida en la relación señal aruido (SNR), pero esto es un precio aceptable a pagar para mitigar lasinterferencias ISI e ICI.

Page 6: Universidad de la República Facultad de Ingeniería Monografía de ...iie.fing.edu.uy/ense/asign/tes/materiales/monografias/Benigno... · introducir a las redes de área local inalámbricas,

Un primer diagrama esquemático se puede apreciar en la Fig. 3.2.

Transmisor Canal Receptor

)(~ tη

lx ,0

ly ,0

lx ,1

ly ,1

lNx ,1− [ ]kS ( )tS ( )tr [ ]kr

lNy ,1−

Fig. 3.2: Diagrama esquemático de un sistema OFDM digital enbanda base.

Donde: N es el número de subportadoras.

lx ,0 es el primer valor del símbolo OFDM número l (es un número complejo de

un conjunto de puntos de la constelación de la señal).

lNx ,1− es el valor número N del símbolo OFDM número l.

IDFT Inverse Discrete Fourier Transform (Inversa de la Transformada deFourier Discreta).

MUX un multiplexor.CP un bloque que inserta el prefijo cíclico.

[ ]kS el símbolo OFDM número l más el prefijo cíclico preagregado.D/A un conversor de digital a análogo.

( )tS la versión analógica de [ ]kS .

( )tg ;τ la respuesta al impulso del canal.

( )tη~ el ruido que se introduce en el canal.( )tr la señal recibida.[ ]kr la digitalización de ( )tr (digitalización de la señal recibida).

A/D conversor análogo a digital. CP un bloque que se encarga de eliminar el prefijo cíclico.DEMUX demultiplexor.DFT Discrete Fourier Transform (Transformada de Fourier Discreta).

ly ,0 el primer valor recibido del símbolo OFDM número l.

lNy ,1− el N-ésimo valor recibido del símbolo OFDM número l.

Nota: Los paréntesis ( ) indican una señal analógica.Los paréntesis [ ] indican una señal discreta.

IDF

T

MU

X

DE

MU

X

DF

T

CP D/A );( tg τCP

A/D CP

Page 7: Universidad de la República Facultad de Ingeniería Monografía de ...iie.fing.edu.uy/ense/asign/tes/materiales/monografias/Benigno... · introducir a las redes de área local inalámbricas,

Los supuestos que se usaron en este modelo son los siguientes:1) Se usó un prefijo cíclico.2) La respuesta al impulso del canal es temporalmente más breve que el prefijo

cíclico.3) El transmisor y el receptor están perfectamente sincronizados.4) El ruido del canal es blanco, gaussiano complejo, aditivo.5) El desvanecimiento (fading) es lo suficientemente lento como para considerar

al canal constante durante un símbolo OFDM.

El realizar un análisis teórico completo de este modelo sería bastantecomplejo, por eso es común usar modelos simplificados más fáciles de tratar;en particular estos modelos se pueden dividir en dos clases diferentes: modelosde tiempo continuo y modelos de tiempo discreto.

3.1.- Modelo Continuo

Los primeros sistemas OFDM propuestos no tenían modulación ydemodulación digital. El sistema OFDM de tiempo continuo que veremos acontinuación puede ser considerado como el sistema OFDM ideal, que en lapráctica es sintetizado digitalmente.Dado que este es el primer modelo descrito, lo analizaremos paso a paso desdelas formas de ondas usadas en el transmisor hasta llegar a la señal a la salidadel receptor. En la figura siguiente se puede ver un modelo del sistema en bandabase.

Transmisor Canal Receptor

( )Tl 1+

lx ,0 ( )tη~ ly ,0

lx ,1 ( )ts ( )tτ ly ,1

lNx ,1− lNy ,1−

Fig. 3.3: Modelo de tiempo continuo de un sistema OFDM en banda base.

( )t1φ

( )t0φ

( )tN 1−φ

);( tg τ

( )t0ψ

( )t1ψ( )ψ

( )tN 1−ψ

Page 8: Universidad de la República Facultad de Ingeniería Monografía de ...iie.fing.edu.uy/ense/asign/tes/materiales/monografias/Benigno... · introducir a las redes de área local inalámbricas,

( )

−=

0

.1 )(2 cpTtk

NW

j

cpk

eTTt

π

φ

Donde:

N es el número de subportadoras.

lx ,0 es el primer valor del símbolo OFDM número l (es un número complejo de

un conjunto de puntos de la constelación de la señal).

lNx ,1− es el valor número N del símbolo OFDM número l.

( )tiφ señal con la que se modula cada entrada lix , .

( )tS suma de todas las señales de entrada moduladas.

( )tg ;τ es la respuesta al impulso del canal.

( )tη~ ruido que se introduce en el canal.

( )tτ señal recibida por el receptor.

ly ,0 primer valor recibido del símbolo OFDM número l.

lNy ,1− N-ésimo valor recibido del símbolo OFDM número l.

A continuación se estudian las tres etapas de este sistema: El transmisor,el canal y el receptor.

Transmisor

Asumiendo un sistema OFDM con N subportadoras, un ancho de bandade W Hz y un largo de símbolo OFDM de T segundos, donde Tcp segundos deestos T segundos corresponden al prefijo cíclico. La forma de onda que usa eltransmisor sería de la siguiente forma [4]:

si t ∈ [ ]T,0 (3.1)

en otro caso.

Donde cpTW

NT += . Notar que ( )

+=

WN

tt kk φφ cuando t está dentro del

prefijo cíclico [0,Tcp].Observar que ( )tkφ es un pulso rectangular modulado por una portadora de

frecuencia N

Wk , por eso la interpretación común de OFDM es que este usa N

subportadoras cada una de las cuales porta una tasa de bits baja.

Page 9: Universidad de la República Facultad de Ingeniería Monografía de ...iie.fing.edu.uy/ense/asign/tes/materiales/monografias/Benigno... · introducir a las redes de área local inalámbricas,

Las formas de onda ( )tkφ son usadas en la modulación por lo que la señal debanda base transmitida para el símbolo OFDM número l queda:

( ) ( )∑−

=

−=1

0, .

N

kklkl lTtxts φ (3.2)

Donde lkx , son números complejos del conjunto de puntos de la constelación de

la señal (por ej. salida de un modulador 16-QAM).

La fig. 3.4 muestra en detalle el proceso realizado en el transmisor.

( )lTt −0φ

lT (l+1)T f

lj

ll eAx ,0

,0,0

θ= ( )lTt −1φ

lT (l+1)T f

lj

ll eAx ,1

,1,1

θ= ( )ts

( )lTtN −−1φ

lT (l+1)T f

lNj

lNlN eAx ,1

,1,1−

−− = θ

Fig. 3.4: Inserción de portadoras, con ellas se modula el número complejode la constelación de la señal.

Cuando se transmite una secuencia infinita de símbolos OFDM la señalqueda:

Page 10: Universidad de la República Facultad de Ingeniería Monografía de ...iie.fing.edu.uy/ense/asign/tes/materiales/monografias/Benigno... · introducir a las redes de área local inalámbricas,

( ) ( ) −

=0

* tTt k

k

φψ

( ) ( )∑∑∑+∞

−∞=

=

+∞

−∞=

−==l

N

kklk

ll lTtxtsts

1

0, .)( φ (3.3)

Canal

Asumimos que el soporte de la (posiblemente variante en el tiempo)respuesta al impulso del canal físico queda restringida al intervalo [ ]cpT,0∈τ , es

decir al largo del prefijo cíclico. La señal recibida queda entonces:

( )∫ +−==cpT

tndtstgtsgtr0

)(~)(;))(*()( τττ (3.4)

Donde )(~ tn es ruido de canal aditivo, blanco y gaussiano complejo.

Receptor

El receptor OFDM consiste en un banco de filtros, ajustados a la últimaparte [Tcp, T] de las formas de onda del transmisor ( )tkφ

Si t [ ]cpTT −∈ ,0 (3.5)

En otro caso

Esto significa que el prefijo cíclico es removido en el receptor. Dado que elprefijo cíclico contiene toda la ISI, la muestra de salida del banco de filtros delreceptor no contiene ISI.

Ignorando el índice de tiempo l, cuando calculamos la muestra de salidaen el filtro ajustado k-ésimo, usando (3.3), (3.4) y (3.5) se obtiene:

( )( ) ( ) ( )∫+∞

∞−=

−== dttTtrtry kTtkk ψψ*

( ) ( ) ( ) ( ) ( )∫ ∫∫ ∑ −+

−=

=

T

T

T

Tkk

T N

kkk

cp cp

cp

dtttTndttdtxtg **

0

1

0'''

~; φφττφτ

Page 11: Universidad de la República Facultad de Ingeniería Monografía de ...iie.fing.edu.uy/ense/asign/tes/materiales/monografias/Benigno... · introducir a las redes de área local inalámbricas,

( ) ( )∫∑ +=−

=

T

Tkkkk

N

kk

cp

ndttthx *''

1

0'' φφ

( ) ττ τπ degNW

kGhcpT

NWkjk ∫ −=

=

0

/'2' '

( )( ) ,

0

/'2/'2

ττ τππ

degTT

ecp

cpT

NWkj

cp

NWTtkj

∫ −−

−=

Considerando al canal como fijo durante el intervalo del símbolo OFDM yllamando a este ( )τg , se obtiene:

Los intervalos de integración son TtTcp << y cpT<< τ0 lo que implica que

Tt <−< τ0 y la integral interna puede ser escrita como:

La última parte de esta expresión es la respuesta en frecuencia del canalmuestreada a la frecuencia NWkf /'= , a la frecuencia de la k’-ésimasubportadora:

(3.6)

donde ( )fG es la transformada de Fourier de ( )τg . Usando esta notación lasalida del banco de filtros del receptor puede ser simplificada a la siguienteexpresión:

(3.7)

donde ( ) ( )dtttTnnT

Tkk

cp

∫ −= *~ φ . Desde que los filtros del transmisor son ortogonales,

( )( ) ( ) ( )∫ ∫∑ −+

−=

−−

=

T

T

T

Tkkk

cp

NWTtkjN

kkk

cp cp

cp

dtttTndtthTT

exy **

'

/'21

0''

~ φφπ

( ) ( ) ( ) ( ) ( )∫ ∫∫∑ −+

−=

=

T

T

T

Tkk

T

k

N

kkk

cp cp

cp

dtttTndttdtgxy **

0'

1

0''

~ φφττφτ

( ) ( ) ( )( )

ττττφττπ

dTT

egdtg

cp cpcp T

cp

NWTtkjT

k ∫∫

−=−

−−

0

/'2

0'

TtTcp <<

Page 12: Universidad de la República Facultad de Ingeniería Monografía de ...iie.fing.edu.uy/ense/asign/tes/materiales/monografias/Benigno... · introducir a las redes de área local inalámbricas,

( ) ( )( ) ( )

[ ]'/2/'2

*' kkdt

TT

e

TT

edttt

cp

NWTtkjT

T

T

T cp

NWTtkj

kk

cp

cp cp

cp

−=−−

=−−−

∫ ∫ δφφππ

donde [ ]kδ es la función delta de Kronecker, por lo tanto la expresión (3.7) sepuede escribir como:

kkkk nxhy += (3.8)

donde kn es ruido blanco gaussiano aditivo (AWGN, Additive White GaussianNoise).

El beneficio del prefijo cíclico es doble, por un lado evita la ISI al actuarcomo espacio de guarda y por otro evita la ICI al mantener la ortogonalidad delas subportadoras.Reintroduciendo el índice de tiempo l, podemos ver el sistema OFDM como unset de canales gaussianos paralelos, como muestra la fig. 3.5

lh ,0 ln ,0

lx ,0 ly ,0

lNh ,1− lNn ,1−

lNx ,1− lNy ,1−

Fig. 3.5: El sistema OFDM de tiempo continuo interpretado como canalesgaussianos paralelos.

Algo que hay que tener presente es que la energía transmitida aumenta con ellargo del prefijo cíclico, mientras que la expresión para la señal recibida ymuestreada continúa siendo la misma (3.8). La energía transmitida por

subportadora es ( ) ( )∫ −=

cpk TT

Tdtt

2φ y la pérdida de relación señal a ruido

(SNR) debido al prefijo cíclico descartado en el receptor, es:

( )γ−−= 1log10 10lossSNR (3.9)

Page 13: Universidad de la República Facultad de Ingeniería Monografía de ...iie.fing.edu.uy/ense/asign/tes/materiales/monografias/Benigno... · introducir a las redes de área local inalámbricas,

donde T

Tcp=γ es el largo relativo del prefijo cíclico. Cuanto más largo es el

prefijo cíclico mayor es la pérdida de relación señal a ruido. Generalmente ellargo relativo del prefijo cíclico es pequeño y la eliminación de la ICI e ISI de latransmisión justifica la pérdida de relación señal a ruido (menos que 1dB para un

2,0<γ ).

3.2.- Modelo Discreto

En la fig. 3.6, se puede apreciar un sistema OFDM discreto completo.Comparado con el sistema OFDM continuo, se sustituyen las etapas demodulación y demodulación por una IDFT y una DFT respectivamente.El canal se representa por una convolución temporal discreta. El prefijo cíclicoopera del mismo modo en este sistema y los cálculos pueden ser realizadosesencialmente del mismo modo. La principal deferencia es que las integralesson reemplazadas por sumas.

Transmisor Canal Receptor

lx ,0 [ ]kn~ ly ,0

lx ,1 [ ]ks [ ]kr ly ,1

lNx ,1− lNy ,1−

Fig. 3.6: Sistema OFDM de tiempo discreto.

Desde el punto de vista del receptor, el uso de un prefijo cíclico más largoque la respuesta al impulso del canal, transformará a la convolución lineal en elcanal en una convolución cíclica. Denotando la convolución cíclica por“ ” el sistema OFDM completo se lo puede escribir como:

ly =DFT(IDFT( lx ) lg + ln~ ) = DFT(IDFT( lx ) lg ) + ln (3.10)

IDF

T

MU

X

CP [ ]kmg ;

DE

MU

X

DF

T

CP

Page 14: Universidad de la República Facultad de Ingeniería Monografía de ...iie.fing.edu.uy/ense/asign/tes/materiales/monografias/Benigno... · introducir a las redes de área local inalámbricas,

Donde:

ly contiene los N puntos de datos recibidos.

lx contiene los N puntos de la constelación transmitida.

g la respuesta al impulso del canal (completada con ceros para obtener unlargo N).

ln~ es el ruido del canal.

)~( ll nDFTn = Dado que el ruido del canal se asume como blanco y gaussiano

el término ln representa ruido gaussiano no correlacionado.

Usando que la DFT de dos señales convueltas cíclicamente son equivalentes alproducto de sus DFT’s individuales, se llega a que:

lllllll nhxngDFTxy +=+= .)(. (3.11)

Donde:)( ll gDFTh = es la repuesta en frecuencia del canal.

Si se observan las ecs. (3.8) y (3.11) se comprobará que se ha obtenidoel mismo tipo de canales gaussianos paralelos en ambos casos (en el caso delmodelo continuo y en el caso del modelo discreto). La única diferencia está enque en el caso discreto las atenuaciones del canal lh están dadas por la DFT deN puntos del canal de tiempo discreto, en vez de la respuesta en frecuenciamuestreada como en el caso continuo (ver ec. (3.6)).

Si bien los sistemas OFDM como los que estuvimos viendo presentanuna ventaja muy interesante al lograr tener un desvanecimiento casi plano portrabajar con subcanales de banda angosta, lo que hace muy simple laecualización, también presentan algunas dificultades o imperfecciones como ser:

1) Dispersión de tiempo y de frecuencia (si los efectos de estas dispersionesson importantes deben ser incluidos en el modelo).

2) Alinealidades y distorsión por saturación (los sistemas OFDM suelentener una alta relación entre potencia de pico y potencia promedio, por locual imponen grandes exigencias de linealidad a los amplificadores).

3) Interferencia externa.

Si bien se tiene conocimiento de estas dificultades, entendemos queescapa al alcance de este trabajo estudiar estas variantes de un sistema OFDMideal. En trabajos posteriores, se podría estudiar el efecto del agregado delmódulo cancelador de ruido cuando estas imperfecciones causan efectossignificativos.

Page 15: Universidad de la República Facultad de Ingeniería Monografía de ...iie.fing.edu.uy/ense/asign/tes/materiales/monografias/Benigno... · introducir a las redes de área local inalámbricas,

4.- Como funciona una red de área local basada en elprotocolo IEEE802.11a

En particular se analizarán en detalle los diagramas de bloquessimplificados, de un transmisor y un receptor basado en el estándar IEEE802.11a.

En esta sección se estudiará la evolución de los datos a través de cadauna de las etapas en sistemas como los de la fig. 4.1 y fig. 4.2, para el caso deuna modulación QPSK. De este modo el lector podrá seguir de cerca losprocesamientos que realizan cada uno de estos bloques.

Fig. 4.1: Diagrama de bloques simplificado de un transmisor 802.11a.

Fig. 4.2: Diagrama de bloques simplificado de un receptor 802.11a.

En las fig. 4.1 y 4.2 respectivamente, se omiten las etapas analógicas, yaque usaremos un modelo discreto, como el de la sección 3.2.-, para realizar lassimulaciones.

BinarySource Scrambler Interleaver Modulate

ConvolutionalEncoder ID

FT

MU

X

CP

ViterbiDecoder

ChannelEstimator

CP

DE

MU

X

DF

T

MU

X

Cha

nnel

corr

ecti

on

DE

MU

X

Page 16: Universidad de la República Facultad de Ingeniería Monografía de ...iie.fing.edu.uy/ense/asign/tes/materiales/monografias/Benigno... · introducir a las redes de área local inalámbricas,

Bloques del transmisor:

“Binary Source”, Fuente Binaria, este módulo se encarga de generar lasecuencia binaria de datos a transmitir.

“Scrambler”, el scrambler o aleatorizador actúa sobre la señal digital para evitarsecuencias periódicas. Para esto lo que hace es componer la señal con unasecuencia pseudo aleatoria (PRBS, Pseudo Random Binary Sequence)generada por un circuito lógico conocido. Básicamente existen dos tipos, losScramblers sincrónicos y los autosincronizados.Básicamente lo que el Scrambler permite es transmitir suficiente temporizaciónde bit, de esta forma el circuito de recuperación del reloj en el receptor recibeconstantemente transiciones de señal y puede filtrar con facilidad la armónicadel reloj.El Scrambler también permite distribuir la potencia en el espectro. Unasecuencia periódica contiene la mayor parte de la energía en pocas armónicas.Una señal aleatorizada tiene un gran número de armónicas y la potencia estádistribuida entre estas, resultando niveles máximos de potencia por armónicamenores que en el caso de la señal sin aleatorizar.

En las fig. 4.3 y 4.4 se pueden observar respectivamente un codificador yun decodificador de un sistema de Scrambler autosincronizado.

Fig. 4.3: Codificador de un sistema Fig. 4.4: Decodificador de un sistema de Scrambler autosicronizado. de Scrambler autosicronizado.

En la tabla 4.1 se puede observar un ejemplo de funcionamiento de unScrambler autosincronizado.En este ejemplo “Tx” es la secuencia a transmitir que sobre el final posee unagran cantidad de ceros continuados, que es lo que el módulo de scramblerevitará. “Txs” es la secuencia aleatorizada, donde se puede ver que la grancantidad de ceros continuados ya no aparece. Al transmitir esta secuencia envez de “Tx” se logra transmitir buena temporización de bit así como distribuir lapotencia en el espectro.En el receptor se encuentra el decodificador; sino hubieron errores en el canal,la secuencia que recibirá el receptor es Rxs = Txs. “Rxs” es la secuenciaaleatorizada que recibe el receptor, a partir de esta se obtendrá “Rx” que sino

Page 17: Universidad de la República Facultad de Ingeniería Monografía de ...iie.fing.edu.uy/ense/asign/tes/materiales/monografias/Benigno... · introducir a las redes de área local inalámbricas,

hubieron errores en el canal debería ser (como se puede comprobar en la tabla)igual a Tx, secuencia que se quería transmitir.

Nota: Los ceros que aparecen en las tres primeras filas en las columnas X, Y y Zcorresponden a los valores con los cuales se inicializan los registros dedesplazamiento (shift registers).

SCRAMBLER AUTOSINCRONIZADO

CODIFICADOR DECODIFICADOR

Tx A Txs X Y Z Rxs A' Rx X Y Z1 0 1 0 0 0 1 0 1 0 0 00 0 0 1 0 0 0 0 0 1 0 01 1 0 0 1 0 0 1 1 0 1 00 1 1 0 0 1 1 1 0 0 0 11 0 1 1 0 0 1 0 1 1 0 00 1 1 1 1 0 1 1 0 1 1 01 0 1 1 1 1 1 0 1 1 1 10 0 0 1 1 1 0 0 0 1 1 11 0 1 0 1 1 1 0 1 0 1 10 1 1 1 0 1 1 1 0 1 0 11 1 0 1 1 0 0 1 1 1 1 00 0 0 0 1 1 0 0 0 0 1 11 1 0 0 0 1 0 1 1 0 0 10 0 0 0 0 0 0 0 0 0 0 01 0 1 0 0 0 1 0 1 0 0 00 0 0 1 0 0 0 0 0 1 0 00 1 1 0 1 0 1 1 0 0 1 00 1 1 1 0 1 1 1 0 1 0 10 1 1 1 1 0 1 1 0 1 1 00 0 0 1 1 1 0 0 0 1 1 10 0 0 0 1 1 0 0 0 0 1 10 1 1 0 0 1 1 1 0 0 0 10 0 0 1 0 0 0 0 0 1 0 00 1 1 0 1 0 1 1 0 0 1 00 1 1 1 0 1 1 1 0 1 0 10 1 1 1 1 0 1 1 0 1 1 00 0 0 1 1 1 0 0 0 1 1 10 0 0 0 1 1 0 0 0 0 1 10 1 1 0 0 1 1 1 0 0 0 10 0 0 1 0 0 0 0 0 1 0 0

Tabla 4.1: Ejemplo de funcionamiento de un sistema de Scrambler autosincrónico.

Page 18: Universidad de la República Facultad de Ingeniería Monografía de ...iie.fing.edu.uy/ense/asign/tes/materiales/monografias/Benigno... · introducir a las redes de área local inalámbricas,

Por último es bueno tener presente que un Scrambler autosincronizadoproduce una “multiplicación de errores”. Un error a la entrada del decodificador,aparecerá repetido dos veces más debido a la realimentación de los registros dedesplazamiento (en el caso de trabajar con tres registros de desplazamiento).Por esta razón es recomendable colocar el desaletorizador o decodificador delsistema de scrambler a continuación del módulo de corrección de errores.

“Convolutional Encoder”, los códigos de canal son una componente muyimportante de los sistemas digitales de comunicación modernos; estos permitenque las comunicaciones inalámbricas sean efectivas y confiables.

La medida básica del desempeño de un código de canal viene dada por la

“ganancia de codificación”, esta es la reducción requerida de 0N

Eb (relación de

energía por bit a ruido) para lograr una cierta tasa de error de bit (BER, Bit ErrorRate) en un canal con ruido blanco gaussiano aditivo (AWGN, Additive WhiteGaussian Noise), usualmente medida en dBs.

Como ejemplo se mencionará que el estándar IEEE 802.11a puede usardos métodos para lograr una tasa de datos de 12 Mbits/s.

El camino más simple consiste en usar una modulación BPSK (BinaryPhase Shift Keying) no codificada en cada subportadora, con lo cual cadasímbolo OFDM contendría 48 bits de información válida. El tiempo de símbolo esde sµ4 o 250.000 símbolos por segundo, con lo que 250.000 (símbolos/s) x 48(bits/símbolo) = 12 Mbits/s.

Otro camino para lograr la misma tasa de datos es usar codificación decanal. El estándar IEEE 802.11a para lograr una tasa de 12 Mbits/s usa uncódigo convolucional de tasa 1/2 (bits de entrada / bits de salida) y unamodulación QPSK (Quadrature Phase Shift Keying). Este segundo camino

resulta en una relación 0N

Eb o SNR (Signal to Noise Ratio) más baja para lograr

una buena BER [2].

Observar que el código convolucional, cuyo diagrama se puede ver en lafig. 4.5, produce dos bits de salida por cada bit de entrada, mientras que lamodulación QPSK produce un punto de la constelación por cada dos bits deentrada, con lo cual se mantiene la misma tasa de datos (aunque en un casoson bits y en el otro puntos de una constelación QPSK). La tasa de los códigosconvolucionales es siempre menor que uno. A medida que la tasa de lacodificación convolucional disminuye se hace necesario usar modulaciones deconstelación mayor a los efectos de mantener la misma tasa de datos delsistema no codificado. Por lo general al usar una constelación mayor disminuyela distancia mínima entre puntos de la constelación, lo que aumenta la BER a la

Page 19: Universidad de la República Facultad de Ingeniería Monografía de ...iie.fing.edu.uy/ense/asign/tes/materiales/monografias/Benigno... · introducir a las redes de área local inalámbricas,

salida del demodulador; sin embargo a la salida del decodificador de código decanal la BER es reducida significativamente [2].

Fig. 4.5: Codificador Convolucional de 64 estados usado en el estándar IEEE 802.11a.

En el diagrama de la fig. 4.5, los módulos “D” son registros dedesplazamiento y los módulos “ ” son compuertas XOR binarias. Las salidas

nb2 y 12 +nb son respectivamente la salida par e impar correspondiente a cada bitde entrada.

“Interleaver”, básicamente lo que este módulo realiza es un cambio en el ordende los bits de la secuencia a transmitir a los efectos de separar en el tiempo bitsde una misma palabra. De esta forma una ráfaga de errores causada por unaseñal interferente concentrada en el tiempo (muy común en ambientesinalámbricos) causaría errores sobre bits de distintas palabras y los algoritmoscorrectores de errores serían capaces de corregir estos errores. En cambio si laráfaga afectara a todos los bits de una palabra o por lo menos a varios de ellos,probablemente los algoritmos correctores de errores no serían capaz de reparareste daño o necesitarían de un nivel de redundancia muy alto.

Para elegir de forma adecuada el proceso de Interleaver hay que tener encuenta las características del canal. Este proceso produce efectos positivoscuando se usa en sistemas que operan sobre canales con ruido en forma deráfagas (bursts).

Existen principalmente dos clases de procesos de Interleaver biendiferenciados entre si. Ellos son los procesos de Interleaver de bloques y losprocesos de Interleaver convolucional. Estos últimos requierenaproximadamente la mitad de memoria que los primeros para lograr la mismaprofundidad de interleaving. El concepto de profundidad de Interleaver tiene quever con la demora –en bits- introducida por este proceso. Dado que el estándar802.11a usa un módulo de Interleaver de bloques, nos concentraremos en este.

D D D D D D

nb2

12 +nb

Entrada

Page 20: Universidad de la República Facultad de Ingeniería Monografía de ...iie.fing.edu.uy/ense/asign/tes/materiales/monografias/Benigno... · introducir a las redes de área local inalámbricas,

En la fig. 4.6 se puede ver un ejemplo de funcionamiento de un procesode Interleaver de bloques. El mismo consiste en cargar los datos en lascolumnas de una matriz y leerlos en filas. De este modo se reacomodan los bitsde una misma palabra a los efectos de separarlos temporalmente durante latransmisión. Con esto se logra que una ráfaga de interferencia arruine bits dedistintas palabras y no todos o casi todos los bits de una palabra, que como yase dijo haría imposible para los algoritmos correctores de errores recuperar lapalabra dañada; obsérvese que no ocurre lo mismo si lo que resulta dañado sonbits de varias palabras distintas.

Fig. 4.6: Interleaver de bloque de profundidad 8x6 bits.

En el caso de la fig. 4.6 el interleaver de bloques tiene una profundidad de48 bits. Cuanto mayor es la profundidad más se separan los bits de una mismapalabra, pero también es mayor el retardo que introduce este proceso. Cadasistema de comunicaciones tiene una demora máxima tolerable a respetar a losefectos de que no se produzca una degradación en calidad perceptible. Porejemplo en una conversación telefónica esta demora es de 20 ms.

En el caso del standard 802.11a la profundidad del Interleaver ha sidoelegida igual a un símbolo OFDM. Esta profundidad se puede calcular de dosformas.

Una forma es usando los datos del standard 802.11a funcionando a12Mb/s por ej. En este caso el tiempo de símbolo es de 4 sµ , es decir 250.000símbolos/s.

De aquí resulta claro que el símbolo OFDM cuenta con 48 bits ya que250.000 símbolos/s * 48 bits/símbolo = 12 Mb/s.

Si bien como se dijo la profundidad del Interleaver es de solamente unsímbolo OFDM, es decir sería de 48 bits, hay que tener en cuenta que elproceso de Interleaver se realiza después de la codificación convolucional y estaduplica la cantidad de bits, entonces la profundidad pasa a ser de 96 bits.

Page 21: Universidad de la República Facultad de Ingeniería Monografía de ...iie.fing.edu.uy/ense/asign/tes/materiales/monografias/Benigno... · introducir a las redes de área local inalámbricas,

Otra forma de calcular la profundidad del Interleaver es multiplicar el númerode portadoras por el número de bits que componen un punto de la constelaciónen la modulación de la que se trate. Por ej. para QPSK son dos bits por punto dela constelación. En el estándar 802.11a se usa una IDFT de 64 puntos. De esas64 portadoras, 48 son usadas para modulación de datos, 4 son usadas comopiloto y 12 no son usadas. Entonces 48 portadoras * 2 bits/portadora = 96 bits.

Por lo que podemos concluir que la profundidad del Interleaver en el estándar802.11a para una tasa de 12 Mb/s (modulación QPSK) es de 96 bits (una matrizde 8x12 bits).

Como dato es bueno saber que en el caso de una modulación BPSK laprofundidad es de 48 bits (1 bit por punto de la constelación), en el caso QPSKcomo se vio es de 96 bits, para 16-QAM es de 192 bits y para 64-QAM es de288 bits.

“Modulator”. Como se explicó cuando se analizó el codificador convolucional,dado que en este ejemplo se trabaja con un codificador convolucional de tasa ½, la modulación que hay que usar en este caso es QPSK a los efectos demantener la tasa de datos (el codificador toma un bit y produce dos y elmodulador toma dos bits y produce un símbolo).

En la fig. 4.7 se puede ver un diagrama de la modulación QPSK,básicamente esta lo que hace es atribuir a cada par de bits un símbolo de laconstelación, tal como se indica la figura.

00 à 1 = 0je

01 à j = 2π

je

11 à -1 = πje

10 à -j = 23π

je

Fig. 4.7.: Modulación QPSK (puntos de la constelación)

-1 110

01

0011

Page 22: Universidad de la República Facultad de Ingeniería Monografía de ...iie.fing.edu.uy/ense/asign/tes/materiales/monografias/Benigno... · introducir a las redes de área local inalámbricas,

“IDFT”. La Transformada de Fourier Discreta DFT (Discrete Fourier Transform)es una versión discreta de la Transformada de Fourier de Tiempo Discreto DTFT(Discrete Time Fourier Transform), esta última es función de la frecuencia comovariable contínua (w), mientras que la DFT es función de la frecuencia comovariable discreta ( Nk /2π ). La DFT resulta útil en el contexto de los sistemasdigitales donde se trabaja con muestras de señal más que con una señalcontinua. La DFT de N-puntos, de una secuencia de largo finito ( )nx se definecomo:

( ) ( )∑−

=

−=1

0

/2.N

n

NknjenxkX π (4.1)

Se puede ver claramente que la DFT es una versión muestreada de laDTFT donde:

( ) ( )Nkw

wXkX/2π=

= (4.2)

y

( ) ( ) jnw

n

enxwX −∞

−∞=∑= . (4.3)

La DFT tiene una transformada inversa llamada IDFT (Inverse DiscreteFourier Transform). La IDFT permite recuperar la secuencia ( )nx a través de lassiguiente relación:

( ) ( ) Nkn

jN

k

ekXN

nxπ21

0

..1 ∑

=

= (4.4)

Ambas ( )nx y ( )kX son periódicas de período N.

“MUX”. El bloque multiplexor convierte los datos de un formato en paralelo a enserie. Es decir toma los datos que le llegan en paralelo del módulo IDFT y losconvierte en una secuencia de datos en serie. En esa secuencia los datos seordenan de acuerdo a las portadoras que los originaron; es decir los datoscorrespondientes a portadoras de índice más bajo se envían antes.

Page 23: Universidad de la República Facultad de Ingeniería Monografía de ...iie.fing.edu.uy/ense/asign/tes/materiales/monografias/Benigno... · introducir a las redes de área local inalámbricas,

“CP”. Un prefijo cíclico (CP, Cyclic Prefix) es una copia de la última parte delsímbolo OFDM agregada delante del símbolo a transmitir según lo indica lafig 4.8.

Fig. 4.8: Preinserción del Prefijo Cíclico

La inserción de este prefijo cíclico hace a la señal transmitida “periódica”,lo que juega un rol muy importante para evitar las interferencias intersimbólicas(desde que actúa como espacio guarda) e interportadoras (desde que mantienela ortogonalidad entre portadoras [5]).

A pesar de que el prefijo cíclico introduce una pequeña pérdida en larelación señal a ruido (SNR, Signal to Noise Ratio), este es un precio muyaceptable a pagar considerando su contribución a mitigar la interferencia.

Este prefijo cíclico que se agrega en el transmisor, luego será removidoen el receptor; como este prefijo está dimensionado de forma de contener todala ISI del símbolo anterior, la salida muestreada del “banco de filtros” (DFT) delreceptor no contiene ISI.

Un efecto que es importante mencionar es que la energía transmitidaaumenta con el largo del prefijo. Cuando el prefijo se descarta en el receptor seestá perdiendo SNR. Se puede demostrar [4] que la pérdida de SNR debido adescartar el CP en el receptor se puede calcular como:

)1(log10 10 γ−−=lossSNR (4.5)

donde γ es la relación entre el tiempo que insume el prefijo y el tiempo que

insume el símbolo, T

TCP=γ . Cuanto más largo es el CP, mayor es la pérdida de

SNR. Típicamente la perdida de SNR es pequeña (menos que 1 dB para2.0<γ ) y los beneficios que ocasiona respecto de la ISI y la ICI justifican su uso.

Un criterio que se respeta para la elección del largo del CP es que elmismo sea más largo que la respuesta al impulso del canal [2].

Nota: Si bien los procesamientos explicados en esta sección son los previstospor el estándar IEEE802.11a, los circuitos o diagramas usados comoejemplo no necesariamente son los previstos o aconsejados por elestándar.

CP

Tiempo

Page 24: Universidad de la República Facultad de Ingeniería Monografía de ...iie.fing.edu.uy/ense/asign/tes/materiales/monografias/Benigno... · introducir a las redes de área local inalámbricas,

Bloques del receptor:

El receptor procede a deshacer todos los procesos que se hicieron en eltransmisor. La forma en que estos procesos son “deshechos” es bastanteintuitiva, salvo en los casos de los módulos “scrambler” y “ConvolutionalEncoder”.En el primer caso el circuito que se usa para desaletorizar la secuencia es el quese muestra en la fig. 4.4 .En el segundo la decodificación se realiza usando el algoritmo de Viterbi.Escapa al alcance de este trabajo explicar el funcionamiento de este algoritmo,pero los detalles del mismo pueden ser leídos en las referencias [6] y [7].

Page 25: Universidad de la República Facultad de Ingeniería Monografía de ...iie.fing.edu.uy/ense/asign/tes/materiales/monografias/Benigno... · introducir a las redes de área local inalámbricas,

5.- Sistema propuesto

A continuación se muestra el modelo sobre el cual se implementarán lassimulaciones.

Fig. 5.1: Diagrama de bloques simplificado de un transmisor 802.11a.

)(~ tη

[ ]ks [ ]kr

Fig. 5.2: Diagrama del Canal.

El canal en el caso que se simulará solo introduce fading y agrega ruidoblanco gaussiano.

Fig. 5.3: Diagrama de bloques del receptor implementado.

BinarySource Scrambler Interleaver Modulate

ConvolutionalEncoder ID

FT

MU

X

CP

ChannelEstimator

DE

MU

X

DF

T

MU

X

Cha

nnel

corr

ecti

on

CP

Pilo

tR

emov

al

ViterbiDecoder

Dei

nter

leav

er

Des

cram

ble

r

Dem

odul

ator

g

Page 26: Universidad de la República Facultad de Ingeniería Monografía de ...iie.fing.edu.uy/ense/asign/tes/materiales/monografias/Benigno... · introducir a las redes de área local inalámbricas,

El desempeño de este modelo de “transceiver” que respeta el estándar deredes inalámbricas de área local IEEE802.11a, fue comparado (mediantesimulaciones realizadas en Matlab) con la versión modificada que se presenta acontinuación.

v1[k] V2[k] s[k] ev1[k]

- rc[k] r[k] +

Fig. 5.4: Diagrama de bloques del receptor modificado.

La modificación introducida afecta solamente al bloque receptor,agregando un preprocesamiento tendiente a cancelar el ruido adquirido en elcanal.

En esta versión modificada lo que se hace es atenuar el efecto del ruidoadquirido en el canal, mediante un algoritmo NLMS. Este algoritmo toma –conun segundo sensor- una señal con cierto grado de correlación con la señal deruido y procede a “tratar de eliminar” el ruido de la señal recibida.

ChannelEstimator

DE

MU

X

DF

T

MU

X

Cha

nnel

corr

ecti

on

CP

Pilo

tR

emov

alViterbiDecoder

Dei

nter

leav

er

Des

cram

ble

r

Dem

odul

ato

r

g

η NLMS

Page 27: Universidad de la República Facultad de Ingeniería Monografía de ...iie.fing.edu.uy/ense/asign/tes/materiales/monografias/Benigno... · introducir a las redes de área local inalámbricas,

6.- Simulaciones

Las simulaciones que se presentan en esta sección tienen básicamentedos objetivos:

1) Probar el modelado del sistema completo, para lo que se usará unaseñal v2 que sea claramente similar a v1 (aunque no sea realista). En este casose observará la coherencia de los resultados obtenidos.

Cabe aclarar que cada módulo fue simulado y validado independientementeo con su “módulo par” (“interleaver” con “deinterleaver” por ejemplo) antes deproceder a la simulación del sistema completo. Estas simulaciones por considerarsede carácter intermedio no se presentan en este trabajo. Las mismas permiten tenerun alto grado de confianza en que el desempeño del sistema completo emularáadecuadamente una WLAN basada en el estándar considerado.

2) Verificar en condiciones más realistas –con valores de v2 más realista-el impacto del módulo cancelador de ruido propuesto.

Existe también un tercer objetivo, menos relevante para este trabajo enparticular, que es ganar intuición sobre el valor de algunos procesos previstospor este estándar, en lo que a robustecimiento de la transmisión se refiere.

En todos los ensayos se usó una secuencia de 960 bits y una profundidadde interleaver de 96 bits. El largo de la secuencia usada resulta de uncompromiso entre un tiempo de simulación razonable y una cantidad de datossuficiente para definir el desempeño del sistema. La profundidad del proceso deinterleaver elegida respeta el valor usado por el estándar.En todos los ensayos se simulan los mismos cinco casos. De este modo sepodrá observar el desempeño de la configuración simulada en el ensayo encinco situaciones diferentes de ruido y desvanecimiento.

El bloque cancelador de ruido propuesto es un filtro basado en elalgoritmo NLMS de orden 12. Se eligió un orden “alto” para este filtro para quepueda “seguir” correctamente señales diversas. Se consideró fuera del alcancede este trabajo determinar el orden más conveniente para este filtro.

6.1.- Ensayos realizados para ruido blanco gaussiano aditivo y canal condesvanecimiento (fading)

6.1.1.- Prueba del modelo completo e impacto de algunosmódulos sobre el desempeño general

En estos ensayos “n” es un valor que multiplica a la secuencia aleatoriade media 0 y varianza 1 obtenida con la función “randn” de matlab y “f” es elfactor de desvanecimiento que atenúa a la secuencia transmitida.La secuencia recibida se obtiene como “r=s*f+n*randn(1,ls)”, donde “s” es lasecuencia transmitida, “ls” es el largo de “s” y “r” es la secuencia recibida(atenuada y con ruido).

Page 28: Universidad de la República Facultad de Ingeniería Monografía de ...iie.fing.edu.uy/ense/asign/tes/materiales/monografias/Benigno... · introducir a las redes de área local inalámbricas,

Ensayo 1:Ensayo realizado sin codificación convolucional –tampoco se usa Viterbi-

y sin corrección de canal. No confundir la corrección de canal propuesta por elestándar con el módulo de cancelación de ruido que se evaluará en este trabajo(ver fig. 5.4)

Los resultados obtenidos para los siguientes valores de “n” y ”f” son:

1) Con n=0.1 y f=0.95 se obtienen 227 errores y una BER=23.65% .2) Con n=0.07 y f=0.96 se obtienen 123 errores y una BER=12.81% .3) Con n=0.05 y f=0.95 se obtienen 27 errores y una BER=2.81% .4) Con n=0.05 y f=0.98 se obtienen 18 errores y una BER=1.88% .5) Con n=0.01 y f=0.99 se obtiene 0 error y una BER=0% .

Ensayo 2:Ensayos realizados sin codificación convolucional –tampoco se usa

Viterbi- y con corrección del canal.En este caso los resultados obtenidos para los siguientes valores de “n” y

”f” son:

1) Con n=0.1 y f=0.95 se obtienen 288 errores y una BER=30% .2) Con n=0.07 y f=0.96 se obtienen 99 errores y una BER=10.31% .3) Con n=0.05 y f=0.95 se obtienen 18 errores y una BER=1.88% .4) Con n=0.05 y f=0.98 se obtienen 34 errores y una BER=3.54% .5) Con n=0.01 y f=0.99 se obtiene 0 error y una BER=0% .

Se puede ver que para los casos 2) y 3) la corrección del canal tuvo unefecto positivo. También se puede observar que para los casos 1) y 4), la mismatuvo un resultado negativo. Esto se debe al tipo de corrección de canal usado. Loque hace esta corrección de canal es estimar a partir de las portadoras pilotorecibidas, la atenuación que estas sufrieron en cada símbolo OFDM y generar unfactor multiplicativo “vc(k)” para cancelar la atenuación de cada símbolo. Tenerpresente que por tratarse de un canal radio este puede variar con el tiempo, por loque los factores que corrigen a dos símbolos separados temporalmente, puedenser significativamente diferentes (dependiendo de las variaciones del canal). Verel algoritmo usado, en el apéndice de Matlab –programa “chancorr.m”-.

Conociendo como funciona el algoritmo de corrección de canal usado, esclaro que este dará mejores resultados en aquellos casos donde el nivel defading es mayor que el efecto producido por el ruido. Esto explica porque en loscasos 2) y 3) se obtienen beneficios al usar corrección de canal, mientras que enlos casos 1) y 4) no. La comparación de los casos 1) y 3) evidencia claramenteesto.

Page 29: Universidad de la República Facultad de Ingeniería Monografía de ...iie.fing.edu.uy/ense/asign/tes/materiales/monografias/Benigno... · introducir a las redes de área local inalámbricas,

Este resultado es una primer observación del impacto sobre el sistematotal de uno de los módulos previstos por el estándar. El comportamientorazonable de este módulo nos permite también una primer verificación delcorrecto comportamiento del sistema. Estas verificaciones son parte del procesode validación del simulador desarrollado.

A partir de este momento, en los ensayos siguientes estaremos usandosiempre el módulo “Channel correction”, ya que el mismo es parte del estándarque estamos considerando.

En el ensayo 3 se usa el módulo cancelador de ruido propuesto pero nose usa la codificación convolucional. En el ensayo 4 se usan ambos y en elensayo 5 se usa la codificación convolucional pero no el módulo cancelador deruido. Estos ensayos permiten ver que el mejor caso es aquel donde se usa elmódulo propuesto y la codificación convolucional.Comparando el ensayo 4 con el 5 se puede percibir el valor del módulocancelador de ruido propuesto (aunque sea en una situación muy ideal(v2=0.5*v1)). Por el momento esta situación ideal no nos molesta, ya queestamos todavía probando el simulador desarrollado. Una señal v2 como laconsiderada nos permite tener un resultado previsible, que nos permitirá verificarla coherencia del desempeño del simulador completo (todos los módulosfuncionando en conjunto).Comparando el ensayo 4 con el 3 se puede decir que el módulo propuesto noresta utilidad a la codificación convolucional, ya que los mejores resultados seobtuvieron cuando además de usar el módulo propuesto se usó estacodificación.

Ensayo 3:Ensayo realizado sin codificación convolucional –tampoco se usa Viterbi-,

con corrección del canal y con cancelación de ruido (algoritmo NLMS).El programa usado para realizar estas simulaciones fue “ensayo3”, el cual

–como ya se dijo- prevé que la señal (v2) correlacionada con el ruido (v1) seav2=0.5*v1. No es muy realista poder contar con una señal de estascaracterísticas, pero sirve para realizar las primeras pruebas del bloquecancelador de ruido. En ensayos posteriores optaremos por una señal v2 másrealista.

Como estamos aplicando el algoritmo NLMS, tendremos que realizaralgunas simulaciones previas, a los efectos de elegir convenientemente el valorde β .En este caso los resultados obtenidos para los siguientes valores de “n” y ”f”son:

Para β=1.5 (parámetro β del algoritmo NLMS) Con n=0.07 y f=0.96 se obtienen 451 errores y una BER=46.98% .

Page 30: Universidad de la República Facultad de Ingeniería Monografía de ...iie.fing.edu.uy/ense/asign/tes/materiales/monografias/Benigno... · introducir a las redes de área local inalámbricas,

Para β=0.3Con n=0.07 y f=0.96 se obtienen 148 errores y una BER=15.42% .

Para β=0.7Con n=0.07 y f=0.96 se obtienen 309 errores y una BER=32.19% .

Para β=0.1Con n=0.07 y f=0.96 se obtienen 27 errores y una BER=2.81%.

Para β=0.1 se obtuvo una mejora muy significativa. Se logró pasar deuna BER de 10.31% (Ensayo 2, caso 2)) a una BER de 2.81%. Esto en principioes un resultado muy alentador con respecto a la efectividad del módulocancelador de ruido.

Se podría seguir “afinando” el valor de β a los efectos de disminuir más el error.Por el momento dejamos esa tarea de lado y observamos el comportamiento delos 5 casos de prueba que estamos utilizando con un valor de β=0.1

1) Con n=0.1 y f=0.95 se obtienen 21 errores y una BER=2.19% .2) Con n=0.07 y f=0.96 se obtienen 27 errores y una BER=2.81% .3) Con n=0.05 y f=0.95 se obtienen 12 errores y una BER=1.25% .4) Con n=0.05 y f=0.98 se obtienen 3 errores y una BER=0.31% .5) Con n=0.01 y f=0.99 se obtienen 3 error y una BER=0.31% .

Los resultados obtenidos en los primeros cuatro casos son excelentes -loque era de esperar dado como se eligió v2-. El bloque de cancelación de ruidopropuesto disminuye muy significativamente la BER (comparar con losresultados del “Ensayo 1” y ”Ensayo 2”).Para el quinto caso, se obtuvo una leve desmejora. En este caso se estudiarondos subcasos: A) caso “casi” ideal con n=0.001 y f=0.999 usando β=0.1.

B) n=0.01, f=0.99 y beta=0.01 (cambiando el valor de β ).

A) Con n=0.001 y f=0.999 (beta=0.1)se obtienen 3 errores y una BER=0.31% .B) Con n=0.01 y f=0.99 (beta=0.01) se obtuvo 0 error y una BER=0% .

A) Evidencia que los errores que aparecen son un producto del módulo decancelación de errores, ya que en un caso casi ideal se mantiene lamisma BER.

B) Muestra que una elección del parámetro β adecuada (teniendo en cuentalas características del canal) elimina el problema que originalmenteobservamos para el caso 5).

Page 31: Universidad de la República Facultad de Ingeniería Monografía de ...iie.fing.edu.uy/ense/asign/tes/materiales/monografias/Benigno... · introducir a las redes de área local inalámbricas,

Por lo tanto se puede concluir (en función de los datos obtenidos) que:usando el bloque cancelador de ruido propuesto y teniendo cuidado en laelección del parámetro β (eligiéndolo de acuerdo al nivel de ruido ydesvanecimiento del canal), se pueden obtener excelentes resultados en lo quea la disminución de la BER se refiere.

Por lo visto hasta el momento el módulo de cancelación de ruido da muybuenos resultados en el sistema que no usa codificación convolucional nidecodificación con Algoritmo de Viterbi.

Lo que se explorará a continuación (ensayos 4 y 5), es si el módulocancelador de ruido mantiene su valor en el sistema cuando se usa lacodificación convolucional y la decodificación hecha con el algoritmo de Viterbi.O si por el contrario, el robustecimiento que estas técnicas aportan a latransmisión del mensaje hacen que el módulo de cancelación de ruido pierdaimportancia.

Para esto se realizará un “ensayo 4”, donde se usará la codificaciónconvolucional, la decodificación con Viterbi y el módulo cancelador de ruido.Luego se realizará un “ensayo 5”, en las mismas condiciones que el “ensayo 4”,salvo que no se usará el módulo cancelador de errores.Estos dos ensayos nos darán una idea bastante aproximada del “verdaderointerés” que puede tener el módulo cancelador de ruido (siempre teniendopresente el v2 elegido).

Por último a los efectos de tener una evaluación más realista de estemódulo, realizaremos el ensayo 6 y ensayo 7, equivalentes al ensayo 4 yensayo 5 respectivamente, con la diferencia de que la señal v2 que recibe elsegundo sensor (con cierto grado de correlación con v1) ya no será tan ideal. Eneste caso v2 será la señal v1 filtrada con un pasabajo, lo cual es una hipótesismás realista que la anterior.Por esta razón podrán considerarse los ensayos 6 y 7, como los quedefinitivamente evaluaran el impacto del módulo cancelador de ruido sobre unsistema basado el estándar IEEE802.11a.

Ensayo 4:Usando codificación convolucional (y decodificación usando Viterbi) y

módulo cancelador de ruido.β=0.1

1) Con n=0.1 y f=0.95 se obtienen 0 errores y una BER=0% .2) Con n=0.07 y f=0.96 se obtienen 0 errores y una BER=0% .3) Con n=0.05 y f=0.95 se obtienen 0 errores y una BER=0% .4) Con n=0.05 y f=0.98 se obtienen 0 errores y una BER=0% .5) Con n=0.01 y f=0.99 se obtienen 0 error y una BER=0% .

Page 32: Universidad de la República Facultad de Ingeniería Monografía de ...iie.fing.edu.uy/ense/asign/tes/materiales/monografias/Benigno... · introducir a las redes de área local inalámbricas,

Este resultado claramente es excelente, la introducción de la codificaciónconvolucional (prevista por el estándar) combinada con el módulo cancelador deruido produjo un resultado perfecto.

Volviendo a los resultados del ensayo 4, cabría preguntarnos si estosexcelentes resultados se deben en parte al módulo cancelador de ruidopropuesto o si son mérito exclusivo de la codificación convolucional (ydecodificación usando Viterbi). Para responder esta pregunta es que se realizael ensayo 5, donde se mantiene la codificación convolucional pero se quita elmódulo cancelador de ruido.

En la fig. 6.1 se muestran - para el caso 3)- en color azul, los primeros100 valores de la señal de ruido v1 que se suma en el canal y en color rojo, losprimeros 100 valores de la señal v2 (con cierto grado de correlación con v1) querecoge el segundo sensor y que usa como entrada el módulo cancelador deruido

0 10 20 30 40 50 60 70 80 90 100-0.2

-0.15

-0.1

-0.05

0

0.05

0.1

0.15Valores de v1 (azul) y v2(rojo)

n

v1[n

] (a

zul)

y v

2[n]

(ro

jo)

Fig. 6.1

La fig. 6.2 muestra la correlación cruzada entre v1 y v2 (primeros 100valores, en escala logarítmica).

Page 33: Universidad de la República Facultad de Ingeniería Monografía de ...iie.fing.edu.uy/ense/asign/tes/materiales/monografias/Benigno... · introducir a las redes de área local inalámbricas,

0 1 0 2 0 3 0 4 0 5 0 6 0 7 0 8 0 9 0 1 0 0-7

-6 .5

-6

-5 .5

-5

-4 .5

-4

-3 .5

-3

-2 .5Cor re l ac i ón c ruzada en t re v1 y v2 (esca la l oga r í tm i ca )

n

Co

rre

laci

ón

cru

zad

av1

v2 (l

og10

(rv1

v2))

Fig. 6.2

Ensayo 5:Este ensayo usa codificación convolucional (y decodificación usando

Viterbi) pero no usa el módulo cancelador de ruido.

1) Con n=0.1 y f=0.95 se obtienen 449 errores y una BER=46.77% .2) Con n=0.07 y f=0.96 se obtienen 392 errores y una BER=40.83% .3) Con n=0.05 y f=0.95 se obtienen 0 errores y una BER=0% .4) Con n=0.05 y f=0.98 se obtienen 0 errores y una BER=0% .5) Con n=0.01 y f=0.99 se obtienen 0 error y una BER=0% .

Los primeros dos casos llaman la atención ya que si observamos losresultados obtenidos en el ensayo 2 -sin codificación convolucional (ni algoritmode Viterbi), ni cancelación de ruido- aquellos fueron mejores. Sin embargo en elcaso 4) el uso de la codificación convolucional (y Viterbi) mejoraron los yabuenos resultados del ensayo 3 –sin codificación convolucional pero concancelación de ruido-. Este resultado para 1) y 2) resulta curioso y merecería seranalizado, pero realizar este análisis en este momento nos distraería del objetivoprincipal.Nuestro objetivo principal con este ensayo era verificar si al quitar el módulo decancelación de ruido propuesto los resultados se mantenían o empeoraban.Verificamos que los resultados empeoran, por lo cual podemos decir que partede los excelentes resultados obtenidos en el ensayo 4 se lo debemos al bloquecancelador de ruido propuesto.

Page 34: Universidad de la República Facultad de Ingeniería Monografía de ...iie.fing.edu.uy/ense/asign/tes/materiales/monografias/Benigno... · introducir a las redes de área local inalámbricas,

En esta primer etapa y habiendo trabajado con una señal v2 muy ideal,podemos afirmar básicamente dos cosas:

1) El sistema esta funcionado de una manera coherente. Se entiende quelos casos que llaman la atención son aceptables en sistemas de estegrado de complejidad.

2) Si la señal que recoge el segundo sensor, está suficientementecorrelacionada con el ruido, el bloque cancelador de ruido propuesto damuy buenos resultados (ver ensayo 3) y en combinación con la codificaciónconvolucional propia del estándar los resultados son inmejorables (verensayo 4).

Esta etapa la podemos considerar como una primer validación delsimulador desarrollado (“si v2 está suficientemente correlacionada con v1, todofunciona coherentemente”). Los ensayos realizados son también un primerindicio de que el sistema propuesto puede tener interés.

6.1.2.- Evaluación del módulo propuesto con una señal (v2)más realista

Lo que intentaremos hacer a partir de este punto, es evaluar al módulopropuesto en condiciones más reales, es decir con una señal v2 más cercana altipo de señal que se puede obtener.

Estos ensayos son los que definitivamente validarán o no la convenienciade agregar al estándar IEEE802.11a un módulo de cancelación de ruido a laentrada del receptor. En estos ensayos la señal v2 que toma el segundo sensores v1 pasada por un pasabajo, lo cual es un caso más cercano a la realidad queel que veníamos usando (v2=0.5*v1).

Ensayo 6:Usando codificación convolucional (y decodificación usando Viterbi) y

módulo cancelador de ruido.En este caso la señal v2 se obtiene a partir de pasar por un filtro pasabajo laseñal v1. En particular v2[n]=0.25*(v1[n-3]+v1[n-2]+v1[n-1]+v1[n]).

Primero se realizó el ensayo para β=0.1 y se obtuvieron los siguientesresultados.1) Con n=0.1 y f=0.95 se obtienen 462 errores y una BER= 48.12% .2) Con n=0.07 y f=0.96 se obtienen 433 errores y una BER= 45.10% .3) Con n=0.05 y f=0.95 se obtienen 324 errores y una BER= 33.75% .4) Con n=0.05 y f=0.98 se obtienen 200 errores y una BER= 20.83% .5) Con n=0.01 y f=0.99 se obtienen 0 error y una BER= 0% .

Page 35: Universidad de la República Facultad de Ingeniería Monografía de ...iie.fing.edu.uy/ense/asign/tes/materiales/monografias/Benigno... · introducir a las redes de área local inalámbricas,

Dado que estos resultados son bastante malos se probó con un valor deβ=0.05, ya que se llegó a la conclusión de que el valor de β del algoritmoNLMS era demasiado grande. En este caso los resultados que se obtuvieronfueron:

1) Con n=0.1 y f=0.95 se obtienen 479 errores y una BER= 49.90% .2) Con n=0.07 y f=0.96 se obtienen 279 errores y una BER= 29.06% .3) Con n=0.05 y f=0.95 se obtienen 0 errores y una BER= 0% .4) Con n=0.05 y f=0.98 se obtienen 0 errores y una BER= 0% .5) Con n=0.01 y f=0.99 se obtienen 0 error y una BER= 0% .

Resultados que están mucho mejor. Observar que si bien el caso 1)empeora un poco con respecto al caso 1) del ensayo 5), el caso 2) mejoramucho con respecto al caso 2) del ensayo 5). Por lo cual podemos considerarpositivo el uso del cancelador de ruido (en la medida que se use un valor de βadecuado).

En la fig. 6.3 se muestra en color azul la señal de ruido v1 que se sumaen el canal y en color rojo la señal v2 (con cierto grado de correlación con v1)que recoge el segundo sensor y que usa como entrada en el módulo canceladorde ruido, para el caso 3) con β=0.05. Se grafican los primeros 100 valores aefectos de que la señal se pueda visualizar mejor.

0 10 20 30 40 50 60 70 80 90 100-0.15

-0.1

-0.05

0

0.05

0.1Valores de v1 (azul) y v2(rojo)

n

v1[n

] (a

zul)

y v

2[n]

(ro

jo)

Fig. 6.3

Page 36: Universidad de la República Facultad de Ingeniería Monografía de ...iie.fing.edu.uy/ense/asign/tes/materiales/monografias/Benigno... · introducir a las redes de área local inalámbricas,

La fig. 6.4 muestra la correlación cruzada entre v1 y v2 (primeros 100valores), también para el caso 3) con β=0.05.

0 10 20 30 40 50 60 70 80 90 100-6.5

-6

-5.5

-5

-4.5

-4

-3.5

-3Correlación cruzada entre v1 y v2 (escala logarítmica)

n

Cor

rela

ción

cru

zada

v1 v

2 (lo

g10(

rv1v

2))

Fig. 6.4

A continuación realizamos un ensayo en las mismas condiciones que enel ensayo 6 solo que sin usar el módulo cancelador de ruido.

Ensayo 7:Este ensayo usa codificación convolucional (y decodificación usando

Viterbi) pero no usa el módulo cancelador de ruido.

Observar que las condiciones del ensayo 7 son exactamente las mismasque la del ensayo 5, por lo que se podrían usar estos datos. De cualquier modoharemos nuevamente las simulaciones de forma de obtener más datos antes deintentar extraer una conclusión.

1) Con n=0.10 y f=0.95 se obtienen 485 errores y una BER= 50.52% .2) Con n=0.07 y f=0.96 se obtienen 487 errores y una BER= 50.73% .3) Con n=0.05 y f=0.95 se obtienen 0 errores y una BER= 0% .4) Con n=0.05 y f=0.98 se obtienen 269 errores y una BER= 28.02% .5) Con n=0.01 y f=0.99 se obtienen 0 error y una BER= 0% .

Page 37: Universidad de la República Facultad de Ingeniería Monografía de ...iie.fing.edu.uy/ense/asign/tes/materiales/monografias/Benigno... · introducir a las redes de área local inalámbricas,

Observando estos resultados se vuelve a comprobar que la utilización delmódulo cancelador de ruido propuesto es beneficioso para el sistema.

A los efectos de reforzar la conclusión que nos señala el ensayo 6,realizamos un ensayo similar a este cambiando el filtro pasabajo.

Ensayo 8:Usando codificación convolucional (y decodificación usando Viterbi) y

módulo cancelador de ruido.En este caso la señal v2 se obtiene a partir de pasar por un filtro pasabajo laseñal v1. En particular v2[n]=0.5*(v1[n-1]+v1[n]).

Para β=0.1.1) Con n=0.10 y f=0.95 se obtienen 488 errores y una BER= 50.83% .2) Con n=0.07 y f=0.96 se obtienen 438 errores y una BER= 45.63% .3) Con n=0.05 y f=0.95 se obtienen 0 errores y una BER= 0% .4) Con n=0.05 y f=0.98 se obtienen 0 errores y una BER= 0% .5) Con n=0.01 y f=0.99 se obtienen 0 error y una BER= 0% .

Para β=0.05.1) Con n=0.10 y f=0.95 se obtienen 499 errores y una BER= 51.98% .2) Con n=0.07 y f=0.96 se obtienen 0 errores y una BER= 0% .3) Con n=0.05 y f=0.95 se obtienen 0 errores y una BER= 0% .4) Con n=0.05 y f=0.98 se obtienen 0 errores y una BER= 0% .5) Con n=0.01 y f=0.99 se obtienen 0 error y una BER= 0% .

Comparando estos últimos resultados (para β=0.05) con los del ensayo 7se vuelve a comprobar que el módulo cancelador de ruido propuesto introducemejoras apreciables.

En la gráfica 6.5 se muestran, para el caso 3) con β=0.05 , los primeros100 valores del ruido que se introduce en el canal (v1, azul) y la señal con ciertogrado de correlación con v1 que recoge el segundo sensor (v2, rojo).

Page 38: Universidad de la República Facultad de Ingeniería Monografía de ...iie.fing.edu.uy/ense/asign/tes/materiales/monografias/Benigno... · introducir a las redes de área local inalámbricas,

0 10 20 30 40 50 60 70 80 90 100-0.2

-0.15

-0.1

-0.05

0

0.05

0.1

0.15Valores de v1 (azul) y v2(rojo)

n

v1[n

] (a

zul)

y v

2[n]

(ro

jo)

Fig. 6.5

Gráfica de los primeros 100 valores de la correlación cruzada entre v1 yv2 para el caso 3) con β=0.05.

0 10 20 30 40 50 60 70 80 90 1 0 0-6.5

-6

-5.5

-5

-4.5

-4

-3.5

-3

-2.5Corre lac ión cruzada ent re v1 y v2 (esca la logar í tmica)

n

Cor

rela

ción

cru

zada

v1v2

(log

10(r

v1v2

))

Fig. 6.6

Page 39: Universidad de la República Facultad de Ingeniería Monografía de ...iie.fing.edu.uy/ense/asign/tes/materiales/monografias/Benigno... · introducir a las redes de área local inalámbricas,

6.2.- Ensayos realizados para ruido coloreado y canal condesvanecimiento

Por último se probará la efectividad del módulo propuesto trabajando conruido coloreado y no ya con ruido blanco. El sistema que se usará para obtenereste nuevo tipo de ruido es:

randn(1,ls)

v1[n] v2[n]

Fig. 6.7

Ensayo 9:Usando codificación convolucional (y decodificación usando Viterbi) y

módulo cancelador de ruido.En este caso la señal v2 se obtiene a partir de pasar por un filtro pasabajo laseñal v1. En particular v2[n]=0.5*(v1[n-1]+v1[n]).La señal v1[n] ya no es ruido blanco gaussiano sino que se obtuvo del siguientemodo: v1[n]=0.25*(v0[n-3]+v0[n-2]+v0[n-1]+v0[n]). Donde v0[n] fue obtenida apartir de la función randn(1,ls).

Para β=0.05.1) Con n=0.10 y f=0.95 se obtienen 0 errores y una BER= 0%.2) Con n=0.07 y f=0.96 se obtienen 0 errores y una BER= 0%.3) Con n=0.05 y f=0.95 se obtienen 0 errores y una BER= 0%.4) Con n=0.05 y f=0.98 se obtienen 0 errores y una BER= 0%.5) Con n=0.01 y f=0.99 se obtienen 0 error y una BER= 0%.

El resultado es perfecto, se obtiene cero error en todos los caso.Solo restará verificar que si se deja de usar el módulo cancelador de ruido elresultado empeora. A estos efectos es que se realiza el ensayo 10.

La fig. 6.8 muestra, para el caso 3), los primeros 100 valores del ruido v1que introduce el canal y la señal v2 que recibe el sensor 2 (señal que como yase vio se usa como entrada en el bloque cancelador de ruido).

Lpfil1 Lpfil2

Page 40: Universidad de la República Facultad de Ingeniería Monografía de ...iie.fing.edu.uy/ense/asign/tes/materiales/monografias/Benigno... · introducir a las redes de área local inalámbricas,

0 1 0 2 0 3 0 4 0 5 0 6 0 7 0 8 0 9 0 1 0 0-0 .25

-0 .2

-0 .15

-0 .1

-0 .05

0

0 .05

0 .1

0 .15Va lores de v1 (azu l ) y v2( ro jo )

n

v1[n

] (a

zul)

y v

2[n]

(ro

jo)

Fig. 6.8

La fig. 6.9 muestra los primeros 100 valores de la correlación cruzadaentre v1 y v2 graficada en escala logarítmica.

0 10 20 30 40 50 60 70 80 90 1 0 0-6.5

-6

-5.5

-5

-4.5

-4

-3.5

-3

-2.5Correlación cruzada entre v1 y v2 (escala logarí tmica)

n

Cor

rela

ción

cru

zada

v1 v2

(log1

0(rv

1v2)

)

Fig. 6.9

Page 41: Universidad de la República Facultad de Ingeniería Monografía de ...iie.fing.edu.uy/ense/asign/tes/materiales/monografias/Benigno... · introducir a las redes de área local inalámbricas,

Ahora verifico que la situación sin el bloque cancelador de ruido empeora.Por lo demás la situación es la misma, se usa el mismo ruido coloreado delensayo 9.

Ensayo 10:Ensayo realizado en las mismas condiciones que el ensayo 9, salvo que

no se usa el modulo cancelador de ruido propuesto.

1) Con n=0.10 y f=0.95 se obtienen 324 errores y una BER= 33.75%.2) Con n=0.07 y f=0.96 se obtienen 0 errores y una BER= 0%.3) Con n=0.05 y f=0.95 se obtienen 0 errores y una BER= 0%.4) Con n=0.05 y f=0.98 se obtienen 0 errores y una BER= 0%.5) Con n=0.01 y f=0.99 se obtienen 0 error y una BER= 0%.

Se verifica que al prescindir del módulo cancelador de ruido los resultadosempeoran.

7.- Conclusiones

En la medida que se pueda elegir correctamente el parámetro β del filtroNLMS que se usa como módulo cancelador de ruido, el resultado que produce elagregado de este módulo al estándar IEEE802.11a es beneficioso.

Frente a la detección de un aumento de la tasa de error debido a uncambio en las condiciones del canal, se podría recuperar el buen desempeño delsistema corriendo un proceso de ajuste del parámetro β .

Se observa que la combinación del uso de la codificación convolucional (ydecodificación con Viterbi) y el módulo cancelador de ruido propuesto produceexcelentes resultados (ver ensayos 4 y 9).

Está claro que para validar los resultados obtenidos deberían realizarseun número de pruebas mucho mayor y en condiciones diversas; por ejemploprobar que es lo que sucede cuando el canal adiciona ráfagas (burst) deinterferencia. Estos ensayos quedan fuera del alcance de este trabajo,desarrollándose quizás en futuros trabajos sobre este tema.

Page 42: Universidad de la República Facultad de Ingeniería Monografía de ...iie.fing.edu.uy/ense/asign/tes/materiales/monografias/Benigno... · introducir a las redes de área local inalámbricas,

Apéndice A: Lista de acrónimos

AWGN Additive White Gaussian Noise

BER Bit Error Rate

CP Cyclic Prefix

ICI Inter Carrier Interference

ISI Inter Symbolic Interference

IEEE Institute of Electrical an Electronic Engineers

MIMO Multiple Input Multiple Output

NLMS Normalized Least Mean Square

OFDM Orthogonal Frequency Division Multiplexing

WLAN Wireless Local Area Network

Apéndice B: Glosario

IEEE 802.11a

Protocolo de comunicaciones inalámbricas, que opera a frecuencias de5GHz, utiliza multiplexación OFDM (Orthogonal Frequency DivisionMultiplexing) en transmisión y ofrece una velocidad téorica de hasta 54Mbit/s.Como mecanismo de acceso al medio utiliza un algoritmo basado enCSMA/CA (Carrier Sense Multiple Access with Collision Avoidance).

Interleaving

Proceso por el cual se reubican los bits antes de ser transmitidos, a losefectos de que una ráfaga de interferencia no dañe a varios bits de unamisma palabra, lo cual suele ser un error irreparable para los algoritmoscorrectores de errores.

Page 43: Universidad de la República Facultad de Ingeniería Monografía de ...iie.fing.edu.uy/ense/asign/tes/materiales/monografias/Benigno... · introducir a las redes de área local inalámbricas,

Bibliografía

[1] Monson H. Hayes, “Statistical Digital Signal Processing and Modeling”,John Wiley & Sons, Inc., 1996. ISBN 0-471 59431-8.

[2] Juha Heiskala and John Terry, “OFDM Wireless LANs: A Theoretical andPractical Guide”, SAMS Publishing, 2002. ISBN: 0-672-32157-2.

[3] IEEE Std 802.11a – 1999 (Supplement to IEEE Std 802.11 - 1999).

[4] Ove Edfors, Margnus Sandell, Jan Jaap van de Beek, Daniel Landström yFrank Sjöberg, “An introduction to orthogonal frequency-divisionmultiplexing”, disponible en: http://www.sm.luth.se/csee/sp/publications/,1996.

[5] J. A. C. Bingham. Multicarrier modulation for data transmission: An ideawhose time has come. IEEE Commun. Mag., 28(5):4-14, May. 1990.

[6] Shu Lin, Daniel J. Costello, Jr., “Error Control Coding: Fundamentals andApplications”, Prentice Hall, 1983. ISBN: 0-13-283796-X.

[7] Bernard Sklar, “Digital Communications, Fundamentals and Applications”,Prentice Hall, 1988. ISBN: 0-13-211939-0 025.

Page 44: Universidad de la República Facultad de Ingeniería Monografía de ...iie.fing.edu.uy/ense/asign/tes/materiales/monografias/Benigno... · introducir a las redes de área local inalámbricas,

APENDICE DE MATLAB

En este documento se recopilan todas las funciones y programas que sedesarrollaron a los efectos de realizar las simulaciones.

Indice

BeraBsourceChancorrChannel1Channel2Channel3Channel4ConencCpedemuxDeinterDemodDescramDft64Ensayo1Ensayo2Ensayo3Ensayo4Ensayo5 y 7Ensayo6Ensayo8Ensayo9Ensayo10Lpfilt1

Lpfilt2Idft64InterLpfilt1Lpfilt2ModulatorMuxMuxcpNoca1Nosa1PilotinPilotremReceiverReceiver1Receiver2Receiver3Receiver4Receiver5ScramTransmitterTransmitter1Transmitter2Viterbi

Bera% BER analyzer%% Analiza el Bit Error Rate.%% Calculo del BER (Bit Error Rate) %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%function [ber] = bera(m,mr)%% Cuento los errores de bits ocurridos, comparando el mensaje% con el mensaje recibido.e=xor(m,mr);ne=sum(e);%disp('El número de errores ocurridos es: ')nedisp('La tasa de error (BER) es: ')

Page 45: Universidad de la República Facultad de Ingeniería Monografía de ...iie.fing.edu.uy/ense/asign/tes/materiales/monografias/Benigno... · introducir a las redes de área local inalámbricas,

l=length(m);ber=100*(ne/l);%

Bsource% Binary Source%% Genera un vector de tamaño n conteniendo "0" y "1"% de forma aleatoria.%function [bs] = bsource(l)%for n = 1:l,

a = randn;if a > 0bs(n) = 1;elsebs(n) = 0;end

end%

Chancorr% Channel Correction%% A partir de las portadoras recibidas, estima el canal y corrige los% datos recibidos según esta estimación.%function [crvsym] = chancorr(rvsym, p8, p22, p44, p58)% Utilizo el mismo factor de corrección para todas las portadoras de la idft.% Considero que el canal puede variar durante la transmisión de los datos.%% Obtengo el estimador ("en función de t").p=(p8+p22+p44+p58)/4;%% Obtengo el vector de corrección que se usará.vc=2./p% (2 era el valor de las portadoras insertadas)% Realizo la correcciónlvc=length(vc);for n = 1:lvc crvsym(:,n)=rvsym(:,n)*vc(n);end

Channel1% Channel1%% Simula el canal. Toma la secuencia de salida del transmisor s[k]% y entrega una secuencia de entrada al receptor r[k].%function [r] = channel1(s)% Este canal, es un canal ideal donde r=s.r=s%

Page 46: Universidad de la República Facultad de Ingeniería Monografía de ...iie.fing.edu.uy/ense/asign/tes/materiales/monografias/Benigno... · introducir a las redes de área local inalámbricas,

Channel2% Channel2%% Simula el canal. Toma la secuencia de salida del transmisor s[k]% y entrega una secuencia de entrada al receptor r[k].%% En este caso el canal es un canal con fading plano y ruido blanco% gaussiano aditivo.%function [r] = channel2(s)ls=length(s);a=input('Ingrese la amplitud del ruido blanco gaussiano aditivo (0-1)')awgn=a*randn(1,ls);f=input('Ingrese el valor de fading del canal (0-1)')r=s*f+awgn;%

Channel3% Channel3%% Simula el canal. Toma la secuencia de salida del transmisor s[k]% y entrega una secuencia de entrada al receptor r[k] y el ruido aditivo v1[k]% que se agregó al canal.%% En este caso el canal es un canal con fading plano y ruido blanco% gaussiano aditivo.%function [r, v1] = channel3(s)ls=length(s);a=input('Ingrese la amplitud del ruido blanco gaussiano aditivo (0-1)')awgn=a*randn(1,ls);f=input('Ingrese el valor de fading del canal (0-1)')r=s*f+awgn;v1=awgn;%

Channel4% Channel 4%% Simula el canal. Toma la secuencia de salida del transmisor s[k]% y entrega una secuencia de entrada al receptor r[k] y el ruido aditivo v1[k]% que se agregó al canal.%% En este caso el canal es un canal con fading plano y ruido blanco% gaussiano aditivo.%function [r, v1] = channel4(s)ls=length(s);a=input('Ingrese la amplitud del ruido blanco gaussiano aditivo (0-1)')awgn=a*randn(1,ls);f=input('Ingrese el valor de fading del canal (0-1)')[v1, rxy]=lpfilt1(awgn)r=s*f+v1;%

Page 47: Universidad de la República Facultad de Ingeniería Monografía de ...iie.fing.edu.uy/ense/asign/tes/materiales/monografias/Benigno... · introducir a las redes de área local inalámbricas,

Conenc% Convolutional Encoder%% Codificador Convolucional, realiza una codificación de canal% que robustece la transmisión (disminuye la BER)%function [fpn] = conenc(f)d1=0;d2=0;d3=0;d4=0;d5=0;d6=0;l=length(f);for n = 1:l,

fp3=xor(d2,f(n));fp2=xor(d3,fp3);fp1=xor(d5,fp2);fpn(2*n-1)=xor(d6,fp1);fi3=xor(d1,f(n));fi2=xor(d2,fi3);fi1=xor(d3,fi2);fpn(2*n)=xor(d6,fi1);d6=d5;d5=d4;d4=d3;d3=d2;d2=d1;d1=f(n);

end%

Cpedemux% CP elimination and Demultiplexor%% Elimina el prefijo cíclico y demultiplexa.%function [tvsym] = cpedemux(r,ls,ncp)lr=length(r);nf=ls;nc=lr/(ls+ncp);for c = 1:nc, tvsym(1:64,c)=r((nf+ncp)*(c-1)+ncp+1:(nf+ncp)*(c-1)+ncp+64).';end%

Deinter% Deinterleaver%% Recompone el orden de transmisión de los bits, alterado% por el proceso de Interleaver.%function [sd] = deinter(isd,p)

Page 48: Universidad de la República Facultad de Ingeniería Monografía de ...iie.fing.edu.uy/ense/asign/tes/materiales/monografias/Benigno... · introducir a las redes de área local inalámbricas,

y=8;x=p/y;lisd=length(isd);% Los datos que falten para rellenar la última matriz% del proceso se completarán con ceros.na=ceil(lisd/p);lisdc=na*p;if lisdc>lisd, for n = (lisd+1):lisdc, isd(n)=0;

endenda=1;for k = 0:na-1,

% Escriturafor j = 1:y,

for i = 1:x,RM(j,i)=isd(a);a=a+1;

endend% Lecturab=1;for i = 1:x,

for j = 1:y,sd(k*p+b)=RM(j,i);b=b+1;

endend

end%

Demod% Demodulator%% Realiza una demodulación QPSK.%function [dms] = demod(ms)l=length(ms);% pc es punto de la constelaciónpc1=1;pc2=j;pc3=-1;pc4=-j;for n = 1:l, pc=ms(n); a(1)=abs(pc-pc1); a(2)=abs(pc-pc2); a(3)=abs(pc-pc3); a(4)=abs(pc-pc4); ma=min(a); if ma==a(1) dms(2*n-1)=0; dms(2*n)=0; elseif ma==a(2) dms(2*n-1)=0;

Page 49: Universidad de la República Facultad de Ingeniería Monografía de ...iie.fing.edu.uy/ense/asign/tes/materiales/monografias/Benigno... · introducir a las redes de área local inalámbricas,

dms(2*n)=1; elseif ma==a(3) dms(2*n-1)=1; dms(2*n)=1; elseif ma==a(4) dms(2*n-1)=1; dms(2*n)=0; else sprintf('El punto de la constelación número: %d no fue reconocido.',n) endend%

Descram% Descrambler%% Deshace la Pseudoaleatorización de los datos para evitar largas% secuencias de "0" o "1".%function [ds] = descram(s)x=0;y=0;z=0;l=length(s);for n = 1:l,

a=xor(y,z);ds(n)=xor(s(n),a);z=y;y=x;x=s(n);

end%

Dft64% DFT64%% Realiza la DFT de largo 64.%function [vsym] = dft64(tvsym)[nf,nc]=size(tvsym)for c = 1:nc, a=fft(tvsym(:,c)) vsym(:,c)=a(1:64)end

Ensayo1% Ensayo1%% Sintetiza un ensayo; llama al programa "transmitter1" (que realiza todo% los procesamientos correspondientes al transmisor), luego llama al programa% "channel2" (que simula al canal, afectando a la secuencia transmitida como lo% haría este), luego llama al programa "receiver1" (el que realiza todos los% procesos necesarios para obtener el mensaje). Por último llama al programa% "bera", el que analiza la tasa de error correspondiente al ensayo realizado.

Page 50: Universidad de la República Facultad de Ingeniería Monografía de ...iie.fing.edu.uy/ense/asign/tes/materiales/monografias/Benigno... · introducir a las redes de área local inalámbricas,

%transmitter1;r=channel2(ssym);receiver1;ber=bera(d,rd)

Ensayo2% Ensayo2%% Sintetiza un ensayo; llama al programa "transmitter1" (que realiza todo% los procesamientos correspondientes al transmisor), luego llama al programa% "channel2" (que simula al canal, afectando a la secuencia transmitida como lo% haría este), luego llama al programa "receiver1" (el que realiza todos los% procesos necesarios para obtener el mensaje). Por último llama al programa% "bera", el que analiza la tasa de error correspondiente al ensayo realizado.%transmitter1;r=channel2(ssym);receiver2;ber=bera(d,rd)

Ensayo3% Ensayo 3%% Sintetiza un ensayo; llama al programa "transmitter1" (que realiza todo% los procesamientos correspondientes al transmisor), luego llama al programa% "channel3" (que simula al canal, afectando a la secuencia transmitida como lo% haría este), luego llama al programa "receiver3" (el que realiza todos los% procesos necesarios para obtener el mensaje). Por último llama al programa% "bera", el que analiza la tasa de error correspondiente al ensayo realizado.%transmitter1;[r, v1]=channel3(ssym);v2=nosa1(v1);receiver3;ber=bera(d,rd)

Ensayo4% Ensayo 4%% Sintetiza un ensayo; llama al programa "transmitter2" (que realiza todo% los procesamientos correspondientes al transmisor), luego llama al programa% "channel3" (que simula al canal, afectando a la secuencia transmitida como lo% haría este), luego llama al programa "receiver4" (el que realiza todos los% procesos necesarios para obtener el mensaje). Por último llama al programa% "bera", el que analiza la tasa de error correspondiente al ensayo realizado.%transmitter2;[r, v1]=channel3(ssym);[v2, rv1v2]=nosa1(v1);receiver4;ber=bera(d,rd)

Page 51: Universidad de la República Facultad de Ingeniería Monografía de ...iie.fing.edu.uy/ense/asign/tes/materiales/monografias/Benigno... · introducir a las redes de área local inalámbricas,

Ensayo5% Ensayo 5 y 7%% Sintetiza un ensayo; llama al programa "transmitter2" (que realiza todo% los procesamientos correspondientes al transmisor), luego llama al programa% "channel3" (que simula al canal, afectando a la secuencia transmitida como lo% haría este), luego llama al programa "receiver5" (el que realiza todos los% procesos necesarios para obtener el mensaje). Por último llama al programa% "bera", el que analiza la tasa de error correspondiente al ensayo realizado.%transmitter2;[r, v1]=channel3(ssym);receiver5;ber=bera(d,rd)

Ensayo6% Ensayo 6%% Sintetiza un ensayo; llama al programa "transmitter2" (que realiza todo% los procesamientos correspondientes al transmisor), luego llama al programa% "channel3" (que simula al canal, afectando a la secuencia transmitida como lo% haría este), luego llama a la función "lpfilt1" que produce una señal% v2 fuertemente correlacionada con v1, que será usada por el módulo cancelador% de ruido.% A continuación se llama al programa "receiver4" (el que realiza todos los% procesos necesarios para obtener el mensaje). Por último se llama al programa% "bera", el que analiza la tasa de error correspondiente al ensayo realizado.%transmitter2;[r, v1]=channel3(ssym);[v2, rxy]=lpfilt1(v1);receiver4;ber=bera(d,rd)

Ensayo8% Ensayo 8%% Sintetiza un ensayo; llama al programa "transmitter2" (que realiza todo% los procesamientos correspondientes al transmisor), luego llama al programa% "channel3" (que simula al canal, afectando a la secuencia transmitida como lo% haría este), luego llama a la función "lpfilt2" que produce una señal% v2 fuertemente correlacionada con v1, que será usada por el módulo cancelador% de ruido.% A continuación se llama al programa "receiver4" (el que realiza todos los% procesos necesarios para obtener el mensaje). Por último se llama al programa% "bera", el que analiza la tasa de error correspondiente al ensayo realizado.%transmitter2;[r, v1]=channel3(ssym);[v2, rxy]=lpfilt2(v1);receiver4;ber=bera(d,rd)

Page 52: Universidad de la República Facultad de Ingeniería Monografía de ...iie.fing.edu.uy/ense/asign/tes/materiales/monografias/Benigno... · introducir a las redes de área local inalámbricas,

Ensayo9% Ensayo 9%% Sintetiza un ensayo; llama al programa "transmitter2" (que realiza todo% los procesamientos correspondientes al transmisor), luego llama al programa% "channel4" (que simula al canal, afectando a la secuencia transmitida como lo% haría este), luego llama a la función "lpfilt2" que produce una señal% v2 fuertemente correlacionada con v1, que será usada por el módulo cancelador% de ruido.% A continuación se llama al programa "receiver4" (el que realiza todos los% procesos necesarios para obtener el mensaje). Por último se llama al programa% "bera", el que analiza la tasa de error correspondiente al ensayo realizado.%transmitter2;[r, v1]=channel4(ssym);[v2, rxy]=lpfilt2(v1);receiver4;ls=length(ssym);aux=1:1:ls;hold offplot(aux,ssym,'-b')hold onplot(aux,rc,'-r')title('s[k] y rc[k]')xlabel('n')ylabel('s[k] y rc[k]')%pauseber=bera(d,rd)ber1=bera(d(1:480),rd(1:480))ber2=bera(d(481:960),rd(481:960))

Ensayo10% Ensayo 10%% Sintetiza un ensayo; llama al programa "transmitter2" (que realiza todo% los procesamientos correspondientes al transmisor), luego llama al programa% "channel4" (que simula al canal, afectando a la secuencia transmitida como lo% haría este).% A continuación se llama al programa "receiver5" (el que realiza todos los% procesos necesarios para obtener el mensaje). Por último se llama al programa% "bera", el que analiza la tasa de error correspondiente al ensayo realizado.% Este ensayo no usa el bloque cancelador de ruido propuesto.%transmitter2;[r, v1]=channel4(ssym);receiver5;ber=bera(d,rd)ber1=bera(d(1:480),rd(1:480))ber2=bera(d(481:960),rd(481:960))

Lpfilt1% Low Pass Filter 1%% Implementa un filtro pasabajo y calcula la correlación cruzada entre

Page 53: Universidad de la República Facultad de Ingeniería Monografía de ...iie.fing.edu.uy/ense/asign/tes/materiales/monografias/Benigno... · introducir a las redes de área local inalámbricas,

% la señal de entrada y la señal de salida.% Este filtro pasabajo sería el segundo sensor en nuestro esquema. Lo que% pretende es tomar una señal lo suficientemente correlacionada con el ruido,% a los efectos de usarla en el bloque cancelador de ruido.%%% Realizo el filtrado (pasabajo)function [y, rxy] = lpfilt1(x)%% Implemento un filtro pasabajo donde cada valor resulta del promedio% realizado entre el valor actual y los tres anteriores.%% El largo de x debe ser mayor o igual a cuatro.lx=length(x);y(1)=x(1);y(2)=0.5*(x(2)+x(1));y(3)=0.3333*(x(3)+x(2)+x(1));for n = 4:lx, y(n)=0.25*(x(n)+x(n-1)+x(n-2)+x(n-3));end%% Calculo la correlación cruzada entre x[n] e y[n].for k=0:lx-1, suma=0; for n = 0:lx-1, if n-k>=0

suma=suma+x(n+1)*y(n+1-k); end end% El vector rxy comienza en rxy(1), Matlab no admite rxy(0).

rxy(k+1)=suma/lx; endhold offaux=0:1:99;plot(aux,x(1:100),'-b')hold onplot(aux,y(1:100),'-r')title('Valores de v1 (azul) y v2(rojo)')xlabel('n')ylabel('v1[n] (azul) y v2[n] (rojo)')pausehold offplot(aux,log10(rxy(1:100)),'-g')title('Correlación cruzada entre v1 y v2 (escala logarítmica)')xlabel('n')ylabel('Correlación cruzada_v1_v2 (log10(rv1v2))')%

Lpfilt2% Low Pass Filter 2%% Implementa un filtro pasabajo y calcula la correlación cruzada entre% la señal de entrada y la señal de salida.% Este filtro pasabajo sería el segundo sensor en nuestro esquema. Lo que% pretende es tomar una señal lo suficientemente correlacionada con el ruido,% a los efectos de usarla en el bloque cancelador de ruido.

Page 54: Universidad de la República Facultad de Ingeniería Monografía de ...iie.fing.edu.uy/ense/asign/tes/materiales/monografias/Benigno... · introducir a las redes de área local inalámbricas,

%% Realizo el filtrado (pasabajo)function [y, rxy] = lpfilt2(x)%% Implemento un filtro pasabajo donde cada valor resulta del promedio% realizado entre el valor actual y los tres anteriores.%% El largo de x debe ser mayor o igual a cuatro.lx=length(x);y(1)=x(1);for n = 2:lx, y(n)=0.5*(x(n)+x(n-1));end%% Calculo la correlación cruzada entre x[n] e y[n].for k=0:lx-1, suma=0; for n = 0:lx-1, if n-k>=0

suma=suma+x(n+1)*y(n+1-k); end end% El vector rxy comienza en rxy(1), Matlab no admite rxy(0).

rxy(k+1)=suma/lx;endhold offaux=0:1:99;plot(aux,x(1:100),'-b')hold onplot(aux,y(1:100),'-r')title('Valores de v1 (azul) y v2(rojo)')xlabel('n')ylabel('v1[n] (azul) y v2[n] (rojo)')pausehold offplot(aux,log10(rxy(1:100)),'-g')title('Correlación cruzada entre v1 y v2 (escala logarítmica)')xlabel('n')ylabel('Correlación cruzada_v1_v2 (log10(rv1v2))')%

Idft64% IDFT64%% Realiza la IDFT de largo 64.%%function [tvsym] = idft64(vsym)[nf,nc]=size(vsym);for c = 1:nc, a=ifft(vsym(:,c)); tvsym(:,c)=a(1:64);end

Page 55: Universidad de la República Facultad de Ingeniería Monografía de ...iie.fing.edu.uy/ense/asign/tes/materiales/monografias/Benigno... · introducir a las redes de área local inalámbricas,

Inter% Interleaver%% Altera el orden de transmisión de los bits, para separar% en el tiempo bits consecutivos a los efectos de que una% ráfaga de interferencia no dañe varios bits de una% misma palabra (cosa que los códigos de corrección de% errores no podrían reparar).%function [fi] = inter(f,p)y=8;x=p/y;lf=length(f);% Los datos que falten para rellenar la última matriz% del proceso se completarán con ceros.na=ceil(length(f)/p);lfc=na*p;if lfc>lf, for n = (lf+1):lfc, f(n)=0;

endenda=1;for k = 0:na-1,

% Escriturafor i = 1:x,

for j = 1:y,M(j,i)=f(a);a=a+1;

endend% Lecturab=1;for j = 1:y,

for i = 1:x,fi(k*p+b)=M(j,i);b=b+1;

endend

end%

Lpfilt1% Low Pass Filter%% Implementa un filtro pasabajo y calcula la correlación cruzada entre% la señal de entrada y la señal de salida.% Este filtro pasabajo sería el segundo sensor en nuestro esquema. Lo que% pretende es tomar una señal lo suficientemente correlacionada con el ruido,% a los efectos de usarla en el bloque cancelador de ruido.%%% Realizo el filtrado (pasabajo)function [y, rxy] = lpfilt1(x,s)%

Page 56: Universidad de la República Facultad de Ingeniería Monografía de ...iie.fing.edu.uy/ense/asign/tes/materiales/monografias/Benigno... · introducir a las redes de área local inalámbricas,

% Implemento un filtro pasabajo donde cada valor resulta del promedio% realizado entre el valor actual y los tres anteriores.% El parámetro "s" determina la amplitud de la señal "y" que recoge el% segundo sensor (una especie de potenciómetro aplicado al segundo sensor).%% El largo de x debe ser mayor o igual a cuatro.lx=length(x);y(1)=x(1);y(2)=0.5*x(2)+0.5*x(1);y(3)=0.3333*x(3)+0.3333*x(2)+0.3333*x(1);for n = 4:lx, y(n)=0.25*x(n)+0.25*x(n-1)+0.25*x(n-2)+0.25*x(n-3);endy=s*y;%% Calculo la correlación cruzada entre x[n] e y[n].for k=0:lx-1, suma=0; for n = 0:lx-1, if n-k>=0

suma=suma+x(n+1)*y(n+1-k); end end% El vector rxy comienza en rxy(1), Matlab no admite rxy(0).

rxy(k+1)=suma/lx;endhold offaux=0:1:99;plot(aux,x(1:100),'-b')hold onplot(aux,y(1:100),'-r')title('Valores de v1 (azul) y v2(rojo)')xlabel('n')ylabel('v1[n] (azul) y v2[n] (rojo)')pausehold offplot(aux,rxy(1:100),'-g')title('Correlación cruzada entre v1 y v2')xlabel('n')ylabel('Correlación cruzada_v1_v2')%

Lpfilt2% Low Pass Filter%% Implementa un filtro pasabajo y calcula la correlación cruzada entre% la señal de entrada y la señal de salida.% Este filtro pasabajo sería el segundo sensor en nuestro esquema. Lo que% pretende es tomar una señal lo suficientemente correlacionada con el ruido,% a los efectos de usarla en el bloque cancelador de ruido.%%% Realizo el filtrado (pasabajo)function [y, rxy] = lpfilt2(x,s)%% Implemento un filtro pasabajo donde cada valor resulta del promedio

Page 57: Universidad de la República Facultad de Ingeniería Monografía de ...iie.fing.edu.uy/ense/asign/tes/materiales/monografias/Benigno... · introducir a las redes de área local inalámbricas,

% realizado entre el valor actual y los tres anteriores.% El parámetro "s" determina la amplitud de la señal "y" que recoge el% segundo sensor (una especie de potenciómetro aplicado al segundo sensor).%% El largo de x debe ser mayor o igual a cuatro.lx=length(x);y(1)=x(1);for n = 2:lx, y(n)=0.5*x(n)+0.5*x(n-1);endy=s*y;%% Calculo la correlación cruzada entre x[n] e y[n].for k=0:lx-1, suma=0; for n = 0:lx-1, if n-k>=0

suma=suma+x(n+1)*y(n+1-k); end end% El vector rxy comienza en rxy(1), Matlab no admite rxy(0).

rxy(k+1)=suma/lx;endhold offaux=0:1:99;plot(aux,x(1:100),'-b')hold onplot(aux,y(1:100),'-r')title('Valores de v1 (azul) y v2(rojo)')xlabel('n')ylabel('v1[n] (azul) y v2[n] (rojo)')pausehold offplot(aux,rxy(1:100),'-g')title('Correlación cruzada entre v1 y v2')xlabel('n')ylabel('Correlación cruzada_v1_v2')%

Modulator% Modulator%% Realiza una modulación QPSK.%%function [ms] = modulator(s)l=length(s);lms=l/2;for n = 1:lms, if s(2*n-1)==0 if s(2*n)==0 ms(n)=1; else % s(2*n)==1 ms(n)=j; end

Page 58: Universidad de la República Facultad de Ingeniería Monografía de ...iie.fing.edu.uy/ense/asign/tes/materiales/monografias/Benigno... · introducir a las redes de área local inalámbricas,

else % s(2*n-1)=1 if s(2*n)==0 ms(n)=-j; else % s(2*n)==1 ms(n)=-1; end endend

Mux% Multiplexor%% Realiza una Multiplexación.%%function [ssym] = mux(rvsym)[nf,nc]=size(rvsym);%for c = 1:nc, ssym(nf*(c-1)+1:nf*c)=rvsym(1:nf,c);end

Muxcp% Multiplexor and CP%% Realiza la Multiplexación y agregado del prefijo cíclico% a los símbolos OFDM.%%function [ssym] = muxcp(tvsym)[nf,nc]=size(tvsym);% Como prefijo cíclico voy a usar los últimos "ncp" elementos% del símbolo OFDM.ncp=8;for c = 1:nc, ssym((nf+ncp)*(c-1)+1:(nf+ncp)*(c-1)+ncp)=tvsym((64-ncp+1):64,c); ssym((nf+ncp)*(c-1)+ncp+1:(nf+ncp)*(c-1)+ncp+64)=tvsym(1:64,c);end

Noca1% Noise cancelator 1%% Este módulo pretende eliminar el ruido introducido por el canal.%function [rc]=noca1(r,v2)% Implemento filtro adaptivo de orden p=12 (13 coeficientes) usando% algoritmo NLMS% Beta lo elijo convenientemente en el rango: 0<beta<2.beta=input('Ingrese el valor "beta" del filtro adaptivo: ')w(1:13,1)=0;v2n=0;lr=length(r);

Page 59: Universidad de la República Facultad de Ingeniería Monografía de ...iie.fing.edu.uy/ense/asign/tes/materiales/monografias/Benigno... · introducir a las redes de área local inalámbricas,

for n = 0:lr-1, if n > 11 v2n=[v2(n+1) v2(n) v2(n-1) v2(n-2) v2(n-3) v2(n-4) v2(n-5) v2(n-6)... v2(n-7) v2(n-8) v2(n-9) v2(n-10) v2(n-11)]'; elseif n == 0 v2n=[v2(1) 0 0 0 0 0 0 0 0 0 0 0 0]'; elseif n == 1 v2n=[v2(2) v2(1) 0 0 0 0 0 0 0 0 0 0 0]'; elseif n == 2 v2n=[v2(3) v2(2) v2(1) 0 0 0 0 0 0 0 0 0 0]'; elseif n == 3 v2n=[v2(4) v2(3) v2(2) v2(1) 0 0 0 0 0 0 0 0 0]'; elseif n == 4 v2n=[v2(5) v2(4) v2(3) v2(2) v2(1) 0 0 0 0 0 0 0 0]'; elseif n == 5 v2n=[v2(6) v2(5) v2(4) v2(3) v2(2) v2(1) 0 0 0 0 0 0 0]'; elseif n == 6 v2n=[v2(7) v2(6) v2(5) v2(4) v2(3) v2(2) v2(1) 0 0 0 0 0 0]'; elseif n == 7 v2n=[v2(8) v2(7) v2(6) v2(5) v2(4) v2(3) v2(2) v2(1) 0 0 0 0 0]'; elseif n == 8 v2n=[v2(9) v2(8) v2(7) v2(6) v2(5) v2(4) v2(3) v2(2) v2(1) 0 0 0 0]'; elseif n == 9 v2n=[v2(10) v2(9) v2(8) v2(7) v2(6) v2(5) v2(4) v2(3) v2(2) v2(1) 0 00]'; elseif n == 10 v2n=[v2(11) v2(10) v2(9) v2(8) v2(7) v2(6) v2(5) v2(4) v2(3) v2(2) v2(1)0 0]'; else % n=11. v2n=[v2(12) v2(11) v2(10) v2(9) v2(8) v2(7) v2(6) v2(5) v2(4) v2(3)v2(2) v2(1) 0]';

endnormc=abs(v2n(1))^2+abs(v2n(2))^2+abs(v2n(3))^2+abs(v2n(4))^2+abs(v2n(5))^2+abs(v2n(6))^2+abs(v2n(7))^2+abs(v2n(8))^2+abs(v2n(9))^2+abs(v2n(10))^2+abs(v2n(11))^2+abs(v2n(12))^2+abs(v2n(13))^2;ev1(n+1)=w(:,n+1)'*v2n;e(n+1)=r(n+1)-ev1(n+1);

w(:,n+2)=w(:,n+1)+beta*(v2n/normc)*(conj(e(n+1)));endrc=e;%

Nosa1% Noise sampler 1%% Obtiene una muestra del ruido introducido por el canal.% La muestra obtenida (v2[k]) está fuertemente correlacionada con el ruido% introducido por el canal (v1[k]).%function [v2, rv1v2] = nosa1(v1)v2=v1*0.5;%%% Calculo la correlación cruzada entre v1[n] y v2[n].lv1=length(v1);

Page 60: Universidad de la República Facultad de Ingeniería Monografía de ...iie.fing.edu.uy/ense/asign/tes/materiales/monografias/Benigno... · introducir a las redes de área local inalámbricas,

for k=0:lv1-1, suma=0; for n = 0:lv1-1, if n-k>=0

suma=suma+v1(n+1)*v2(n+1-k); end end% El vector rv1v2 comienza en rv1v2(1), Matlab no admite rv1v2(0).

rv1v2(k+1)=suma/lv1;endhold offaux=0:1:99;plot(aux,v1(1:100),'-b')hold onplot(aux,v2(1:100),'-r')title('Valores de v1 (azul) y v2(rojo)')xlabel('n')ylabel('v1[n] (azul) y v2[n] (rojo)')pausehold offplot(aux,log10(rv1v2(1:100)),'-g')title('Correlación cruzada entre v1 y v2 (escala logarítmica)')xlabel('n')ylabel('Correlación cruzada_v1_v2 (log10(rv1v2))')%

Pilotin% Pilot Insertion%% Inserta 4 portadoras y arma el symbolo OFDM con la salida% del modulador.%%function [vsym] = pilotin(ms)l=length(ms);nf=64;nc=l/48;for c = 1:nc, vsym(1,c)=0; for f = 2:7, vsym(f,c)=ms(48*(c-1)+f-1); end vsym(8,c)=2; for f = 9:21, vsym(f,c)=ms(48*(c-1)+f-2); end vsym(22,c)=2; for f = 23:27, vsym(f,c)=ms(48*(c-1)+f-3); end for f = 28:38, vsym(f,c)=0; end for f = 39:43, vsym(f,c)=ms(48*(c-1)+f-14); end

Page 61: Universidad de la República Facultad de Ingeniería Monografía de ...iie.fing.edu.uy/ense/asign/tes/materiales/monografias/Benigno... · introducir a las redes de área local inalámbricas,

vsym(44,c)=2; for f = 45:57, vsym(f,c)=ms(48*(c-1)+f-15); end

vsym(58,c)=2; for f = 59:64, vsym(f,c)=ms(48*(c-1)+f-16); endend

Pilotrem% Pilot Removal%% Remueve las 4 portadoras insertadas en el símbolo OFDM% por el bloque "Pilot Insertion" del transmisor.%%function [rvsym, p8, p22, p44, p58] = pilotrem(vsym)% Datos%rvsym(1:6,:)=vsym(2:7,:);rvsym(7:19,:)=vsym(9:21,:);rvsym(20:24,:)=vsym(23:27,:);rvsym(25:29,:)=vsym(39:43,:);rvsym(30:42,:)=vsym(45:57,:);rvsym(43:48,:)=vsym(59:64,:);%% Vector de portadoras pilotop8=vsym(8,:)p22=vsym(22,:)p44=vsym(44,:)p58=vsym(58,:)%

Receiver% Receiver%% Ejecuta todos los bloques correspondientes al receptor para% una secuencia de datos recibida (que se pasa como parámetro).%%flops(0)%% Channel Estimator %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% CP Elimination and Demultiplexor %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%ls=64;ncp=8;r=input('ingrese el nombre de la secuencia recibida: ')pausedcr=cpedemux(r,ls,ncp)N1flops=flops%

Page 62: Universidad de la República Facultad de Ingeniería Monografía de ...iie.fing.edu.uy/ense/asign/tes/materiales/monografias/Benigno... · introducir a las redes de área local inalámbricas,

% DFT %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%ddcr=dft64(dcr)N2flops=flopspause%% Multiplexor %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%mddcr=mux(ddcr)N3flops=flopspause%% Channel Correction %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Por ahora no hacemos ninguna corrección, porque estoy probando con el% canal ideal.%cmddcr=mddcr;N4flops=flopspause%% Demodulator %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%dcmddcr=demod(cmddcr);N5flops=flopspause%% Deinterleaver %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%p=input('Ingrese la profundidad del proceso interleaver (múltiplo de 8): ')pausesd=deinter(dcmddcr,p);N6flops=flopspause%% Viterbi Decoder %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Por el momento me salteo la decodificación de Viterbi.vsd=sd;N7flops=flopspause%% Descrambler %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%rd=descram(vsd);N8flops=flopspause%

Receiver1% Receiver1%% Ejecuta todos los bloques correspondientes al receptor para% una secuencia de datos recibida (que se pasa como parámetro).%%

Page 63: Universidad de la República Facultad de Ingeniería Monografía de ...iie.fing.edu.uy/ense/asign/tes/materiales/monografias/Benigno... · introducir a las redes de área local inalámbricas,

flops(0)%% Channel Estimator %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% CP Elimination and Demultiplexor %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%ls=64;ncp=8;r=input('ingrese el nombre de la secuencia recibida: ')pausedcr=cpedemux(r,ls,ncp);N1flops=flops;disp('Se eliminó el CP y se demultiplexó')com=sprintf('Este proceso implicó %d operaciones.',N1flops);disp(com)disp(' ')pause%% DFT %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%ddcr=dft64(dcr);N2flops=flops;disp('Se realizó la DFT')com=sprintf('Este proceso implicó %d operaciones.',N2flops);disp(com)disp(' ')pause%% Pilot Removal %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%pddcr=pilotrem(ddcr);N3flops=flops;disp('Se removieron las portadoras piloto')com=sprintf('Este proceso implicó %d operaciones.',N3flops);disp(com)disp(' ')pause%% Multiplexor %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%mddcr=mux(pddcr);N4flops=flops;disp('Se multiplexó la señal')com=sprintf('Este proceso implicó %d operaciones.',N4flops);disp(com)disp(' ')pause%% Channel Correction %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Por ahora no hacemos ninguna corrección, porque estoy probando con el% canal ideal.%cmddcr=mddcr;N5flops=flops;disp('Se realizó la corrección del canal')

Page 64: Universidad de la República Facultad de Ingeniería Monografía de ...iie.fing.edu.uy/ense/asign/tes/materiales/monografias/Benigno... · introducir a las redes de área local inalámbricas,

com=sprintf('Este proceso implicó %d operaciones.',N5flops);disp(com)disp(' ')pause%% Demodulator %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%dcmddcr=demod(cmddcr);N6flops=flops;disp('Se realizó la demodulación')com=sprintf('Este proceso implicó %d operaciones.',N6flops);disp(com)disp(' ')pause%% Deinterleaver %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%p=input('Ingrese la profundidad del proceso interleaver (múltiplo de 8): ')pausesd=deinter(dcmddcr,p);N7flops=flops;disp('Se realizó el proceso de deinterleaver')com=sprintf('Este proceso implicó %d operaciones.',N7flops);disp(com)disp(' ')pause%% Viterbi Decoder %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Por el momento me salteo la decodificación de Viterbi.vsd=sd;N8flops=flops;disp('No se decodificó usando el algoritmo de Viterbi, porque tampoco secodificó')com=sprintf('Este proceso implicó %d operaciones.',N8flops);disp(com)disp(' ')pause%% Descrambler %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%rd=descram(vsd);N9flops=flops;disp('Se realizó el proceso de desaleatorización')com=sprintf('Este proceso implicó %d operaciones.',N9flops);disp(com)disp(' ')pause%

Receiver2% Receiver1%% Ejecuta todos los bloques correspondientes al receptor para% una secuencia de datos recibida (que se pasa como parámetro).%

Page 65: Universidad de la República Facultad de Ingeniería Monografía de ...iie.fing.edu.uy/ense/asign/tes/materiales/monografias/Benigno... · introducir a las redes de área local inalámbricas,

flops(0)%% CP Elimination and Demultiplexor %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%ls=64;ncp=8;r=input('ingrese el nombre de la secuencia recibida: ')pausedcr=cpedemux(r,ls,ncp);N1flops=flops;disp('Se eliminó el CP y se demultiplexó')com=sprintf('Este proceso implicó %d operaciones.',N1flops);disp(com)disp(' ')pause%% DFT %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%ddcr=dft64(dcr);N2flops=flops;disp('Se realizó la DFT')com=sprintf('Este proceso implicó %d operaciones.',N2flops);disp(com)disp(' ')pause%% Pilot Removal %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%[pddcr, p8, p22, p44, p58]=pilotrem(ddcr);N3flops=flops;disp('Se removieron las portadoras piloto')com=sprintf('Este proceso implicó %d operaciones.',N3flops);disp(com)disp(' ')pause%% Channel Correction %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%crvsym=chancorr(pddcr, p8, p22, p44, p58)N4flops=flops;disp('Se removieron las portadoras piloto')com=sprintf('Este proceso implicó %d operaciones.',N4flops);disp(com)disp(' ')pause%% Multiplexor %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%mddcr=mux(crvsym);N5flops=flops;disp('Se multiplexó la señal')com=sprintf('Este proceso implicó %d operaciones.',N5flops);disp(com)disp(' ')pause%% Channel Correction %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

Page 66: Universidad de la República Facultad de Ingeniería Monografía de ...iie.fing.edu.uy/ense/asign/tes/materiales/monografias/Benigno... · introducir a las redes de área local inalámbricas,

%% Por ahora no hacemos ninguna corrección, porque estoy probando con el% canal ideal.%cmddcr=mddcr;N6flops=flops;disp('Se realizó la corrección del canal')com=sprintf('Este proceso implicó %d operaciones.',N6flops);disp(com)disp(' ')pause%% Demodulator %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%dcmddcr=demod(cmddcr);N7flops=flops;disp('Se realizó la demodulación')com=sprintf('Este proceso implicó %d operaciones.',N7flops);disp(com)disp(' ')pause%% Deinterleaver %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%p=input('Ingrese la profundidad del proceso interleaver (múltiplo de 8): ')pausesd=deinter(dcmddcr,p);N8flops=flops;disp('Se realizó el proceso de deinterleaver')com=sprintf('Este proceso implicó %d operaciones.',N8flops);disp(com)disp(' ')pause%% Viterbi Decoder %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Por el momento me salteo la decodificación de Viterbi.vsd=sd;N9flops=flops;disp('No se decodificó usando el algoritmo de Viterbi, porque tampoco secodificó')com=sprintf('Este proceso implicó %d operaciones.',N9flops);disp(com)disp(' ')pause%% Descrambler %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%rd=descram(vsd);N10flops=flops;disp('Se realizó el proceso de desaleatorización')com=sprintf('Este proceso implicó %d operaciones.',N10flops);disp(com)disp(' ')pause%

Page 67: Universidad de la República Facultad de Ingeniería Monografía de ...iie.fing.edu.uy/ense/asign/tes/materiales/monografias/Benigno... · introducir a las redes de área local inalámbricas,

Receiver3% Receiver3%% Ejecuta todos los bloques correspondientes al receptor para% una secuencia de datos recibida (que se pasa como parámetro).%%flops(0)%% Noise cancellation %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%r=input('ingrese el nombre de la secuencia recibida: ')% v2 lo generó la función "nosa1" llamada por el programa "ensayo3".rc=noca1(r,v2);N1flops=flops;disp('Se "canceló" el ruido ')com=sprintf('Este proceso implicó %d operaciones.',N1flops);disp(com)disp(' ')pause%% CP Elimination and Demultiplexor %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%ls=64;ncp=8;pausedcr=cpedemux(rc,ls,ncp);N2flops=flops;disp('Se eliminó el CP y se demultiplexó')com=sprintf('Este proceso implicó %d operaciones.',N2flops);disp(com)disp(' ')pause%% DFT %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%ddcr=dft64(dcr);N3flops=flops;disp('Se realizó la DFT')com=sprintf('Este proceso implicó %d operaciones.',N3flops);disp(com)disp(' ')pause%% Pilot Removal %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%[pddcr, p8, p22, p44, p58]=pilotrem(ddcr);N4flops=flops;disp('Se removieron las portadoras piloto')com=sprintf('Este proceso implicó %d operaciones.',N4flops);disp(com)disp(' ')pause%% Channel Correction %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

Page 68: Universidad de la República Facultad de Ingeniería Monografía de ...iie.fing.edu.uy/ense/asign/tes/materiales/monografias/Benigno... · introducir a las redes de área local inalámbricas,

crvsym=chancorr(pddcr, p8, p22, p44, p58)N5flops=flops;disp('Se removieron las portadoras piloto')com=sprintf('Este proceso implicó %d operaciones.',N5flops);disp(com)disp(' ')pause%% Multiplexor %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%mddcr=mux(crvsym);N6flops=flops;disp('Se multiplexó la señal')com=sprintf('Este proceso implicó %d operaciones.',N6flops);disp(com)disp(' ')pause%% Channel Correction %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Por ahora no hacemos ninguna corrección, porque estoy probando con el% canal ideal.%cmddcr=mddcr;N7flops=flops;disp('Se realizó la corrección del canal')com=sprintf('Este proceso implicó %d operaciones.',N7flops);disp(com)disp(' ')pause%%% Demodulator %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%dcmddcr=demod(cmddcr);N8flops=flops;disp('Se realizó la demodulación')com=sprintf('Este proceso implicó %d operaciones.',N8flops);disp(com)disp(' ')pause%% Deinterleaver %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%p=input('Ingrese la profundidad del proceso interleaver (múltiplo de 8): ')pausesd=deinter(dcmddcr,p);N9flops=flops;disp('Se realizó el proceso de deinterleaver')com=sprintf('Este proceso implicó %d operaciones.',N9flops);disp(com)disp(' ')pause%% Viterbi Decoder %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Por el momento me salteo la decodificación de Viterbi.

Page 69: Universidad de la República Facultad de Ingeniería Monografía de ...iie.fing.edu.uy/ense/asign/tes/materiales/monografias/Benigno... · introducir a las redes de área local inalámbricas,

vsd=sd;N10flops=flops;disp('No se decodificó usando el algoritmo de Viterbi, porque tampoco secodificó')com=sprintf('Este proceso implicó %d operaciones.',N10flops);disp(com)disp(' ')pause%% Descrambler %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%rd=descram(vsd);N11flops=flops;disp('Se realizó el proceso de desaleatorización')com=sprintf('Este proceso implicó %d operaciones.',N11flops);disp(com)disp(' ')pause%

Receiver4% Receiver4%% Ejecuta todos los bloques correspondientes al receptor para% una secuencia de datos recibida (que se pasa como parámetro).%%flops(0);%% Noise cancellation %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%r=input('ingrese el nombre de la secuencia recibida: ')% v2 se generó antes.rc=noca1(r,v2);N1flops=flops;disp('Se "canceló" el ruido ')com=sprintf('Este proceso implicó %d operaciones.',N1flops);disp(com)disp(' ')pause%% CP Elimination and Demultiplexor %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%ls=64;ncp=8;pausedcr=cpedemux(rc,ls,ncp);N2flops=flops;disp('Se eliminó el CP y se demultiplexó')com=sprintf('Este proceso implicó %d operaciones.',N2flops-N1flops);disp(com)disp(' ')pause%% DFT %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

Page 70: Universidad de la República Facultad de Ingeniería Monografía de ...iie.fing.edu.uy/ense/asign/tes/materiales/monografias/Benigno... · introducir a las redes de área local inalámbricas,

ddcr=dft64(dcr);N3flops=flops;disp('Se realizó la DFT')com=sprintf('Este proceso implicó %d operaciones.',N3flops-N2flops);disp(com)disp(' ')pause%% Pilot Removal %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%[pddcr, p8, p22, p44, p58]=pilotrem(ddcr);N4flops=flops;disp('Se removieron las portadoras piloto')com=sprintf('Este proceso implicó %d operaciones.',N4flops-N3flops);disp(com)disp(' ')pause%% Channel Correction %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%crvsym=chancorr(pddcr, p8, p22, p44, p58);N5flops=flops;disp('Se realizó la corrección de canal')com=sprintf('Este proceso implicó %d operaciones.',N5flops-N4flops);disp(com)disp(' ')pause%% Multiplexor %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%mddcr=mux(crvsym);N6flops=flops;disp('Se multiplexó la señal')com=sprintf('Este proceso implicó %d operaciones.',N6flops-N5flops);disp(com)disp(' ')pause%% Demodulator %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%dcmddcr=demod(mddcr);N7flops=flops;disp('Se realizó la demodulación')com=sprintf('Este proceso implicó %d operaciones.',N7flops-N6flops);disp(com)disp(' ')pause%% Deinterleaver %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%p=input('Ingrese la profundidad del proceso interleaver (múltiplo de 8): ')pausesd=deinter(dcmddcr,p);N8flops=flops;disp('Se realizó el proceso de deinterleaver')com=sprintf('Este proceso implicó %d operaciones.',N8flops-N7flops);disp(com)

Page 71: Universidad de la República Facultad de Ingeniería Monografía de ...iie.fing.edu.uy/ense/asign/tes/materiales/monografias/Benigno... · introducir a las redes de área local inalámbricas,

disp(' ')pause%% Viterbi Decoder %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%[sdd,dh] = viterbi(sd);N9flops=flops;disp('Se decodificó usando el algoritmo de Viterbi')com1=sprintf('El valor final de la distancia de Hamming es: %d .',dh);disp(com1)com2=sprintf('Este proceso implicó %d operaciones.',N9flops-N8flops);disp(com2)disp(' ')pause%% Descrambler %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%rd=descram(sdd);N10flops=flops;disp('Se realizó el proceso de desaleatorización')com=sprintf('Este proceso implicó %d operaciones.',N10flops-N9flops);disp(com)disp(' ')pause%%

Receiver5% Receiver5%% Ejecuta todos los bloques correspondientes al receptor para% una secuencia de datos recibida (que se pasa como parámetro).% En este caso sin módulo de cancelación de ruido.%%flops(0);%%%r=input('ingrese el nombre de la secuencia recibida: ')%% CP Elimination and Demultiplexor %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%ls=64;ncp=8;pausedcr=cpedemux(r,ls,ncp);N2flops=flops;disp('Se eliminó el CP y se demultiplexó')com=sprintf('Este proceso implicó %d operaciones.',N2flops-N1flops);disp(com)disp(' ')pause%% DFT %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

Page 72: Universidad de la República Facultad de Ingeniería Monografía de ...iie.fing.edu.uy/ense/asign/tes/materiales/monografias/Benigno... · introducir a las redes de área local inalámbricas,

ddcr=dft64(dcr);N3flops=flops;disp('Se realizó la DFT')com=sprintf('Este proceso implicó %d operaciones.',N3flops-N2flops);disp(com)disp(' ')pause%% Pilot Removal %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%[pddcr, p8, p22, p44, p58]=pilotrem(ddcr);N4flops=flops;disp('Se removieron las portadoras piloto')com=sprintf('Este proceso implicó %d operaciones.',N4flops-N3flops);disp(com)disp(' ')pause%% Channel Correction %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%crvsym=chancorr(pddcr, p8, p22, p44, p58);N5flops=flops;disp('Se realizó la corrección de canal')com=sprintf('Este proceso implicó %d operaciones.',N5flops-N4flops);disp(com)disp(' ')pause%% Multiplexor %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%mddcr=mux(crvsym);N6flops=flops;disp('Se multiplexó la señal')com=sprintf('Este proceso implicó %d operaciones.',N6flops-N5flops);disp(com)disp(' ')pause%% Demodulator %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%dcmddcr=demod(mddcr);N7flops=flops;disp('Se realizó la demodulación')com=sprintf('Este proceso implicó %d operaciones.',N7flops-N6flops);disp(com)disp(' ')pause%% Deinterleaver %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%p=input('Ingrese la profundidad del proceso interleaver (múltiplo de 8): ')pausesd=deinter(dcmddcr,p);N8flops=flops;disp('Se realizó el proceso de deinterleaver')com=sprintf('Este proceso implicó %d operaciones.',N8flops-N7flops);disp(com)

Page 73: Universidad de la República Facultad de Ingeniería Monografía de ...iie.fing.edu.uy/ense/asign/tes/materiales/monografias/Benigno... · introducir a las redes de área local inalámbricas,

disp(' ')pause%% Viterbi Decoder %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%[sdd,dh] = viterbi(sd);N9flops=flops;disp('Se decodificó usando el algoritmo de Viterbi')com1=sprintf('El valor final de la distancia de Hamming es: %d .',dh);disp(com1)com2=sprintf('Este proceso implicó %d operaciones.',N9flops-N8flops);disp(com2)disp(' ')pause%% Descrambler %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%rd=descram(sdd);N10flops=flops;disp('Se realizó el proceso de desaleatorización')com=sprintf('Este proceso implicó %d operaciones.',N10flops-N9flops);disp(com)disp(' ')pause%%

Scram% Scrambler%% Pseudoaleatoriza los datos para evitar largas secuencias de "0" o "1"%%function [sf] = scram(f)x=0;y=0;z=0;l=length(f);for n = 1:l,

a=xor(y,z);sf(n)=xor(f(n),a);z=y;y=x;x=sf(n);

end%

Transmitter% Transmitter%% Ejecuta todos los bloques correspondientes al transmisor para% una secuencia de datos de largo "l" (que se pasa como parámetro y que% debe ser múltiplo de 48 bits).% Los parámetros de este transmisor son:% Data Rate=12Mbps

Page 74: Universidad de la República Facultad de Ingeniería Monografía de ...iie.fing.edu.uy/ense/asign/tes/materiales/monografias/Benigno... · introducir a las redes de área local inalámbricas,

% Modulation=QPSK% Coding Rate=1/2% Coding bits per subscriber (N_BPSC)=2% Coded bits per OFDM symbol (N_CBPS)=96% Data bits per OFDM symbol (N_DBPS)=48%% Borro todas las variables del workspaceclear%l=input('Ingrese el largo de la secuencia binaria (múltiplo de 48): ')pause%flops(0)% Binary Source %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%d=bsource(l)N1flops=flopspause%% Scrambler %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%sd=scram(d)N2flops=flopspause%% Convolutional Encoder %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%csd=conenc(sd)N3flops=flopspause%% Interleaver %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%p=input('Ingrese la profundidad del proceso interleaver (múltiplo de 8): ')pauseicsd=inter(csd,p)N4flops=flopspause%% Modulator %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%ms=modulator(icsd)N5flops=flopspause%% Pilot Insertion %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%vsym=pilotin(ms)N6flops=flopspause%% IDFT %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%tvsym=idft64(vsym)N7flops=flopspause%% MUX & CP %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%ssym=muxcp(tvsym)N8flops=flops%

Page 75: Universidad de la República Facultad de Ingeniería Monografía de ...iie.fing.edu.uy/ense/asign/tes/materiales/monografias/Benigno... · introducir a las redes de área local inalámbricas,

Transmitter1% Transmitter1%% Ejecuta todos los bloques correspondientes al transmisor para% una secuencia de datos de largo "l" (que se pasa como parámetro y que% debe ser múltiplo de 48 bits).% Los parámetros de este transmisor son:% Data Rate=12Mbps% Modulation=QPSK% Coding Rate=1/2% Coding bits per subscriber (N_BPSC)=2% Coded bits per OFDM symbol (N_CBPS)=96% Data bits per OFDM symbol (N_DBPS)=48%% Borro todas las variables del workspaceclear%l=input('Ingrese el largo de la secuencia binaria (múltiplo de 48): ')pause%flops(0)% Binary Source %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%d=bsource(l);N1flops=flops;disp('Se generó la secuencia binaria de datos "d"')com=sprintf('Este proceso implicó %d operaciones.',N1flops);disp(com)disp(' ')pause%% Scrambler %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%sd=scram(d);N2flops=flops;No=N2flops-N1flops;disp('Se aliatorizó "d" ("sd")')com=sprintf('Este proceso implicó %d operaciones.',No);disp(com)disp(' ')pause%% Convolutional Encoder %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% csd=conenc(sd)csd=sd;N3flops=flops;No=N3flops-N2flops;disp('Se realizó la codificación convolucional ("csd")')com=sprintf('Este proceso implicó %d operaciones.',No);disp(com)disp(' ')pause%% Interleaver %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%p=input('Ingrese la profundidad del proceso interleaver (múltiplo de 8): ')pauseicsd=inter(csd,p);N4flops=flops;

Page 76: Universidad de la República Facultad de Ingeniería Monografía de ...iie.fing.edu.uy/ense/asign/tes/materiales/monografias/Benigno... · introducir a las redes de área local inalámbricas,

No=N4flops-N3flops;disp('Se realizó el proceso de interleaver ("icsd")')com=sprintf('Este proceso implicó %d operaciones.',No);disp(com)disp(' ')pause%% Modulator %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%ms=modulator(icsd);N5flops=flops;No=N5flops-N4flops;disp('Se realizó la modulación QPSK ("ms")')com=sprintf('Este proceso implicó %d operaciones.',No);disp(com)disp(' ')pause%% Pilot Insertion %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%vsym=pilotin(ms);N6flops=flops;No=N6flops-N5flops;disp('Se insertaron las portadoras ("vsym")')com=sprintf('Este proceso implicó %d operaciones.',No);disp(com)disp(' ')pause%% IDFT %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%tvsym=idft64(vsym);N7flops=flops;No=N7flops-N6flops;disp('Se realizo la idft del vector de símbolos ("tvsym")')com=sprintf('Este proceso implicó %d operaciones.',No);disp(com)disp(' ')pause%% MUX & CP %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%ssym=muxcp(tvsym);N8flops=flops;No=N8flops-N7flops;disp('Se multiplexó y se agregó el prefijo cíclico ("ssym")')com=sprintf('Este proceso implicó %d operaciones.',No);disp(com)disp(' ')%

Transmitter2% Transmitter2%% Ejecuta todos los bloques correspondientes al transmisor para% una secuencia de datos de largo "l" (que se pasa como parámetro y que% debe ser múltiplo de 48 bits).% Los parámetros de este transmisor son:% Data Rate=12Mbps% Modulation=QPSK

Page 77: Universidad de la República Facultad de Ingeniería Monografía de ...iie.fing.edu.uy/ense/asign/tes/materiales/monografias/Benigno... · introducir a las redes de área local inalámbricas,

% Coding Rate=1/2% Coding bits per subscriber (N_BPSC)=2% Coded bits per OFDM symbol (N_CBPS)=96% Data bits per OFDM symbol (N_DBPS)=48%%% Borro todas las variables del workspaceclear%l=input('Ingrese el largo de la secuencia binaria (múltiplo de 48): ')pause%flops(0);% Binary Source %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%d=bsource(l);N1flops=flops;disp('Se generó la secuencia binaria de datos "d"')com=sprintf('Este proceso implicó %d operaciones.',N1flops);disp(com)disp(' ')pause%% Scrambler %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%sd=scram(d);N2flops=flops;No=N2flops-N1flops;disp('Se aliatorizó "d" ("sd")')com=sprintf('Este proceso implicó %d operaciones.',No);disp(com)disp(' ')pause%% Convolutional Encoder %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%csd=conenc(sd);N3flops=flops;No=N3flops-N2flops;disp('Se realizó la codificación convolucional ("csd")')com=sprintf('Este proceso implicó %d operaciones.',No);disp(com)disp(' ')pause%% Interleaver %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%p=input('Ingrese la profundidad del proceso interleaver (múltiplo de 8): ')pauseicsd=inter(csd,p);N4flops=flops;No=N4flops-N3flops;disp('Se realizó el proceso de interleaver ("icsd")')com=sprintf('Este proceso implicó %d operaciones.',No);disp(com)disp(' ')pause%% Modulator %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%ms=modulator(icsd);N5flops=flops;

Page 78: Universidad de la República Facultad de Ingeniería Monografía de ...iie.fing.edu.uy/ense/asign/tes/materiales/monografias/Benigno... · introducir a las redes de área local inalámbricas,

No=N5flops-N4flops;disp('Se realizó la modulación QPSK ("ms")')com=sprintf('Este proceso implicó %d operaciones.',No);disp(com)disp(' ')pause%% Pilot Insertion %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%vsym=pilotin(ms);N6flops=flops;No=N6flops-N5flops;disp('Se insertaron las portadoras ("vsym")')com=sprintf('Este proceso implicó %d operaciones.',No);disp(com)disp(' ')pause%% IDFT %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%tvsym=idft64(vsym);N7flops=flops;No=N7flops-N6flops;disp('Se realizo la idft del vector de símbolos ("tvsym")')com=sprintf('Este proceso implicó %d operaciones.',No);disp(com)disp(' ')pause%% MUX & CP %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%ssym=muxcp(tvsym);N8flops=flops;No=N8flops-N7flops;disp('Se multiplexó y se agregó el prefijo cíclico ("ssym")')com=sprintf('Este proceso implicó %d operaciones.',No);disp(com)disp(' ')%%

Viterbi% Viterbi Decoder%% Implementa un decodificador de Viterbi de 64 estados para un% Codificador Convolucional de tasa 1/2 y conecciones 133 y 171.%%function [sdd,dh] = viterbi(sd)%% Construyo la matriz de consulta que contendrá los datos de% la codificación convolucional usada.%% Estado origenfor n = 1:32,MC(4*n-3:4*n-2,1)=0;MC(4*n-1:4*n,1)=1;endfor n = 1:16,

Page 79: Universidad de la República Facultad de Ingeniería Monografía de ...iie.fing.edu.uy/ense/asign/tes/materiales/monografias/Benigno... · introducir a las redes de área local inalámbricas,

MC(8*n-7:8*n-4,2)=0;MC(8*n-3:8*n,2)=1;endfor n = 1:8,MC(16*n-15:16*n-8,3)=0;MC(16*n-7:16*n,3)=1;endfor n = 1:4,MC(32*n-31:32*n-16,4)=0;MC(32*n-15:32*n,4)=1;endfor n = 1:2,MC(64*n-63:64*n-32,5)=0;MC(64*n-31:64*n,5)=1;endfor n = 1:2,MC(64*n-63:64*n-32,5)=0;MC(64*n-31:64*n,5)=1;endfor n = 1,MC(128*n-127:128*n-64,6)=0;MC(128*n-63:128*n,6)=1;end%% Entradafor n = 1:64,MC(2*n-1,7)=0;MC(2*n,7)=1;end%% Salidafor n = 1:128,MC(n,8)=xor(MC(n,6),(xor(MC(n,5),(xor(MC(n,3),(xor(MC(n,2),MC(n,7))))))));MC(n,9)=xor(MC(n,6),(xor(MC(n,3),(xor(MC(n,2),(xor(MC(n,1),MC(n,7))))))));end%% Nuevo EstadoMC(:,10)=MC(:,7);MC(:,11:15)=MC(:,1:5);%% Comienzo a decodificar% Asumo que el sistema parte siempre del estado "000000", lo cual implica% poner una condición de reset.%% Distancia de Hamming. Ej.: d(00,01)=sum(xor(00,01))=1.lsd=length(sd);lsdd=lsd/2;e=0;dh=0;for n = 1:lsdd, a1=sd(2*n-1:2*n); s1=MC(2*e+1,8:9); s2=MC(2*e+2,8:9); d1=sum(xor(a1,s1)); d2=sum(xor(a1,s2)); if d2>d1, sdd(n)=MC(2*e+1,7);

Page 80: Universidad de la República Facultad de Ingeniería Monografía de ...iie.fing.edu.uy/ense/asign/tes/materiales/monografias/Benigno... · introducir a las redes de área local inalámbricas,

ne=MC(2*e+1,10)+MC(2*e+1,11)*2+MC(2*e+1,12)*4+MC(2*e+1,13)*8+MC(2*e+1,14)*16+MC(2*e+1,15)*32; e=ne; dh=dh+d1; end if (d1>d2), sdd(n)=MC(2*e+2,7);ne=MC(2*e+2,10)+MC(2*e+2,11)*2+MC(2*e+2,12)*4+MC(2*e+2,13)*8+MC(2*e+2,14)*16+MC(2*e+2,15)*32; e=ne; dh=dh+d2; end if (d1==d2)&(n==lsdd), % Dado que frente a un error en la última pareja de datos, no tengopróxima pareja de datos % para decidir que fue lo enviado, le asigno un valor arbitrario albit decodificado. sdd(n)=1; end if (d1==d2)&(n~=lsdd), dh=dh+d1; a2=sd(2*n+1:2*n+2);ne1=MC(2*e+1,10)+MC(2*e+1,11)*2+MC(2*e+1,12)*4+MC(2*e+1,13)*8+MC(2*e+1,14)*16+MC(2*e+1,15)*32; ns11=MC(2*ne1+1,8:9); d11=sum(xor(a2,ns11)); dh11=dh+d1+d11; ns12=MC(2*ne1+2,8:9); d12=sum(xor(a2,ns12)); dh12=dh+d1+d12;ne2=MC(2*e+2,10)+MC(2*e+2,11)*2+MC(2*e+2,12)*4+MC(2*e+2,13)*8+MC(2*e+2,14)*16+MC(2*e+2,15)*32; ns21=MC(2*ne2+1,8:9); d21=sum(xor(a2,ns21)); dh21=dh+d1+d21; ns22=MC(2*ne2+2,8:9); d22=sum(xor(a2,ns22)); dh22=dh+d1+d22; A=[dh11 dh12 dh21 dh22]; dhmin=min(A); if dhmin==dh11, sdd(n)=MC(2*e+1,7);ne=MC(2*e+1,10)+MC(2*e+1,11)*2+MC(2*e+1,12)*4+MC(2*e+1,13)*8+MC(2*e+1,14)*16+MC(2*e+1,15)*32; e=ne; end if dhmin==dh12, sdd(n)=MC(2*e+1,7);ne=MC(2*e+1,10)+MC(2*e+1,11)*2+MC(2*e+1,12)*4+MC(2*e+1,13)*8+MC(2*e+1,14)*16+MC(2*e+1,15)*32; e=ne; end

if dhmin==dh21, sdd(n)=MC(2*e+2,7);ne=MC(2*e+2,10)+MC(2*e+2,11)*2+MC(2*e+2,12)*4+MC(2*e+2,13)*8+MC(2*e+2,14)*16+MC(2*e+2,15)*32; e=ne;

Page 81: Universidad de la República Facultad de Ingeniería Monografía de ...iie.fing.edu.uy/ense/asign/tes/materiales/monografias/Benigno... · introducir a las redes de área local inalámbricas,

end if dhmin==dh22, sdd(n)=MC(2*e+2,7);ne=MC(2*e+2,10)+MC(2*e+2,11)*2+MC(2*e+2,12)*4+MC(2*e+2,13)*8+MC(2*e+2,14)*16+MC(2*e+2,15)*32; e=ne; end endend