analisis y simulaciÓn de los sistemas de …

63
1 ANALISIS Y SIMULACIÓN DE LOS SISTEMAS DE MODULACIÓN DIGITAL JUAN GABRIEL FANDIÑO FARFÁN UNIVERSIDAD DE LOS ANDES FACULTAD DE INGENIERIA DEPARTAMENTO DE INGENIERIA ELECTRÓNICA BOGOTA D.C. Mayo de 2007

Upload: others

Post on 21-Oct-2021

6 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: ANALISIS Y SIMULACIÓN DE LOS SISTEMAS DE …

1  

ANALISIS Y SIMULACIÓN DE LOS SISTEMAS DE MODULACIÓN DIGITAL

JUAN GABRIEL FANDIÑO FARFÁN

UNIVERSIDAD DE LOS ANDES

FACULTAD DE INGENIERIA

DEPARTAMENTO DE INGENIERIA ELECTRÓNICA

BOGOTA D.C.

Mayo de 2007

Page 2: ANALISIS Y SIMULACIÓN DE LOS SISTEMAS DE …

2  

ANALISIS Y SIMULACIÓN DE LOS SISTEMAS DE MODULACIÓN DIGITAL

JUAN GABRIEL FANDIÑO FARFÁN

Proyecto De Grado Para Optar El Título De

Ingeniería Electrónica

Asesor

RAFAEL CAMERANO FUENTES, PhD

UNIVERSIDAD DE LOS ANDES

FACULTAD DE INGENIERIA

DEPARTAMENTO DE INGENIERIA ELECTRÓNICA

BOGOTA D.C.

Mayo de 2007

Page 3: ANALISIS Y SIMULACIÓN DE LOS SISTEMAS DE …

3  

                

A MIS PADRES PORQUE SU EJEMPLO ES LA CONSTANTE  INSPIRACIÓN PARA ALCANZAR MIS METAS 

                            

Page 4: ANALISIS Y SIMULACIÓN DE LOS SISTEMAS DE …

4  

         

AGRADECIMIENTOS  

  

Quiero expresar mi agradecimiento al Profesor Rafael Camerano Fuentes, quien hizo grandes aportes a 

este proyecto como asesor del mismo y con quien pude contar durante todo el desarrollo del trabajo.  

 

A  los  profesores  del  Departamento  de  Ingeniería  Eléctrica  y  Electrónica,  de  quienes  recibimos  los 

conocimientos para nuestra formación profesional.  

 

Page 5: ANALISIS Y SIMULACIÓN DE LOS SISTEMAS DE …

5  

CONTENIDO 

 

INTRODUCCIÓN 1. MARCO TEORICO 

1.1.  MODELO DE TRANSMISIÓN 

1.2. CONCEPTOS BÁSICOS SOBRE MODULACIONES DIGITALES 

1.2.1. Modulación coherente e incoherente

1.2.2. Probabilidad de error de símbolo

1.2.3. Transmisión con portadora

1.2.4. Tipos de modulaciones

1.2.4.1. phase-shift keying (PSK) 

1.2.4.2. Quadrature Amplitude Modulation (QAM)

1.2.5. TIPOS DE CANALES

1.2.5.1. Canal AWGN

1.2.5.2. Canal Multi-trayectoria (Rayleigh)

2. SIMULACIONES 3. HERRAMIENTA

4. Conclusiones

A. Anexo: Códigos de modulación B. Anexo: Código interface grafica Bibliografía

Page 6: ANALISIS Y SIMULACIÓN DE LOS SISTEMAS DE …

6  

Lista de figuras

Fig. 1 – Modelo de sistema de transmisión Fig. 2 Modulación PSK 

Fig. 3 Constelación de 16PSK

Fig. 4 Constelación de 16QAM

Fig. 5 Ejemplo de transmisión Multi-Trayectoria 

Fig. 6 Simulación por medio de BERTOOL modulación PSK

Fig. 7 Simulación por medio de BERTOOL modulación QAM

Fig. 8 Desvanecimiento del efecto de AWGN a medida que se aumenta el Eb/No para BPSK 

Fig. 9 simulación B.E.R Vs Eb/No BPSK 

Fig. 10 Desvanecimiento del efecto de AWGN a medida que se aumenta el Eb/No para 4QAM.

Fig. 11simulación B.E.R Vs Eb/No BPSK.  

Fig. 12 modulaciones PSK sobre un canal Rayleigh por medio de la herramienta BERTOOL 

Fig. 13 simulación de BPSK sobre canal Rayleigh

Fig. 14 Interface Grafica, Simulación BPSK

Fig. 15 Interface Grafica, Simulación 16 QAM

Page 7: ANALISIS Y SIMULACIÓN DE LOS SISTEMAS DE …

7  

RESUMEN  El área de comunicaciones siempre ha tenido tres principales problemas a la hora de transmisión de datos

bien sea de forma alámbrica o inalámbrica y estos son la presencia de atenuación, distorsión y el retardo

por ruido.

Para poder solucionar estos problemas se han creado diferentes tipos de modulación, las cuales

transforman la señal digital a una analógica lo que ayuda a reducir el número de frecuencias, esto a su vez

conlleva a que baje la distorsión y mejore la calidad de servicio. Las principales formas de modulación

consisten en modular las señales bien sea en frecuencia, fase o en cuadratura.

Este trabajo se centro en la creación de una herramienta la cual podrá ser usada por estudiantes de la

materia de comunicaciones para comprender mejor y confirmar las bases teóricas acerca de la dependencia

que existe de la probabilidad de error con respecto a la relación Eb/No, así como la confiabilidad de los

mismos dependiendo del canal usado para su transmisión. Esta Herramienta se llevo a cabo por medio del

programa MATLab, en el cual se implementaron los diferentes escenarios correspondientes a las multiples

formas de modulación digital.

Page 8: ANALISIS Y SIMULACIÓN DE LOS SISTEMAS DE …

8  

INTRODUCCIÓN 

El objetivo principal de la modulación es poder transmitir datos de una forma tal que se logre optimizar

la comunicación, para esto se busca cumplir con algunos requerimientos como son minimizar las perdidas

en la transmisión, minimizar el tiempo, minimizar el costo, maximizar el uso de los recursos que se

tienen, entre otros. Para lograr estos objetivos se buscan ayudas a la hora de diseñar sistemas como son

programas de simulación, donde se puede caracterizar la red, o los sistemas y ver su comportamiento

antes de ser implementados.

Con este trabajo se busca analizar diferentes tipos de modulación digital y al mismo tiempo facilitar una

herramienta académica, por medio de la cual se pretende complementar las explicaciones de las clases de

comunicaciones mostrando de una forma más interactiva el comportamiento de estos tipos de

modulación y los cambios y errores que se perciben en el receptor después de hacer una transmisión por

medio de un canal y de demodular la señal así como ver la forma en que influye el cambio de algunas

variables en la transmisión de los datos, de esta forma se podrá ir comprobando como es el

funcionamiento de estos sistemas al mismo tiempo que se realiza la explicación durante la clase.

Page 9: ANALISIS Y SIMULACIÓN DE LOS SISTEMAS DE …

9  

1. MARCO TEORICO 

 

1.1. MODELO DE TRANSMISIÓN1 

La transmisión de datos en diferentes medios pude ser modelada de la forma que se presenta en la

figura 1. Este modelo fue el implementado en MATLab para hacer las simulaciones de los diferentes tipos

de modulación, en el se puede apreciar que se tiene una fuente de mensajes que provienen de un alfabeto

de M símbolos y son enviados con un periodo de T segundos. El orden en el que pueden salir los

diferentes símbolos existentes en el alfabeto está determinado por la probabilidad que tiene cada uno de

ellos la cual esta directamente relacionada con el número de símbolos.

Fig. 1 – Modelo de sistema de transmisión2

Este mensaje entra a la etapa denominada transmisor en donde en caso que la señal este en un lenguaje

que no sea binario lo primero que se hace es asignarle a cada símbolo del alfabeto un equivalente binario,

en caso que la señal sea binaria se pasa al modulador en donde se adiciona una onda portadora senoidal la

cual es la encargada de cambiar, según sea el caso, la frecuencia, la fase o la amplitud de la señal del

mensaje original consiguiendo así una señal distinta si(t). En este trabajo se tuvieron en cuenta las

modulaciones de fase y las de cuadratura.

                                                           1 Esta información se baso en la fuente [1] 2 Figura tomada de la referencia [1]

Page 10: ANALISIS Y SIMULACIÓN DE LOS SISTEMAS DE …

10  

Una vez modulada la onda pasa al canal de transmisión el cual debe tener un ancho de banda lo

suficientemente amplio para soportar la transmisión. Para efectos de las simulaciones los canales usados

fueron, un canal afectado por el ruido blanco Gaussiano aditivo (AWGN) y un canal Rayleigh el cual

simula el efecto de la multitrayectoria.

Al llegar a su destino la señal se debe encontrar con un receptor el cual debe realizar el proceso contrario

efectuado en el transmisor y debe contar con un decodificador que cumpla con las características para

poder re-hacer el mensaje original.

1.2. CONCEPTOS BÁSICOS SOBRE MODULACIONES DIGITALES3

Para poder implementar una herramienta académica, donde se pueda observar el comportamiento y

manipular las diferentes formas de modulación digital, primero se deben tener claros algunos conceptos

teóricos.

1.2.1. Modulación coherente e incoherente

Para poder definir estos dos tipos de modulaciones se debe tener en consideración que la señal que se

obtiene a la salida del canal está influenciada por ruido blanco gaussiano (AWGN) que se conocerá como

el cual tiene una densidad espectral de potencia de No/2. Esta consideración lleva a que se creen las

dos familias de modulación. En el primer caso se asume que el receptor conoce todos los posibles

conjuntos de señales a transmitir por el emisor y a este tipo se le conoce como receptor coherente y la

señal recibida por el se puede expresar de la forma

En el segundo tipo de modulación no se debe asumir que el receptor conoce completamente las señales

usadas por el modulador, porque en este caso la fase exacta usada por el modulador en la senoidal

portadora es desconocida, en este caso la señal recibida es de la forma

                                                           3 Información de este inciso fue tomada de las fuentes bibliográficas [1] y [2].

Page 11: ANALISIS Y SIMULACIÓN DE LOS SISTEMAS DE …

11  

En donde es una variable aleatoria que modela la incertidumbre del ángulo de fase de la señal

transmitida. Estos demoduladores que trabajan sin tener conocimiento exacto de la fase se conocen como

incoherentes.

1.2.2. Probabilidad de error de símbolo

Uno de los objetivos principales en el diseño de receptores de modulación es que estos tengan la menor

probabilidad de error de símbolo cuando se transmite la señal por un canal con presencia de ruido blanco

gaussiano. Para poder encontrar esta probabilidad lo primero que se toma es la constelación del tipo de

modulación que se esté usando, de esta forma a partir de esta se construyen regiones de decisión de

acuerdo con la detección de la señal de máxima verosimilitud sobre el anal AWGN.

La idea de los demoduladores consiste en procesar la señal recibida con lo que se logra un estimado

de la secuencia original y en consecuencia un estimado de cada uno de los símbolos. El

desempeño de la pareja modulador/demodulador se evalúa por medio de la probabilidad de error de

símbolo

Obviamente el interés se centra en aquel demodulador que logra el mínimo valor de el cual es

conocido como el demodulador optimo.

Page 12: ANALISIS Y SIMULACIÓN DE LOS SISTEMAS DE …

12  

1.2.3. Transmisión con portadora

Un sistema de transmisión por portadora es aquel en donde se traslada una señal pasa banda a una

frecuencia diferente, de tal forma que un tren de pulsos muy rápido es llevado a una frecuencia mayor

antes de ser procesada y modulada debido a que estos pulsos pueden ser transmitidos de una forma

correcta en una línea telefónica pero a la hora de transmitirlas de una forma inalámbrica sería necesario

tener una antena muy grande que podría llegar a ser de unos cuantos kilómetros de radio lo que lo vuelve

muy costoso y poco efectivo. La selección de la nueva frecuencia que se va a usar para transmitir el tren

de pulsos depende de diferentes factores como puede ser la regulación de ciertas bandas, del precio de las

mismas y de cómo trabajan las frecuencias de acuerdo a las condiciones ambientales entre muchas otras

condiciones que restringen el uso del espectro.

Por lo general para poder describir una señal pasabanda son necesarias al menos dos señales pasabajas y

en el caso de modulación digital las más usadas son una señal de amplitud y una señal de fase además de

incluir la frecuencia de la nueva señal portadora la cual va a determinar un nuevo ancho de banda que por

lo general llega a ser de proporciones de casi el doble del ancho de banda de las señales de amplitud y de

fase.

Una forma de describir estas señales pasabanda seria la siguiente:

Donde A(t) será la señal de amplitud, será la señal de fase y será la frecuencia de la portadora.

Page 13: ANALISIS Y SIMULACIÓN DE LOS SISTEMAS DE …

13  

1.2.4. Tipos de modulaciones

1.2.4.1. phase-shift keying (PSK)4   

En el phase-shift keying o PSK, la principal diferencia con la modulación de fase regular es que en

este caso la señal moduladora es digital. La transmisión de los símbolos se hace por medio de la

modulación de la fase de la portadora, para esto si el alfabeto tiene M símbolos la portadora le asigna

una de las M fases a cada símbolo.

Las formas de modulación por fase son nombradas de acuerdo a el numero de símbolos que haya en

el alfabeto transmitido, de acuerdo a esto si se tienen dos símbolos en el alfabeto la modulación se

llama Binary PSK o BPSK y si es de cuatro símbolos se conoce como Quaternary PSK o QPSK la

cual es la forma de portadora más común en la transmisión de información.

Fig. 2 Modulacion PSK5

Además de estas se conocen otras modulaciones que no son menos importantes conocidas como

8PSK, 16PSK y así sucesivamente aumentando de una forma de 2n donde el numero antes del PSK

representa el numero de fases que se tienen para transmitir.

Para tener una mejor idea de cómo modula este sistema es bueno entender cómo funciona el BPSK.

                                                           4 Información basada en la fuente [2] 5 http://www.textoscientificos.com/redes/modulacion/psk

Page 14: ANALISIS Y SIMULACIÓN DE LOS SISTEMAS DE …

14  

En esta modulación se tienen dos señales para representar los 2 símbolos que forman su alfabeto (-

1,1) y se definen de la siguiente forma

 

(1) 

(2) 

En este caso y Eb va a ser la energía de la señal transmitida. Para asegurarse que cada bit

transmitido tenga un número de ciclos de la portadora razonables se elige una frecuencia de la portadora

igual a n/T con n siendo un entero.

Fig. 3 Constelación de 16PSK

En este caso se tienen solo dos puntos de mensaje que serán  y   los cuales están ubicados en

fase, en cuadratura sus componentes son cero tal y como se puede apreciar en la figura 2.  

  

Page 15: ANALISIS Y SIMULACIÓN DE LOS SISTEMAS DE …

15  

1.2.4.2 Quadrature Amplitude Modulation (QAM)6

La modulación QAM es una es una clase especial de PAM (modulación por amplitud de pulso), la

característica que diferencia estos dos tipos de modulación consiste en que la primera es bidimensional y

no adimensional como la segunda, esto quiere decir que la modulación se lleva a cabo sobre 2 portadoras

moduladas en amplitud y que al mismo tiempo están desfasadas 90° o son ortogonales entre ellas. Esto

significa que las portadoras son de la forma

    (3)    

 

  (4) 

En este caso se tienen mínimo 4 puntos de mensaje ya que la forma general de la QAM es de la forma

(5) 

Por lo que se tendrán siempre componentes en cuadratura y en fase, en ambos casos se tienen el valor de

para el caso más básico que sería el de 4QAM.

En este tipo de modulación a diferencia de la modulación PSK no existe una relación entre las

componentes de fase y de cuadratura de la señal modulada, por lo que estas componentes son

completamente independientes la una de la otra y por esto su constelación no se reduce a la forma circular

que tiene la modulación PSK (figura 3).

                                                           6 Información basada en la fuente [1] y [2]

Page 16: ANALISIS Y SIMULACIÓN DE LOS SISTEMAS DE …

16  

Fig. 4 Constelación de 16QAM

   

Page 17: ANALISIS Y SIMULACIÓN DE LOS SISTEMAS DE …

17  

1.2.5 TIPOS DE CANALES

1.2.5.1 Canal AWGN

En comunicaciones, el canal de ruido blanco Gaussiano aditivo (AWGN), es aquel en el que la señal

se ve afectada por la adición lineal de ruido blanco uniforme con una densidad espectral constante

(expresado como watts por hertz) y una distribución Gaussiana de la amplitud.

El ruido Gaussiano se hace presente gracias a diferentes fuentes naturales como puede ser por la

vibración térmica de los átomos en las antenas, la radiación de cuerpo negro de la tierra u otros

objetos que irradien calor como puede ser el sol.

1.2.5.2. Canal Multi-trayectoria (Rayleigh)7

Para el caso de multi-trayectoria se tiene que la señal recibida proviene de diferentes caminos, este es el

caso de la transmisión inalámbrica en donde las señales viajan por el aire y debido a diferentes objetos

que se encuentran en medio del transmisor y receptor generan que la onda se refleje de diferentes formas

lo que hace que se creen diferentes ondas, las cuales llegan con un retardo al receptor por tomar caminos

más largos que el camino directo. Estas nuevas señales generadas van a depender de diferentes variables

como van a ser la amplitud (Ai), la fase ( ), y el ángulo de incidencia ( ) de la misma en el camino i,

además de estos parámetros se tiene uno adicional que es el efecto doppler que se genera por el

movimiento relativo del receptor con respecto a la fuente.

En este caso la señal recibida se puede expresar de la siguiente manera

 

Cuando el número de caminos que aportan a la generación de la señal en el receptor es muy grande se

puede asumir de cierta forma que la atenuación Ai y las fases son independientes la una de la

otra.

                                                           7 Información basada en la fuente [3].

Page 18: ANALISIS Y SIMULACIÓN DE LOS SISTEMAS DE …

18  

Ahora si se toma una situación más realista que consiste en que los medios de propagación siempre van

a tener un camino fijo el cual va a tener una mayor potencia a el cual se le deben sumar la contribución de

los N caminos más débiles, se tiene que la señal recibida va a ser de la forma

 

Donde u(t) va a tener una distribución Rayleigh y v(t) va a ser una señal deterministica.

Fig. 5 Ejemplo de transmisión Multi-Trayectoria8

                                                           8 Imagen tomada de http://www.ert.rwth-aachen.de/Projekte/Theo/OFDM/node3.html].

Page 19: ANALISIS Y SIMULACIÓN DE LOS SISTEMAS DE …

19  

2. SIMULACIONES

Para poder comprobar el funcionamiento de los diferentes sistemas de modulación se uso la herramienta

de comunicaciones del programa MATLAB con él se hicieron dos tipos de simulaciones con los cuales se

logro verificar los datos teóricos que se tenían y ver un comportamiento más real de los diferentes tipos de

modulación.

La primera forma de simulación fue usando la herramienta Bertool con la cual se pueden obtener graficas

de Bit Error Rate contra Eb/No de diferentes tipos de modulación, y usando los canales AWGN y

Rayleigh. Para el primer tipo de canal se hicieron simulaciones con los diferentes tipos de PSK así como

de QAM. Para el segundo tipo de canal solo se uso modulación PSK.

Fig. 6 Simulación por medio de BERTOOL modulación PSK

En la figura 6 se puede apreciar como a medida que se aumenta el valor de la relación Eb/No se obtiene

un valor menor de Bit Error Rate además de cómo al usar un orden mayor de modulación el B.E.R

decrece de una forma más lenta y se necesita un valor mayor de Eb/No para lograr un error de bit

aceptable para la transmisión de datos de alta calidad.

Esto mismo sucede en el caso de la modulación QAM en donde se tiene un mayor número de tipos de

modulación ya que no van solo de 2 a 32 sino que existe de 4 a 1024 QAM, sin embargo los más usados

son las modulaciones de orden menor en la cuales se una probabilidad de error menor con un Eb/No no

Page 20: ANALISIS Y SIMULACIÓN DE LOS SISTEMAS DE …

20  

muy grande. Esto se puede apreciar en la figura 7 donde se ve claramente el mismo comportamiento que

las PSK.

El segundo tipo de simulación se llevo a cabo por medio de programación de estos tipos de modulación

diseñados sobre MATLAB. Se hizo un programa diferente para cada tipo de modulación y para cada

canal usado, es decir se tiene un programa para simular la modulación QAM y uno para PSK en el canal

AWGN, además de uno para PSK en el canal rayleigh.

Fig. 7 Simulación por medio de BERTOOL modulación QAM

En estos programas se genero una señal binaria aleatoria para simular el mensaje que se quiere

transmitir, esta señal se creó con un numero de 500Kbits para obtener una respuesta buena, ya que si el

numero de bits transmitido es muy pequeño no se puede ver reflejado el efecto de los canales de una

forma adecuada. Esta señal es modulada de acuerdo al sistema deseado, una vez modulada se le añade

ruido blanco gaussiano o en el caso del canal rayleigh primero se le añade el efecto de este así como de

los retardos que este genera sobre la señal y después se le añade ruido blanco gaussiano. Una vez obtenida

la señal con las interferencias de los canales se procede a demodular y se ve el resultado.

Los resultados que entregan estas simulaciones se pueden ver en forma de datos o gráficamente. En

forma de datos entrega el valor que toma el B.E.R para diferentes valores de Eb/No así como el numero

de datos que llegaron erróneamente en cada uno de los caso y gráficamente imprime una grafica donde se

ve el B.E.R Vs el Eb/No tanto teórico como el obtenido después de la transmisión, así mismo imprime

Page 21: ANALISIS Y SIMULACIÓN DE LOS SISTEMAS DE …

21  

una grafica donde se puede apreciar el efecto que tiene cada uno de los acanales usados sobre la señal

sobre la constelación de cada modulación.

Como se puede ver en las figuras 8, donde se muestra la constelación de una BPSK y sobre ella se

muestra la señal que se recibe en el demodulador, el efecto que crea el canal AWGN de distorsión de la

señal va disminuyendo a medida que se aumenta el valor de la relación Eb/No y por ende los errores que

se pueden cometer en la regeneración de onda disminuyen de la misma forma. Con lo que se puede

concluir que si se llegara a aumentar de una forma considerable el valor de esta relación se podrían llegar

a despreciar los efectos de este tipo de ruido.

Fig. 8 Desvanecimiento del efecto de AWGN a medida que se aumenta el Eb/No para BPSK.

Los datos obtenidos de B.E.R y de número de errores para esta simulación arrojaron los siguientes

resultados:

Page 22: ANALISIS Y SIMULACIÓN DE LOS SISTEMAS DE …

22  

BERsimulado =

0.0785 0.0372 0.0124 0.0023 0.0002 0.0000

Nerrores =

39230 18610 6201 1151 104 1

Donde también se comprueba que a medida que se aumenta la relación Eb/No disminuye el número de

errores, ya que los primeros datos corresponden a un Eb/No igual a 0 y va aumentando de dos en dos

hasta llegar a 10 donde se ve que solo llego 1 dato mal de los 500K enviados que corresponde a un error

de 2e-6 que es demasiado pequeño con lo que se asegura una transmisión casi perfecta.

Fig. 9 simulación B.E.R Vs Eb/No BPSK.

Y la última forma de comprobación es por medio de la grafica B.E.R Vs Eb/No donde se ve que la línea

punteada es la grafica teórica esperada y la continua es la simulada. Se ve claramente que la curva

simulada sigue el comportamiento de la esperada, disminuyendo más o menos de la misma forma el valor

de error de bit que la teórica.

Page 23: ANALISIS Y SIMULACIÓN DE LOS SISTEMAS DE …

23  

Igual que en el caso de la simulación de la BPSK se ve que la modulación de QAM cumple con los

mismos parámetros expuestos anteriormente, en este caso los datos arrojados fueron los siguientes:

BERsimulado =

0.0783 0.0373 0.0124 0.0024 0.0002 0.0000

Nerrores =

78314 37313 12428 2399 195 6

Fig. 10 Desvanecimiento del efecto de AWGN a medida que se aumenta el Eb/No para 4QAM.

Page 24: ANALISIS Y SIMULACIÓN DE LOS SISTEMAS DE …

24  

Fig. 11simulacion B.E.R Vs Eb/No BPSK.

Se puede ver claramente que también sufre una disminución sustancial a medida que se aumenta el

Eb/No comenzando con 78314 errores cuando se tiene la relación igual a 0 y terminando con 6 errores

cuando esta es 10.

En el caso del canal rayleigh debido a que la distorsión que sufre la señal es mucho mayor ya que no

solo sufre el efecto de este cala sino que además se simulo con efectos de ruido blanco gaussiano, su tasa

de error no desciende de una forma tan rápida como en el caso de solo AWGN, es mas en este caso cae de

una forma casi lineal, tal como se evidencia en las graficas 12 y 13, la primera simulada por la

herramienta Bertool en la que aparecen las simulaciones teóricas de diferentes PSK sobre este canal y la

segunda simulada por medio de los programas creados, donde la línea punteada es la esperada para una

modulación BPSK y la continua es la obtenida después de demodular la señal transmitida.

Page 25: ANALISIS Y SIMULACIÓN DE LOS SISTEMAS DE …

25  

Fig. 12 modulaciones PSK sobre un canal Rayleigh por medio de la herramienta BERTOOL

Fig. 13 simulación de BPSK sobre canal Rayleigh

De esta forma se pueden sacar algunas conclusiones sobre estas simulaciones, al mismo tiempo que

estos programas se pueden usar para mostrar a estudiantes la influencia e importancia de la relación

Eb/No a la hora de buscar una transmisión eficiente de datos pues con este se pueden llegar a reducir a un

valor insignificante o por el contrario se podría llegar a tener una transmisión bastante mala en el caso que

no se tuviera en cuenta.

Page 26: ANALISIS Y SIMULACIÓN DE LOS SISTEMAS DE …

26  

3. HERRAMIENTA

La herramienta es una interface grafica creada en MATLab, en esta se introduce el EbNo para el cual se

quiere hacer la simulación, cuenta con diferentes botones para seleccionar tanto el tipo de canal como el

tipo de modulación, una vez seleccionadas estas 2 opciones, la interface grafica devuelve como resultados

una grafica B.E.R Vs EbNo, una grafica de dispercion de los puntos de llegada sobre la constelación de la

modulación seleccionada y también devuelve el numero de datos erróneos y el B.E.R correspondiente al

EbNo introducido por el usuario.

Las siguientes figuras muestran la interface grafica, en estas se muestran las simulaciones de una

modulación PSK y una QAM.

Fig. 14 Interface Grafica, Simulación BPSK

Page 27: ANALISIS Y SIMULACIÓN DE LOS SISTEMAS DE …

27  

Fig. 15 Interface Grafica, Simulación 16 QAM

Page 28: ANALISIS Y SIMULACIÓN DE LOS SISTEMAS DE …

28  

4. Conclusiones

- A medida que se va aumentando el orden de las modulaciones se puede observar el B.E.R

disminuye de una forma más lenta, esto es debido a que a medida que se va aumentando este

orden se aumenta el número de bits transmitidos por portadora lo que hace que un error en orden

como 32 o 64 sea mucho más grave que en un orden 2 o 4.

- En el caso del canal AWGN se podría llegar a despreciar el efecto que este ejerce sobre la señal si

se llegara a tener un Eb/No apropiado, sin necesidad de ser muy grande, para el tipo de

modulación que se está usando.

- En el caso del canal Rayleigh al tener multi-trayectoria y además ruido blanco gaussiano se hace

más difícil llegar a despreciar su efecto, sin embargo se puede llegar a unos valores aceptables de

error para una transmisión.

- La diferencia en la grafica de B.E.R contra Eb/No entre los ordenes más bajos entre PSK y QAM

no presentan mucha diferencia, sin embargo a medida que se va aumentando el orden de las

modulaciones es mucho más eficiente la transmisión por QAM esto es debido a la diferencia en

sus constelaciones pues la PSK al tener constelación en forma circular a medida que aumentan los

puntos sobre ella hay mas posibilidad de error a la llegada de los símbolos.

- La elección entre cual modulación usar entre PSK y QAM para ordenes bajos se puede basar en

la mejor utilización del ancho de banda por parte de la modulación QAM.

                  

Page 29: ANALISIS Y SIMULACIÓN DE LOS SISTEMAS DE …

29  

 ANEXO A.  

  

BPSK  %***********************************************************************************

% SIMULADOR MODULACION PSK 

% Proyecto de Grado 

%Estudiante: Juan Gabriel Fandiño 

% Asesor: Rafael Camerano Fuentes 

% Universidad de los Andes, 2008 

% DESCRIPCION: 

% Este programa simula la modulación de BPSK. 

%*********************************************************************************** 

 

M = 2; %Tamaño de la constelación de la señal 

k =  log2 (M); %Número de bits por símbolo 

n = 3e3; %Número de bits a procesar 

EbNo = EbNo; 

Nsamp = 1;% Oversampling rate 

tx = randint(5000,1,M); %Generación de mensaje aleatorio 

y = pskmod(tx,M); % Modulación  M‐PSK  

% Transmisión de la señal a través del canal AWGN. 

snr = EbNo + 10*log10(k) ‐ 10*log10(nsamp) 

ynoisy = awgn(y,snr,'measured'); 

BERteorico = berawgn(EbNo,'psk',M,'nondiff') 

rx = pskdemod(ynoisy,M); % Demodulación para recuperar el mensaje. 

[errores,BER]= biterr(tx,rx) %chequeo de BER 

EbNo1=0:2:10; %Rango EbNo teórico para graficar 

bertheory = berawgn(EbNo1,'psk',M,'nondiff'); % BER teórico 

for n = 1:length(EbNo1) 

SNR1 = EbNo1 + 10*log10(k) ‐ 10*log10(nsamp); 

Ynoisy1 = awgn(y,SNR1(n),'measured'); 

Page 30: ANALISIS Y SIMULACIÓN DE LOS SISTEMAS DE …

30  

rx1= pskdemod(Ynoisy1,M); 

[nErrors, BER1] = biterr(tx,rx1); 

Ber11(n)=BER1; 

ne(n)=nErrors; 

end 

% Grafica de los resultados del BER. 

semilogy(EbNo1,bertheory,'b:',EbNo1,Ber11,'r'); 

legend('BER teorico','BER empirico','BER teorico para el EbNo'); 

xlabel('EbNo (dB)'); ylabel('BER'); 

title('BER Vs Eb/No BPSK over AWGN');   

grid on 

h=scatterplot(Ynoisy1,1,0,'g.'); 

hold on; 

scatterplot(y,1,0,'k+',h); 

title('PSK por canal AWGN'); 

legend('Señal recibidad','constelación PSK'); 

hold off; 

  

                    

Page 31: ANALISIS Y SIMULACIÓN DE LOS SISTEMAS DE …

31  

%***********************************************************************************

% SIMULADOR MODULACION PSK 

% Proyecto de Grado 

%Estudiante: Juan Gabriel Fandiño 

% Asesor: Rafael Camerano Fuentes 

% Universidad de los Andes, 2008 

% DESCRIPCION: 

% Este programa simula la modulación de 4 PSK. 

%*********************************************************************************** 

 M=4;% Tamaño de la constelación de la señal 

k = log2(M); % Número de bits por simbolo 

n = 3e3; % Número de bits a procesar 

EbNo=EbNo; 

nsamp=1;% Oversampling rate 

tx = randint(5000,1,M); % Generación de mensaje aleatorio. 

y = pskmod(tx,M); %Modulación M‐PSK 

% Transmisión de la señal a traves del canal AWGN. 

snr = EbNo + 10*log10(k) ‐ 10*log10(nsamp) 

ynoisy = awgn(y,snr,'measured'); 

BERteorico = berawgn(EbNo,'psk',M,'nondiff') 

rx = pskdemod(ynoisy,M);%Demodulación para recuperar el mensaje. 

[errores,BER]= biterr(tx,rx)% Chequeo de BER 

EbNo1=0:2:10;%Rango EbNo teórico para graficar 

bertheory = berawgn(EbNo1,'psk',M,'nondiff');%BER teorico 

for n = 1:length(EbNo1) 

SNR1 = EbNo1  + 10*log10(k) ‐ 10*log10(nsamp); 

Ynoisy1 = awgn(y,SNR1(n),'measured'); 

rx1= pskdemod(Ynoisy1,M); 

[nErrors, BER1] = biterr(tx,rx1); 

Ber6(n)=BER1 

ne(n)=nErrors 

Page 32: ANALISIS Y SIMULACIÓN DE LOS SISTEMAS DE …

32  

end 

% Grafica de los resultados del BER. 

semilogy(EbNo1,bertheory,'b‐',EbNo1,Ber6,'r'); 

legend('BER teorico','BER empirico','BER teorico para el Eb/No'); 

xlabel('EbNo (dB)'); ylabel('BER'); 

title('BER Vs Eb/No QPSK over AWGN');   

grid on; 

h=scatterplot(ynoisy,1,0,'g.'); 

hold on; 

scatterplot(y,1,0,'k+',h); 

title('PSK por canal AWGN'); 

legend('señal recibida','constelación PSK'); 

hold off; 

   

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Page 33: ANALISIS Y SIMULACIÓN DE LOS SISTEMAS DE …

33  

%***********************************************************************************

% SIMULADOR MODULACION PSK 

% Proyecto de Grado 

%Estudiante: Juan Gabriel Fandiño 

% Asesor: Rafael Camerano Fuentes 

% Universidad de los Andes, 2008 

% DESCRIPCION: 

% Este programa simula la modulación de 8 PSK. 

%*********************************************************************************** 

 M=8;% Tamaño de la constelación de la señal 

k = log2(M); % Número de bits por simbolo 

n = 3e3; % Número de bits a procesar 

EbNo=EbNo; 

nsamp=1;% Oversampling rat 

tx = randint(5000,1,M); % Generación del mensaje aleatorio 

y = pskmod(tx,M);%Modulación PSK 

%Transmisión de la señal a traves del canal AWGN. 

snr = EbNo + 10*log10(k) ‐ 10*log10(nsamp) 

ynoisy = awgn(y,snr,'measured'); 

BERteorico = berawgn(EbNo,'psk',M,'nondiff') 

rx = pskdemod(ynoisy,M);%Demodulación para recuperar el mensaje 

[errores,BER]= biterr(tx,rx)%chequeo de BER 

EbNo1=0:2:15;%Rango de EbNo teorico para graficar 

bertheory = berawgn(EbNo1,'psk',M,'nondiff');%BER teorico 

for n = 1:length(EbNo1) 

SNR1 = EbNo1 + 10*log10(k) ‐ 10*log10(nsamp); 

Ynoisy1 = awgn(y,SNR1(n),'measured'); 

rx1= pskdemod(Ynoisy1,M); 

[nErrors, BER1] = biterr(tx,rx1); 

Ber8(n)=BER1; 

ne(n)=nErrors; 

Page 34: ANALISIS Y SIMULACIÓN DE LOS SISTEMAS DE …

34  

end 

% Grafica de los resultados del BER. 

semilogy(EbNo1,bertheory,'b‐',EbNo1,Ber8,'r‐'); 

legend('BER teorico','BER empirico','BER teorico para el EbNo'); 

xlabel('EbNo (dB)'); ylabel('BER'); 

title('BER Vs Eb/No PSK over AWGN'); 

grid on; 

h=scatterplot(ynoisy,1,0,'g.'); 

hold on; 

scatterplot(y,1,0,'k+',h); 

title('PSK por canal AWGN'); 

legend('señal recibida','constelación PSK'); 

hold off; 

   

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Page 35: ANALISIS Y SIMULACIÓN DE LOS SISTEMAS DE …

35  

%***********************************************************************************

% SIMULADOR MODULACION PSK 

% Proyecto de Grado 

%Estudiante: Juan Gabriel Fandiño 

% Asesor: Rafael Camerano Fuentes 

% Universidad de los Andes, 2008 

% DESCRIPCION: 

% Este programa simula la modulación de 16 PSK. 

%*********************************************************************************** 

  M=16;% Tamaño de la constelación de la señal 

k = log2(M); % Número de bits por simbolo 

n = 3e3; % Número de bits a procesar 

EbNo=EbNo; 

nsamp=1;% Oversampling rate 

tx = randint(5000,1,M); % Generación del mensaje aleatorio 

y = pskmod(tx,M);%Modulación PSK 

% Transmisión de la señal a traves del canal AWGN 

snr = EbNo + 10*log10(k) ‐ 10*log10(nsamp) 

ynoisy = awgn(y,snr,'measured'); 

BERteorico = berawgn(EbNo,'psk',M,'nondiff') 

rx = pskdemod(ynoisy,M);%Demodulación para recuperar el mensaje 

[errores,BER]= biterr(tx,rx)Chequeo de BER 

EbNo1=0:2:18;%Rango de EbNo teorico paea graficar 

bertheory = berawgn(EbNo1,'psk',M,'nondiff');%BER teorico 

for n = 1:length(EbNo1) 

SNR1 = EbNo1 + 10*log10(k) ‐ 10*log10(nsamp); 

Ynoisy1 = awgn(y,SNR1(n),'measured'); 

rx1= pskdemod(Ynoisy1,M); 

[nErrors, BER1] = biterr(tx,rx1); 

Ber10(n)=BER1; 

ne(n)=nErrors; 

Page 36: ANALISIS Y SIMULACIÓN DE LOS SISTEMAS DE …

36  

end 

% Grafica de los resultados del BER. 

semilogy(EbNo1,bertheory,'b‐',EbNo1,Ber10,'r‐'); 

legend('BER teorico','BER empirico','BER teorico para el EbNo'); 

xlabel('EbNo (dB)'); ylabel('BER'); 

title('BER Vs Eb/No PSK over AWGN');   

h=scatterplot(ynoisy,1,0,'g.'); 

hold on; 

scatterplot(y,1,0,'k+',h); 

title('PSK por canal AWGN'); 

legend('señal recibida','constelación PSK'); 

hold off; 

                            

Page 37: ANALISIS Y SIMULACIÓN DE LOS SISTEMAS DE …

37  

%***********************************************************************************

% SIMULADOR MODULACION QAM 

% Proyecto de Grado 

%Estudiante: Juan Gabriel Fandiño 

% Asesor: Rafael Camerano Fuentes 

% Universidad de los Andes, 2008 

% DESCRIPCION: 

% Este programa simula la modulación de 4 QAM. 

%*********************************************************************************** 

 M=4;% Tamaño de la constelación de la señal 

k = log2(M); % Número de bits por simbolo 

n = 3e3; % Número de bits a procesar 

EbNo=EbNo; 

nsamp=1;% Oversampling rate 

tx=randint(500000,1,M); % Generación del mensaje aleatorio 

y = qammod(tx,M); % moduñación QAM 

% Transmisión de la señal a traves del canal AWGN. 

snr = EbNo + 10*log10(k) ‐ 10*log10(nsamp) 

BERteorico = berawgn(EbNo,'qam',M) 

ynoisy = awgn(y,snr,'measured'); 

rx=qamdemod(ynoisy,M);%Demodulación para recuperar el mensaje. 

[errores,BER]= biterr(tx,rx)%Chequeo de BER 

EbNo1 = 0:2:10;%Rango de EbNo teorico para graficar 

bertheory = berawgn(EbNo1,'qam',M,'nondiff');%BER teorico 

for n = 1:length(EbNo1) 

SNR2 = EbNo1 + 10*log10(k) ‐ 10*log10(nsamp); 

Ynoisy1 = awgn(y,SNR2(n),'measured'); 

rx1= qamdemod(Ynoisy1,M); 

[nErrors, BER1] = biterr(tx,rx1); 

Ber11(n)=BER1; 

ne(n)=nErrors; 

Page 38: ANALISIS Y SIMULACIÓN DE LOS SISTEMAS DE …

38  

end 

% Grafica de los resultados del BER. 

semilogy(EbNo1,bertheory,'b‐‐',EbNo1,Ber11,'r‐'); 

legend('BER teorico','BER empirico','ber teorica para el EbNo'); 

xlabel('EbNo (dB)'); ylabel('BER'); 

title('BER Vs Eb/No QAM over AWGN'); 

h=scatterplot(ynoisy,1,0,'g.'); 

hold on; 

scatterplot(y,1,0,'k+',h); 

title('QAM por canal AWGN'); 

legend('señal recibida','constelación QAM'); 

hold off; 

                              

Page 39: ANALISIS Y SIMULACIÓN DE LOS SISTEMAS DE …

39  

%***********************************************************************************

% SIMULADOR MODULACION QAM 

% Proyecto de Grado 

%Estudiante: Juan Gabriel Fandiño 

% Asesor: Rafael Camerano Fuentes 

% Universidad de los Andes, 2008 

% DESCRIPCION: 

% Este programa simula la modulación de 8 QAM. 

%*********************************************************************************** 

 

M=8;% Tamaño de la constelación de la señal 

k = log2(M); % Número de bits por simbolo 

n = 3e3; % Número de bits a procesar 

EbNo=EbNo; 

nsamp=1;% Oversampling rate 

tx=randint(500000,1,M); % Generación del mensaje aleatorio 

y = qammod(tx,M); % modulación QAM 

% Transmisión de la señal a traves del canal AWGN. 

snr = EbNo + 10*log10(k) ‐ 10*log10(nsamp) 

BERteorico = berawgn(EbNo,'qam',M) 

ynoisy = awgn(y,snr,'measured'); 

rx=qamdemod(ynoisy,M);%Demodulación para recuperar el mensaje. 

[errores,BER]= biterr(tx,rx)%Chequeo de BER 

EbNo1 = 0:2:12;%Rango de EbNo teorico para graficar 

bertheory = berawgn(EbNo1,'qam',M,'nondiff');%BER teorico 

for n = 1:length(EbNo1) 

SNR2 = EbNo1 + 10*log10(k) ‐ 10*log10(nsamp); 

Ynoisy1 = awgn(y,SNR2(n),'measured'); 

rx1= qamdemod(Ynoisy1,M); 

[nErrors, BER1] = biterr(tx,rx1); 

Ber1(n)=BER1; 

ne(n)=nErrors; 

Page 40: ANALISIS Y SIMULACIÓN DE LOS SISTEMAS DE …

40  

end 

% Grafica de los resultados del BER. 

semilogy(EbNo1,bertheory,'b‐‐',EbNo1,Ber1,'r‐'); 

legend('BER teorico','BER empirico','ber teorica para el EbNo'); 

xlabel('EbNo (dB)'); ylabel('BER'); 

title('BER Vs Eb/No QAM over AWGN'); 

h=scatterplot(ynoisy,1,0,'g.'); 

hold on; 

scatterplot(y,1,0,'k+',h); 

title('QAM por canal AWGN'); 

legend('señal recibida','constelación QAM'); 

hold off; 

  

                            

Page 41: ANALISIS Y SIMULACIÓN DE LOS SISTEMAS DE …

41  

   

%***********************************************************************************

% SIMULADOR MODULACION QAM 

% Proyecto de Grado 

%Estudiante: Juan Gabriel Fandiño 

% Asesor: Rafael Camerano Fuentes 

% Universidad de los Andes, 2008 

% DESCRIPCION: 

% Este programa simula la modulación de 16 QAM. 

%*********************************************************************************** 

 

M=16;% Tamaño de la constelación de la señal 

k = log2(M); % Número de bits por simbolo 

n = 3e3; % Número de bits a procesar 

EbNo=EbNo; 

nsamp=1;% Oversampling rate 

tx=randint(500000,1,M); % Generación del mensaje aleatorio 

y = qammod(tx,M); % modulación QAM 

% Transmisión de la señal a traves del canal AWGN. 

snr = EbNo + 10*log10(k) ‐ 10*log10(nsamp) 

BERteorico = berawgn(EbNo,'qam',M) 

ynoisy = awgn(y,snr,'measured'); 

rx=qamdemod(ynoisy,M);%Demodulación para recuperar el mensaje. 

[errores,BER]= biterr(tx,rx)%Chequeo de BER 

EbNo1 = 0:2:14;%Rango de EbNo teorico para graficar 

bertheory = berawgn(EbNo1,'qam',M,'nondiff');%BER teorico 

for n = 1:length(EbNo1) 

SNR2 = EbNo1 + 10*log10(k) ‐ 10*log10(nsamp); 

Ynoisy1 = awgn(y,SNR2(n),'measured'); 

rx1= qamdemod(Ynoisy1,M); 

[nErrors, BER1] = biterr(tx,rx1); 

Page 42: ANALISIS Y SIMULACIÓN DE LOS SISTEMAS DE …

42  

Ber12(n)=BER1; 

ne(n)=nErrors; 

end 

% Grafica de los resultados del BER. 

semilogy(EbNo1,bertheory,'b‐‐',EbNo1,Ber12,'r‐'); 

legend('BER teorico','BER empirico','ber teorica para el EbNo'); 

xlabel('EbNo (dB)'); ylabel('BER'); 

title('BER Vs Eb/No QAM over AWGN'); 

h=scatterplot(ynoisy,1,0,'g.'); 

hold on; 

scatterplot(y,1,0,'k+',h); 

title('QAM por canal AWGN'); 

legend('señal recibida','constelación QAM'); 

hold off; 

  

                        

Page 43: ANALISIS Y SIMULACIÓN DE LOS SISTEMAS DE …

43  

%***********************************************************************************

% SIMULADOR MODULACION QAM 

% Proyecto de Grado 

%Estudiante: Juan Gabriel Fandiño 

% Asesor: Rafael Camerano Fuentes 

% Universidad de los Andes, 2008 

% DESCRIPCION: 

% Este programa simula la modulación de 32 QAM. 

%*********************************************************************************** 

 M=32;% Tamaño de la constelación de la señal 

k = log2(M); % Número de bits por simbolo 

n = 3e3; % Número de bits a procesar 

EbNo=EbNo; 

nsamp=1;% Oversampling rate 

tx=randint(500000,1,M); % Generación del mensaje aleatorio 

y = qammod(tx,M); % modulación QAM 

% Transmisión de la señal a traves del canal AWGN. 

snr = EbNo + 10*log10(k) ‐ 10*log10(nsamp) 

BERteorico = berawgn(EbNo,'qam',M) 

ynoisy = awgn(y,snr,'measured'); 

rx=qamdemod(ynoisy,M);%Demodulación para recuperar el mensaje. 

[errores,BER]= biterr(tx,rx)%Chequeo de BER 

EbNo1 = 0:2:16;%Rango de EbNo teorico para graficar 

bertheory = berawgn(EbNo1,'qam',M,'nondiff');%BER teorico 

for n = 1:length(EbNo1) 

SNR2 = EbNo1 + 10*log10(k) ‐ 10*log10(nsamp); 

Ynoisy1 = awgn(y,SNR2(n),'measured'); 

rx1= qamdemod(Ynoisy1,M); 

[nErrors, BER1] = biterr(tx,rx1); 

Ber16(n)=BER1; 

ne(n)=nErrors; 

Page 44: ANALISIS Y SIMULACIÓN DE LOS SISTEMAS DE …

44  

end 

% Grafica de los resultados del BER. 

semilogy(EbNo1,bertheory,'b‐‐',EbNo1,Ber16,'r‐'); 

legend('BER teorico','BER empirico','ber teorica para el EbNo'); 

xlabel('EbNo (dB)'); ylabel('BER'); 

title('BER Vs Eb/No QAM over AWGN'); 

h=scatterplot(ynoisy,1,0,'g.'); 

hold on; 

scatterplot(y,1,0,'k+',h); 

title('QAM por canal AWGN'); 

legend('señal recibida','constelación QAM'); 

hold off; 

                              

Page 45: ANALISIS Y SIMULACIÓN DE LOS SISTEMAS DE …

45  

 Anexo B.  

  

%***********************************************************************************

% CODIGO DE INTERFACE GRAFICA 

% Proyecto de Grado 

%Estudiante: Juan Gabriel Fandiño 

% Asesor: Rafael Camerano Fuentes 

% Universidad de los Andes, 2008 

% DESCRIPCION: 

% Este programa ejecuta la interface grafica de la herramienta. 

%*********************************************************************************** 

    function varargout = tesis(varargin) 

% TESIS M‐file for tesis.fig 

%      TESIS, by itself, creates a new TESIS or raises the existing 

%      singleton*. 

%      H = TESIS returns the handle to a new TESIS or the handle to 

%      the existing singleton*. 

%      TESIS('CALLBACK',hObject,eventData,handles,...) calls the local 

%      function named CALLBACK in TESIS.M with the given input arguments. 

%      TESIS('Property','Value',...) creates a new TESIS or raises the 

%      existing singleton*.  Starting from the left, property value pairs are 

%      applied to the GUI before tesis_OpeningFunction gets called.  An 

%      unrecognized property name or invalid value makes property application 

%      stop.  All inputs are passed to tesis_OpeningFcn via varargin. 

%      *See GUI Options on GUIDE's Tools menu.  Choose "GUI allows only one 

%      instance to run (singleton)". 

% See also: GUIDE, GUIDATA, GUIHANDLES 

% Copyright 2002‐2003 The MathWorks, Inc. 

% Begin initialization code ‐ DO NOT EDIT 

Page 46: ANALISIS Y SIMULACIÓN DE LOS SISTEMAS DE …

46  

gui_Singleton = 1; 

gui_State = struct('gui_Name',       mfilename, ... 

                   'gui_Singleton',  gui_Singleton, ... 

                   'gui_OpeningFcn', @tesis_OpeningFcn, ... 

                   'gui_OutputFcn',  @tesis_OutputFcn, ... 

                   'gui_LayoutFcn',  [] , ... 

                   'gui_Callback',   []); 

if nargin && ischar(varargin{1}) 

    gui_State.gui_Callback = str2func(varargin{1}); 

end 

 

if nargout 

    [varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:}); 

else 

    gui_mainfcn(gui_State, varargin{:}); 

end 

% End initialization code ‐ DO NOT EDIT 

% ‐‐‐ Executes just before tesis is made visible. 

function tesis_OpeningFcn(hObject, eventdata, handles, varargin) 

% This function has no output args, see OutputFcn. 

% hObject    handle to figure 

% eventdata  reserved ‐ to be defined in a future version of MATLAB 

% handles    structure with handles and user data (see GUIDATA) 

% varargin   command line arguments to tesis (see VARARGIN) 

 

% Choose default command line output for tesis 

handles.output = hObject; 

% Update handles structure 

guidata(hObject, handles); 

 

% UIWAIT makes tesis wait for user response (see UIRESUME) 

% uiwait(handles.figure1); 

Page 47: ANALISIS Y SIMULACIÓN DE LOS SISTEMAS DE …

47  

% ‐‐‐ Outputs from this function are returned to the command line. 

function varargout = tesis_OutputFcn(hObject, eventdata, handles)  

% varargout  cell array for returning output args (see VARARGOUT); 

% hObject    handle to figure 

% eventdata  reserved ‐ to be defined in a future version of MATLAB 

% handles    structure with handles and user data (see GUIDATA) 

% Get default command line output from handles structure 

varargout{1} = handles.output; 

function Ebno_Callback(hObject, eventdata, handles) 

% hObject    handle to Ebno (see GCBO) 

% eventdata  reserved ‐ to be defined in a future version of MATLAB 

% handles    structure with handles and user data (see GUIDATA) 

% Hints: get(hObject,'String') returns contents of Ebno as text 

%        str2double(get(hObject,'String')) returns contents of Ebno as a double 

% ‐‐‐ Executes during object creation, after setting all properties. 

function Ebno_CreateFcn(hObject, eventdata, handles) 

% hObject    handle to Ebno (see GCBO) 

% eventdata  reserved ‐ to be defined in a future version of MATLAB 

% handles    empty ‐ handles not created until after all CreateFcns called 

% Hint: edit controls usually have a white background on Windows. 

%       See ISPC and COMPUTER. 

if ispc 

    set(hObject,'BackgroundColor','white'); 

else 

    set(hObject,'BackgroundColor',get(0,'defaultUicontrolBackgroundColor')); 

end 

function errores_Callback(hObject, eventdata, handles) 

% hObject    handle to errores (see GCBO) 

% eventdata  reserved ‐ to be defined in a future version of MATLAB 

% handles    structure with handles and user data (see GUIDATA) 

% Hints: get(hObject,'String') returns contents of errores as text 

%        str2double(get(hObject,'String')) returns contents of errores as a double 

Page 48: ANALISIS Y SIMULACIÓN DE LOS SISTEMAS DE …

48  

% ‐‐‐ Executes during object creation, after setting all properties. 

function errores_CreateFcn(hObject, eventdata, handles) 

% hObject    handle to errores (see GCBO) 

% eventdata  reserved ‐ to be defined in a future version of MATLAB 

% handles    empty ‐ handles not created until after all CreateFcns called 

% Hint: edit controls usually have a white background on Windows. 

%       See ISPC and COMPUTER. 

if ispc 

    set(hObject,'BackgroundColor','white'); 

else 

    set(hObject,'BackgroundColor',get(0,'defaultUicontrolBackgroundColor')); 

end 

function ber_Callback(hObject, eventdata, handles) 

% hObject    handle to ber (see GCBO) 

% eventdata  reserved ‐ to be defined in a future version of MATLAB 

% handles    structure with handles and user data (see GUIDATA) 

% Hints: get(hObject,'String') returns contents of ber as text 

%        str2double(get(hObject,'String')) returns contents of ber as a double 

% ‐‐‐ Executes during object creation, after setting all properties. 

function ber_CreateFcn(hObject, eventdata, handles) 

% hObject    handle to ber (see GCBO) 

% eventdata  reserved ‐ to be defined in a future version of MATLAB 

% handles    empty ‐ handles not created until after all CreateFcns called 

% Hint: edit controls usually have a white background on Windows. 

%       See ISPC and COMPUTER. 

if ispc 

    set(hObject,'BackgroundColor','white'); 

else 

    set(hObject,'BackgroundColor',get(0,'defaultUicontrolBackgroundColor')); 

end 

 

% ‐‐‐ Executes on button press in oqam. 

Page 49: ANALISIS Y SIMULACIÓN DE LOS SISTEMAS DE …

49  

function oqam_Callback(hObject, eventdata, handles) 

% hObject    handle to oqam (see GCBO) 

% eventdata  reserved ‐ to be defined in a future version of MATLAB 

% handles    structure with handles and user data (see GUIDATA) 

a=get(handles.Ebno,'string'); 

a=str2double(a);%lo pasa a valor de presicion 

oqam(a,handles) 

function oqam(yy,handles) 

M=8;% Tamaño de la constelación de la señal 

k = log2(M); % Número de bits por simbolo 

n = 3e3; % Número de bits a procesar 

EbNo=yy; 

nsamp=1;% Oversampling rate 

tx=randint(500000,1,M); % Generación del mensaje aleatorio 

y = qammod(tx,M); % modulación QAM 

% Transmisión de la señal a traves del canal AWGN. 

snr = EbNo + 10*log10(k) ‐ 10*log10(nsamp) 

BERteorico = berawgn(EbNo,'qam',M) 

ynoisy = awgn(y,snr,'measured'); 

rx=qamdemod(ynoisy,M);%Demodulación para recuperar el mensaje. 

[errores,BER]= biterr(tx,rx)%Chequeo de BER 

EbNo1 = 0:2:12;%Rango de EbNo teorico para graficar 

bertheory = berawgn(EbNo1,'qam',M,'nondiff');%BER teorico 

for n = 1:length(EbNo1) 

SNR2 = EbNo1 + 10*log10(k) ‐ 10*log10(nsamp); 

Ynoisy1 = awgn(y,SNR2(n),'measured'); 

rx1= qamdemod(Ynoisy1,M); 

[nErrors, BER1] = biterr(tx,rx1); 

Ber1(n)=BER1; 

ne(n)=nErrors; 

end 

axes(handles.axes1) 

Page 50: ANALISIS Y SIMULACIÓN DE LOS SISTEMAS DE …

50  

semilogy(EbNo1,bertheory,'b‐‐',EbNo1,Ber1,'r‐'); 

legend('BER teorico','BER empirico','ber teorica para el EbNo'); 

xlabel('EbNo (dB)'); ylabel('BER'); 

title('BER Vs Eb/No QAM over AWGN'); 

h=scatterplot(ynoisy,1,0,'g.'); 

hold on; 

saveas(scatterplot(y,1,0,'k+',h),'juan.bmp'); 

axes(handles.axes4) 

imshow('juan.bmp'); 

set (handles.errores,'string',errores) 

set (handles.ber,'string',BER) 

% ‐‐‐ Executes on button press in diqam. 

function diqam_Callback(hObject, eventdata, handles) 

% hObject    handle to diqam (see GCBO) 

% eventdata  reserved ‐ to be defined in a future version of MATLAB 

% handles    structure with handles and user data (see GUIDATA) 

a=get(handles.Ebno,'string'); 

a=str2double(a);%lo pasa a valor de presicion 

diqam(a,handles) 

function diqam(yy,handles) 

M=16;% Tamaño de la constelación de la señal 

k = log2(M); % Número de bits por simbolo 

n = 3e3; % Número de bits a procesar 

EbNo=yy; 

nsamp=1;% Oversampling rate 

tx=randint(500000,1,M); % Generación del mensaje aleatorio 

y = qammod(tx,M); % modulación QAM 

% Transmisión de la señal a traves del canal AWGN. 

snr = EbNo + 10*log10(k) ‐ 10*log10(nsamp) 

BERteorico = berawgn(EbNo,'qam',M) 

ynoisy = awgn(y,snr,'measured'); 

rx=qamdemod(ynoisy,M);%Demodulación para recuperar el mensaje. 

Page 51: ANALISIS Y SIMULACIÓN DE LOS SISTEMAS DE …

51  

[errores,BER]= biterr(tx,rx)%Chequeo de BER 

EbNo1 = 0:2:14;%Rango de EbNo teorico para graficar 

bertheory = berawgn(EbNo1,'qam',M,'nondiff');%BER teorico 

for n = 1:length(EbNo1) 

SNR2 = EbNo1 + 10*log10(k) ‐ 10*log10(nsamp); 

Ynoisy1 = awgn(y,SNR2(n),'measured'); 

rx1= qamdemod(Ynoisy1,M); 

[nErrors, BER1] = biterr(tx,rx1); 

Ber12(n)=BER1; 

ne(n)=nErrors; 

end 

axes(handles.axes1) 

% Grafica de los resultados del BER. 

semilogy(EbNo1,bertheory,'b‐‐',EbNo1,Ber12,'r‐'); 

legend('BER teorico','BER empirico','ber teorica para el EbNo'); 

xlabel('EbNo (dB)'); ylabel('BER'); 

title('BER Vs Eb/No QAM over AWGN'); 

h=scatterplot(ynoisy,1,0,'g.'); 

hold on; 

saveas(scatterplot(y,1,0,'k+',h),'juan.bmp'); 

axes(handles.axes4) 

imshow('juan.bmp'); 

set (handles.errores,'string',errores) 

set (handles.ber,'string',BER) 

 

% ‐‐‐ Executes on button press in treqam. 

function treqam_Callback(hObject, eventdata, handles) 

% hObject    handle to treqam (see GCBO) 

% eventdata  reserved ‐ to be defined in a future version of MATLAB 

% handles    structure with handles and user data (see GUIDATA) 

%necesito M, EbNo, nsamp 

a=get(handles.Ebno,'string'); 

Page 52: ANALISIS Y SIMULACIÓN DE LOS SISTEMAS DE …

52  

a=str2double(a);%lo pasa a valor de presicion 

tqam(a,handles) 

function tqam(yy,handles) 

M=32;% Tamaño de la constelación de la señal 

k = log2(M); % Número de bits por simbolo 

n = 3e3; % Número de bits a procesar 

EbNo=yy; 

nsamp=1;% Oversampling rate 

tx=randint(500000,1,M); % Generación del mensaje aleatorio 

y = qammod(tx,M); % modulación QAM 

% Transmisión de la señal a traves del canal AWGN. 

snr = EbNo + 10*log10(k) ‐ 10*log10(nsamp) 

BERteorico = berawgn(EbNo,'qam',M) 

ynoisy = awgn(y,snr,'measured'); 

rx=qamdemod(ynoisy,M);%Demodulación para recuperar el mensaje. 

[errores,BER]= biterr(tx,rx)%Chequeo de BER 

EbNo1 = 0:2:16;%Rango de EbNo teorico para graficar 

bertheory = berawgn(EbNo1,'qam',M,'nondiff');%BER teorico 

for n = 1:length(EbNo1) 

SNR2 = EbNo1 + 10*log10(k) ‐ 10*log10(nsamp); 

Ynoisy1 = awgn(y,SNR2(n),'measured'); 

rx1= qamdemod(Ynoisy1,M); 

[nErrors, BER1] = biterr(tx,rx1); 

Ber16(n)=BER1; 

ne(n)=nErrors; 

end 

axes(handles.axes1) 

% Grafica de los resultados del BER. 

semilogy(EbNo1,bertheory,'b‐‐',EbNo1,Ber16,'r‐'); 

legend('BER teorico','BER empirico','ber teorica para el EbNo'); 

xlabel('EbNo (dB)'); ylabel('BER'); 

title('BER Vs Eb/No QAM over AWGN'); 

Page 53: ANALISIS Y SIMULACIÓN DE LOS SISTEMAS DE …

53  

h=scatterplot(ynoisy,1,0,'g.'); 

hold on; 

saveas(scatterplot(y,1,0,'k+',h),'juan.bmp'); 

axes(handles.axes4) 

imshow('juan.bmp'); 

set (handles.errores,'string',errores) 

set (handles.ber,'string',BER) 

 

% ‐‐‐ Executes on button press in ray. 

function ray_Callback(hObject, eventdata, handles) 

% hObject    handle to ray (see GCBO) 

% eventdata  reserved ‐ to be defined in a future version of MATLAB 

% handles    structure with handles and user data (see GUIDATA) 

a=get(handles.Ebno,'string'); 

a=str2double(a);%lo pasa a valor de presicion 

ray(a,handles) 

function ray(yy,handles) 

%M = 2; % DQPSK modulation order 

EbNo=yy; 

M=4;% Size of signal constellation 

nsamp=1;% Oversampling rat 

chan = rayleighchan(1/10000,100); 

k = log2(M); % Number of bits per symbol 

n = 3e4; % Number of bits to process 

nloop=1000;%numero de ciclos por Eb/No 

% Generate data and apply fading channel. 

%M = 2; % DBPSK modulation order 

tx = randint(5000,1,M);  % Random bit stream 

pskSig = dpskmod(tx,M);  % DPSK signal 

fadedSig = filter(chan,pskSig); % Effect of channel 

% Transmit signal through an AWGN channel. 

snr = EbNo + 10*log10(k) ‐ 10*log10(nsamp); 

Page 54: ANALISIS Y SIMULACIÓN DE LOS SISTEMAS DE …

54  

ynoisy = awgn(fadedSig,snr); 

ber1 = berfading(EbNo,'dpsk',M,1); 

% Demodulate to recover the message. 

rx = dpskdemod(ynoisy,M); 

[errores,ber2] = biterr(tx,rx); % Bit error rate 

% Compute error rate for different values of SNR. 

EBNO = 0:2:20; % Range of SNR values, in dB. 

for n = 1:length(EBNO) 

   SNR = EBNO + 10*log10(k) ‐ 10*log10(nsamp); 

   rxSig = awgn(fadedSig,SNR(n)); % Add Gaussian noise. 

   rx = dpskdemod(rxSig,M); % Demodulate. 

   % Compute error rate. 

   % Ignore first sample because of DPSK initial condition. 

   [nErrors, BER20(n)] = biterr(tx(2:end),rx(2:end)); 

ne(n)=nErrors; 

end 

% Compute theoretical performance results, for comparison. 

BERtheory = berfading(EBNO,'dpsk',M,1); 

axes(handles.axes1) 

semilogy(EBNO,BERtheory,'b‐‐',EBNO,BER20,'r‐');%,EbNo,ber1,'go',EbNo,ber2, 'k+' 

legend('Theoretical BER','Empirical BER','ber teorico','ber empirico'); 

xlabel('EbNo (dB)'); ylabel('BER'); 

title('Binary PSK over Rayleigh Fading Channel'); 

grid on 

h=scatterplot(ynoisy,1,0,'g.'); 

hold on; 

saveas(scatterplot(pskSig,1,0,'k+',h),'juan.bmp'); 

axes(handles.axes4) 

imshow('juan.bmp'); 

set (handles.errores,'string',errores) 

set (handles.ber,'string',ber2) 

 

Page 55: ANALISIS Y SIMULACIÓN DE LOS SISTEMAS DE …

55  

% ‐‐‐ Executes on button press in bpsk. 

function bpsk_Callback(hObject, eventdata, handles) 

% hObject    handle to bpsk (see GCBO) 

% eventdata  reserved ‐ to be defined in a future version of MATLAB 

% handles    structure with handles and user data (see GUIDATA) 

a=get(handles.Ebno,'string'); 

a=str2double(a);%lo pasa a valor de presicion 

bpsk(a,handles) 

function bpsk(yy,handles) 

M = 2; %Tamaño de la constelación de la señal 

k =  log2(M); %Número de bits por símbolo 

n = 3e3; %Número de bits a procesar 

EbNo = yy; 

Nsamp = 1;% Oversampling rate 

tx = randint(5000,1,M); %Generación de mensaje aleatorio 

y = pskmod(tx,M); % Modulación  M‐PSK  

% Transmisión de la señal a través del canal AWGN. 

snr = EbNo + 10*log10(k) ‐ 10*log10(nsamp) 

ynoisy = awgn(y,snr,'measured'); 

BERteorico = berawgn(EbNo,'psk',M,'nondiff') 

rx = pskdemod(ynoisy,M); % Demodulación para recuperar el mensaje. 

[errores,BER]= biterr(tx,rx) %chequeo de BER 

EbNo1=0:2:10; %Rango EbNo teórico para graficar 

bertheory = berawgn(EbNo1,'psk',M,'nondiff'); % BER teórico 

for n = 1:length(EbNo1) 

SNR1 = EbNo1 + 10*log10(k) ‐ 10*log10(nsamp); 

Ynoisy1 = awgn(y,SNR1(n),'measured'); 

rx1= pskdemod(Ynoisy1,M); 

[nErrors, BER1] = biterr(tx,rx1); 

Ber11(n)=BER1; 

ne(n)=nErrors; 

end 

Page 56: ANALISIS Y SIMULACIÓN DE LOS SISTEMAS DE …

56  

axes(handles.axes1) 

% Grafica de los resultados del BER. 

semilogy(EbNo1,bertheory,'b:',EbNo1,Ber11,'r'); 

legend('BER teorico','BER empirico','BER teorico para el EbNo'); 

xlabel('EbNo (dB)'); ylabel('BER'); 

title('BER Vs Eb/No BPSK over AWGN');   

grid on 

h=scatterplot(Ynoisy1,1,0,'g.'); 

hold on; 

saveas(scatterplot(y,1,0,'k+',h),'juan.bmp'); 

axes(handles.axes4) 

imshow('juan.bmp'); 

set (handles.errores,'string',errores) 

set (handles.ber,'string',BER) 

% ‐‐‐ Executes on button press in cupsk. 

function cupsk_Callback(hObject, eventdata, handles) 

% hObject    handle to cupsk (see GCBO) 

% eventdata  reserved ‐ to be defined in a future version of MATLAB 

% handles    structure with handles and user data (see GUIDATA) 

a=get(handles.Ebno,'string'); 

a=str2double(a);%lo pasa a valor de presicion 

cupsk(a,handles) 

function cupsk(yy,handles) 

M=4;% Tamaño de la constelación de la señal 

k = log2(M); % Número de bits por simbolo 

n = 3e3; % Número de bits a procesar 

EbNo=yy; 

nsamp=1;% Oversampling rate 

tx = randint(5000,1,M); % Generación de mensaje aleatorio. 

y = pskmod(tx,M); %Modulación M‐PSK 

% Transmisión de la señal a traves del canal AWGN. 

snr = EbNo + 10*log10(k) ‐ 10*log10(nsamp) 

Page 57: ANALISIS Y SIMULACIÓN DE LOS SISTEMAS DE …

57  

ynoisy = awgn(y,snr,'measured'); 

BERteorico = berawgn(EbNo,'psk',M,'nondiff') 

rx = pskdemod(ynoisy,M);%Demodulación para recuperar el mensaje. 

[errores,BER]= biterr(tx,rx)% Chequeo de BER 

EbNo1=0:2:10;%Rango EbNo teórico para graficar 

bertheory = berawgn(EbNo1,'psk',M,'nondiff');%BER teorico 

for n = 1:length(EbNo1) 

SNR1 = EbNo1  + 10*log10(k) ‐ 10*log10(nsamp); 

Ynoisy1 = awgn(y,SNR1(n),'measured'); 

rx1= pskdemod(Ynoisy1,M); 

[nErrors, BER1] = biterr(tx,rx1); 

Ber6(n)=BER1 

ne(n)=nErrors 

end 

axes(handles.axes1) 

% Grafica de los resultados del BER. 

semilogy(EbNo1,bertheory,'b‐',EbNo1,Ber6,'r'); 

legend('BER teorico','BER empirico','BER teorico para el Eb/No'); 

xlabel('EbNo (dB)'); ylabel('BER'); 

title('BER Vs Eb/No QPSK over AWGN');   

grid on; 

h=scatterplot(ynoisy,1,0,'g.'); 

hold on; 

saveas(scatterplot(y,1,0,'k+',h),'juan.bmp'); 

axes(handles.axes4) 

imshow('juan.bmp'); 

set (handles.errores,'string',errores) 

set (handles.ber,'string',BER) 

 

% ‐‐‐ Executes on button press in opsk. 

function opsk_Callback(hObject, eventdata, handles) 

% hObject    handle to opsk (see GCBO) 

Page 58: ANALISIS Y SIMULACIÓN DE LOS SISTEMAS DE …

58  

% eventdata  reserved ‐ to be defined in a future version of MATLAB 

% handles    structure with handles and user data (see GUIDATA) 

a=get(handles.Ebno,'string'); 

a=str2double(a);%lo pasa a valor de presicion 

opsk(a,handles) 

function opsk(yy,handles) 

M=8;% Tamaño de la constelación de la señal 

k = log2(M); % Número de bits por simbolo 

n = 3e3; % Número de bits a procesar 

EbNo=yy; 

nsamp=1;% Oversampling rat 

tx = randint(5000,1,M); % Generación del mensaje aleatorio 

y = pskmod(tx,M);%Modulación PSK 

%Transmisión de la señal a traves del canal AWGN. 

snr = EbNo + 10*log10(k) ‐ 10*log10(nsamp) 

ynoisy = awgn(y,snr,'measured'); 

BERteorico = berawgn(EbNo,'psk',M,'nondiff') 

rx = pskdemod(ynoisy,M);%Demodulación para recuperar el mensaje 

[errores,BER]= biterr(tx,rx)%chequeo de BER 

EbNo1=0:2:15;%Rango de EbNo teorico para graficar 

bertheory = berawgn(EbNo1,'psk',M,'nondiff');%BER teorico 

for n = 1:length(EbNo1) 

SNR1 = EbNo1 + 10*log10(k) ‐ 10*log10(nsamp); 

Ynoisy1 = awgn(y,SNR1(n),'measured'); 

rx1= pskdemod(Ynoisy1,M); 

[nErrors, BER1] = biterr(tx,rx1); 

Ber8(n)=BER1; 

ne(n)=nErrors; 

end 

axes(handles.axes1) 

% Grafica de los resultados del BER. 

semilogy(EbNo1,bertheory,'b‐',EbNo1,Ber8,'r‐'); 

Page 59: ANALISIS Y SIMULACIÓN DE LOS SISTEMAS DE …

59  

legend('BER teorico','BER empirico','BER teorico para el EbNo'); 

xlabel('EbNo (dB)'); ylabel('BER'); 

title('BER Vs Eb/No PSK over AWGN'); 

grid on; 

h=scatterplot(ynoisy,1,0,'g.'); 

hold on; 

saveas(scatterplot(y,1,0,'k+',h),'juan.bmp'); 

axes(handles.axes4) 

imshow('juan.bmp'); 

set (handles.errores,'string',errores) 

set (handles.ber,'string',BER) 

 

% ‐‐‐ Executes on button press in dipsk. 

function dipsk_Callback(hObject, eventdata, handles) 

% hObject    handle to dipsk (see GCBO) 

% eventdata  reserved ‐ to be defined in a future version of MATLAB 

% handles    structure with handles and user data (see GUIDATA) 

a=get(handles.Ebno,'string'); 

a=str2double(a);%lo pasa a valor de presicion 

dpsk(a,handles) 

function dpsk(yy,handles) 

M=16;% Tamaño de la constelación de la señal 

k = log2(M); % Número de bits por simbolo 

n = 3e3; % Número de bits a procesar 

EbNo=yy; 

nsamp=1;% Oversampling rate 

tx = randint(5000,1,M); % Generación del mensaje aleatorio 

y = pskmod(tx,M);%Modulación PSK 

% Transmisión de la señal a traves del canal AWGN 

snr = EbNo + 10*log10(k) ‐ 10*log10(nsamp) 

ynoisy = awgn(y,snr,'measured'); 

BERteorico = berawgn(EbNo,'psk',M,'nondiff') 

Page 60: ANALISIS Y SIMULACIÓN DE LOS SISTEMAS DE …

60  

rx = pskdemod(ynoisy,M);%Demodulación para recuperar el mensaje 

[errores,BER]= biterr(tx,rx)Chequeo de BER 

EbNo1=0:2:18;%Rango de EbNo teorico paea graficar 

bertheory = berawgn(EbNo1,'psk',M,'nondiff');%BER teorico 

for n = 1:length(EbNo1) 

SNR1 = EbNo1 + 10*log10(k) ‐ 10*log10(nsamp); 

Ynoisy1 = awgn(y,SNR1(n),'measured'); 

rx1= pskdemod(Ynoisy1,M); 

[nErrors, BER1] = biterr(tx,rx1); 

Ber10(n)=BER1; 

ne(n)=nErrors; 

end 

axes(handles.axes1) 

% Grafica de los resultados del BER. 

semilogy(EbNo1,bertheory,'b‐',EbNo1,Ber10,'r‐'); 

legend('BER teorico','BER empirico','BER teorico para el EbNo'); 

xlabel('EbNo (dB)'); ylabel('BER'); 

title('BER Vs Eb/No PSK over AWGN');   

h=scatterplot(ynoisy,1,0,'g.'); 

hold on; 

saveas(scatterplot(y,1,0,'k+',h),'juan.bmp'); 

axes(handles.axes4) 

imshow('juan.bmp'); 

set (handles.errores,'string',errores) 

set (handles.ber,'string',BER) 

 

% ‐‐‐ Executes on button press in cuqam. 

function cuqam_Callback(hObject, eventdata, handles) 

% hObject    handle to cuqam (see GCBO) 

% eventdata  reserved ‐ to be defined in a future version of MATLAB 

% handles    structure with handles and user data (see GUIDATA) 

a=get(handles.Ebno,'string'); 

Page 61: ANALISIS Y SIMULACIÓN DE LOS SISTEMAS DE …

61  

a=str2double(a);%lo pasa a valor de presicion 

qqam(a,handles) 

function qqam(yy,handles) 

M=4;% Tamaño de la constelación de la señal 

k = log2(M); % Número de bits por simbolo 

n = 3e3; % Número de bits a procesar 

EbNo=yy; 

nsamp=1;% Oversampling rate 

tx=randint(500000,1,M); % Generación del mensaje aleatorio 

y = qammod(tx,M); % moduñación QAM 

% Transmisión de la señal a traves del canal AWGN. 

snr = EbNo + 10*log10(k) ‐ 10*log10(nsamp) 

BERteorico = berawgn(EbNo,'qam',M) 

ynoisy = awgn(y,snr,'measured'); 

rx=qamdemod(ynoisy,M);%Demodulación para recuperar el mensaje. 

[errores,BER]= biterr(tx,rx)%Chequeo de BER 

EbNo1 = 0:2:10;%Rango de EbNo teorico para graficar 

bertheory = berawgn(EbNo1,'qam',M,'nondiff');%BER teorico 

for n = 1:length(EbNo1) 

SNR2 = EbNo1 + 10*log10(k) ‐ 10*log10(nsamp); 

Ynoisy1 = awgn(y,SNR2(n),'measured'); 

rx1= qamdemod(Ynoisy1,M); 

[nErrors, BER1] = biterr(tx,rx1); 

Ber11(n)=BER1; 

ne(n)=nErrors; 

end 

axes(handles.axes1) 

% Grafica de los resultados del BER. 

semilogy(EbNo1,bertheory,'b‐‐',EbNo1,Ber11,'r‐'); 

legend('BER teorico','BER empirico','ber teorica para el EbNo'); 

xlabel('EbNo (dB)'); ylabel('BER'); 

title('BER Vs Eb/No QAM over AWGN'); 

Page 62: ANALISIS Y SIMULACIÓN DE LOS SISTEMAS DE …

62  

h=scatterplot(ynoisy,1,0,'g.'); 

hold on; 

saveas(scatterplot(y,1,0,'k+',h),'juan.bmp'); 

axes(handles.axes4) 

imshow('juan.bmp'); 

set (handles.errores,'string',errores) 

set (handles.ber,'string',BER) 

 

% ‐‐‐ Executes on button press in delay. 

function delay_Callback(hObject, eventdata, handles) 

% hObject    handle to delay (see GCBO) 

% eventdata  reserved ‐ to be defined in a future version of MATLAB 

% handles    structure with handles and user data (see GUIDATA) 

          

                 

 

Page 63: ANALISIS Y SIMULACIÓN DE LOS SISTEMAS DE …

63  

Bibliografia  

    [1] John B. anderson. “Digital transmission engineering”. IEEE PRESS. PRENTICE HALL. 1999.

[2] Sergio Benedetto y Ezio Biglieri. “Principles of Digital Transmission with wireless applications”.

Kluwer Academis/ Plenum Publishers. 1999.

[3] Simon Haykin. "sistemas de comunicación”. Limusa wiley. 2002.

[4] Simon Haykin y Michael moher. “Introduction to analog and digital communications”. John wiley

sons, Inc. 2007.

[5] Communications Toolbox, MATLab 7.1