ing. arturo fajardo m.sc. · 2017-02-16 · el autor quiere agradece al ing. arturo fajardo por la...

83
DISEÑO E IMPLEMENTACIÓN DE UN MÓDEM BASADO EN LA RECOMENDACIÓN V.22BIS DE LA ITU EN UN PROCESADOR DIGITAL DE SEÑALES. INFORME FINAL RAFAEL RICARDO RUEDA MARTÍNEZ Dirigida por: ING. ARTURO FAJARDO M.SC. PONTIFICIA UNIVERSIDAD JAVERIANA FACULTAD DE INGENIERÍA CARRERA DE INGENIERÍA ELECTRÓNICA BOGOTÁ D.C. 2011

Upload: others

Post on 12-Mar-2020

3 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: ING. ARTURO FAJARDO M.SC. · 2017-02-16 · El autor quiere agradece al Ing. Arturo Fajardo por la dirección y el apoyo durante la realización de este proyecto, a los técnicos

DISEÑO E IMPLEMENTACIÓN DE UN MÓDEM BASADO EN LA RECOMENDACIÓN

V.22BIS DE LA ITU EN UN PROCESADOR DIGITAL DE SEÑALES.

INFORME FINAL

RAFAEL RICARDO RUEDA MARTÍNEZ

Dirigida por:

ING. ARTURO FAJARDO M.SC.

PONTIFICIA UNIVERSIDAD JAVERIANA

FACULTAD DE INGENIERÍA

CARRERA DE INGENIERÍA ELECTRÓNICA

BOGOTÁ D.C.

2011

Page 2: ING. ARTURO FAJARDO M.SC. · 2017-02-16 · El autor quiere agradece al Ing. Arturo Fajardo por la dirección y el apoyo durante la realización de este proyecto, a los técnicos

2

AGRADECIMIENTOS

El autor quiere agradece al Ing. Arturo Fajardo por la dirección y el apoyo durante la realización

de este proyecto, a los técnicos de laboratorio por la ayuda brindada con la logística en varios de

los aspectos del proyecto. A mi familia y amigos por su apoyo a lo largo del desarrollo de este

proyecto y a través del pregrado.

Page 3: ING. ARTURO FAJARDO M.SC. · 2017-02-16 · El autor quiere agradece al Ing. Arturo Fajardo por la dirección y el apoyo durante la realización de este proyecto, a los técnicos

3

ARTÍCULO 23 DE LA RESOLUCIÓN NO 13 DE JUNIO DE 1946

“La Universidad no se hace responsable por los conceptos emitidos por los alumnos en sus trabajos de grado, solo velará porque no se publique nada contrario al dogma y la moral católicos y porque el trabajo no contenga ataques y polémicas puramente personales, antes bien, se vean en ellas el anhelo de buscar la verdad y la justicia”

Page 4: ING. ARTURO FAJARDO M.SC. · 2017-02-16 · El autor quiere agradece al Ing. Arturo Fajardo por la dirección y el apoyo durante la realización de este proyecto, a los técnicos

4

TABLA DE CONTENIDO

1. INTRODUCCIÓN ........................................................................................................................... 9

2. MARCO TEÓRICO ....................................................................................................................... 11

2.1 Módem .............................................................................................................................. 11

2.2 Modulación Digital ........................................................................................................... 11

2.3 Códigos de línea ................................................................................................................ 11

2.4 ISI ...................................................................................................................................... 12

2.5 Modulación QAM ............................................................................................................. 15

2.6 Digital Signal Processor .................................................................................................... 15

2.6.1 TMS320C6713DSK ................................................................................................... 16

2.7 Aprendizaje Activo ........................................................................................................... 18

2.7.1 Aprendizaje Cooperativo .................................................................................... 20

2.7.2 Aprendizaje Basado en Problemas (PBL) ................................................................. 20

2.7.3 Aprendizaje Basado en Proyectos (PjBL) ........................................................... 20

3. DESARROLLO ................................................................................................................................. 22

3.1 Formato de las Guías ........................................................................................................ 22

3.2 Formatos de los Programas ............................................................................................... 22

3.3 Interacción con las Guías .................................................................................................. 22

3.4 Módulos ............................................................................................................................ 24

3.4.1 Módulo1 ..................................................................................................................... 24

3.4.2 Módulo 2 .................................................................................................................... 27

3.4.3 Módulo 3 .................................................................................................................... 41

3.4.4 Módulo 4 .................................................................................................................... 53

4. Análisis de Resultados .................................................................................................... 54

4.1 Resultado de los Módulos ................................................................................................. 54

4.1.1 Módulo 1 .................................................................................................................... 54

4.1.2 Módulo 2 .................................................................................................................... 56

4.1.3 Módulo 3 .................................................................................................................... 66

4.2 Evaluación de los Módulos ......................................................................................... 75

5. CONCLUSIONES ......................................................................................................................... 82

6. BIBLIOGRAFIA ........................................................................................................................... 83

Page 5: ING. ARTURO FAJARDO M.SC. · 2017-02-16 · El autor quiere agradece al Ing. Arturo Fajardo por la dirección y el apoyo durante la realización de este proyecto, a los técnicos

5

LISTA DE FIGURAS

Figura 1. (a)On-off (RZ ), (b) Polar (RZ), (c) Bipolar(RZ), (d)On-off(NRZ) y (e)Polar(NRZ)[5] ....... 12

Figura 2. Pulso sinc.[5] ................................................................................................................ 13

Figura 3. Sinc y su espectro de frecuencia. [5] ............................................................................ 13

Figura 4. Espectro de p (t). [5] .................................................................................................... 14

Figura 5. Constelaciones QAM. ................................................................................................... 15

Figura 6. Diagrama Arquitectura de un DSP ............................................................................... 16

Figura 7. Foto tarjeta de desarrollo TMS320C6713. ................................................................... 17

Figura 8. Diagrama en bloques tarjeta de desarrollo TMS320C6713-DSK 6713DSP. [11] .......... 17

Figura 9. Diagrama de Flujo del segundo programa primera práctica. ...................................... 25

Figura 10. Recorrido de los apuntadores. ................................................................................... 28

Figura 11. Diagrama de flujo generador de códigos de línea. .................................................... 30

Figura 12. Diagrama de Flujo general del programa de la guía 3. .............................................. 42

Figura 13. Diagrama funcional del modulador QAM .................................................................. 43

Figura 14. Diagrama funcional del demodulador QAM .............................................................. 43

Figura 15. Diagrama de flujo del modulador QAM. .................................................................... 44

Figura 16. Señal sinusoidal generador de funciones. ................................................................. 54

Figura 17. Señal rampa generador de funciones. ....................................................................... 55

Figura 18. Señal triangulo generador de funciones. ................................................................... 55

Figura 19. Señal cuadrada generador de funciones.................................................................... 56

Figura 20. Ventana de control del generador de códigos. .......................................................... 56

Figura 21. Código on-off siguiendo una secuencia intercalada de 1 y 0. .................................... 57

Figura 22. FFT del código de línea on-off. ................................................................................... 57

Figura 23. Código de línea polar sin retorno a cero. ................................................................... 58

Figura 24. FFT de código de línea sin retorno a cero. ................................................................. 58

Figura 25. Código de línea polar con retorno a cero. ................................................................. 59

Figura 26. FFT del código de línea polar retorno a cero. ............................................................ 59

Figura 27. Código de línea bipolar no retorno a cero. ................................................................ 60

Figura 28. FFT de código de línea con no retorno a cero. ........................................................... 60

Figura 29. Código de línea bipolar con retorno a cero. .............................................................. 61

Figura 30. FFT del código de línea bipolar con retorno a cero................................................... 61

Figura 31. Código de línea Manchester. ..................................................................................... 62

Figura 32. FFT del código de línea Manchester. ......................................................................... 62

Figura 33. Código de línea polar con forma de pulso sinc. ......................................................... 63

Figura 34. FFT Código de línea polar con forma de pulso sinc. ................................................... 63

Figura 35. Código de línea polar con forma de pulso coseno elevado. ...................................... 64

Figura 36. FFT de código de línea polar con forma de pulso coseno elevado. ........................... 64

Figura 37. Código de línea bipolar con secuencia aleatoria ....................................................... 65

Figura 38.FFT de código de línea polar con secuencia aleatoria. ............................................... 65

Figura 39. Ventana de control del progrma QAM ...................................................................... 66

Figura 40. Modulación QAM16 con tren de impulsos cuadrados con desfase de 0°. ................ 66

Figura 41. FFT de la modulación QAM16 con tren de impulso cuadrada y desfase 0°............... 67

Figura 42. Modulación QAM16 con tren de impulsos cuadrados con desfase de 180°. ............ 67

Page 6: ING. ARTURO FAJARDO M.SC. · 2017-02-16 · El autor quiere agradece al Ing. Arturo Fajardo por la dirección y el apoyo durante la realización de este proyecto, a los técnicos

6

Figura 43. FFT modulación QAM16 con tren de impulsos cuadrados con desfase de 180°. ...... 68

Figura 44. Modulación QAM16 con tren de impulsos cuadrados con desfase 90°. .................. 68

Figura 45. FFT de la modulación QAM16 con tren de impulsos cuadrados con desfase de 90°. 69

Figura 46. Modulación QAM16 con tren de impulsos sinc de un solo lóbulo con fase 0°. ......... 69

Figura 47. FFT de modulación QAM16 con tren de impulsos sinc de un solo lóbulo con fase 0°.

.................................................................................................................................................... 70

Figura 48. Modulación QAM16 con tren de impulsos sinc con 5 lóbulos con fase 0°. ............... 70

Figura 49. FFT de la modulación QAM16 con tren de impulsos sinc con 5 lóbulos con fase 0°. 71

Figura 50. Modulación QAM16 con tren de impulsos sinc con lóbulo central y desfase 180°. .. 71

Figura 51. FFT de la modulación QAM16 con tren de impulsos sinc con lóbulo central y desfase

180°. ............................................................................................................................................ 72

Figura 52. Modulación QAM16 con tren de impulsos de forma sinc con lóbulo central y desfase

de 90°. ......................................................................................................................................... 72

Figura 53. FFT de la modulación QAM16 con tren de impulsos de forma sinc con lóbulo central

y desfase de 90°. ......................................................................................................................... 73

Figura 54. Modulación QAM8 con scrambler. ............................................................................ 74

Figura 55. FFT modulación QAM8 con scrambler. ...................................................................... 74

Figura 56. Diagrama de torta formato modulo 1. ....................................................................... 75

Figura 57. Diagrama de torta metodología módulo 1 ................................................................ 76

Figura 58. Diagrama de torta competencias modulo 1. ............................................................. 76

Figura 59. Diagrama de torta formato modulo 2. ....................................................................... 77

Figura 60. Diagrama de torta metodología modulo 2. ............................................................... 77

Figura 61. Diagrama de torta de las competencias modulo 2. ................................................... 78

Figura 62. Diagrama de torta formato módulo 3. ....................................................................... 79

Figura 63. Diagrama de torta de formato de los módulos. ......................................................... 79

Figura 64. Diagrama de torta de la metodología del módulo 3. ................................................. 80

Figura 65. Diagrama de torta de la metodología de los módulos. .............................................. 80

Figura 66. Diagrama de torta competencias del módulo 3. ....................................................... 81

Figura 67. Diagrama de torta competencia de los módulos. ...................................................... 81

Page 7: ING. ARTURO FAJARDO M.SC. · 2017-02-16 · El autor quiere agradece al Ing. Arturo Fajardo por la dirección y el apoyo durante la realización de este proyecto, a los técnicos

7

LISTA DE TABLAS

Tabla 1. Taxonomía de Bloom[8] ................................................................................................ 19

Page 8: ING. ARTURO FAJARDO M.SC. · 2017-02-16 · El autor quiere agradece al Ing. Arturo Fajardo por la dirección y el apoyo durante la realización de este proyecto, a los técnicos

8

LISTA DE ANEXOS

Anexo 1: Módulo 1 contiene guía para los alumnos, guía para los monitores, programas y

explicación de los programas.

Anexo 2: Módulo 2 contiene guía para los alumnos, guía para los monitores, programas y

explicación de los programas.

Anexo 3: Módulo 3 contiene guía para los alumnos, guía para los monitores, programas y

explicación de los programas.

Anexo 4: Módulo 4 contiene guía para los alumnos.

Anexo5: Encuestas y evaluación.

Page 9: ING. ARTURO FAJARDO M.SC. · 2017-02-16 · El autor quiere agradece al Ing. Arturo Fajardo por la dirección y el apoyo durante la realización de este proyecto, a los técnicos

9

1. INTRODUCCIÓN

Actualmente, las fuentes digitales de información están presentes en todas las áreas de la

sociedad (industria, comercio, educación, comunicación, transporte, etc.) y se hace necesaria

una comunicación eficiente. Los primeros intentos de comunicación digital y procesamiento de

datos a larga distancia se dieron en Estados Unidos durante la década de los años 40 del siglo

XX, donde se desarrolló una aplicación de inventario para la U.S. Army y posteriormente, en

1953, otra para la gestión y reserva de las plazas en la American Airlines, que constituyeron los

dos primeros sistemas de procesamiento de datos a distancia [1] [2].

Un elemento importante en las comunicaciones análogas y digitales es la modulación, la cual

hace referencia a un conjunto de técnicas que permiten el transporte de información mediante la

variación de los parámetros de una señal portadora de acuerdo a los cambios de la señal

moduladora (el mensaje). Entre las ventajas que proporcionan estas técnicas están un mejor uso

del canal, inmunidad al ruido e interferencias. En el caso específico de las modulaciones

digitales presenta otras ventajas como una mayor inmunidad al ruido, multiplexación,

codificación, encriptación, modulación y demodulación con DSP.

Este tipo de modulación es parte del conocimiento básico que debe tener un ingeniero

electrónico o telecomunicaciones, hace parte del los objetivos de aprendizaje del programa

académico. En el caso específico del departamento de Ingeniería Electrónica de la Pontificia

Universidad Javeriana (PUJ) este tema es introducido en la materia de fundamentos de

comunicación. Cuando se presenta este tema por primera vez, se presentan dificultades en el

momento de asimilar esta temática por parte de los estudiantes, ya que trae nuevos conceptos,

los cuales se entrelazan estrechamente con temas previamente vistos en otras asignaturas, lo

cual presenta un desafío a la hora de extrapolar los conocimientos y relacionarlos con los

nuevos conceptos introducidos en cada nuevo tema.

En este proyecto se busca realizar unas guías de laboratorio con un enfoque de aprendizaje

activo que permitan facilitar el estudio de algunos de los conceptos relacionados con la

modulación digital. Las guías ayudarán a comprender la teoría vista en clase con proyectos

desarrollados sobre DSP1, los cuales tienen como propósito ilustrar a los estudiantes ejemplos o

casos de los temas vistos en clase. Además introducirá el uso de un DSP; en este caso, la tarjeta

de desarrollo TMS320C6713-DSK, sobre la cual se realizarán las prácticas propuestas en las

guías de laboratorio.

Se realizarán las prácticas basadas en un DSP, dado que tiene bajos costos de implementación, y

es un dispositivo muy versátil usado en una larga lista de aplicaciones en la industria de las

comunicaciones, como teléfonos celulares, equipos de FAX, cajeros electrónicos y módems que

cumplen con todas las recomendaciones proporcionadas por la ITU [3]. La tarjeta de desarrollo

TMS320C6713-DSK, provee las herramientas suficientes para la implementación de las

practicas, es una tarjeta fabricada para el procesamiento de señales de audio, transmisión de

datos de voz y video, aplicaciones médicas, industriales, reconocimiento de voz y

procesamiento de voz IP[4], que cuenta con un Codec2 AIC23 que facilita la creación, edición y

utilización de filtros para procesamiento de señales digitales sin hardware adicional; además,

una interfaz JTAG la cual permite que la tarjeta sea programada desde cualquier computador

con puerto USB, y dada su capacidad de procesamiento permite posteriores modificaciones a los

1 De sus siglas en ingles “Digital Signal Processor”.

2 Codec: Acrónimo de Codificador-Decodificador

Page 10: ING. ARTURO FAJARDO M.SC. · 2017-02-16 · El autor quiere agradece al Ing. Arturo Fajardo por la dirección y el apoyo durante la realización de este proyecto, a los técnicos

10

proyectos propuestos en las guías. Y por último, pero no menos importante, es la disponibilidad,

pues esta tarjeta se encuentra disponible en el Laboratorio de la Facultad.

El principal resultado de este trabajo consiste en cuatro guías de laboratorio donde se explorarán

diversos aspectos de la teoría de modulación digital y el uso del DSP. La primera guía se

enfocará en presentar el hardware y el manejo básico del DSP y su entorno de desarrollo; en la

segunda guía se realizará un proyecto de un generador de códigos de línea que permita observar

las diferentes características de éstos y su comportamiento con diferentes formas de pulso; la

tercerea guía se centrará en un modulador y demodulador QAM sincrónico que permita ver las

características de éste y su comportamiento a diferentes formas de pulso, y la cuarta guía

consiste en un proyecto para los estudiantes en el cual realizarán la implementación parcial de

un módem bajo la recomendación V. 22 de la ITU, donde la guía tendrá como fin dar las

especificaciones y bases teóricas.

Este documento se dividirá en cuatro partes: la primera será el marco teórico, donde se

introducirá las nociones de los principales temas abordados por la guías, entre ellas qué es un

módem, códigos de línea, modulación QAM y además, se introducirá la teoría de aprendizaje

usada para el desarrollo de las guías de laboratorio; en la segunda parte se presentará el

desarrollo del proyecto, el cual contiene el diseño, requisitos, especificaciones y alcance de las

guías y los programas; en la tercera parte contendrá el análisis de resultados del proyecto, donde

se corroborarán los resultados de los programas; y en la cuarta parte se presentarán las

conclusiones del proyecto.

Page 11: ING. ARTURO FAJARDO M.SC. · 2017-02-16 · El autor quiere agradece al Ing. Arturo Fajardo por la dirección y el apoyo durante la realización de este proyecto, a los técnicos

11

2. MARCO TEÓRICO

2.1 Módem

En las comunicaciones digitales se requiere transmitir una señal digital sobre un canal análogo,

se requiere que el Modulador se a capaz de transformar esta señal digital para ser transmitida a

través de un canal análogo y de forma similar que el Demodulador debe ser capaz del proceso

inverso. Por consiguiente, este transceptor de datos se conoce como Módem y sirve para

conectar DTE3 y circuitos de comunicación [1]. Como se mencionó anteriormente, un módem

está compuesto de un modulador y un demodulador, pero también puede llevar scramble,

descramble y máquinas de estado para optimizar su funcionamiento.

2.2 Modulación Digital

Las modulaciones digitales son técnicas que permiten transformar o codificar una señal digital

en una señal analógica para ser transmitidita a través de un canal, bien sea alámbrico o

inalámbrico.

2.3 Códigos de línea

Es el proceso que permite codificar la información digital en formas de ondas eléctricas con el

propósito de transmitirlas. En este proceso se le asigna un pulso o símbolo a cada uno o cero

lógico que será transmitido; esta asignación es a la que se le denomina código de línea o código

de transmisión.

Existen diferentes tipos de formas de ondas y métodos para la asignación. El caso más simple es

el binario, donde se puede utilizar una señal „on-off‟ donde el „1‟ se transmite mediante un

pulso rectangular y el „0‟ se transmite por la ausencia de pulso. Otro código bastante utilizado es

el polar donde el „1‟ se transmite cuando se tiene un pulso de amplitud A y el „0‟ se transmite

cuando se tiene un pulso de amplitud –A. Otro código popular es el bipolar donde el „0‟ se

codifica como no pulso y el „1‟ se puede representar tanto por un pulso positivo o negativo.

Otros códigos utilizados son los de no retorno a cero (NRZ4) que a diferencia de los

previamente descritos mantienen el valor pulso durante la duración del símbolo como se ilustra

en la Figura 1.

3 De sus siglas en ingles “Data Terminal Equipment”

4 Por sus siglas en ingles “nonreturn-to-zero”

Page 12: ING. ARTURO FAJARDO M.SC. · 2017-02-16 · El autor quiere agradece al Ing. Arturo Fajardo por la dirección y el apoyo durante la realización de este proyecto, a los técnicos

12

Figura 1. (a)On-off (RZ ), (b) Polar (RZ), (c) Bipolar(RZ), (d)On-off(NRZ) y (e)Polar(NRZ)[5]

Entre las propiedades deseables en un código de línea se encuentran:

a. Ancho de banda: Debe ser el menor posible.

b. Eficiencia de potencia: Para un ancho de banda y una probabilidad de error

dado la potencia transmitida debe ser la menor posible.

c. Detección y corrección de errores: Debe ser posible detectar errores y

preferiblemente corregirlos.

d. Un espectro de densidad favorable: Es deseable tener bajos componentes de

potencia en bajas frecuencias.

e. Contenido adecuado de tiempo: debe ser posible obtener la sincronización o la

información de reloj desde la señal.

f. Trasparencia: Debe ser posible transmitir una señal digital sin importar el patrón

de ceros y unos lógicos.

2.4 ISI5

Un canal de transmisión siempre tiene un ancho de banda limitado, y por este motivo dispersa o

extiende los pulsos digitales que pasan a través del mismo. Cuando el ancho de banda del canal

es muy superior que el ancho de banda de los pulsos, la dispersión va a ser mínima. Si el ancho

de banda del canal es cercano al de la señal, la dispersión excederá la duración del símbolo y va

a causar que los pulsos se traslapen. Este traslape es llamado interferencia intersímbolo (ISI).

Como toda fuente de interferencia, el ISI causa una degradación al rendimiento del sistema,

especialmente a velocidades de transmisión altas. Si se piensa como posible solución al

problema del ISI utilizar una señal limitada en banda, esta señal no será limitada en tiempo, lo

cual causará que varios pulsos se traslapen causando ISI. No importa si se comienza con unos

pulsos limitados en banda o en tiempo ya que el ISI es un problema inherente a los canales

limitados en banda.

Lo que se requiere para la correcta toma de decisiones es que, al momento de detectar la

amplitud del pulso no exista ISI, y una forma de lograr esto con una forma de pulso apropiada

para la limitación en banda.

5 De sus siglas en ingles “intersymbol interference”

Page 13: ING. ARTURO FAJARDO M.SC. · 2017-02-16 · El autor quiere agradece al Ing. Arturo Fajardo por la dirección y el apoyo durante la realización de este proyecto, a los técnicos

13

Existen métodos para solucionar este tipo de problemas. Uno de los más usados es el criterio de

Nyquist para cero ISI. Este criterio se basa en escoger una forma de pulso con amplitud

diferente de cero en el centro (t=0) y amplitud cero en 𝑡 = ±𝑛𝑇𝑏 (n=1, 2, 3,…), donde Tb es el

periodo entre sucesivos pulsos transmitidos y el inverso del ancho de banda del canal (Rb).

𝑝 𝑡 = 1 𝑡 = 00 𝑡 = ±𝑛𝑇𝑏

El pulso que cumple con estas características es el la forma de onda sinc la cual se ilustra en la

Figura 2.

Figura 2. Pulso sinc.[5]

De la Figura 3 se puede observar cómo la amplitud en los instantes 0, Tb, 2Tb,… consiste de la

amplitud de un sólo pulso centrado en el tiempo de muestreo y sin interferencia de los otros

pulsos.

Para transmisión de Rb bits se requiere teóricamente un ancho de banda de 𝑅𝑏

2 Hz, escribiendo

al sinc de la siguiente forma

𝑠𝑖𝑛𝑐(𝜋𝑅𝑏𝑡) = 1 𝑡 = 0

0 𝑡 = ±𝑛𝑇𝑏

Y se puede obtener su transformada de Fourier ilustrada en la Figura 4.

𝑃 𝜔 =1

𝑅𝑏𝑟𝑒𝑐𝑡

𝜔

2𝜋𝑅𝑏

Figura 3. Sinc y su espectro de frecuencia. [5]

Page 14: ING. ARTURO FAJARDO M.SC. · 2017-02-16 · El autor quiere agradece al Ing. Arturo Fajardo por la dirección y el apoyo durante la realización de este proyecto, a los técnicos

14

Aunque con esta forma de pulso se puede evitar el problema del ISI; desafortunadamente, este

tipo de pulso es impráctico ya que comienza en −∞, por lo cual se debería esperar un tiempo

infinito para que el pulso se genere. Otro problema es que si el tiempo de muestreo en el

receptor se desvía tan solo un poco el momento de tomar la decisión será incorrecto y se verá

afectado por los demás pulsos. Los problemas mencionados anteriormente se presentan por la

velocidad a la que decae la señal. Por lo tanto, si se logra hacer que la señal decaiga más rápido,

se solucionarán algunos problemas. Si se muestrea la señal cada Tb segundos y se multiplica por

un tren de impulsos 𝛿𝑇𝑏todas señales serán cero, exceptuando aquellas que están en el origen.

𝑡 = 𝑝 𝑡 𝛿𝑇𝑏= 𝛿 𝑡

Si se conoce que el espectro de la señal 𝑡 es 1𝑇𝑏

veces el espectro de 𝑝 𝑡 que se repite

periódicamente en un intervalo 𝜔𝑏 , se tiene que la transformada de Fourier de 𝑡 es

1

𝑇𝑏 𝑃(𝜔 − 𝑛𝜔𝑏)

𝑛=−∞

= 1 𝑑𝑜𝑛𝑑𝑒 𝜔𝑏 = 2𝜋𝑅𝑏

Figura 4. Espectro de p (t). [5]

El problema de esta solución es que se tiene un exceso de ancho de banda (𝜔𝑥 ) respecto al

ancho de banda mínimo teórico 𝜔𝑏

2 , y donde r es conocido como el “roll off” de la señal, el

cual expresando la relación entre las dos

𝑟 =2𝜔𝑥

𝜔𝑏 𝑑𝑜𝑛𝑑𝑒 0 ≤ 𝑟 ≤ 1

De lo cual se puede reformular el ancho de banda como

𝐵𝑇 =𝑅𝑏

2+

𝑟𝑅𝑏

2=

(1 + 𝑟)𝑅𝑏

2

Con este criterio entonces se puede no sólo reducir el ISI, sino el ancho de banda utilizado para

transmitir.

Page 15: ING. ARTURO FAJARDO M.SC. · 2017-02-16 · El autor quiere agradece al Ing. Arturo Fajardo por la dirección y el apoyo durante la realización de este proyecto, a los técnicos

15

2.5 Modulación QAM6

La modulación de amplitud en cuadratura es un tipo de modulación que afecta simultáneamente

la amplitud y la fase de la portadora, o sea, la información está contenida tanto en la fase como

en la amplitud. Se basa en la transmisión de dos mensajes independientes por un único camino.

Esto se consigue modulando una misma portadora, con un desfase de 90º entre uno y otro

mensaje. Esto supone la formación de dos canales ortogonales en el mismo ancho de banda, con

lo cual se mejora en eficiencia de ancho de banda que se consigue con esta modulación. Se

puede escribir una señal QAM de la siguiente forma:

𝑝𝑖 = 𝑝 𝑡 𝑎𝑖 cos 𝜔𝑐𝑡 + 𝑏𝑖 sin 𝜔𝑐𝑡

Usando identidades trigonométricas se reescribe la ecuación anterior como:

𝑝𝑖 = 𝑝 𝑡 𝑟𝑖cos(𝜔𝑐𝑡 + 𝜃𝑖)

Donde

𝑟𝑖 = 𝑎𝑖2 + 𝑏𝑖

2

𝜃𝑖 = −tan−1𝑏𝑖

𝑎𝑖

Gráficamente pi puede ser mapeado usando puntos (𝑎𝑖 , 𝑏𝑖) o (𝑟𝑖 , 𝜃𝑖). Este arreglo se muestra en

la Figura 5.

Figura 5. Constelaciones QAM.

Algunas de las aplicaciones de este tipo de modulación son:

Módems telefónicos para velocidades superiores a los 2400bps.

Transmisión de señales de televisión, microondas, satélite (datos a alta velocidad por

canales con ancho de banda restringido).

Modulación TCM (Trellis Coded Modulation), que consigue velocidades de

transmisión muy elevadas combinando la modulación con la codificación de canal.

2.6 Digital Signal Processor

Es un procesador que posee un juego de instrucciones, software y hardware optimizado para

realizar operaciones numéricas a muy alta velocidad. Una de las mayores diferencias con el

resto de los microprocesadores es el tipo de arquitectura, la cual tiene bloques físicos de

6 Por sus siglas en ingles “Quadrature amplitud modulation”.

Page 16: ING. ARTURO FAJARDO M.SC. · 2017-02-16 · El autor quiere agradece al Ing. Arturo Fajardo por la dirección y el apoyo durante la realización de este proyecto, a los técnicos

16

memoria y bus de datos separados para el programa y los datos como se muestra en la Figura 6.

Esto permite las ejecuciones en paralelo de varias instrucciones a la vez o realizar instrucciones

más complejas, lo cual aumenta considerablemente la velocidad de procesamiento. Sus

principales aplicaciones esta el procesamiento de audio y video en tiempo real, en el cifrado de

conversaciones en los teléfonos celulares, las comunicaciones wireless, LAN, ente muchos

otros.

BUS DATOS BUS ISTRUCIONES

Figura 6.

Para disminuir el tiempo de desarrollo de productos basados en procesadores, existen múltiples

herramientas de desarrollo (software y/o hardware) que permiten la implementación de

prototipos de una forma más sencilla. Entre estas herramientas se destacan: a nivel de hardware,

las tarjetas de desarrollo y emuladores; y a nivel de software, compiladores, simuladores,

emuladores, vinculadores y librerías. A este conjunto de elementos se le denomina entorno de

programación.

En particular, una tarjeta de desarrollo es un circuito digital que integra un procesador con

diferentes periféricos, de forma similar a la placa madre de un computador personal. Para las

tarjetas de desarrollo traen periféricos como: ADC, PLL, puertos de salida, entre otros, de

pendiendo de la aplicación del DSP.

El entorno de programación es un software desarrollado por el fabricante que facilita la

programación, el desarrollo y la corrección de errores en los proyectos implementados sobre la

tarjeta de desarrollo.

2.6.1 TMS320C6713DSK

Es una tarjeta de desarrollo con un DSP de alto desempeño que entrega nuevos niveles de

rendimiento basados en programación en lenguaje C, bajo consumo de potencia, para redes de

banda ancha y para aplicaciones digitales de imágenes. Ofrece compatibilidad con operaciones

de punto fijo o flotante con ocho unidades independientes, dos ALU para punto fijo, cuatro para

punto flotante y dos multiplicadores compatibles tanto para punto fijo como flotante [4].

CPU Datos Instruccione

s Datos Datos Instruccione

s

Instrucciones

Memoria Externa

Figura 6. Diagrama Arquitectura de un DSP

Page 17: ING. ARTURO FAJARDO M.SC. · 2017-02-16 · El autor quiere agradece al Ing. Arturo Fajardo por la dirección y el apoyo durante la realización de este proyecto, a los técnicos

17

Figura 7. Foto tarjeta de desarrollo TMS320C6713.

Figura 8. Diagrama en bloques tarjeta de desarrollo TMS320C6713-DSK 6713DSP. [11]

Como se muestra en la Figura 7 y la Figura 8, cuenta con periféricos como:

6713DSP: Es la unidad central de procesamiento con velocidad de reloj 255MHz, capaz

de procesar VLIW 7, esto quiere decir que es capaz de procesar 8 instrucciones de 32bit

en un ciclo de reloj.

EMIF8: Es la encargada de la interfaz de varios dispositivos externos como CPLD

9,

SDRAM10

y la memoria flash.

CPLD: Permite realizar operaciones lógicas más eficientes ya que está formada de

varios bloques lógicos que están conectados por una matriz de interconexiones

programables.

7 De sus siglas en ingles “very-long instruction words”

8 De sus siglas en ingles “External Memory InterFace”

9 De sus siglas en ingles “Complex Programmable Logic Device”

10 Por sus siglas en ingles “Synchronous Dynamic Random Access Memory”

Page 18: ING. ARTURO FAJARDO M.SC. · 2017-02-16 · El autor quiere agradece al Ing. Arturo Fajardo por la dirección y el apoyo durante la realización de este proyecto, a los técnicos

18

SDRAM: Es una memoria que se encuentra sincronizada con un reloj lo que le permite

estar sincronizado con el bus del sistema lo que le permite ser más rápida.

Flash: Es una memoria que permite manipular varios campos de memoria al mismo

tiempo y permite un mayor número de escrituras que la memoria interna del DSP. En

este caso con una capacidad de 512 Kbytes.

McBSPs11

: Es un periférico que permite una comunicación full-dúplex, flujo continuo

de datos, transmisión y recepción multicanal, entre otras características.

Codec: Es un AIC23 codec estéreo de alto desempeño con un rango de frecuencia entre

8-96kHz, con ADC y DAC sigma-delta, con control por software y entrada/salida por

McBSP. Además tienen múltiples entradas y salidas como mic in, line in, hp out y line

out.

JTAG12

: es una organización que desarrollo un estándar que permite acceder la

información de un dispositivo en tiempo real. En el caso de la tarjeta se emula vía USB

o puede usarse con JTAG externo.

HOST PORT: Es un puerto paralelo de 16 bit por el cual un procesador anfitrión tiene

acceso a los espacios de memoria de la CPU, mapa de memoria de los periféricos y

otras sectores de la tarjeta.

Otra de los elementos importantes de las tarjetas de desarrollo es el entorno de programación, en

el caso de la tarjeta TMS320C6713DSK se llama code composer, es un programa desarrollado

por Texas Instruments, que permite la programación en lenguaje C como en assembler. Entre

sus características principales se encuentran su versatilidad para soportar una gran variedad de

familias de tarjetas de desarrollo, incluye diferentes herramientas como el debugger, librerías,

vinculadores y los API13

. Son partes del programa que permite una programación, supervisión

y corrección de errores más sencilla sobre los diferentes proyectos implementados en la tarjeta

de desarrollo.

2.7 Aprendizaje Activo

El aprendizaje activo es un aprendizaje que se basa en el estudiante; esto quiere decir que

requiere una mayor participación por parte de éste. El estudiante no constituye un agente pasivo,

puesto que no se limita a escuchar en clase, tomar notas y, muy ocasionalmente, plantear

preguntas al profesor a lo largo de la clase, sino que participa y se implica en la tarea,

necesariamente, para poder obtener los conocimientos o informaciones que se plantean como

objetivos de la asignatura [8]. Otra definición bastante usada es “El aprendizaje activo implica a

los estudiantes en hacer cosas y pensar sobre las cosas que ellos están haciendo” [9].

“Por tanto se requiere, por parte del profesor, una nueva manera de conducir la clase y la

asunción de un nuevo papel: en el aprendizaje activo, el profesor no constituye el eje central (en

tanto en cuanto ya no se limita a transmitir los conocimientos y “hacer” que los alumnos

aprendan), puesto que es el alumno quien asume la responsabilidad de trabajar para obtener el

conocimiento. No obstante, el papel del profesor en este proceso adquiere una gran relevancia

que no se debe olvidar, puesto que es el docente quien guía a los alumnos en su proceso de

búsqueda, quien orienta a cada alumno para el desarrollo del conocimiento, quien facilita y

posibilita diferentes actividades con el propósito que los alumnos se impliquen y trabajen para

obtener ciertos aprendizajes, y es, también, quien aclara aquellos conocimientos que suponen

grandes dificultades a los alumnos o que éstos no podrían conseguir de otra forma”[8].

11

De sus siglas en ingles “Multichannel Buffered Serial Port” 12

Por sus siglas en ingles “Joint Test Action Group” 13

Por sus siglas en ingles “Application Programming Interface”

Page 19: ING. ARTURO FAJARDO M.SC. · 2017-02-16 · El autor quiere agradece al Ing. Arturo Fajardo por la dirección y el apoyo durante la realización de este proyecto, a los técnicos

19

Uno de los factores importantes de este tipo de enfoque es la necesidad de conocer a los

estudiantes, esto quiere decir que los conocimientos previos – lo que el alumno ya sabe – para

saber cuál es el punto de partida y poder trazar los objetivos de aprendizaje o las metas que se

pretenden alcanzar a lo largo del curso. Además estos antecedentes permitirán seleccionar una

metodología adecuada según la situación y permitirá establecer de manera más clara la ruta a

seguir para cumplir los objetivos o metas propuestos.

Existen diversas actividades de aprendizaje activo y no todas ellas requieren el mismo nivel de

participación por parte de los estudiantes. Estas actividades se deben escoger acorde a los

objetivos que se quieren alcanzar. Benjamin Bloom estableció una Taxonomía sobre los

diferentes tipos de saberes, la cual se conoce como “Taxonomía de Bloom”. Esta jerarquía

puede resultarnos de especial interés, puesto permite establecer las actividades que serán más

apropiadas para alcanzar los objetivos planteados en el curso [8]. En la Tabla 1 se presenta la

taxonomía.

Tabla 1. Taxonomía de Bloom[8]

Page 20: ING. ARTURO FAJARDO M.SC. · 2017-02-16 · El autor quiere agradece al Ing. Arturo Fajardo por la dirección y el apoyo durante la realización de este proyecto, a los técnicos

20

Existen diversas estrategias de aprendizaje activo; a continuación se mencionan las teorías en

las cuales se baso la realización de las guías:

2.7.1 Aprendizaje Cooperativo

La estrategia de aprendizaje cooperativo involucra pequeños grupos de estudiantes trabajando

juntos para maximizar su aprendizaje. Se hace referencia a los beneficios de que los estudiantes

aprendan en colaboración con otros estudiantes.

Existe una diferencia crucial entre estructurar el trabajo cooperativo y poner a los estudiantes en

grupos simplemente para aprender. Cooperación no es tener a los estudiantes sentados en la

misma mesa hablándose entre ellos mientras realizan sus asignaciones individuales. Para ser

cooperativos un grupo debe tener una clara interdependencia positiva, cada miembro del equipo

debe promover el aprendizaje de todos los miembros del equipo, mantenerse entre sí

responsables por la parte del trabajo individual de cada miembro, usar apropiadamente las

habilidades interpersonales y las grupales necesarias para que el esfuerzo cooperativo sea

exitoso y el progreso como grupo sea efectivamente el trabajo en conjunto de los miembros del

grupo [10].

2.7.2 Aprendizaje Basado en Problemas (PBL14

)

Esta estrategia involucra realizar una pregunta a un grupo de estudiantes (generalmente de

respuesta abierta) que cuenta con los recursos y un facilitador, pero no teoría. En ingeniería se

puede dar en el contexto del diseño, ya que problemas bien diseñados requerirán que el

estudiante se involucre en investigaciones tanto cualitativas como cuantitativas las cuales serán

nuevas para los estudiantes.

La justificación de usar PBL surge de dos grandes intelectos: Sócrates, el cual expuso el método

dialectico, que consiste en guiar y liderar a los estudiantes a que descubran por ellos mismos;

Jean Piaget descubrió que los niños aprenden haciendo y que el entendimiento no se ve afectado

en gran medida por la instrucción directa [10]. Algunos puntos cruciales de esta estrategia:

Un problema que sea muy sencillo o muy complejo será contraproducente.

Poner gran énfasis en la estrategia como medio de generar habilidades de pensamiento

en los estudiantes.

Problemas reales pueden ser una buena alternativa y no requieren necesariamente el

nivel de un graduado para su solución.

Se hace presenta una falta de control sobre lo que los estudiantes aprenden y los

recursos que ellos usan. Los estudiantes no siempre aprenden los que se esperaba que

aprendieran.

2.7.3 Aprendizaje Basado en Proyectos (PjBL15

)

Usualmente se confunden PjBL con PBL dado que sus acrónimos en ingles son similares como

la metodología que en ambos se utiliza. Aprendizaje basado en proyectos comienza realizando

una o varias asignaciones que guíen a la producción de un producto final que puede ser un

diseño, un modelo, un dispositivo o una simulación en computadora. La culminación del

proyecto generalmente es un reporte oral o escrito resumiendo el procedimiento usado para

producir el producto final.

14

De sus siglas en ingles “Problem based learning” 15

De sus siglas en ingles “Project based Learning”

Page 21: ING. ARTURO FAJARDO M.SC. · 2017-02-16 · El autor quiere agradece al Ing. Arturo Fajardo por la dirección y el apoyo durante la realización de este proyecto, a los técnicos

21

Es importante que el proyecto tenga una conexión con el mundo real. El proyecto debe permitir

a los estudiantes a no hacer sólo las conexiones de la vida real, sino también poner en práctica

las habilidades de toma de decisiones, interactuar con otros, aprender y aplicar nuevos

conceptos y el uso de sus conocimientos a través de una variedad de contextos educativos.

Trabajando en conjunto con los demás. Colaborar con otros estudiantes es un elemento clave del

aprendizaje basado en proyectos. Así como los profesores y la comunidad en general. Sin

embargo, la atención se centra en el aprendizaje independiente que ayudar a promover mayores

habilidades de pensamiento de orden, permite a los estudiantes para obtener información de una

variedad de perspectivas. La aplicación de la investigación en una variedad de contextos

ambientales es indispensable a través de la aplicación de varias tecnologías, incluyendo los

programas de ordenador, equipos audiovisuales y la investigación de la vida real para garantizar

que la experiencia completa del proyecto que se adquiera. El objetivo final es dar respuesta a

una pregunta formulada con la colaboración de los demás.

Entre las ventajas que presenta PjBL, se mejora la retención a largo plazo, hay mejoramiento de

las habilidades y satisfacción tanto en estudiantes como en el personal docente; pero a la vez

presenta nuevos paradigmas ya que PjBL o PBL requieren una mayor utilización de los recursos

humanos, dado que se requiere un entrenamiento para los facilitadores en el proceso para que

estos sean realmente facilitadores, en lugar de hacer demostración o conferencias. El elemento

más importante para que una actividad PjBL sea sostenible y exitosa es la creación de una

cultura o entorno de soporte, promoción y recompensa por excelencia e innovación [10].

Page 22: ING. ARTURO FAJARDO M.SC. · 2017-02-16 · El autor quiere agradece al Ing. Arturo Fajardo por la dirección y el apoyo durante la realización de este proyecto, a los técnicos

22

3. DESARROLLO

Se desarrollaron unos módulos para el laboratorio de fundamentos de comunicación, donde se

entenderá módulos como un conjunto de herramientas documentales, de software y hardware.

3.1 Formato de las Guías

Las guías de laboratorio o módulos se desarrollaron basadas en el siguiente formato:

La tabla de contenidos de cada módulo.

Lista de los equipos necesarios para el desarrollo correspondiente de la guía.

Se presenta un marco teórico con los temas a tratar en la guía.

Cada módulo está compuesto de varios laboratorios.

Bibliografía.

Los laboratorios se estructuran de la siguiente manera:

Se presenta el objetivo del laboratorio.

El procedimiento del laboratorio.

Conclusiones del laboratorio.

3.2 Formatos de los Programas

Los programas están estructurados en dos formas: en la primera, los programas se realizan con

un polling, en el cual se ejecutan los programas de forma cíclica y lineal; la segunda forma es a

través de una interrupción de hardware que ejecuta algunos algoritmos implementados.

Los programas se dividen en cuatro partes, donde la primera es el llamado de las librerías y

funciones, la segunda se inicializan todas la variables globales necesarias, la tercera es la

inicialización de la tarjeta la cual generalmente está contenida en la función „main‟ del

programa y la cuarta son los algoritmos que pueden ir tanto en la función main o en la función

de la interrupción.

3.3 Interacción con las Guías

Tradicionalmente la enseñanza de las asignaturas de Ingeniería se ha apoyado en dos pilares

fundamentales: por un lado, las lecciones magistrales, donde el profesor expone los

fundamentos teóricos básicos de la asignatura y se realizan algunos ejercicios numéricos,

requiriendo una actitud pasiva por parte del alumno, y las prácticas de laboratorio donde el

alumno aprende a través de la acción, ensayando, comprobando y montando experimentos [12]

[13]. Una gran preocupación de docentes y estudiantes en los programas de formación en

ingeniería electrónica en Colombia, tiene que ver con los equipos y materiales disponibles para

la realización de prácticas de laboratorio adecuadas para fomentar la formación basada en

créditos académicos en la cual el estudiante requiere trabajar de forma independiente donde “un

Page 23: ING. ARTURO FAJARDO M.SC. · 2017-02-16 · El autor quiere agradece al Ing. Arturo Fajardo por la dirección y el apoyo durante la realización de este proyecto, a los técnicos

23

crédito académico es la unidad que mide el tiempo estimado de actividad académica del

estudiante en función de las competencias profesionales y académicas que se espera que el

programa desarrolle”. [15]

Uno de los objetivos de la educación es el desarrollo de las capacidades de cualquier persona, y

hablar de educación implica referirse a un proceso de enseñanza-aprendizaje (E-A). El proceso

E-A tiene varias formas o métodos de llevarse a cabo dependiendo esencialmente del paradigma

que se maneje: Educación conductual y Educación constructiva; En un contexto educativo

diferentes autores proponen al ser aplicar de forma complementaria estos modelos en diferentes

etapas de un mismo proceso E-A [14].

En el caso de este proyecto la interacción de los estudiantes con los módulos abarcará un

enfoque tanto tradicional como un aprendizaje activo dado que se presentarán ambas

metodologías en los módulos. Los estudiantes comenzarán leyendo el marco teórico de los

módulos con anticipación para tener claros los temas referentes de la guía a desarrollar y se

revisará la teoría al principio del laboratorio con el facilitador para aclarar las posibles dudas

que puedan surgir. Después pasaran a la realización de los laboratorios propuestos en lo módulo

por parte de los estudiantes y apoyados por el facilitador, el cual no debe volver el laboratorio

en una experiencia demostrativa, sino ser un guía a través de la experiencia. Los estudiantes

deben tomar un rol activo, de cooperación y curiosidad que les permita crear un entorno de

aprendizaje más confortable y fructífero.

Las guías contienen problemas o proyectos con relación a la práctica que se esté desarrollando,

los cuales se realizarán en el tiempo del laboratorio permitiendo a los estudiantes analizar,

pensar, realizar trabajo en equipo y revisar los temas vistos de una forma constructiva. Estos

problemas o proyectos tienen la intención de reforzar el conocimiento, permitir la comprensión

y mostrar o desarrollar una aplicación basada en los conocimientos adquiridos.

La forma en que se presentaran estos problemas o proyectos en las guías es en unos rectángulos

o cajas de colores que indicarán según su color lo que se espera que el estudiante se enfoque con

la pregunta o desafío concreto de cada caja. Estos momentos del laboratorio están pensados para

que el estudiante se tomo un tiempo para hacer algo y pensar sobre lo que está haciendo. Se

espera que los estudiantes discutan entre ellos las propuestas de soluciones, muestren una

implementación o colaboren para la resolución de los problemas de forma más dinámica.

Los bloques de color azul representaran preguntas de análisis para los estudiantes las cuales se

analizaran individualmente y posteriormente se socializarán las repuestas. Las cajas de color

verde representan problemas para ser analizados y solucionados con los conocimientos

adquiridos durante la práctica. Y por ultimo están las cajas de color rojo que presentan un mini

– proyecto que se pueda desarrollar en el tiempo del laboratorio, que comprenderá algunos de

los conceptos y habilidades vistos en el módulo.

Los estudiantes podrán interactuar con los programas de diversas formas: una de ellas es

modificar directamente el código de los programas, ya sea para solucionar un problema o para

implementar un proyecto. Otra forma será a través de los dip switch de la tarjeta de desarrollo,

lo cual le permitirá controlar ciertos aspectos del programa desde el hardware. Y por último, el

estudiante podrá modificar los valores de las variables de control del programa mediante el

watch window, la cual es una de las herramientas presentes en el entorno de desarrollo que

permite supervisar y alterar el estado de las variables dentro del procesador en tiempo real, pero

a su vez presenta el problema de choque de datos a través del JTAG, por lo cual se deben tomar

algunas precauciones al manejar los programas desde el watch window.

Page 24: ING. ARTURO FAJARDO M.SC. · 2017-02-16 · El autor quiere agradece al Ing. Arturo Fajardo por la dirección y el apoyo durante la realización de este proyecto, a los técnicos

24

3.4 Módulos

Se realizaron cuatro módulos de laboratorios que están compuestos de varias prácticas de

laboratorio y a continuación se presentan las características de cada uno.

3.4.1 Módulo1

Esta es el primer módulo del conjunto de cuatro, donde el objetivo principal es introducir el

manejo de la tarjeta de desarrollo y su entorno de desarrollo para facilitar la realización de

prácticas posteriores. Los objetivos que se presentan en esta guía son:

Que el estudiante sea capaz de identifique los diferentes elementos que componen la

tarjeta de desarrollo TMS320C6713-DSK.

Que el estudiante use el entorno del programa code composer.

Que el estudiante sea capaz de realizar un programa sencillo en code composer.

Que el estudiante use un programa que utilice el codec de la tarjeta y sea capaz de

hacerle modificaciones.

Se espera que los estudiantes tengan un conocimiento previo mínimo de programación en el

lenguaje C, manejo de osciloscopio y conocimientos de un ADC. Al finalizar el módulo se

espera que los estudiantes tengan un manejo básico del entorno de desarrollo, puedan identificar

las partes más importantes de la tarjeta de desarrollo y puedan realizar programas sencillos

sobre la tarjeta de desarrollo.

Las herramientas necesarias para llevar a cabo esta guía son:

Un (1) Kit de desarrollo TMS320C6713.

Un (1) Osciloscopio.

Un (1) Cable estéreo-caimán

Un (1) Punta de osciloscopio.

Un (1) Computador con Code composer.

En este módulo se trabajarán dos programas que introducirán los aspectos básicos del manejo de

la tarjeta de desarrollo y algunos de sus periféricos. El primer programa introducirá una forma

para realizar un proyecto en code composer, el cual se compone de los pasos necesarios para

crear un nuevo proyecto, las rutas de los archivos que se deben incluir o crear, la inicialización

de la tarjeta de desarrolla mediante la BSL16

, la construcción del proyecto (compilar y cargar el

programa en la tarjeta) y posteriormente poner a correr el programa.

El segundo programa se centra en un generador de funciones que nos permitirá escoger

mediante un dip swicth de la tarjeta entre diferentes formas de onda. La forma de este programa

se basa en el uso de un ciclo de polling el cual permitirá ejecutar de forma recursiva el programa

varias veces.

La inicialización del diagrama de flujo mostrado en la Figura 9 hace referencia a la

inicialización de variables y de la BSL (en este caso la librería de soporte de los dip swicth y del

codec). El programa funciona en un ciclo de polling, las instrucciones se ejecutarán de forma

secuencial. Lo primero que se tienen es un conjunto de instrucciones que nos permite calcular el

incremento en fase que va de 0 a 2π, este también nos servirá como marco de tiempo para las

señales que se calcularan y luego se calcula el tamaño de los pasos para las señales rampa y

triangulo. Después se pregunta si el interruptor 0 del SW1 de la tarjeta está en estado 0

16

De sus siglas en ingles “Bios Support Library ”

Page 25: ING. ARTURO FAJARDO M.SC. · 2017-02-16 · El autor quiere agradece al Ing. Arturo Fajardo por la dirección y el apoyo durante la realización de este proyecto, a los técnicos

25

(encendido), si el estado es 0 se calculara el seno mediante el uso de la función sinf que utiliza

los incrementos de fase calculados anteriormente para calcular el valor del seno que se escribirá

al codec. Luego se pregunta por el estado del interruptor 1 del SW1 si el estado es 0 se

procederá a calcular la rampa con los pasos anteriormente calculados, de forma similar se

pregunta por el estado del interruptor 2 si es 0 se calculara la señal triangulo usando como base

de tiempo el cálculo de de los ángulos, la señal dibujara una rampa ascendente hasta llegar a π

y luego pasara a la siguiente condición comenzando a descender. Después se comprobara el

estado del interruptor 3 si esta encendido se dibujara una señal cuadrada mediante dos

condiciones que dependen del cálculo del ángulo como base de tiempo, cuando el ángulo es

menor de π se dibujara el pulso de la señal cuadrada y cuando esta sea mayor se dibujara el cero

de la señal. Al terminar de revisar las condiciones de los interruptores se pasa el dato

correspondiente a ser escrito al codec.

Para mayor información consultar el anexo 1.

En el main del programa tenemos la inicialización de la tarjeta y el DIP SWITCH

// Inicializar la board support library.

DSK6713_init(); //inicializa la tarjeta BSL

DSK6713_DIP_init(); //init DIP from BSL

Luego se le asigna al controlador del codec la configuración del codec para poder utilizar las

diferentes funciones que presenta la librería del codec.

//Abrir el codec

hCodec = DSK6713_AIC23_openCodec(0, &config);

En el ciclo de polling lo primero que se tienen es un conjunto de instrucciones que nos permite

calcular el incremento en fase que va de 0 a 2π, este también nos servirá como marco de tiempo

Si

Si

Si

Si

No

No

No

No

Dip0== 0

Dip1== 0

Dip2== 0

Dip3== 0 Escribe al codec

Calcula cuadrada

Calcula Triangulo

Calcula Rampa

Calcula Seno

Inicializa

Figura 9. Diagrama de Flujo del segundo programa primera práctica.

Page 26: ING. ARTURO FAJARDO M.SC. · 2017-02-16 · El autor quiere agradece al Ing. Arturo Fajardo por la dirección y el apoyo durante la realización de este proyecto, a los técnicos

26

para las señales que se calcularan. Se calcula el tamaño de los pasos para las señales rampa y

triangulo.

infase = 2*pi*f/fa; // cálculo del incremento de la fase

fase += infase; // cálculo de la siguiente fase

decon=31899/((3*pi)/(infase*2)); // cálculo del valor del incremento de la triangulo

decon1=31899/((2*pi)/infase); // cálculo del valor del incremento de la rampa

if(fase > pi*2)

fase -= 2*pi;

Cuando el interruptor 0 del SW1 de la tarjeta está en estado 0 (encendido) se calcula el seno

mediante el uso de la función sinf que utiliza los incrementos de fase calculados anteriormente.

If(DSK6713_DIP_get(0)==0) //seno

aux=A*sinf(fase);

Si el interruptor 1 esta encendido se realizara el cálculo de la rampa donde los pasos de

incremento viene dado por la variable decon1 y la suma de estos se va acumulando en la

variable con1 hasta que la fase sea igual a 2π, cuando esto ocurre se ponen en cero las variables

con1 y aux.

if(DSK6713_DIP_get(1)==0) //rampa

if(fase<=(2*pi))

aux=con1+decon1;

con1=aux;

else

aux=0;

con1=0;

Cuando el interruptor 2 está en posición de encendido se calculara la señal triangulo. Usando

como base de tiempo el cálculo de la fase la señal dibujara una rampa ascendente hasta llegar a

π y luego pasara a la siguiente condición comenzando a descender.

if(DSK6713_DIP_get(2)==0) //triangular

if(fase<=pi)

aux=con+decon;

con=aux;

else

aux=con-decon;

con=aux;

Si el interruptor 3 esta encendido se dibujara una señal cuadrada mediante dos condiciones que

dependen de la fase como base de tiempo, cuando la fase es menor que π se dibujara el pulso de

la señal cuadrada y cuando esta sea mayor se dibujara el cero de la señal.

if(DSK6713_DIP_get(3)==0) //cuadrada

if(fase<=pi)

aux=31999;

Page 27: ING. ARTURO FAJARDO M.SC. · 2017-02-16 · El autor quiere agradece al Ing. Arturo Fajardo por la dirección y el apoyo durante la realización de este proyecto, a los técnicos

27

else

aux=100;

La ultima parte del programa se encarga de convertir la variable aux, la cual guarda los valores

calculados de las señales, en un entero sin signar de 32 bit para poder escribirlo en el codec.

newSample=(Uint32)(aux); //convierte la variable

DSK6713_AIC23_write(hCodec, newSample); //escribe en el codec

3.4.2 Módulo 2

Este módulo se concentrará en un generador de códigos de línea con el cual se espera que los

estudiantes obtengan un mejor manejo del tema de códigos de línea al poder ver y comparar las

diferentes características de estos. Los objetivos que se presentan en este módulo son los

siguientes:

Que el estudiante sea capaz de reconocer y diferenciar los diferentes códigos de línea

con pulsos de forma rectangular.

Comparar los diferentes espectros de frecuencia de los diferentes códigos de línea con

forma de pulso rectangular.

Que el estudiante describa los efectos del canal sobre las señales de los códigos de línea.

Que el estudiante analice los códigos de línea con diferentes formas de pulso de onda

tanto en tiempo como en frecuencia.

Que el estudiante describa el efecto del canal sobre los diferentes espectros de

frecuencia con diferentes formas de pulso con los códigos de línea.

Las competencias previas que se esperan al comienzo del desarrollo de la guía son que el

estudiante tenga el conocimiento mínimo del manejo de la tarjeta de desarrollo y de códigos de

línea. Se espera que al finalizar la guía el estudiante sea capaz de identificar con relativa

facilidad los códigos vistos en el módulo, poder diferenciarlos y reconocer sus características,

además de lograr un mejor manejo y entendimiento de la tarjeta de desarrollo.

Las herramientas necesarias para el desarrollo de la guía son:

Un (1) Kit de desarrollo TMS320C6713.

Un (1) Osciloscopio con función de FFT.

Dos (2) Cable estéreo-caimán

Dos (2) Punta de osciloscopio.

Un (1) Cable estéreo-estéreo.

Un (1) Computador con Code composer.

Un (1) Protoboard.

Diferentes potenciómetros de entre 10kΩ-100kΩ

Una selección de condensadores del orden de picofaradios (pF).

Cortos.

El programa utilizado en este módulo permitirá variar entre diferentes códigos de línea los

cuales son: on-off, polar, bipolar y Manchester, todos con la posibilidad de retorno a cero,

menos el Manchester. Nos permitirá la variación del tiempo de bit, la frecuencia de transmisión,

la secuencia enviada y la forma de onda. Se puede seleccionar entre tres tipos de forma de onda,

pulsos de forma rectangular, seno y coseno elevado, en el caso especifico del este último existe

una variable adicional roll off que permite seleccionar entre diferentes roll off.

Page 28: ING. ARTURO FAJARDO M.SC. · 2017-02-16 · El autor quiere agradece al Ing. Arturo Fajardo por la dirección y el apoyo durante la realización de este proyecto, a los técnicos

28

El control de los parámetros se encuentra en el watch window del entorno de desarrollo, el cual

permite de forma sencilla seleccionar de entre las opciones disponibles para así configurar la

señal que se desea observar. La estructura del programa se muestra en la Figura 11.

En el diagrama de flujo de la Figura 11 el bloque de inicialización hace referencia a la

inicialización de las variables y las librerías necesarias para el manejo de la tarjeta de

desarrollo o al menos los elementos de esta que se utilizan. El bloque de selección de

forma de onda permite escoger entre las funciones de las diferentes ondas, luego dentro

de estas funciones están contenidas las funciones de los diferentes códigos de línea para

cada forma de onda y dependiendo de la selección del usuario se acedera a una de estas

funciones. Dentro de las funciones de los códigos dependiendo de la secuencia de bits

se escogerá la lookup table correspondiente al bit que se desea transmitir y se escribirán

sus valores al codec mediante un apuntador que recorrerá la tabla como se muestra en la

Figura 10, cuando se cumpla el tiempo de bit se revisara si existe algún cambio en los

parámetros de la señal, sino existen cambios se seguirá con el siguiente bit de la

secuencia, en caso contrario se realizara en procedimiento anterior para escoger la tabla

correspondiente para los nuevos parámetros de la señal.

La primera parte de este programa se hace el llamado a las librerías de C y las de soporte de la

tarjeta.

#include "generadorcfg.h" // Encabezado de DSP/BIOS

#include <csl.h> // Encabezado CSL

#include <csl_irq.h> // Encabezado Interrupciones

#include "dsk6713.h" // Encabezado BSL

#include "dsk6713_aic23.h" // Encabezado Codec

#include <math.h>

#include "tablas.h"

Se nombra al controlador del codec de la tarjeta.

DSK6713_AIC23_CodecHandle hCodec;

Después vienen los encabezados de las funciones

//Funciones

void codigoL(int codigos, int forma); //función encarga de escoger el código y la forma

de onda

void cuadra(int seleccion); //se encarga de ejecutar las operaciones necesarias para las

señales de forma cuadrada

Dato a escribir en el codec

Dato a escribir en el codec

Dato a escribir en el codec

Dato a escribir en el codec

Dato a escribir en el codec

Dato a escribir en el codec

Apuntador

Recorrido

Figura 10. Recorrido de los apuntadores.

Page 29: ING. ARTURO FAJARDO M.SC. · 2017-02-16 · El autor quiere agradece al Ing. Arturo Fajardo por la dirección y el apoyo durante la realización de este proyecto, a los técnicos

29

void sincc(void); //se encarga de ejecutar las operaciones necesarias para las señales de

forma sinc

int sinc_suma_polar(void); // realiza las sumas de las ondas sinc polar NRZ

int sinc_suma_onoff(void); // realiza las sumas de las ondas sinc on off

void cosenoele(void); //se en carga de las operaciones relacionadas al coseno elevado

int coseno_rolloff1(void); //para la código polar con un rolloff 0.1

A continuación se declaran las variables del programa, entre ellas se destacan:

Código: se encarga de seleccionar el código de línea va:

1. On-off

2. Polar NRZ

3. Polar RZ solo para cuadra

4. Bipolar NRZ solo para cuadrada

5. Bipolar RZ solo para cuadrada

6. Manchester solo para cuadrada

Onda: permite seleccionar entre la forma de onda:

1. Cuadrada.

2. Seno.

3. Coseno elevado.

aTb: que hace referencia a la cantidad de lóbulos de la sinc o coseno elevado y va de 1

a 4.

Tiempo_bit: controla la duración de la tiempo de bit:

1. Va de 1 a 4 para la cuadrada

2. Va de 1 a 2 para le sinc o el coseno elevado.

Se tiene el vector secuencia de tamaño 10 el cual contiene la secuencia a seguir para la

salida de la señal.

Page 30: ING. ARTURO FAJARDO M.SC. · 2017-02-16 · El autor quiere agradece al Ing. Arturo Fajardo por la dirección y el apoyo durante la realización de este proyecto, a los técnicos

30

Después sigue el main donde se encuentra la configuración de codec y la inicialización de la

tarjeta y sus diferentes periféricos.

DSK6713_AIC23_Config config =

Cambio algún

parámetro

Inicialización

Selección forma de

onda

Cuadrada Sinc Coseno elevado

Roll off

Selecciona código

On-off Polar Bipolar Manchester

Secuencia

Escoge tabla

Escribe al codec

Termino tiempo de

bit

No Si

No

Si

Fin

Figura 11. Diagrama de flujo generador de códigos de línea.

Page 31: ING. ARTURO FAJARDO M.SC. · 2017-02-16 · El autor quiere agradece al Ing. Arturo Fajardo por la dirección y el apoyo durante la realización de este proyecto, a los técnicos

31

0x0017, // Volumen de entrada de línea canal izq.

0x0017, // Volumen de entrada de línea canal der.

0x01F9, // Volumen de audífono izquierdo.

0x01F9, // Volumen de audífono derecho.

0x0011, // Control del camino análogo del audio.

0x0000, // Control del camino digital del audio.

0x0000, // Control de Power down.

0x0043, // Formato de interfaz digital.

0x0081, // Control de la frecuencia de muestreo.

0x0001 // Activación de interfaz digital.

;

// Inicializar la board support library.

DSK6713_init();

//Abrir el codec

hCodec = DSK6713_AIC23_openCodec(0, &config);

En el main también se encuentra la habilitación de la interrupción de transmisión del codec

(MCSP1).

// Habilitar la interrupción del McBSP.

IRQ_enable(IRQ_EVT_XINT1);

En la función de la interrupción se encuentra la función codigoL que se encarga de producir los

códigos de línea, la escritura o lectura del codec y los receptores.

void Txgenerador()

codigoL(codigo,onda);

Tx_salida=(Uint32)(salida);

DSK6713_AIC23_write(hCodec,Tx_salida);

DSK6713_AIC23_read(hCodec,&Rx_entrada);

entrada[pos_entrada]=(Int16)(Rx_entrada);

decision();

pos_entrada++;

if(pos_entrada>Max_buffer)

pos_entrada=0;

La función códigoL tiene la primera parte de esta función nos permite restablecer los valores de

algunas variables cada vez que se detecta un cabio de código o tiempo de bit. Dependiendo de la

forma de onda deseada se seleccionara la función adecuada para producirla.

void codigoL(int codigos,int forma)

if(anterior!=codigos || tiempo_bit!=ante_tiempo)

act=0;

pos_s=0;

anterior_sim=0;

ban=0;

anterior=codigos;

ante_tiempo=tiempo_bit;

umbral=-1*lumbral;

Page 32: ING. ARTURO FAJARDO M.SC. · 2017-02-16 · El autor quiere agradece al Ing. Arturo Fajardo por la dirección y el apoyo durante la realización de este proyecto, a los técnicos

32

if(forma==1)

cuadra(codigos);

if(forma==2)

sincc();

if(forma==3)

cosenoele();

Se tiene tres opciones de onda y una función por cada onda:

Cuadra la cual nos permite producir los códigos con señales cuadradas. Esta función

está dividida según los códigos de línea. Selecciona el código de línea correspondiente y

recorre la tabla apropiada para el código.

void cuadra(int seleccion)

if(seleccion==1) //on_off

Si del vector secuencia viene 1 o cero escoge la tabla adecuada para recorrer. Con el

contador act se controla la posición de la tabla que se está leyendo y este incrementa

dependiendo del valor de la variable tiempo bit. Se usa la variable global salida para

sacar el valor del dato hacia el codec.

if(secuencias[pos_s]==1)

salida=Tonoff_unoC[act];

if(secuencias[pos_s]==0)

salida=Tonoff_ceroC[act];

act=act+tiempo_bit;

Con las siguientes líneas de código se controla el recorrido del vector secuencia que al

llegar a 10 se devuelve el apuntador que se encarga de recorrerlo. Esto sucede de

manera similar para todos los casos.

if(pos_s==10)

pos_s=0;

if(act==Longitud)

act=0;

pos_s++;

Para las señales de forma sinc es algoritmo es similar al de la onda cuadrada, excepto

que este tiene la opción de seleccionar el numero lóbulos con los que va la señal para

manejar este problema se utilizan varios apuntadores dependiendo de la longitud de la

sinc.

void sincc(void)

Se tiene un primer estado donde se calcula la posición inicial y final de los apuntadores en la

tabla de la sinc de pendiendo de la longitud que se desee.

if(ban==0)

Page 33: ING. ARTURO FAJARDO M.SC. · 2017-02-16 · El autor quiere agradece al Ing. Arturo Fajardo por la dirección y el apoyo durante la realización de este proyecto, a los técnicos

33

Tb=Longitud/8;

pos_in=(4-aTb)*Tb;

pos_fin=Longitud-pos_in-1;

if(aTb>0)

ban=1;

Un Segundo estado donde los apuntadores toman los valores correspondientes

dependiendo de los valores calculados en el estado anterior.

if(ban==1)

contador++;

if(bann==34)

if(aTb==4)

act=pos_in;

else

act=pos_in-1;

bann=2;

if(act==pos_fin) //se organizan los apuntadores

contador=pos_in;

ban=0;

pos=pos_in;

if(aTb==1)

act=pos_in-1;

if(aTb==2)

act=sig;

sig=pos_in-1;

if(aTb==3)

act=sig;

sig=sig1;

sig1=pos_in;

if(aTb==4)

act=sig;

sig=sig1;

sig1=sig2;

sig2=pos_in;

pos_s++;

if(pos_s==10)

pos_s=0;

Se selecciona el conjunto de operaciones de aritméticas apropiada según el código seleccionado.

Esto hace referencia a las sumas de los diferentes lóbulos dependiendo del número de estos que

se quieran.

if(codigo==1)

salida=sinc_suma_onoff(); //codigo on off

if(codigo==2)

Page 34: ING. ARTURO FAJARDO M.SC. · 2017-02-16 · El autor quiere agradece al Ing. Arturo Fajardo por la dirección y el apoyo durante la realización de este proyecto, a los técnicos

34

salida=sinc_suma_polar(); //codigo polar NRZ

pos++;

if(anterior1!=aTb) //cuando aTb cambio se reinician variables

if(aTb==4)

act=pos_in;

else

act=pos_in-1;

pos_s=0;

ban_s=1;

anterior1=aTb;

ban=0;

En el siguiente código se asegura el corrimiento de los diferentes apuntadores de pendiendo de

la cantidad de lóbulos que hay de tal manera que cada apuntador comience a correr en tiempos

distintos correspondiente a los desfases entre sinc.

//solo la primera vez después que se selecciona un aTb

if(act==((2*Tb)-1)+pos_in && ban_s==1) //en 11 cuando aTb=4

if(ban_s==1)

if(aTb==4)

sig=0;

else

sig=pos_in-1;

ban_s=2;

if(act==((4*Tb)-1)+pos_in && ban_s==2)//en 47 cuando aTb=4

if(ban_s==2)

if(aTb==4)

sig1=0;

else

sig1=pos_in-1;

ban_s=3;

if(act==((6*Tb)) && ban_s==3) //en 71 cuando aTb=4

if(ban_s==3)

sig2=0;

ban_s=4;

De manera similar el código del coseno elevado se parece al del sinc, por la excepción

que este lleva una condición extra el roll off lo cual se convierte en un factor más a la

hora de seleccionar la tabla que se va a recorrer.

void cosenoele(void) //es de un solo codigo polar

if(ban==0)

Tb=Longitud/8;

pos_in=(4-aTb)*Tb;

pos_fin=Longitud-pos_in-1;

Page 35: ING. ARTURO FAJARDO M.SC. · 2017-02-16 · El autor quiere agradece al Ing. Arturo Fajardo por la dirección y el apoyo durante la realización de este proyecto, a los técnicos

35

if(aTb>0)

ban=1;

if(ban==1)

if(bann==34)

if(aTb==4)

act=pos_in;

else

act=pos_in-1;

bann=2;

if(act==pos_fin) //se organizan los apuntadores

ban=0;

pos=pos_in;

if(aTb==1)

act=pos_in-1;

if(aTb==2)

act=sig;

sig=pos_in-1;

if(aTb==3)

act=sig;

sig=sig1;

sig1=pos_in;

if(aTb==4)

act=sig;

sig=sig1;

sig1=sig2;

sig2=pos_in;

pos_s++;

if(pos_s==10)

pos_s=0;

Se selecciona dependiendo del roll off uno de las siguientes funciones que contendrán las

operaciones matemáticas correspondientes, esta es la única diferencia en cuanto al algoritmo

que cambia respecto al de la señal sinc.

if(rolloff==1)

salida=coseno_rolloff1();

if(rolloff==5)

salida=coseno_rolloff5();

if(rolloff==7)

salida=coseno_rolloff7();

pos++;

if(anterior1!=aTb) //cuando aTb cambio se reinician variables

if(aTb==4)

act=pos_in;

else

act=pos_in-1;

Page 36: ING. ARTURO FAJARDO M.SC. · 2017-02-16 · El autor quiere agradece al Ing. Arturo Fajardo por la dirección y el apoyo durante la realización de este proyecto, a los técnicos

36

pos_s=0;

ban_s=1;

anterior1=aTb;

ban=0;

Se desfasan los apuntadores dependiendo del número de lóbulos seleccionados, a mayor numero

de lóbulos mayor número de apuntadores.

//solo la primera vez después que se selecciona un aTb

if(act==((2*Tb)-1)+pos_in && ban_s==1) //en 11 cuando aTb=4

if(ban_s==1)

if(aTb==4)

sig=0;

else

sig=pos_in-1;

ban_s=2;

if(act==((4*Tb)-1)+pos_in && ban_s==2)//en 47 cuando aTb=4

if(ban_s==2)

if(aTb==4)

sig1=0;

else

sig1=pos_in-1;

ban_s=3;

if(act==((6*Tb)-1) && ban_s==3) //en 71 cuando aTb=4

if(ban_s==3)

sig2=0;

ban_s=4;

Las operaciones matemáticas ejecutadas para las funciones del sinc o el coseno elevado son

similares ya que seleccionara y recorren una tabla dependiendo de los valores dados a las

diferentes variables de control.

int coseno_rolloff7(void)

Cuando se selecciona que solo tenga un lóbulo recorrerá una sola tabla que dependerá del valor

de la secuencia ya se a 1 o 0 y del tipo de código que se quiere.

if(aTb==1)

if(secuencias[pos_s]==1)

aux_s=Tpolar_unoCeno7[act];

if(secuencias[pos_s]==0)

aux_s=Tpolar_ceroCeno7[act];

act++;

Page 37: ING. ARTURO FAJARDO M.SC. · 2017-02-16 · El autor quiere agradece al Ing. Arturo Fajardo por la dirección y el apoyo durante la realización de este proyecto, a los técnicos

37

Al seleccionar que la señal sinc estará compuesta de 2 lóbulos se requiere de un apuntador extra

para que recorra el símbolo siguiente al actual y se sumen la intersección de sus señales.

if(aTb==2)

if(pos_s==9)

if(secuencias[9]==0 && secuencias[0]==0)

aux_s=suma(Tpolar_ceroCeno7[act],Tpolar_ceroCeno7[sig]);

if(secuencias[9]==0 && secuencias[0]==1)

aux_s=suma(Tpolar_ceroCeno7[act],Tpolar_unoCeno7[sig]);

if(secuencias[9]==1 && secuencias[0]==0)

aux_s=suma(Tpolar_unoCeno7[act],Tpolar_ceroCeno7[sig]);

if(secuencias[9]==1 && secuencias[0]==1)

aux_s=suma(Tpolar_unoCeno7[act],Tpolar_unoCeno7[sig]);

else

if(secuencias[pos_s]==0 && secuencias[pos_s+1]==0)

aux_s=suma(Tpolar_ceroCeno7[act],Tpolar_ceroCeno7[sig]);

if(secuencias[pos_s]==0 && secuencias[pos_s+1]==1)

aux_s=suma(Tpolar_ceroCeno7[act],Tpolar_unoCeno7[sig]);

if(secuencias[pos_s]==1 && secuencias[pos_s+1]==0)

aux_s=suma(Tpolar_unoCeno7[act],Tpolar_ceroCeno7[sig]);

if(secuencias[pos_s]==1 && secuencias[pos_s+1]==1)

aux_s=suma(Tpolar_unoCeno7[act],Tpolar_unoCeno7[sig]);

if(ban_s>1)

sig=sig+tiempo_bit;

act=act+tiempo_bit;;

Al seleccionar que la señal tenga 3 lóbulos se requerirá de tres apuntadores uno para el dato

actual uno para el siguiente y otro para el siguiente del siguiente.

if(aTb==3)

if(pos_s==8)

if(secuencias[8]==0 && secuencias[9]==0)

aux_s1=suma(Tpolar_ceroCeno7[act],Tpolar_ceroCeno7[sig]);

if(secuencias[8]==0 && secuencias[9]==1)

aux_s1=suma(Tpolar_ceroCeno7[act],Tpolar_unoCeno7[sig]);

if(secuencias[8]==1 && secuencias[9]==0)

aux_s1=suma(Tpolar_unoCeno7[act],Tpolar_ceroCeno7[sig]);

if(secuencias[8]==1 && secuencias[9]==1)

aux_s1=suma(Tpolar_unoCeno7[act],Tpolar_unoCeno7[sig]);

if(secuencias[0]==0)

aux_s=suma(aux_s1,Tpolar_ceroCeno7[sig1]);

if(secuencias[0]==1)

aux_s=suma(aux_s1,Tpolar_unoCeno7[sig1]);

if(pos_s==9)

if(secuencias[9]==0 && secuencias[0]==0)

aux_s1=suma(Tpolar_ceroCeno7[act],Tpolar_ceroCeno7[sig]);

Page 38: ING. ARTURO FAJARDO M.SC. · 2017-02-16 · El autor quiere agradece al Ing. Arturo Fajardo por la dirección y el apoyo durante la realización de este proyecto, a los técnicos

38

if(secuencias[9]==0 && secuencias[0]==1)

aux_s1=suma(Tpolar_ceroCeno7[act],Tpolar_unoCeno7[sig]);

if(secuencias[9]==1 && secuencias[0]==0)

aux_s1=suma(Tpolar_unoCeno7[act],Tpolar_ceroCeno7[sig]);

if(secuencias[9]==1 && secuencias[0]==1)

aux_s1=suma(Tpolar_unoCeno7[act],Tpolar_unoCeno7[sig]);

if(secuencias[1]==0)

aux_s=suma(aux_s1,Tpolar_ceroCeno7[sig1]);

if(secuencias[1]==1)

aux_s=suma(aux_s1,Tpolar_unoCeno7[sig1]);

else

if(secuencias[pos_s]==0 && secuencias[pos_s+1]==0)

aux_s1=suma(Tpolar_ceroCeno7[act],Tpolar_ceroCeno7[sig]);

if(secuencias[pos_s]==0 && secuencias[pos_s+1]==1)

aux_s1=suma(Tpolar_ceroCeno7[act],Tpolar_unoCeno7[sig]);

if(secuencias[pos_s]==1 && secuencias[pos_s+1]==0)

aux_s1=suma(Tpolar_unoCeno7[act],Tpolar_ceroCeno7[sig]);

if(secuencias[pos_s]==1 && secuencias[pos_s+1]==1)

aux_s1=suma(Tpolar_unoCeno7[act],Tpolar_unoCeno7[sig]);

if(secuencias[pos_s+2]==0)

aux_s=suma(aux_s1,Tpolar_ceroCeno7[sig1]);

if(secuencias[pos_s+2]==1)

aux_s=suma(aux_s1,Tpolar_unoCeno7[sig1]);

if(ban_s>2)

sig1=sig1+tiempo_bit;

if(ban_s>1)

sig=sig+tiempo_bit;

act=act+tiempo_bit;

Cuando el número de lóbulos es 4 se requiere de un apuntador extra para recorrer la señal extra

que se va a sumar a las anteriores o posteriores. Y de forma lineal se requerirá una apuntador

extra por cada lóbulo de mas que se desee.

if(aTb==4)

if(pos_s==7)

if(secuencias[7]==0 && secuencias[8]==0)

aux_s1=suma(Tpolar_ceroCeno7[act],Tpolar_ceroCeno7[sig]);

if(secuencias[7]==0 && secuencias[8]==1)

aux_s1=suma(Tpolar_ceroCeno7[act],Tpolar_unoCeno7[sig]);

if(secuencias[7]==1 && secuencias[8]==0)

aux_s1=suma(Tpolar_unoCeno7[act],Tpolar_ceroCeno7[sig]);

if(secuencias[7]==1 && secuencias[8]==1)

aux_s1=suma(Tpolar_unoCeno7[act],Tpolar_unoCeno7[sig]);

if(secuencias[9]==0 && secuencias[0]==0)

aux_s2=suma(Tpolar_ceroCeno7[sig1],Tpolar_ceroCeno7[sig2]);

if(secuencias[9]==0 && secuencias[0]==1)

aux_s2=suma(Tpolar_ceroCeno7[sig1],Tpolar_unoCeno7[sig2]);

Page 39: ING. ARTURO FAJARDO M.SC. · 2017-02-16 · El autor quiere agradece al Ing. Arturo Fajardo por la dirección y el apoyo durante la realización de este proyecto, a los técnicos

39

if(secuencias[9]==1 && secuencias[0]==0)

aux_s2=suma(Tpolar_unoCeno7[sig1],Tpolar_ceroCeno7[sig2]);

if(secuencias[9]==1 && secuencias[0]==1)

aux_s2=suma(Tpolar_unoCeno7[sig1],Tpolar_unoCeno7[sig2]);

aux_s=suma(aux_s1,aux_s2);

if(pos_s==8)

if(secuencias[8]==0 && secuencias[9]==0)

aux_s1=suma(Tpolar_ceroCeno7[act],Tpolar_ceroCeno7[sig]);

if(secuencias[8]==0 && secuencias[9]==1)

aux_s1=suma(Tpolar_ceroCeno7[act],Tpolar_unoCeno7[sig]);

if(secuencias[8]==1 && secuencias[9]==0)

aux_s1=suma(Tpolar_unoCeno7[act],Tpolar_ceroCeno7[sig]);

if(secuencias[8]==1 && secuencias[9]==1)

aux_s1=suma(Tpolar_unoCeno7[act],Tpolar_unoCeno7[sig]);

if(secuencias[0]==0 && secuencias[1]==0)

aux_s2=suma(Tpolar_ceroCeno7[sig1],Tpolar_ceroCeno7[sig2]);

if(secuencias[0]==0 && secuencias[1]==1)

aux_s2=suma(Tpolar_ceroCeno7[sig1],Tpolar_unoCeno7[sig2]);

if(secuencias[0]==1 && secuencias[1]==0)

aux_s2=suma(Tpolar_unoCeno7[sig1],Tpolar_ceroCeno7[sig2]);

if(secuencias[0]==1 && secuencias[1]==1)

aux_s2=suma(Tpolar_unoCeno7[sig1],Tpolar_unoCeno7[sig2]);

aux_s=suma(aux_s1,aux_s2);

if(pos_s==9)

if(secuencias[9]==0 && secuencias[0]==0)

aux_s1=suma(Tpolar_ceroCeno7[act],Tpolar_ceroCeno7[sig]);

if(secuencias[9]==0 && secuencias[0]==1)

aux_s1=suma(Tpolar_ceroCeno7[act],Tpolar_unoCeno7[sig]);

if(secuencias[9]==1 && secuencias[0]==0)

aux_s1=suma(Tpolar_unoCeno7[act],Tpolar_ceroCeno7[sig]);

if(secuencias[9]==1 && secuencias[0]==1)

aux_s1=suma(Tpolar_unoCeno7[act],Tpolar_unoCeno7[sig]);

if(secuencias[1]==0 && secuencias[2]==0)

aux_s2=suma(Tpolar_ceroCeno7[sig1],Tpolar_ceroCeno7[sig2]);

if(secuencias[1]==0 && secuencias[2]==1)

aux_s2=suma(Tpolar_ceroCeno7[sig1],Tpolar_unoCeno7[sig2]);

if(secuencias[1]==1 && secuencias[2]==0)

aux_s2=suma(Tpolar_unoCeno7[sig1],Tpolar_ceroCeno7[sig2]);

if(secuencias[1]==1 && secuencias[2]==1)

aux_s2=suma(Tpolar_unoCeno7[sig1],Tpolar_unoCeno7[sig2]);

aux_s=suma(aux_s1,aux_s2);

else

if(secuencias[pos_s]==0 && secuencias[pos_s+1]==0)

aux_s1=suma(Tpolar_ceroCeno7[act],Tpolar_ceroCeno7[sig]);

if(secuencias[pos_s]==0 && secuencias[pos_s+1]==1)

aux_s1=suma(Tpolar_ceroCeno7[act],Tpolar_unoCeno7[sig]);

if(secuencias[pos_s]==1 && secuencias[pos_s+1]==0)

aux_s1=suma(Tpolar_unoCeno7[act],Tpolar_ceroCeno7[sig]);

Page 40: ING. ARTURO FAJARDO M.SC. · 2017-02-16 · El autor quiere agradece al Ing. Arturo Fajardo por la dirección y el apoyo durante la realización de este proyecto, a los técnicos

40

if(secuencias[pos_s]==1 && secuencias[pos_s+1]==1)

aux_s1=suma(Tpolar_unoCeno7[act],Tpolar_unoCeno7[sig]);

if(secuencias[pos_s+2]==0 && secuencias[pos_s+3]==0)

aux_s2=suma(Tpolar_ceroCeno7[sig1],Tpolar_ceroCeno7[sig2]);

if(secuencias[pos_s+2]==0 && secuencias[pos_s+3]==1)

aux_s2=suma(Tpolar_ceroCeno7[sig1],Tpolar_unoCeno7[sig2]);

if(secuencias[pos_s+2]==1 && secuencias[pos_s+3]==0)

aux_s2=suma(Tpolar_unoCeno7[sig1],Tpolar_ceroCeno7[sig2]);

if(secuencias[pos_s+2]==1 && secuencias[pos_s+3]==1)

aux_s2=suma(Tpolar_unoCeno7[sig1],Tpolar_unoCeno7[sig2]);

aux_s=suma(aux_s1,aux_s2);

if(ban_s>3)

sig2=sig2+tiempo_bit;

if(ban_s>2)

sig1=sig1+tiempo_bit;

if(ban_s>1)

sig=sig+tiempo_bit;

act=act+tiempo_bit;

La variable aux_s es utilizada vara devolver el resultado de las diferentes sumas realizadas en la

función.

return aux_s;

La suma convencional no es adecuada para el trabajo de sumar los valores requeridos para

escribir en el codec, por lo tanto se hace necesario implementar una función de suma que

adecuada para los valores necesarios para escribir en el codec.

int suma(int num1, int num2)

int anum1;

int anum2;

Se signa los valores a sumar pasándolos a enteros sin signar a enteros con signo.

anum1=(Int16)(num1);

anum2=(Int16)(num2);

sumaa=anum1+anum2;

Se limita la suma de tal manera que los resultados obtenidos no puedan ser mayores a los

valores permitidos por el codec limitando el valor de las sumas tanto superiormente como

inferiormente.

if(sumaa>32767) //limite superior de la suma

sumaa=32767;

if(sumaa<-32767)

sumaa=-32766;

if(sumaa<0)

sumaa=sumaa+65534;

if(sumaa>65534) //limite inferior de la suma

Page 41: ING. ARTURO FAJARDO M.SC. · 2017-02-16 · El autor quiere agradece al Ing. Arturo Fajardo por la dirección y el apoyo durante la realización de este proyecto, a los técnicos

41

sumaa=65534;

return sumaa;

3.4.3 Módulo 3

En este módulo se presenta un modulador y demodulador sincrónico QAM y su teoría, donde se

estudiarán las características de este tipo de modulación con diferentes tipos de forma de pulso.

Los objetivos que se presentan en este módulo son:

El estudiante conozca una modulación QAM4 basada el modulador QAM16 con una

forma de pulso cuadrada.

Que los estudiantes analicen la salida de un modulador QAM16 con una forma de pulso

cuadrada.

Que los estudiantes analicen los espectros de frecuencia de un modulador QAM con

una forma de pulso cuadrada.

Que los estudiantes puedan describir una modulación QAM con una forma de pulso

sinc.

Los estudiantes analicen los espectros de frecuencia con modulador QAM con una

forma de pulso sinc.

Las competencias que deben tener al empezar estas guías son: conocimiento básico en

modulaciones digitales incluyendo el criterio de Nyquist, espectros de frecuencia y un manejo

básico de la tarjeta de desarrollo. Al terminar la guía las competencias adquiridas por los

estudiantes sean un entendimiento de la modulación QAM, el efecto ISI en esta modulación y

cómo afecta la forma de pulso las características de la modulación.

Las herramientas necesarias para el desarrollo de la guía son:

Un (1) Kit de desarrollo TMS320C6713.

Un (1) Osciloscopio con función de FFT.

Dos (2) Cable estéreo-caimán

Dos (2) Punta de osciloscopio.

Un (1) Cable estéreo-estéreo.

Un (1) Computador con Code composer.

El programa implementado para este módulo permite escoger entre la forma de onda cuadrada y

seno, además variar la frecuencia del oscilador, la secuencia que se desea enviar y la cantidad de

lóbulos de los pulsos con forma sinc. El control del programa se realiza mediante el watch

window del entorno de desarrollo en el cual estarán las diferentes variables de control y además

permitirá acceder al DSP en tiempo real para variar los parámetros del modulador de una forma

fácil y sencilla. En el siguiente diagrama de flujo se encuentra el esquema general del programa.

Page 42: ING. ARTURO FAJARDO M.SC. · 2017-02-16 · El autor quiere agradece al Ing. Arturo Fajardo por la dirección y el apoyo durante la realización de este proyecto, a los técnicos

42

En el diagrama de flujo de la Figura 15 el programa comienza a correr cuando hay una

interrupción de transmisión del codec, luego sigue al modulador donde se selecciona qué forma

va a tener el tren de impulsos, en el caso específico del sinc hay una opción extra la cual permite

escoger el número de lóbulos que va a tener el sinc (en el caso del programa solo permite 1, 3 o

5), después se selecciona un apuntador libre el cual va hacer el encargado de recorrer la tabla

correspondiente más adelante en el programa, el bloque de selección de cuadribit se encarga de

la secuencia de símbolos que se enviarán y su nombre deriva de que cada símbolo está

compuesto de cuatro bits. Después, como cada combinación de cuadribit tiene unas coordenadas

asociadas según la constelación de QAM 16, el siguiente bloque obtiene esas coordenadas, las

cuales se multiplican por el apuntador escogido con anterioridad, el cual apunta a una tabla que

contiene la forma del tren de impulsos; posteriormente se multiplicarán por el oscilador coseno

o seno, dependiendo de la coordenada; se suman las multiplicaciones anteriores para obtener el

resultado de la modulación y al final se escribe al codec. El bloque de correr apuntadores se

encarga de mover los apuntadores adecuados usados en el programa para recorrer las tablas de

los símbolos adecuadamente cada vez que se termina de escribir un dato en le codec para

asegurar que el programa este correctamente sincronizado y así prepararse para enviar el

siguiente dato. Al terminarse el tiempo de símbolo se deben repetir el proceso desde la selección

del apuntador para asegurar el correcto envío de cada símbolo en el tiempo de símbolo y esto se

repite indefinidamente, hasta que el usuario detenga el programa.

Donde el modulador implementado en bloques funcionales se muestra en la Figura 13, donde

los valores para la multiplicación entre el oscilador y la señal entrante son tomados de unas

lookup table, las cuales se recorrerá de forma similar a la mostrada en la Figura 10 donde los

valores de estas son tomadas por unos apuntadores y posteriormente multiplicadas. Los bloques

de los integradores se realizaron mediante una suma que depende del número de lóbulos

seleccionados, ya que dependiendo de estos se suman más o menos valores apuntados por los

apuntadores debido a que se tiene una mayor cantidad de símbolos. Y por último se suma los

valores obtenidos en cada rama lo cual da el resultado a escribir en el codec.

Inicialización

Modulador QAM

Escribe al codec

Interrupción Tx

Fin de la interrupción

Fin

No

Si

Figura 12. Diagrama de Flujo general del programa de la guía 3.

Page 43: ING. ARTURO FAJARDO M.SC. · 2017-02-16 · El autor quiere agradece al Ing. Arturo Fajardo por la dirección y el apoyo durante la realización de este proyecto, a los técnicos

43

El bloque funcional del demodulador se muestra en la Figura 14 que de forma similar al

modulador los valores del seno provienen de una lookup table y se multiplican punto a punto

por los valores de entrada del codec. Luego estos valores se suman y se acumulan para calcular

el promedio de la señal de entrada en un tiempo de símbolo. Donde este promedio es pasado a

un bloque de decisión donde dependiendo de un umbral se decide el valor de la proyección de la

señal para cada rama del demodulador.

La constelación utilizada en la implementación del modulador corresponde a la constelación

dada en la recomendación V. 22 bis de la ITU, de igual forma el scrambler implementado

corresponde al algoritmo de la recomendación y además el programa es modificable de forma

sencilla para transmitir a la velocidades dadas en la recomendación.

Σ

Oscila

dor

90°

Figura 13. Diagrama funcional del modulador QAM

Figura 14. Diagrama funcional del demodulador QAM

Page 44: ING. ARTURO FAJARDO M.SC. · 2017-02-16 · El autor quiere agradece al Ing. Arturo Fajardo por la dirección y el apoyo durante la realización de este proyecto, a los técnicos

44

En la primera parte del programa se llaman a las librerías de C y las librerías de soporte de la

tarjeta de desarrollo.

#include "Modulador_Qamcdbcfg.h" // Encabezado de DSP/BIOS

#include <csl.h> // Encabezado CSL

#include <csl_irq.h> // Encabezado Interrupciones

#include "dsk6713.h" // Encabezado BSL

#include "dsk6713_aic23.h" // Encabezado Codec

#include <math.h>

#include "tablas.h"

Obtiene coordenadas del cuadribti

Interrupción Tx

Forma

de la

onda

Cuadrada Sinc

Seleccionar cantidad de

lóbulos

Selecciona apuntador

Coordenada X por apuntador

Coordenada Y por apuntador

Por coseno Por seno

Suma

Escribe al codec

Apuntador supera

tiempo de simbolo

Corre apuntadores

Si

No

Selecciona cuadrabit

Figura 15. Diagrama de flujo del modulador QAM.

Page 45: ING. ARTURO FAJARDO M.SC. · 2017-02-16 · El autor quiere agradece al Ing. Arturo Fajardo por la dirección y el apoyo durante la realización de este proyecto, a los técnicos

45

A continuación se inicializa las funciones y se declaran las variables a usaren el programa, entre

estas se destacan las variables de control que nos permiten cambiar alguno de los parámetros de

señal de salida, estas variable son:

El vector secuencia en el cual se puede ingresar la secuencia de datos que se desea a

la salida.

La variable frec_osc nos permite variar la frecuencia:

1. 2kHz

2. 4kHz.

3. 6kHz

Onda es la variable que nos perite escoger la forma de onda del tren de impulsos:

1. Forma de onda cuadrada.

2. Forma de onda sinc.

La variable l_sinc nos permite variar el numero de lóbulos de la sinc

1. Solo el lóbulo central.

2. El lóbulo central más uno adelante y otro atrás.

3. El lóbulo central más dos adelante y otro dos atrás.

La variable fuente_sel nos permite escoger la fuente de donde proviene los bits:

1. Proviene del vector secuencia.

2. Paso los datos del vector secuencia por la función scrambler.

3. Se escoge una secuencia aleatoria.

La variable sel_qam nos permite escoger el nivel de la modulación QAM:

1. QAM 4

2. QAM 8

3. QAM 16

La siguiente parte del programa se compone del main donde se inicializa la tarjeta, los

periféricos de esta, se configura el codec y la interrupción a utilizar.

DSK6713_AIC23_Config config =

0x0017, // Volumen de entrada de línea canal izq.

0x0017, // Volumen de entrada de línea canal der.

0x01F9, // Volumen de audífono izquierdo.

0x01F9, // Volumen de audífono derecho.

0x0011, // Control del camino análogo del audio.

0x0000, // Control del camino digital del audio.

0x0000, // Control de Power down.

0x0043, // Formato de interfaz digital.

0x0081, // Control de la frecuencia de muestreo.

0x0001 // Activación de interfaz digital.

;

// Inicializar la board support library.

DSK6713_init();

//Abrir el codec

hCodec = DSK6713_AIC23_openCodec(0, &config);

// Habilitar la interrupción del McBSP.

IRQ_enable(IRQ_EVT_XINT1);

Page 46: ING. ARTURO FAJARDO M.SC. · 2017-02-16 · El autor quiere agradece al Ing. Arturo Fajardo por la dirección y el apoyo durante la realización de este proyecto, a los técnicos

46

// Regresar el control al planificador del DSP/BIOS

return;

La función de la interrupción se encarga de llamar a la función de modulación, escribir y leer de

codec, además nos proporciona la base de tiempo.

void QamTx(void)

Este segmento del programa nos sirve para reiniciar alguna de las variables cuando se cambian

alguno de los parámetros de la señal.

if(ban_osc!=frec_osc || ban_onda!=onda || ban_lsinc!=l_sinc ||

ban_sel_qam!=sel_qam)

if(frec_osc==1)

pos_seno=44;

if(frec_osc==2)

pos_seno=43;

if(frec_osc==3)

pos_seno=41;

if(frec_osc==4)

pos_seno=40;

if(onda==2 && l_sinc==2)

pos_seno=42;

if(onda==2 && l_sinc==3)

pos_seno=41;

ban_osc=frec_osc;

ban_onda=onda;

ban_lsinc=l_sinc;

ban_sel_qam=sel_qam;

if(onda==2)

inicio=(3-l_sinc)*Ts;

fin=576-inicio;

ap1=inicio;

ap2=inicio;

ap3=inicio;

ap4=inicio;

ban_ap2=0;

ban_ap3=0;

ban_ap4=0;

pos_secu=0;

pos_sim=0;

if(onda==1)

inicio=0;

fin=96;

La función QAM se encarga de hacer la modulación y recibe el tipo de forma de onda que se

desea.

salida=QAM(onda);

Page 47: ING. ARTURO FAJARDO M.SC. · 2017-02-16 · El autor quiere agradece al Ing. Arturo Fajardo por la dirección y el apoyo durante la realización de este proyecto, a los técnicos

47

Se hace un cast a la variable de salida para poder escribir al codec.

Tx_salida=(Uint32)(salida);

DSK6713_AIC23_write(hCodec,Tx_salida);

DSK6713_AIC23_read(hCodec,&Rx_entrada);

entrada[pos_entrada]=(short)(Rx_entrada);

receptor(entrada[pos_entrada]);

El siguiente es el apuntador a la tabla del seno la cual controla la frecuencia del oscilador local.

pos_seno+=frec_osc;

if(pos_seno>47)

pos_seno=0;

El siguiente apuntador es el apuntador que se encarga de llevar el tiempo de símbolo.

pos_sim++;

if(pos_sim==192)

pos_sim=0;

pos_entrada++;

if(pos_entrada>1023)

pos_entrada=0;

La función QAM se encarga de realizar la modulación QAM.

int QAM(int forma)

int sal_qam;

La siguiente parte del código se encarga de desfasar el comienzo de los apuntadores cuando se

requiere recorrer varios símbolos a la vez.

if(forma==2)

if(ap1==96)

ban_ap2=1;

if(ap1==192)

ban_ap3=1;

if(ap1==288)

ban_ap4=1;

La siguiente parte del código se encarga de buscar un apuntador libre, cuando encuentra el

apuntador hace un llamado a la función coordenadas la cual se encarga de devolver las

coordenadas dependiendo de los bits que vienen de la secuencia. La función tabla se encarga de

seleccionar la tabla apropiada y devuelve el valor a utilizar en la modulación.

if(ap1==inicio)

coordenadas(&x1,&y1);

ap1=tabla(x1,y1,ap1,&valor_x1,&valor_y1,forma);

suma_aux_x=valor_x1;

suma_aux_y=valor_y1;

if(ban_ap2==1)

if(ap2==inicio)

coordenadas(&x2,&y2);

Page 48: ING. ARTURO FAJARDO M.SC. · 2017-02-16 · El autor quiere agradece al Ing. Arturo Fajardo por la dirección y el apoyo durante la realización de este proyecto, a los técnicos

48

ap2=tabla(x2,y2,ap2,&valor_x2,&valor_y2,forma);

suma_aux_x=saturador(valor_x2,suma_aux_x);

suma_aux_y=saturador(valor_y2,suma_aux_y);

if(ban_ap3==1)

if(ap3==inicio)

coordenadas(&x3,&y3);

ap3=tabla(x3,y3,ap3,&valor_x3,&valor_y3,forma);

suma_aux_x=saturador(valor_x3,suma_aux_x);

suma_aux_y=saturador(valor_y3,suma_aux_y);

if(ban_ap4==1)

if(ap4==inicio)

coordenadas(&x4,&y4);

ap4=tabla(x4,y4,ap4,&valor_x4,&valor_y4,forma);

suma_aux_x=saturador(valor_x4,suma_aux_x);

suma_aux_y=saturador(valor_y4,suma_aux_y);

El siguiente segmento del código se encarga de realizar la modulación QAM, donde se

multiplica los valores obtenidos de la suma de los apuntadores por el oscilador local y luego

este resultado pasas a la suma el cual es el valor que se regresa para ser escrito al codec.

X=multi(suma_aux_x,coseno[pos_seno]);

Y=multi(suma_aux_y,seno[pos_seno]);

sal_qam=saturador(X,Y);

return sal_qam;

La función de coordenadas dependiendo del valor de la variable sel_qam se encarga de

seleccionar alguna de las funciones QAM para que estas interpreten la combinación de bits

adecuadamente para devolver las coordenadas correspondientes

void coordenadas(int *x, int *y)

if(sel_qam==1)

QAM4(x,y);

if(sel_qam==2)

QAM8(x,y);

if(sel_qam==3)

QAM16(x,y);

La función QAM16 devuelve el par de coordenadas correspondiente a la constelación de una

modulación QAM 16.

void QAM16(int *cx, int *cy)

int tabla_x=0;

int tabla_y=0;

int bit1;

int bit2;

int bit3;

int bit4;

Page 49: ING. ARTURO FAJARDO M.SC. · 2017-02-16 · El autor quiere agradece al Ing. Arturo Fajardo por la dirección y el apoyo durante la realización de este proyecto, a los técnicos

49

El siguiente segmento del código se encarga de seleccionar la fuente de donde provienen los

bits, los cuales pueden provenir del vector secuencia directamente o desde el scrambler o desde

función de aleatoria.

if(fuente_sel==1)

bit1=secuencia[pos_secu];

bit2=secuencia[pos_secu+1];

bit3=secuencia[pos_secu+2];

bit4=secuencia[pos_secu+3];

if(fuente_sel==2)

bit1=scrambler(secuencia[pos_secu]);

bit2=scrambler(secuencia[pos_secu+1]);

bit3=scrambler(secuencia[pos_secu+2]);

bit4=scrambler(secuencia[pos_secu+3]);

if(fuente_sel==3)

bit1=aleatorio();

bit2=aleatorio();

bit3=aleatorio();

bit4=aleatorio();

Después se pasa por una serie de condiciones que permite seleccionar las coordenadas

adecuadas para la modulación QAM 16.

if(bit1==0)

if(bit2==0) //tercer cuatrante

if(bit3==0)

tabla_y=-1;

if(bit3==1)

tabla_y=-3;

if(bit4==0)

tabla_x=-1;

if(bit4==1)

tabla_x=-3;

if(bit2==1) //cuarto cuadrante

if(bit3==0)

tabla_x=1;

if(bit3==1)

tabla_x=3;

if(bit4==0)

tabla_y=-1;

if(bit4==1)

tabla_y=-3;

if(bit1==1)

if(bit2==0) //segundo cuatrante

if(bit3==0)

tabla_x=-1;

if(bit3==1)

Page 50: ING. ARTURO FAJARDO M.SC. · 2017-02-16 · El autor quiere agradece al Ing. Arturo Fajardo por la dirección y el apoyo durante la realización de este proyecto, a los técnicos

50

tabla_x=-3;

if(bit4==0)

tabla_y=1;

if(bit4==1)

tabla_y=3;

if(bit2==1) //primer cuadrante

if(bit3==0)

tabla_y=1;

if(bit3==1)

tabla_y=3;

if(bit4==0)

tabla_x=1;

if(bit4==1)

tabla_x=3;

Se devuelve los valores de las coordenadas por referencia.

*cx=tabla_x;

*cy=tabla_y;

Se corre el apuntadora al vector secuencia y cuando este supera el tamaño de este se reinicia.

pos_secu+=4;

if(pos_secu==24)

pos_secu=0;

De forma similar se implementan las funciones para QAM8 y para QAM4, el cambio se

presenta en las condiciones de selección.

La función tabla recibe las coordenadas, el apuntador que está recorriendo la tabla y devuelve

los valores correspondientes a esas coordenadas dependiendo de la tabla que se debe recorrer.

int tabla(int x, int y, int apuntador, int *valor_x, int *valor_y, int seleccion)

Se selecciona entre las dos formas de onda ya sea cuadrada o sinc.

if(seleccion==1)

Se multiplica la el valor apuntado de la tabla por la coordenada para obtener el valor

correspondiente a un punto de la tabla.

*valor_x=base_cuadra[apuntador]* x;

*valor_y=base_cuadra[apuntador]* y;

if(seleccion==2)

*valor_x=base_sinc[apuntador]* x;

*valor_y=base_sinc[apuntador]* y;

Page 51: ING. ARTURO FAJARDO M.SC. · 2017-02-16 · El autor quiere agradece al Ing. Arturo Fajardo por la dirección y el apoyo durante la realización de este proyecto, a los técnicos

51

Se corre el apuntador a la siguiente posición de la taba hasta que este supere el tamaño de la

tabla. Se devuelve el valor de la nueva posición del apuntador.

apuntador+=1;

if(apuntador==fin)

apuntador=inicio;

return apuntador;

La siguiente función limita a los valores máximos los datos obtenidos que se van a escribir en el

codec.

int saturador(int num1, int num2)

int num3;

num3=num1+num2;

if(num3>32767)

num3=32767;

if(num3<-32767)

num3=-32767;

return num3;

La función multi nos permite multiplicar adecuadamente cualquier par de datos cuyo resultado

vayan hacer escritos en el codec. Esto lo logra convirtiendo a todos los datos en números

signados de 16 bit y limitándolos a los valores máximos que pueden ser escritos al codec.

int multi(short num1,short num2)

int nu1;

int nu2;

int sal;

nu1=(int)(num1);

nu2=(int)(num2);

sal=nu1*nu2;

if(sal>32767)

sal=sal/32767;

if(sal<-32767)

sal=sal/32767;

return sal;

Es la función costa de la función random de C para crear los datos aleatorios que serán

utilizados en vez de los del vector secuencia.

int aleatorio(void)

int auxr;

auxr= rand() % (2);

return auxr;

La función scrambler recibe el dato y se en carga de implementar el vector scrambler para el

modem.

int scrambler(int dato)

Page 52: ING. ARTURO FAJARDO M.SC. · 2017-02-16 · El autor quiere agradece al Ing. Arturo Fajardo por la dirección y el apoyo durante la realización de este proyecto, a los técnicos

52

int aux_scra;

int aux_scra2;

int i=0;

Se utiliza una XOR para realizar la sumas de modulo 2.

aux_scra=(vec_scra[13]^ vec_scra[16]);

aux_scra2=dato ^ aux_scra;

El siguiente for se utiliza para mover todo el vector y poder ingresarle el nuevo valor calculado

en la variableaux_scra2.

for(i=0;i<16;i++)

vec_scra[16-i]=vec_scra[15-i];

vec_scra[0]=aux_scra2;

return aux_scra2;

La siguiente es la función de recepción que nos permite decodificar la señal recibida.

void receptor(int valor)

int con2;

int con3;

con2=(short)(seno[pos_seno]);

con3=(short)(coseno[pos_seno]);

Se multiplica el valor de entrada por coseno y seno para la demodulación sincrónica y se va

acumulando este valor.

aux_x=valor*con2;

aux_y=valor*con3;

p_x=(p_x+aux_x);

p_y=(p_y+aux_y);

bufferx[buffer]=p_x;

buffery[buffer]=p_y;

Cuando se cumple el tiempo de símbolo se procede a calcular el promedio de la señal de entrada

en el número de muestras y luego se normaliza con el valor numérico más grande el codec y se

toma una decisión.

if(ban_seno==1)

Las variables promedio se encargan de guardar el valor de los promedios calculados en cada

tiempo de símbolo.

promedio_x=acumulador_x/divisor;

promedio_y=acumulador_y/divisor;

acumulador_x=0;

acumulador_y=0;

ban_seno=0;

pos_seno2+=frec_osc;

if(pos_seno2>95)

pos_seno2=0;

Page 53: ING. ARTURO FAJARDO M.SC. · 2017-02-16 · El autor quiere agradece al Ing. Arturo Fajardo por la dirección y el apoyo durante la realización de este proyecto, a los técnicos

53

ban_seno=1;

buffer++;

if(buffer>1023)

buffer=0;

3.4.4 Módulo 4

Esta guía está enfocada como un proyecto de desarrollo para los estudiantes basado en la teoría

de PjBL donde el objetivo principal es que los estudiantes sean capaces de implementar

parcialmente un módem bajo la recomendación V. 22 de la ITU con los conocimientos y

habilidades adquiridas en los módulos anteriores. Se presentaran un marco teórico y

especificaciones requeridas para el módem, donde los objetivos específicos del módulo son:

Que el estudiante sea capaz de implementar un scramble.

Que el estudiante utilice lookup table.

Que el estudiante sea capaz de reutilizar código.

Que el estudiante sea capaz de implementar un descrambler.

Que los estudiantes sean capaces de reconocer la complejidad del proyecto propuesto.

Las herramientas necesarias para el desarrollo son:

Un (1) Kit de desarrollo TMS320C6713.

Un (1) Osciloscopio con función de FFT.

Dos (2) Cable estéreo-caimán

Dos (2) Punta de osciloscopio.

Un (1) Cable estéreo-estéreo.

Un (1) Computador con Code composer

La implementación del programa de este módulo será enteramente hecha por los estudiantes con

apoyo del facilitador. Los estudiantes podrán rehusar código usado en los módulos para facilitar

la tarea, el desarrollo del módem se centrará en la implementación y la adecuación de código

por parte de los estudiantes. La implementación del módem será parcial ya que no se exigirán

todos los modos de funcionamiento ni todas las características propias de la recomendación, ya

que muchas de ellas requieren un nivel de conocimiento superior al de un estudiante de

pregrado.

Page 54: ING. ARTURO FAJARDO M.SC. · 2017-02-16 · El autor quiere agradece al Ing. Arturo Fajardo por la dirección y el apoyo durante la realización de este proyecto, a los técnicos

54

4. Análisis de Resultados

4.1 Resultado de los Módulos

4.1.1 Módulo 1

Los programas escogidos para ser realizados para este modelo son: el primer programa, LEDS,

presenta una interacción entre dos componentes de la tarjeta, siendo uno de ellos los leds y el

otro un dip switch el cual permite controlar el encendido o apagado de los leds. Siendo un

programa relativamente sencillo, se pretende mostrar las bases de cómo realizar un proyecto en

code composer y programarlo en la tarjeta para luego ejecutarlo, así mismo permite ver las

diferencias entre hacer un programa para el computador y uno que tiene como objetivo

programar un procesador.

En el segundo programa, generador de funciones de este módulo, se observa cómo se utiliza el

codec de la tarjeta para producir diferentes tipos de señales como sinusoidales o cuadradas que

son el objetivo de este programa, las cuales se seleccionaran desde el dip switch SW1 de la

tarjeta de desarrollo. Con este programa se logró producir diferentes señales entre sinusoidales,

triangulares, rampas y cuadradas, basadas en el cálculo constante de los ángulos y usándolos de

referencia de tiempo para las señales en un ciclo de polling. Las señales obtenidas en este

programa se muestran en las figuras 13 a 16 así:

Figura 16. Señal sinusoidal generador de funciones.

Como se logra apreciar en las figuras, todas las señales tienen una frecuencia cercana a 1kHz y

todas las amplitudes se encuentran son menores a 2Vpp. Tanto la frecuencia como la amplitud

son fácilmente modificables en el programa al cambiar los valores asignados a la variable de

frecuencia la cual puede ir hasta 6kHz sin presentar deformaciones en las formas de onda y el

Page 55: ING. ARTURO FAJARDO M.SC. · 2017-02-16 · El autor quiere agradece al Ing. Arturo Fajardo por la dirección y el apoyo durante la realización de este proyecto, a los técnicos

55

valor de la amplitud se varia en las variables correspondientes a cada señal, modificando valores

de algunas variables.

Figura 17. Señal rampa generador de funciones.

Figura 18. Señal triangulo generador de funciones.

Dada las condiciones del codec de la tarjeta surgen ciertas limitaciones a la hora de producir

ciertas señales como se observa en la señal rampa o cuadrada donde se observan ciertas

deformaciones de las señales dado que los saltos que se producen son abruptos y por lo tanto el

codec es incapaz de seguirlos de forma precisa, además las frecuencia de muestro también

presenta una limitación a la cantidad de armónicas que pueden componer las señales

Page 56: ING. ARTURO FAJARDO M.SC. · 2017-02-16 · El autor quiere agradece al Ing. Arturo Fajardo por la dirección y el apoyo durante la realización de este proyecto, a los técnicos

56

especialmente en el caso de la señal cuadrada. También se pueden apreciar los efectos del canal

sobre las señales dado que este no es un canal perfecto.

Figura 19. Señal cuadrada generador de funciones.

En este módulo se encuentran unas cajas de pregunta, problema y proyecto, cada una haciendo

énfasis directo alguna de las metodologías de aprendizaje enunciadas en el proyecto.

4.1.2 Módulo 2

Esta guía se centra en el programa generador de códigos de línea que permite ver diferentes

códigos de línea y sus respectivos espectros de frecuencia con diferentes formas de pulso. Este

programa permite seleccionar desde el wath window entre los diferentes códigos de línea: on

off, polar con retorno a cero y sin retorno a cero, bipolar con retorno a cero o sin retorno a cero

y Manchester con señales cuadradas. En la Figura 20 se presenta la ventana de control del

programa la cual costa de las siguientes variables: código permite escoger entre los diferentes

códigos de línea, onda permite seleccionar entre las tres formas de ondas disponibles (cuadrada,

sinc, coseno elevado), roll off permite seleccionar el valor de roll off para la señal coseno

elevado, la variable tiempo bit como su nombre lo indica permite la manipulación del tiempo de

bit entre 250μs y 1ms, y la variable longitu_l que nos permite variar el numero de lóbulos de las

señales con forma sinc o coseno elevado.

Figura 20. Ventana de control del generador de códigos.

Page 57: ING. ARTURO FAJARDO M.SC. · 2017-02-16 · El autor quiere agradece al Ing. Arturo Fajardo por la dirección y el apoyo durante la realización de este proyecto, a los técnicos

57

El la Figura 21 se presenta un código on-off que sigue una secuencia de „1‟ y „0‟ intercalada y

en la Figura 22 se ilustra su espectro de frecuencia respectivamente.

Figura 21. Código on-off siguiendo una secuencia intercalada de 1 y 0.

Figura 22. FFT del código de línea on-off.

Como se logra observar en la Figura 22 se puede ver que el espectro de la señal concuerda con

lo que se esperaría de un espectro de una señal cuadrada. El cursor 1 se encuentra en el

armónico fundamental, mientras que el cursor 2 se encuentra en el quinto armónico y al mover

los cursores se puede comprobar que los demás armónicos que aparecen son los armónicos

impares que van decreciendo lo cual concuerda con el espectro teórico de una señal cuadrada.

Page 58: ING. ARTURO FAJARDO M.SC. · 2017-02-16 · El autor quiere agradece al Ing. Arturo Fajardo por la dirección y el apoyo durante la realización de este proyecto, a los técnicos

58

En la Figura 23 se observa el código de línea polar con la misma secuencia utilizada

anteriormente y en la Figura 24 su respectivo espectro de frecuencia.

Figura 23. Código de línea polar sin retorno a cero.

Figura 24. FFT de código de línea sin retorno a cero.

Si se realiza una comparación entre la Figura 22 y la Figura 24 se observa que la posición de los

armónicos se conserva, pero potencia varia como muestran los cursores 1 y2, se utiliza mayor

potencia en el código de línea polar que en el on-off lo cual va de acorde a la teoría.

Page 59: ING. ARTURO FAJARDO M.SC. · 2017-02-16 · El autor quiere agradece al Ing. Arturo Fajardo por la dirección y el apoyo durante la realización de este proyecto, a los técnicos

59

En la Figura 25 y la Figura 26 se tiene el código de línea polar con retorno a cero, siguiendo la

misma secuencia de los casos anteriores. Como se puede observar al comparar la Figura 25 y la

Figura 23 el tiempo del pulso se reduce a la mitad como se espera para este tipo de códigos.

Figura 25. Código de línea polar con retorno a cero.

Figura 26. FFT del código de línea polar retorno a cero.

Page 60: ING. ARTURO FAJARDO M.SC. · 2017-02-16 · El autor quiere agradece al Ing. Arturo Fajardo por la dirección y el apoyo durante la realización de este proyecto, a los técnicos

60

En el espectro de frecuencia conserva la forma de los anteriores espectros, excepto que en este

código aparecen las armónicas pares con una potencia mucho menor ya que se varía entre

señales periódicas cuadradas con pulsos positivos y negativos.

La Figura 27 y la Figura 28 corresponden a las de un código bipolar sin retorno a cero con la

misma secuencia de los casos anteriores.

Figura 27. Código de línea bipolar no retorno a cero.

El espectro de la Figura 28 nos muestra que el armónico fundamental se corre de posición, pero

no se debe a un cambio en el tiempo de bit, sino al cambio en el periodo de la señal debido a

que se tiene una alternación entre el pulso positivo y negativo para la representación del 1.

Figura 28. FFT de código de línea con no retorno a cero.

Page 61: ING. ARTURO FAJARDO M.SC. · 2017-02-16 · El autor quiere agradece al Ing. Arturo Fajardo por la dirección y el apoyo durante la realización de este proyecto, a los técnicos

61

Las siguientes figuras hacen referencia a un código de línea bipolar con retorno a cero. Y como

se logra observar en la Figura 29 la duración de los pulsos se hace la mitad con respecto a los de

la Figura 27 lo cual se espera de este tipo de modulación.

Figura 29. Código de línea bipolar con retorno a cero.

De la Figura 30 se logra observar que la potencia del armónico fundamental es menor que la

apreciada en la Figura 28, aunque hacen aparición los armónicos pares con una potencia

relativamente despreciable.

Figura 30. FFT del código de línea bipolar con retorno a cero.

Page 62: ING. ARTURO FAJARDO M.SC. · 2017-02-16 · El autor quiere agradece al Ing. Arturo Fajardo por la dirección y el apoyo durante la realización de este proyecto, a los técnicos

62

La Figura 31 y la Figura 32 corresponden a un código de línea Manchester y su FFT. En la

Figura 31 se logra observar un intervalo de dos „1‟ seguidos para apreciar el cambio a metió

tiempo de bit especifico que se presenta en este tipo de códigos.

Figura 31. Código de línea Manchester.

Figura 32. FFT del código de línea Manchester.

En la Figura 32 se logra apreciar que el espectro tiene muchos componentes de frecuencia que

se asimilan a una forma de onda sinc, pero el armónico fundamental está centrado en la

frecuencia que se espera. Como se logra apreciar desde la Figura 21 hasta la Figura 32 se tienen

varios ejemplos de los códigos de línea con señales cuadradas los cuales se les puede variar el

tiempo de bit entre 1ms, 0.5ms y 0.33ms y la secuencia de bits.

Page 63: ING. ARTURO FAJARDO M.SC. · 2017-02-16 · El autor quiere agradece al Ing. Arturo Fajardo por la dirección y el apoyo durante la realización de este proyecto, a los técnicos

63

El programa puede cambiar la forma de onda entre una onda cuadrada, una onda sinc y una

onda coseno elevado. Para la forma de pulso sinc se pueden utilizar los códigos de línea on off

polar y bipolar. En las siguientes figuras se muestra las graficas cuando se cambia la forma de

pulso a una sinc. En la Figura 33 se muestra una sinc con sólo el lóbulo central, siguiendo una

secuencia de „1‟ y „0‟. Una de las características del programa es que permite escoger el número

de lóbulos de la sinc o el coseno elevado entre 1,3 y 6.

Figura 33. Código de línea polar con forma de pulso sinc.

En la Figura 34 se observa la FFT, donde se aprecia una disminución considerable en la

dispersión de la potencia y el ancho de banda de la señal en comparación a los códigos de línea

con forma rectangular, donde este espectro corresponde al espectro de una señal sinusoidal.

Figura 34. FFT Código de línea polar con forma de pulso sinc.

Page 64: ING. ARTURO FAJARDO M.SC. · 2017-02-16 · El autor quiere agradece al Ing. Arturo Fajardo por la dirección y el apoyo durante la realización de este proyecto, a los técnicos

64

Las siguientes figuras corresponden a un código polar con una onda con forma coseno elevado

la cual tiene la variable roll off, que permite seleccionar entre 3 roll off diferentes 0.1, 0.5 y 0.7.

Para los resultados mostrados en la Figura 35 se seleccionó un roll off de 0.1 que sigue la

secuencia de 1 y 0 alternantes.

Figura 35. Código de línea polar con forma de pulso coseno elevado.

Al comparar el espectro de la Figura 36 con los espectros anteriores se puede ver que es menos

disperso en frecuencia y ocupa un ancho de banda menor a los espectros de los códigos de línea

con formas de pulso cuadradas, pero ocupa un mayor ancho de banda que el espectro del código

de línea con forma de pulso sinc.

Figura 36. FFT de código de línea polar con forma de pulso coseno elevado.

Page 65: ING. ARTURO FAJARDO M.SC. · 2017-02-16 · El autor quiere agradece al Ing. Arturo Fajardo por la dirección y el apoyo durante la realización de este proyecto, a los técnicos

65

Este programa mediante la variable aleatoria también permite escoger entre la secuencia del

vector secuencias o un secuencia aleatoria, esto permitirá observar el comportamiento de la

señal a una entrada aleatorio y su comportamiento en frecuencia. En la Figura 37 y en la Figura

38 se presenta un código de línea polar sin retorno a cero con una secuencia aleatoria.

Figura 37. Código de línea bipolar con secuencia aleatoria

En la Figura 38 nos muestra que el armónico se encuentra en 500Hz donde se espera, además

con el cursor 2 se puede observar que los nulos se producen en los armónicos pares de la señal

lo cual es lo que se espera de este tipo de señales.

Figura 38.FFT de código de línea polar con secuencia aleatoria.

Page 66: ING. ARTURO FAJARDO M.SC. · 2017-02-16 · El autor quiere agradece al Ing. Arturo Fajardo por la dirección y el apoyo durante la realización de este proyecto, a los técnicos

66

4.1.3 Módulo 3 El programa de esta módulo se centra en un modulador QAM que permite seleccionar entre

vario de los parámetros que se controlan desde el watch window como se muestra en la Figura

39 . Entre las variables que nos permite controlar esta ventana se encuentran: sel_qam el cual

permite seleccionar entre las modulaciones QAM 4, 8y 16, la variable onda permite cambiar la

forma del tren de impulsos entre una onda de forma cuadrada y un sinc, l_sinc la cual se puede

cambiar la cantidad de lóbulos que se desean en la modulación con la onda de forma sinc.

También está la variable frec_osc que nos permite seleccionar la frecuencia de oscilación de la

portadora y por último la variable fuente_sel nos permite seleccionar entre las diferentes

fuentes de las cuales puede venir la secuencia de bits, estas fuentes son: un vector con una

secuencia preestablecida, un scrambler o una secuencia aleatoria.

Figura 39. Ventana de control del progrma QAM

En la Figura 40 y la Figura 41 se ve una modulación QAM16 con un cuadribit 1111. Donde el

espectro de frecuencia concuerda con el espectro de una señal sinusoide.

Figura 40. Modulación QAM16 con tren de impulsos cuadrados con desfase de 0°.

Page 67: ING. ARTURO FAJARDO M.SC. · 2017-02-16 · El autor quiere agradece al Ing. Arturo Fajardo por la dirección y el apoyo durante la realización de este proyecto, a los técnicos

67

Figura 41. FFT de la modulación QAM16 con tren de impulso cuadrada y desfase 0°.

La Figura 42 ilustra una modulación QAM16 con una secuencia que alterna entre los cuatribits

1111 y 0011, que se encuentran desfasados 180°, donde estos cambios se presentan cada tiempo

de símbolo.

Figura 42. Modulación QAM16 con tren de impulsos cuadrados con desfase de 180°.

Page 68: ING. ARTURO FAJARDO M.SC. · 2017-02-16 · El autor quiere agradece al Ing. Arturo Fajardo por la dirección y el apoyo durante la realización de este proyecto, a los técnicos

68

Al comparar la Figura 41 y la Figura 43 se aprecia que este último está más disperso en

frecuencia, pero conserva la forma de la FFT. Donde esta FFT tiene una forma de onda sinc.

Figura 43. FFT modulación QAM16 con tren de impulsos cuadrados con desfase de 180°.

La Figura 44 y Figura 45 son de la modulación QAM16 con un tren de impulsos cuadrado con

una secuencia que alterna entre 1111 y 1011, donde los cambios de fase de 90° se presentan

cada tiempo de símbolo.

Figura 44. Modulación QAM16 con tren de impulsos cuadrados con desfase 90°.

Page 69: ING. ARTURO FAJARDO M.SC. · 2017-02-16 · El autor quiere agradece al Ing. Arturo Fajardo por la dirección y el apoyo durante la realización de este proyecto, a los técnicos

69

Cuando se observa la FFT de esta señal, Figura 45 y se compara a las de las anteriores se

observa que son similares en la forma básica y los nulos se presentan en las mismas

frecuencias.

Figura 45. FFT de la modulación QAM16 con tren de impulsos cuadrados con desfase de 90°.

En las siguientes figuras se observarán la modulación con un tren de impulsos con forma sinc.

En la Figura 46 se presenta una modulación con 0° de desfase, es decir, enviando el mismo

símbolo repetidamente y además solo se usará el lóbulo central de la sinc asigna el valor de 1 en

la variable l_sinc del programa.

Figura 46. Modulación QAM16 con tren de impulsos sinc de un solo lóbulo con fase 0°.

Page 70: ING. ARTURO FAJARDO M.SC. · 2017-02-16 · El autor quiere agradece al Ing. Arturo Fajardo por la dirección y el apoyo durante la realización de este proyecto, a los técnicos

70

Figura 47. FFT de modulación QAM16 con tren de impulsos sinc de un solo lóbulo con fase 0°.

En la Figura 48 se mantiene la trama enviada pero se realiza un cambio en la variable l_sinc y se

le asigna el valor de 3, que quiere decir que la sinc estará compuesta del lóbulo central, dos

lóbulos posteriores y anteriores. La señal en tiempo no varía mucho al compara la Figura 46 y la

Figura 48 la forma, la frecuencia y la amplitud se mantienen.

Figura 48. Modulación QAM16 con tren de impulsos sinc con 5 lóbulos con fase 0°.

Page 71: ING. ARTURO FAJARDO M.SC. · 2017-02-16 · El autor quiere agradece al Ing. Arturo Fajardo por la dirección y el apoyo durante la realización de este proyecto, a los técnicos

71

Al comparar la Figura 48 y la Figura 46 se ve que no son muy diferentes, son casi la misma

señal; caso contrario a sus espectros de frecuencia, que al ser comparados se ve que discrepan

dado que el espectro de la Figura 47 muestra una mayor dispersión en frecuencia que el espectro

en la Figura 49, lo cual es de espera por el criterio de cero ISI de Nyquist .

Figura 49. FFT de la modulación QAM16 con tren de impulsos sinc con 5 lóbulos con fase 0°.

En las siguientes figuras se presenta el desfase de 180° en tiempo y frecuencia con solo el

lóbulo central de la sinc. Como se observa en la Figura 50 se sigue la forma del lóbulo central

de la sinc.

Figura 50. Modulación QAM16 con tren de impulsos sinc con lóbulo central y desfase 180°.

Page 72: ING. ARTURO FAJARDO M.SC. · 2017-02-16 · El autor quiere agradece al Ing. Arturo Fajardo por la dirección y el apoyo durante la realización de este proyecto, a los técnicos

72

Figura 51. FFT de la modulación QAM16 con tren de impulsos sinc con lóbulo central y desfase 180°.

Al comparar la Figura 43 y la Figura 51 se logra observar que la FFT de la modulación con sinc

presenta una mayor concentración en espectro de frecuencia, lo cual se traduce en un menor

ancho de banda para transmitir el mismo mensaje.

Figura 52. Modulación QAM16 con tren de impulsos de forma sinc con lóbulo central y desfase de 90°.

Page 73: ING. ARTURO FAJARDO M.SC. · 2017-02-16 · El autor quiere agradece al Ing. Arturo Fajardo por la dirección y el apoyo durante la realización de este proyecto, a los técnicos

73

En la Figura 52 se logra observar que tiene una forma similar a la Figura 50 con cambios menos

abruptos, también se parece a la Figura 48 ya que mantiene una forma sinusoide constante.

Figura 53. FFT de la modulación QAM16 con tren de impulsos de forma sinc con lóbulo central y desfase de 90°.

Al comparar la Figura 53 y la Figura 45 se puede observar que la Figura 53 esta menos

distribuida en el espectro de frecuencia, lo que se traduce en un menor ancho de banda, ya que

las componentes en las frecuencias más altas son mucho más bajas en potencia. Cuando se

comparan los espectros de las señales con forma de pulso cuadrada y sinc se puede ver que en

todos los casos las señales con tren de impulso sinc siempre tienen un espectro más

concentrado y por lo tanto consumen un menor ancho de banda, es por este efecto es por el cual

se prefiere usar tren de impulsos de forma sinc.

Como se menciono anteriormente este programa también permite escoger entre diferentes

fuentes para la secuencia que se desea realizar mediante la variación del valor de la variable

fuente_sel. Se puede escoger entre seguir la secuencia establecida en el vector secuencia

asignado un valor de “1” a la variable, se puede escoger una secuencia aleatoria con un valor de

“3” o se puede escoger que la secuencia provenga del scrambler asignado un valor “2”.

Además también se puede modificar la frecuencia de la portadora mediante la variable frec_osc,

la frecuencia por defecto de la portadora es 2kHz la cual se puede variar a 4, 6 y 8kHz

permitiendo al programa generar una mayor gama de señales. En las Figura 54 y la Figura 55 se

ilustra una modulación QAM8 tanto en tiempo como en frecuencia con las siguientes

características una frecuencia del oscilador loca de 4kHz y con scrambler.

Page 74: ING. ARTURO FAJARDO M.SC. · 2017-02-16 · El autor quiere agradece al Ing. Arturo Fajardo por la dirección y el apoyo durante la realización de este proyecto, a los técnicos

74

Figura 54. Modulación QAM8 con scrambler.

Se puede apreciar que la FFT en la Figura 55 sigue una forma sinc con el armónico

fundamental ubicado en 4kHz y los nulos se ubican a 1kHz de los armónicos con más potencia

los cual es de esperarse dado que esa es la frecuencia de símbolo.

Figura 55. FFT modulación QAM8 con scrambler.

Page 75: ING. ARTURO FAJARDO M.SC. · 2017-02-16 · El autor quiere agradece al Ing. Arturo Fajardo por la dirección y el apoyo durante la realización de este proyecto, a los técnicos

75

4.2 Evaluación de los Módulos

La evaluación de los módulos se realizó mediante una prueba piloto con una muestra de los

estudiantes de fundamentos de comunicación que correspondió a 22 estudiantes, los cuales

desarrollaron los módulos y los evaluaron mediante una encuesta para cada módulo y una

encuesta general, cuya intención es dar un noción de la percepción de los módulos por parte de

los estudiantes.

La encuesta tiene tres tipos de pregunta, el primer tipo de preguntas son sobre el formato del

módulo que buscan evaluar la estructura utilizada en estos. El segundo tipo de preguntas son

específicas de la metodología utilizada en el módulo, haciendo referencia a los espacios de

aprendizaje activo y el tercer tipo de pregunta se refiere a la percepción de las competencias

adquiridas a lo largo del desarrollo del módulo por parte de los estudiantes.

En la Figura 56 se muestra el resultado de las encuestas del módulo 1 respecto al formato de

este. Estas preguntas hacen referencia al estilo, los objetivos propuestos, el tiempo de desarrollo,

los contenidos del marco teórico y los procedimientos seguidos en el módulo. Se ve que el

55% de los estudiantes se encuentran totalmente de acuerdo con la presentación del módulo y

39% están de acuerdo con este, lo cual muestra que 94% de los estudiantes encuentra el formato

del módulo bastante bueno, aunque existe un pequeño porcentaje que considera que el formato

no es bastante bueno en especial con el tiempo sugerido para el desarrollo del modulo, para

mayor detalle sobre las encuestas y sus resultados ver anexo 5

Figura 56. Diagrama de torta formato modulo 1.

En la Figura 57 se presentan los resultados de las preguntas sobre la metodología utilizada en el

módulo, estas preguntas se centran en los espacios que generan los bloques de colores a lo largo

del módulo. Se puede ver que 91% de los estudiantes piensan que los bloques de colores

generan espacios de reflexión, trabajo cooperativo y la aplicación de conceptos. También se

puede ver que hay 9% de parcialmente de acuerdo lo muestra que algunos estudiantes piensan

que alguno de los espacios propuestos por los bloques de colores no alcanzan su objetivo

satisfactoriamente.

Page 76: ING. ARTURO FAJARDO M.SC. · 2017-02-16 · El autor quiere agradece al Ing. Arturo Fajardo por la dirección y el apoyo durante la realización de este proyecto, a los técnicos

76

Figura 57. Diagrama de torta metodología módulo 1

De la Figura 58 se presentan los resultados de las encuestas referente a las competencias

adquiridas después de a ver realizado el módulo, en el caso del módulo 1 hacen referencia a

que los estudiantes puedan identificar las diferentes partes que componen la tarjeta de

desarrollo y sean capaces de utilizar el entorno de desarrollo para programar la tarjeta. Donde

se puede observar 68% de los estudiantes perciben que pueden realizar un programa en code

composer, pero a su vez se ve que hay un 3% de los estudiantes que percibe que no serian

capaces de implementar un programa. En general se ve que la percepción de los estudiantes es

positiva con respecto a las competencias adquiridas.

Figura 58. Diagrama de torta competencias modulo 1.

Page 77: ING. ARTURO FAJARDO M.SC. · 2017-02-16 · El autor quiere agradece al Ing. Arturo Fajardo por la dirección y el apoyo durante la realización de este proyecto, a los técnicos

77

La encuesta del módulo 2 se dividió de igual manera que la encuesta del modulo 1, donde la

Figura 59 nos presenta los resultados obtenidos para el formato del modulo dos. Donde el 45%

de los estudiantes se encuentran totalmente de acuerdo con el formato del módulo y un 42% se

encuentra de acuerdo con el formato, mientras que solo un 2% se encuentra en desacuerdo, lo

que significa que el contenido del marco teórico, la presentación, los procedimientos y el tiempo

asignado al módulo son adecuados.

Figura 59. Diagrama de torta formato modulo 2.

Figura 60. Diagrama de torta metodología modulo 2.

Page 78: ING. ARTURO FAJARDO M.SC. · 2017-02-16 · El autor quiere agradece al Ing. Arturo Fajardo por la dirección y el apoyo durante la realización de este proyecto, a los técnicos

78

En la Figura 60 se ven los resultados de la encuesta para el módulo 2 referentes a la metodología

propuesta, al igual que para el modulo 1 hace referencia a los espacios generados por los

bloques de colores. Donde se aprecia que 59% de los estudiantes está de acuerdo y un 33%

completamente de acuerdo que los bloques de colores generan espacios de reflexión, trabajo

cooperativo y aplicación de conceptos basados en el aprendizaje activo.

De la Figura 61 se observan los resultados obtenidos de las preguntas de competencia de la

encuesta para el módulo 2, las cuales hacen referencia a la noción de los estudiantes. Donde se

les plantea si son capaces de identificar algunos códigos de línea y los efectos del canal de

transmisión sobre estos. Se ve que el 100% de los alumnos se siente en la capacidad de

identificar los códigos de línea y los efectos que se ven sobre el canal después de haber

realizado el módulo

Figura 61. Diagrama de torta de las competencias modulo 2.

En las siguientes figuras se presentan los resultados de las encuestas para el módulo 3, los

cuales se dividen de igual manera que los módulos anteriores. En la Figura 62 se ve que el 50%

de los estudiantes esta de totalmente de acuerdo con el formato, mientras un 30% está de

acuerdo con el formato y un 20% está parcialmente de acuerdo. Estos resultados nos muestra

que la presentación, los objetivos, los tiempos asignados, el contenido del marco teórico y los

procedimientos a seguir son adecuados y pertinentes.

En forma general los resultados de las encuestas referentes al formato del módulo son positivos

con lo cual se afirma que la presentación es agradable, los objetivos son claros, los tiempos

asignados son suficientes para la realización de los módulos, el contenido del marco teórico son

suficientes para comprender los conceptos desarrollados y los procedimientos a seguir están

descritos de forma clara.

Page 79: ING. ARTURO FAJARDO M.SC. · 2017-02-16 · El autor quiere agradece al Ing. Arturo Fajardo por la dirección y el apoyo durante la realización de este proyecto, a los técnicos

79

Figura 62. Diagrama de torta formato módulo 3.

Los resultados de la Figura 63 son los resultados de las preguntas de la encuesta general

referentes al formato de los módulos. Estos resultados coinciden con los resultados obtenidos de

las encuestas de cada modulo, donde se ve que un 50% de los estudiantes están completamente

de acuerdo con el formato de los módulos, mientras se ve que un 7% están parcialmente de

acuerdo y un 0% están en desacuerdo lo cual presenta que los módulos no tienen problemas

graves en respecto al formato.

Figura 63. Diagrama de torta de formato de los módulos.

En la Figura 64 se observa los resultados de la encuesta de del modulo 3 referentes a los bloques

de colores y si estos generan espacios de reflexión, trabajo cooperativo y aplicación de

conceptos. Se observa que en los módulos se generan estos espacios ya que el 60% de los

Page 80: ING. ARTURO FAJARDO M.SC. · 2017-02-16 · El autor quiere agradece al Ing. Arturo Fajardo por la dirección y el apoyo durante la realización de este proyecto, a los técnicos

80

estudiantes contestaron que están de acuerdo y un 40% contestaron que están totalmente de

acuerdo, esto nos da 100% de los estudiantes que sintieron que se generaron estos espacios en el

desarrollo del módulo.

Figura 64. Diagrama de torta de la metodología del módulo 3.

La Figura 65 nos muestra los resultados de la encuesta general de las preguntas sobre la

metodología utilizada en los módulos, donde se logra ver que los bloques de colores generan los

espacios de reflexión, de trabajo cooperativo y aplicación de conceptos, esto se evidencia con un

30% de los estudiantes contestaron que están completamente de acuerdo y un 62% contestaron

que están de acuerdo. Además los resultados de las encuestas individuales coinciden con los

resultados obtenidos en la encuesta general.

Figura 65. Diagrama de torta de la metodología de los módulos.

Page 81: ING. ARTURO FAJARDO M.SC. · 2017-02-16 · El autor quiere agradece al Ing. Arturo Fajardo por la dirección y el apoyo durante la realización de este proyecto, a los técnicos

81

Los resultados presentados en la Figura 66 son de las competencias que se pretende que los

estudiantes adquieran, en el caso de este módulo hace referencia a la modulación QAM a

reconocer sus características comportamiento en tiempo y frecuencia. Se puede ver que un 83%

de los estudiantes piensa que adquirió estas competencias correctamente, mientras que un 17%

de los estudiantes contestaron parcialmente de acuerdo lo que indica que no sienten que han

adquirido las competencias en su totalidad.

Figura 66. Diagrama de torta competencias del módulo 3.

La Figura 67 son los resultados de la encuesta general referente a la facilidad de los módulos

para que los alumnos participen de forma activan y la facilidad para la adquisición de

conocimientos. Al comparar los valores obtenidos en la encuesta general y las encuesta de cada

modulo se observa que la mayoría de los estudiantes siente que está adquiriendo las

competencias correspondientes a cada módulo.

Figura 67. Diagrama de torta competencia de los módulos.

Page 82: ING. ARTURO FAJARDO M.SC. · 2017-02-16 · El autor quiere agradece al Ing. Arturo Fajardo por la dirección y el apoyo durante la realización de este proyecto, a los técnicos

82

5. CONCLUSIONES

En este proyecto se logró la implantación de diversos programas sobre los cuales se diseñaron

los módulos. Para el primer módulo se desarrollaron dos programas, siendo uno de estos

programas el manejo de los leds de la tarjeta mediante los dip switchos para ilustrar los pasos

necesarios para el desarrollo de un proyecto, el otro programa que se implementaron fue el

generador de funciones donde el objetivo principal de este es mostrar el manejo del codec de la

tarjeta. En el segundo módulo se implemento un programa generador de códigos de línea y para

el tercer módulo se desarrollo un programa de un modulador-demodulador QAM. Se

implementaron todos los programas propuestos en el proyecto con unas especificaciones que les

permiten tener flexibilidad a la hora de ser usados o reescritos, lo cual permite que a futuro sea

reutilizado sus códigos para proyectos posteriores o para su mejoramiento.

A la hora de programar la tarjeta las herramientas que presentaba el entorno de desarrollo

permitieron que las implementaciones de los programas resultaran de forma más sencilla, entre

estas herramientas se puede destacar la BSL la cual permite el control de los diferentes

elementos de la tarjeta de forma eficiente a través de las librerías que lo componen.

Uno de las ventajas de haber utilizado esta tarjeta en el desarrollo para la implementación de los

programas fue el codec que incorporaba ya que el manejo de este resulto de manera sencilla a

través de la BSL, pero a la vez esto imponía ciertas limitaciones, como el ajuste automática que

presentaba a la salida que prevenía de obtener en ciertas ocasiones un voltaje 0.

Otra herramienta importante que presenta el entorno de desarrollo es el debugger el cual nos

permite seguir los procesos del programa al interior de la tarjeta en tiempo real, pero a la vez

esto causa una ralentización en el procesador dado que también debe enviar datos al computador

mientras ejecuta el programa y otro efecto de usar el debugger es que causa que la tarjeta entre

en un estado inestable haciendo que se deba reiniciar la tarjeta o el programa.

Uno de los problemas que se presenta es que los códigos de los programas implementados no

son óptimos lo cual provoca que a veces los tiempos de ejecución de estos sean mayores a los

tiempos necesarios en la tarjeta para realizar ciertas operaciones, causado algunos retardos.

Estos retados no son significativos, pero evitan en alguno de los programas combinaciones de

algunas funciones ya que distorsiona las señales de salida de estos.

Como parte complementaria del proyecto se realizó una encuesta para la evaluación de los

módulos con el fin de evaluar la interacción y satisfacción del estudiante con las guías, los

resultados obtenidos nos permite tener una noción de los problemas que pueden presentar los

módulos y además se podría realizar un análisis del propio método de evaluación para

considerar qué mejoras se podrían implementar en la forma de evaluar los módulos. La muestra

a la que se aplico la encuesta es de una porción de la población objetivo de los módulos, para

tener mejores resultados de esta evaluación se requiere un abordar una mayor porción de la

población de estudiantes de forma que se puedan obtener mejores resultados de las

evaluaciones.

La evaluación de las encuesta arrojó un resultado positivo en los diferentes aspectos que se

pretendieron evaluar, permitiendo ver que el formato, la metodología y las competencias que se

pretenden los módulos son adecuadas y apropiadas para los cursos de fundamentos de

comunicación de la PUJ.

Page 83: ING. ARTURO FAJARDO M.SC. · 2017-02-16 · El autor quiere agradece al Ing. Arturo Fajardo por la dirección y el apoyo durante la realización de este proyecto, a los técnicos

83

6. BIBLIOGRAFIA

[1] S.M.Si and A.M.Alvarez, DIGITAL SIGNAL PROCESSING FOR AUTOMODE

MÓDEM, IEEE Singapore ICCS/ISITA, 1992.

[2] http://servicios.laverdad.es/servicios/web/nocheteleco05/suscr/nec9.htm, Manuel García

Esquiva, Diario La Verdad. España.

[3] Tretter, Steven, Communication System Design Using DSP Algorithms with Laboratory

Experiments for the TMS320C6713DSK, Springer, New York 2008

[4] http://focus.ti.com/paramsearch/docs/parametricsearch.tsp?family=dsp&sectionId=2&tab

Id=135&familyId=327&paramCriteria=no

[5] Lathi, B.P, Modern Digital and Analog Communication Systems, 3th

Edition, Oxford

University Press, New York, USA, 1998.

[6] Welch, T; Wright, C; Morrow, M. REAL-TIME DIGITAL SIGNAL PROCESSING

from Matlab to C with the TMS320C6X DSK. 2006. CRC Press.

[7] TMS320C6000 DSP/BIOS Application Programming Interface (API) Reference Guide.

Texas Instrument.

[8] http://www.upc.edu/eees/guia_disseny/guia-docent/aprendizaje_activo.pdf

[9] Goodhew, Peter, Teaching Engineering All you need to know about engineering

education but were afraid to ask, The Higher Education Academy, UK, 2010.

[10] http://www.cte.cornell.edu/resources/pdfs/Eisen%20Active%20Learning%20Handout%2

0March%202010.pdf

[11] Murmu, Manas; Application Of Digital Signal Processing On TMS320C6713 DSK,

2008, National Institute of Technology Rourkela, India.

[12] Pastor, R; Hernandez, R; Ros, S; Castro, M, Especificación Metodología de la

Implementación y Desarrollo de Entornos de Experimentación, IEEE-RITA, 2006.

[13] Fraile-Ardanuy, Jesús, Estudio del comportamiento de la maquinas asincrónica utilizando

MATLAB®/Simulink, IEEE-RITA, 2007.

[14] Díaz Barriga, F; Hernández, G; Estrategias docentes para un aprendizaje significativo, 2th,

Editorial Mc Graw-Hill, Méjico 2002.

[15] http://www.mineducacion.gov.co/1621/article-87727.html