208008

download 208008

of 253

Transcript of 208008

  • 1

    UNIVERSIDADNACIONALABIERTAYADISTANCIA UNADESCUELADECIENCIASBSICASTECNOLOGAEINGENIERACONTENIDODIDCTICODELCURSO:208008CADAVANZADOPARAELECTRNICA

    UUNNIIVVEERRSSIIDDAADD NNAACCIIOONNAALL AABBIIEERRTTAA YY AA DDIISSTTAANNCCIIAA EESSCCUUEELLAA DDEE CCIIEENNCCIIAASS BBSSIICCAASS TTEECCNNOOLLOOGGAA EE IINNGGEENNIIEERRAA

    PPRROOGGRRAAMMAA IINNGGEENNIIEERRIIAA EELLEECCTTRRNNIICCAA

    220088000088 CCAADD AAVVAANNZZAADDOO PPAARRAA EELLEECCTTRRNNIICCAA

    JJUUAANN OOLLEEGGAARRIIOO MMOONNRROOYY VVAASSQQUUEEZZ ((DDiirreeccttoorr NNaacciioonnaall))

    FFAABBIIAANN BBOOLLIIVVAARR MMAARRIINN ((AAccrreeddiittaaddoorr))

    SSOOGGAAMMOOSSOO EEnneerroo 22001100

  • 2

    UNIVERSIDADNACIONALABIERTAYADISTANCIA UNADESCUELADECIENCIASBSICASTECNOLOGAEINGENIERACONTENIDODIDCTICODELCURSO:208008CADAVANZADOPARAELECTRNICA

    ThisworkislicensedunderaCreativeCommonsAttributionNoDerivs2.5License. CURSO: CAD PARA ELECTRNICA @Copyright Universidad Nacional Abierta y a Distancia ISBN 2010 Vicerrectora de Medios y Mediaciones

  • 3

    UNIVERSIDADNACIONALABIERTAYADISTANCIA UNADESCUELADECIENCIASBSICASTECNOLOGAEINGENIERACONTENIDODIDCTICODELCURSO:208008CADAVANZADOPARAELECTRNICA

    ASPECTOS DE PROPIEDAD INTELECTUAL Y VERSIONAMIENTO El presente mdulo fue diseado en el ao 2008 por el Ing. Electrnico Armando Portela Duarte, integrante de la Fundacin Internacional Para La Investigacin de la Cultura y la Participacin. El presente mdulo ha tenido una actualizacin, desarrollada en Julio de 2009 por los Ingenieros Juan Olegario Monroy Vsquez y Sandra Isabel Vargas Lpez, tutores de la UNAD en el CEAD Sogamoso. El Ingeniero Monroy se desempea actualmente como director del curso a nivel Nacional. En este mismo ao el Ing. Oscar Donaldo Rodrguez, tutor del CEAD Pereira, apoy el proceso de revisin de estilo del mdulo y dio aportes disciplinares, didcticos y pedaggicos en el proceso de acreditacin de material didctico desarrollado en Julio de 2009.

  • 4

    UNIVERSIDADNACIONALABIERTAYADISTANCIA UNADESCUELADECIENCIASBSICASTECNOLOGAEINGENIERACONTENIDODIDCTICODELCURSO:208008CADAVANZADOPARAELECTRNICA

    INTRODUCCIN CAD Avanzado para Electrnica es un curso metodolgico de 3 crditos enmarcados en un campo de formacin disciplinario, cuya intencionalidad es la de formar las bases tericas y prcticas en el estudiante para que ste pueda implementar y ejecutar algoritmos en diferentes software de procesamiento numrico y de herramientas grficas, mediante el uso de lenguajes de alto nivel. Esta temtica es de gran importancia tanto para el estudio como para la vida profesional del individuo puesto que brinda herramientas con las cuales puede contar a la hora de realizar complejos anlisis y operaciones numricas, simulaciones en el tiempo de modelos matemticos de sistemas reales obteniendo informacin valiosa como datos estadsticos o grficos que pueden representar infinidad de variables durante determinados procesos de diseo o investigacin cientfica. Para tal efecto el curso cosiste en 3 unidades didcticas, en la Primera Unidad se presenta las herramientas de Matlab, que es el principal de los paquetes software objeto del curso, en donde el estudiante se familiarizar con el entorno interactivo del programa as como con los comandos, toolbox y funciones, conociendo las caractersticas tcnicas, operativas y ventajas de empleo de dicho software. En la Segunda Unidad se presentan de forma general las herramientas avanzadas para aplicaciones especficas del Matlab, en especial se analiza el entorno grfico o SIMULINK, herramienta potente al momento de hacer simulacin de modelos de sistemas. Finaliza con el estudio del Labview, que es un entorno interactivo que emplea un lenguaje de programacin muy novedoso conocido como programacin grfica o programacin G altamente empleado en aplicaciones de adquisicin de datos, instrumentacin virtual y control industrial. Los contenidos del curso sern presentados al estudiante empleando documentos digitales que podrn descargarse de la plataforma Moodle para que este se familiarice y profundice sus conocimientos al respecto durante el tiempo de estudio independiente, esto se complementa con el correspondiente acompaamiento

  • 5

    UNIVERSIDADNACIONALABIERTAYADISTANCIA UNADESCUELADECIENCIASBSICASTECNOLOGAEINGENIERACONTENIDODIDCTICODELCURSO:208008CADAVANZADOPARAELECTRNICA

    tutorial en foros y sesiones de Chat predefinidas, la evaluacin del curso se realizar a partir de la gua de actividades en donde el estudiante tambin entrar a interactuar con sus compaeros en grupos para la realizacin de ciertas actividades, dejando evidenciar la importancia de la participacin activa de cada uno de los estudiantes en las diferentes actividades propuestas, de igual forma al final de cada unida se plantea un ejercicio de autoevaluacin que busca identificar puntos crticos donde es necesario hacer refuerzos o ampliar las consultas. CAD Avanzado para electrnica sienta pues las bases primordiales en el estudiante para que aplique sus conocimientos matemticos as como en sistemas informticos para la programacin de diferentes algoritmos y aplicaciones especficas que simplificarn ampliamente su trabajo en infinidad de aplicaciones donde se requiera el anlisis numrico y modelado de sistemas.

  • 6

    UNIVERSIDADNACIONALABIERTAYADISTANCIA UNADESCUELADECIENCIASBSICASTECNOLOGAEINGENIERACONTENIDODIDCTICODELCURSO:208008CADAVANZADOPARAELECTRNICA

    INDICE DE CONTENIDO

    UNIDAD 1. HERRAMIENTAS DE MATLAB 1

    CAPITULO 1: ENTRADA/SALIDA Y FUNCIONES DE MATLAB 2

    Leccin 1: Manejo de archivos 3

    Leccin 2: Archivos *.m 6

    Leccin 3: Grficas Bidimensionales. 9

    Leccin 4: Grficas Tridimensionales 12

    Leccin 5: Funciones. 15

    CAPITULO 2: TOOLBOX DE MATLAB 18

    Leccin 6: Introduccin a los Toolbox de Matlab. 19

    Leccin 7: Toolbox de Comunicaciones. 23

    Leccin 8: Simulacin de un Sistema de Comunicaciones 37

    Leccin 9: Toolbox de Sistemas de Control. 43

    Leccin 10: Simulacin de un sistema de control 75

    CAPITULO 3: SIMULINK. CONCEPTOS BASICOS 80

    Leccin 11: Caractersticas 80

    Leccin 12: Entorno de trabajo en Simulink 82

    Leccin 13: Modelos 86

    Leccin 14: Subsistemas. 93

    Leccin 15: Subsistemas condicionados en su ejecucin. 96

  • 7

    UNIVERSIDADNACIONALABIERTAYADISTANCIA UNADESCUELADECIENCIASBSICASTECNOLOGAEINGENIERACONTENIDODIDCTICODELCURSO:208008CADAVANZADOPARAELECTRNICA

    ACTIVIDAD DE AUTOEVALUACIN UNIDAD 1 107

    FUENTES DOCUMENTALES UNIDAD 1 108

    UNIDAD 2. SIMULINK 111

    CAPITULO 1: MODELAR CON SIMULINK 113

    Leccin 1. Modelar Ecuaciones 113

    Leccin 2: Modelar con Control de Flujo Condicional 118

    Leccin 3: Modelar con control de flujo Iterativo. 123

    Leccin 4: Ejemplos de Modelado. 127

    Leccin 5: Consejos para la Construccin de Modelos. 132

    CAPITULO 2. NAVEGAR POR LOS MODELOS 132

    Leccin 6: Explorar, Buscar y Navegar por los Modelos. 133

    Leccin 7: Ejecutar la Simulacin del modelo. 139

    Leccin 8: Importar y Exportar Datos. 142

    Leccin 9: Establecer la Configuracin de la Simulacin. 147

    Leccin 10: Resultados de la Simulacin. 148

    CAPTULO 3 BLOQUES, SEALES Y FUNCIONES S 152

    Leccin 11: Bloques y Seales. 152

    Leccin 12: Tipos de datos 158

    Leccin 13: Funciones S 159

    Leccin 14: Usar Funciones S en los modelos 160

    Leccin 15: Como trabaja una funcin S y como se escribe en MATLAB 163

  • 8

    UNIVERSIDADNACIONALABIERTAYADISTANCIA UNADESCUELADECIENCIASBSICASTECNOLOGAEINGENIERACONTENIDODIDCTICODELCURSO:208008CADAVANZADOPARAELECTRNICA

    ACTIVIDAD DE AUTOEVALUACIN UNIDAD 2 165

    FUENTES DOCUMENTALES UNIDAD 2 166

    UNIDAD 3. LABVIEW 170

    CAPITULO 1. CONCEPTOS BASICOS DE LABVIEW 172

    Leccin 1: Caractersticas y Aplicaciones 172

    Leccin 2: Entorno de Trabajo. Panel Frontal. 174

    Leccin 3: Entorno de Trabajo. Diagrama de Bloques. 185

    Leccin 4: Ejecutar y Depurar un Instrumento Virtual. 191

    Leccin 5: Ejemplos. 195

    CAPITULO 2. PROGRAMACION ESTRUCTURADA. 204

    Leccin 6: Estructuras Case y Sequence. 204

    Leccin 7: Estructuras Iterativas For, While. 208

    Leccin 8: Estructura Formula Node. 212

    Leccin 9: Variables Locales y Globales. 214

    Leccin 10: Sub VIs 216

    CAPITULO 3. APLICACIONES EN LABVIEW 222

    Leccin 11: Filtrado de seales. 222

    Leccin 12: Anlisis Espectral 224

    Leccin 13: Generacin de Tablas en Labview para presentacin de datos. 225

    Leccin 14: Manipulacin de puertos. 226

    Leccin 15: Leer y escribir archivos desde Labview. 227

  • 9

    UNIVERSIDADNACIONALABIERTAYADISTANCIA UNADESCUELADECIENCIASBSICASTECNOLOGAEINGENIERACONTENIDODIDCTICODELCURSO:208008CADAVANZADOPARAELECTRNICA

    ACTIVIDAD DE AUTOEVALUACIN UNIDAD 3 230

    FUENTES DOCUMENTALES UNIDAD 3 231

  • 10

    UNIVERSIDADNACIONALABIERTAYADISTANCIA UNADESCUELADECIENCIASBSICASTECNOLOGAEINGENIERACONTENIDODIDCTICODELCURSO:208008CADAVANZADOPARAELECTRNICA

    LISTADO DE TABLAS

    Tabla 1. Funciones bsicas para crear grficas en 2D. 9 Tabla 2. Funciones para modificacin de las grficas. 10 Tabla 3. Otras Funciones graficas bidimensionales. 11 Tabla 4. Otras Funciones grficas tridimensionales 14 Tabla 5. Tipos de modulacin analgica que soporta el toolbox. 27 Tabla 6. Sintaxis de los distintos Tipos de modulacin analgica que soporta el toolbox. 28 Tabla 7. Tipos de modulacin digital que soporta el toolbox. 29 Tabla 8. Sintaxis de los distintos Tipos de modulacin digital que soporta el toolbox. 30 Tabla 9. Tipos de filtros 37 Tabla 10. Comandos empleados para Modelar sistemas de control. 44 Tabla 11. Sintaxis y ejemplos de comandos empleados para Modelar sistemas de control. 44 Tabla 12. Sintaxis y ejemplos de comandos empleados para interconectar modelos. 56 Tabla 13. Sintaxis y ejemplos de comandos empleados para el anlisis de sistemas de control. 64 Tabla 14. Sintaxis y ejemplos de comandos empleados para el anlisis de la respuesta en frecuencia de sistemas de control. 68

  • 11

    UNIVERSIDADNACIONALABIERTAYADISTANCIA UNADESCUELADECIENCIASBSICASTECNOLOGAEINGENIERACONTENIDODIDCTICODELCURSO:208008CADAVANZADOPARAELECTRNICA

    Tabla 15. Parmetros de un Motor de Corriente Continua 76 Tabla 16. Relacin entre sentencias en C y bloques de SIMULINK I 118 Tabla 17. Relacin entre sentencias en C y bloques de SIMULINK II. 123 Tabla 18. Bloques virtuales. 153 Tabla 19. Libreras y bloques de SIMULINK de uso comn. 157 Tabla 20. Tipo de datos soportados por SIMULINK. 159

  • 12

    UNIVERSIDADNACIONALABIERTAYADISTANCIA UNADESCUELADECIENCIASBSICASTECNOLOGAEINGENIERACONTENIDODIDCTICODELCURSO:208008CADAVANZADOPARAELECTRNICA

    LISTADO DE GRFICOS Y FIGURAS

    Figura 1. Editor de Archivos *.m. 7 Figura 2. Funcin complejo.m en el editor de Archivos de Matlab 8 Figura 3. Ejecucin del script complejo.m 8 Figura 4. Ejecucin del comando plotyy() 9 Figura 5. Grafica de la funcin Seno. 10 Figura 6. Utilizacin del comando subplot. 11 Figura 7. Grfica de una hlice. 12 Figura 8. Grafica de la superficie con el comando mesh. 13 Figura 9. Grafica de la superficie con el comando surf. 14 Figura 10. Escritura de la Funcin raices2.m 17 Figura 11. Uso de la Funcin raices2.m. 17 Figura 12. Esquema general de los toolboxes. 20 Figura 13. Utilizacin de imread y imshow del Toolbox Procesamiento de Imagenes. 21 Figura 14. Ventana Figure Matlab. Imagen a color 21 Figura 15. Utilizacin de rg2gray del Toolbox Procesamiento de Imagenes. 22 Figura 16. Ventana Figure Matlab . Imagen en escala de grises. 22 Figura 17. Modulacin y demodulacin por amplitud. 29

  • 13

    UNIVERSIDADNACIONALABIERTAYADISTANCIA UNADESCUELADECIENCIASBSICASTECNOLOGAEINGENIERACONTENIDODIDCTICODELCURSO:208008CADAVANZADOPARAELECTRNICA

    Figura 18. Diagrama de dispersin. 34 Figura 19. Primeros 40 datos binarios. 38 Figura 20. Primeros 10 Smbolos 39 Figura 21. Respuesta al impulso del sistema. 40 Figura 22. Patrn de ojo de la seal filtrada 41 Figura 23. Seal recibida antes y despus del filtrado. 42 Figura 24. Interconexin en paralelo de dos modelos LTI. Adicin y sustraccin 53 Figura 25. Interconexin en serie 54 Figura 26. Modelo compuesto. 56 Figura 27. Ejemplo de interconexin de sistemas 58 Figura 28. Interconexin de un sistema en paralelo 61 Figura 29. Interconexin de un sistema en serie 62 Figura 30. Interconexin de un sistema con retroalimentacin negativa 62 Figura 31. Diagrama generalizado de un sistema retroalimentado 63 Figura 32. Respuesta al impulso del sistema. 66 Figura 33. Respuesta al sistema al escaln unitario 68 Figura 34. Diagrama de bode del sistema. 70 Figura 35. Diagrama del sistema con una el rango de frecuencia ampliado. 70 Figura 36. Comparacin de los diagramas de Bodes continuo y discretos 71

  • 14

    UNIVERSIDADNACIONALABIERTAYADISTANCIA UNADESCUELADECIENCIASBSICASTECNOLOGAEINGENIERACONTENIDODIDCTICODELCURSO:208008CADAVANZADOPARAELECTRNICA

    Figura 37. Diagrama de Nyquist del sistema 72 Figura 38. Lazos de retroalimentacin 73 Figura 39. Diagrama del lugar geomtrico de las races del sistema 75 Figura 40. Esquema del circuito elctrico y diagrama mecnico rotacional 75 Figura 41. Acceso a SIMULINK. 83 Figura 42. Pantalla inicial de SIMULINK 83 Figura 43. Ventana de Insercin de bloques y simulacin, Editor de Modelos. 84 Figura 44. Ventana de dialogo para realizar los reportes. 85 Figura 45. Creando un nuevo modelo. 86 Figura 46. Diagrama de bloques del ejemplo 87 Figura 47. Navegador de libreras 88 Figura 48. Bloques organizados dentro del editor de modelo 89 Figura 49. Puerto de entrada y de salida. 89 Figura 50. Conexin de los bloques. 89 Figura 51. Ramificacin de una conexin. 90 Figura 52. Cuadro de dilogo para la configuracin de los parmetros de simulacin 91 Figura 53. Inicio y/o detencin de la Simulacin 91 Figura 54. Respuesta de la simulacin. 92 Figura 55. Anotaciones o comentarios. 93

  • 15

    UNIVERSIDADNACIONALABIERTAYADISTANCIA UNADESCUELADECIENCIASBSICASTECNOLOGAEINGENIERACONTENIDODIDCTICODELCURSO:208008CADAVANZADOPARAELECTRNICA

    Figura 56. Ejemplo del subsistema. 94 Figura 57. Seleccin de bloques 95 Figura 58. Seal de habilitacin de un subsistema. 96 Figura 59. Ventana de dilogo para el ajuste de las salidas. 97 Figura 60. Ventana de dilogo para el ajuste de estados. 98 Figura 61. Apagado de la seal de control. 99 Figura 62. Modelo de un subsistema habilitado. 100 Figura 63. Indicador del funcionamiento de cada bloque. 100 Figura 64. Nivel de seal. 101 Figura 65. Subsistema activado por disparo. 102 Figura 66. Ventana de dilogo para la seleccin del disparo. 102 Figura 67. Subsistema de ascenso, descenso o ambos. 103 Figura 68. Mostrar el puerto de salida. 103 Figura 69. Diagrama de flujo de un subsistema disparado y habilitado. 104 Figura 70. Smbolo del subsistema habilitado y disparado. 105 Figura 71. Ejemplo de un subsistema disparado y habilitado. 105 Figura 72. Rectificador de onda completa 106 Figura 73. Respuesta del ejemplo. 106 Figura 74. Bloques del ejemplo de conversin de unidades. 114 Figura 75. Bloques conectados. 114

  • 16

    UNIVERSIDADNACIONALABIERTAYADISTANCIA UNADESCUELADECIENCIASBSICASTECNOLOGAEINGENIERACONTENIDODIDCTICODELCURSO:208008CADAVANZADOPARAELECTRNICA

    Figura 76. Diagrama de bloques de la ecuacin diferencial. 115 Figura 77. Visualizacin de la respuesta de la ecuacin diferencial. 116 Figura 78. Modelo del ejemplo como funcin de transferencia. 117 Figura 79. Diagnstico de un lazo invlido 118 Figura 80. Implementacin de la sentencia si-sino en SIMULINK. 119 Figura 81. Utilizacin de If- Else 121 Figura 82. Diagrama del subsistema If Action 121 Figura 83. Implementacin de la sentencia Switch en SIMULINK. 122 Figura 84. Implementacin de la sentencia While en SIMULINK 123 Figura 85. Implementacin de la sentencia For en SIMULINK. 125 Figura 86. Factorial de un nmero en Matlab. 126 Figura 87. Programacin de un For en Simulink 127 Figura 88. Simulacin de un sistema de orden 1. 128 Figura 89. Sistema Mecnico. 129 Figura 90. Simulacin Sistema Mecnico. 130 Figura 91. Circuito RLC serie 130 Figura 92. Simulacin sistema RLC serie 131 Figura 93. Editor de modelo. 133 Figura 94. rbol de jerarqua. 134 Figura 95. Panel de contenido. 135

  • 17

    UNIVERSIDADNACIONALABIERTAYADISTANCIA UNADESCUELADECIENCIASBSICASTECNOLOGAEINGENIERACONTENIDODIDCTICODELCURSO:208008CADAVANZADOPARAELECTRNICA

    Figura 96. Barra de men principal. 135 Figura 97. Barra de bsqueda. 136 Figura 98. Controles de la barra de bsqueda. 136 Figura 99. El buscador. 137 Figura 100. Opciones de filtrado. 137 Figura 101. Panel de bsqueda avanzado. 138 Figura 102. Navegador de modelo. 139 Figura 103. Localizacin del botn de inicio 141 Figura 104. Localizacin del botn de parada, pausa y la barra de progreso de la simulacin. 141 Figura 105. Modelo con dos entradas. 144 Figura 106. Explorador de modelo para el ajuste de la configuracin. 148 Figura 107. Modelo para observar el uso del Scope. 149 Figura 108. Modelo para observar el uso de las variables de retorno. 149 Figura 109. Modelo para observar el uso del bloque Workspace. 150 Figura 110. Visor de diagnstico de la simulacin. 151 Figura 111. Bloque que genera el error. 152 Figura 112. Ventana de dilogo de propiedades del bloque. 154 Figura 113. Ventana de dilogo de anotaciones del bloque. 155 Figura 114. Bloque mostrando sus propiedades. 156

  • 18

    UNIVERSIDADNACIONALABIERTAYADISTANCIA UNADESCUELADECIENCIASBSICASTECNOLOGAEINGENIERACONTENIDODIDCTICODELCURSO:208008CADAVANZADOPARAELECTRNICA

    Figura 115. Ventana de dilogo de llamados del bloque. 156 Figura 116. Relacin entre un bloque de funcin S, su ventana de dilogo y el archivo fuente que define el comportamiento del bloque. 161 Figura 117. Parmetros de la S- funcin 162 Figura 118. Esquema de la relacin Matemtica de los bloques 163 Figura 119. Como SIMULINK ejecuta una simulacin. 164 Figura 120. Pantalla inicial de LabVIEW. 175 Figura 121. Ventanas del Instrumento Virtual, a) Diagrama de Bloques, b) Panel Frontal. 175 Figura 122. Paleta de Controles. 177 Figura 123. Controles e indicadores Numricos. 178 Figura 124. Controles e indicadores deslizables. 178 Figura 125. Controles e indicadores giratorios. 179 Figura 126. Controles e indicadores de tiempo. 179 Figura 127. Paleta de los controles e indicadores booleanos. 180 Figura 128. Paleta de Cadena de Caracteres. 181 Figura 129. Paleta de Arrays, Matrix and Cluster. 182 Figura 130. Paleta de List & Table. 183 Figura 131. Terminal cono de una perilla 186 Figura 132. Segmento Curva y Unin. 188 Figura 133. Ejecucin de dos bloques simultneamente. 190

  • 19

    UNIVERSIDADNACIONALABIERTAYADISTANCIA UNADESCUELADECIENCIASBSICASTECNOLOGAEINGENIERACONTENIDODIDCTICODELCURSO:208008CADAVANZADOPARAELECTRNICA

    Figura 134. Botn de correr (run) 192 Figura 135. Botn de correr (run) mientras se ejecute la simulacin 192 Figura 136. Botn de correr continuamente (run continuously) 192 Figura 137. Botn de correr roto 193 Figura 138. Botn de Ejecucin iluminada (Highligth Execution) 194 Figura 139. Botn de Ejecucin de un paso a la vez (single stepping) 194 Figura 140. Subpaleta Numeric 196 Figura 141. Subpaleta Modern>>String & Path 196 Figura 142. Panel de control con los elementos escogidos 197 Figura 143. Controles e indicadores numricos 198 Figura 144. Subpaleta de Functions>>Mathematics 198 Figura 145. Diagrama de bloques conectado. 199 Figura 146. Instrumento Virtual Funcionando 199 Figura 147. Panel frontal tanque.vi 200 Figura 148. Diagrama de bloques tanque.vi 200 Figura 149. Conexiones en el Diagrama de Bloques tanque.vi 201 Figura 150. Ubicacin de la Funcin Simulate Signal. 202 Figura 151. Aspecto Final del Panel Frontal. Generacin de Seales Seno y Coseno. 203 Figura 152. Aspecto final Diagrama de Bloques. Generacin de Seales Seno y Coseno 203

  • 20

    UNIVERSIDADNACIONALABIERTAYADISTANCIA UNADESCUELADECIENCIASBSICASTECNOLOGAEINGENIERACONTENIDODIDCTICODELCURSO:208008CADAVANZADOPARAELECTRNICA

    Figura 153. Estructura Case 205 Figura 154. Ejemplo de la Estructura Case. Panel Frontal. 205 Figura 155. Ejemplo de la Estructura Case. Diagrama de Bloques. 206 Figura 156. Esquema general estructura Sequence. 207 Figura 157. Panel frontal. Estructura Sequence. 207 Figura 158. Diagrama de Bloques. Estructura Sequence. 208 Figura 159. Estructura General de un For. 209 Figura 160. Panel Frontal. Ejemplo Estructura For 210 Figura 161. Diagrama de Bloques. Ejemplo Estructura For. 210 Figura 162. Forma General de la Estructura While. 211 Figura 163. Panel Frontal. Ejemplo de un While. 211 Figura 164. Diagrama de Bloques. Ejemplo de un while. 212 Figura 165. Definicin de Variables en Formula Node 213 Figura 166. Panel Frontal. Ejemplo Formula Node. 213 Figura 167. Diagrama de Bloques Ejemplo Formula Node. 214 Figura 168. Menu Variables globales. 216 Figura 169. Crear icono en un subVI. 217 Figura 170. Panel Frontal Ejemplo de un SubVI. 217 Figura 171. Diagrama de Bloques Ejemplo de un subVi. 218 Figura 172. Creacin del subVI en la paleta Edit 218

  • 21

    UNIVERSIDADNACIONALABIERTAYADISTANCIA UNADESCUELADECIENCIASBSICASTECNOLOGAEINGENIERACONTENIDODIDCTICODELCURSO:208008CADAVANZADOPARAELECTRNICA

    Figura 173. Icono que representa al subVI. 219 Figura 174. Icono del subVi seleccionando show conector. 219 Figura 175. Icono del subVI con adicin de variables entrada/salida. 220 Figura 176. Llamando un SubVI. 220 Figura 177. Icono del subVI en el Diagrama de Bloques. 221 Figura 178. Utilizacin de un SubVI, Panel Frontal 221 Figura 179. Utilizacin de un SubVI, Diagrama de bloques. 222 Figura 180. Panel Frontal Ejemplo extraer el seno.vi 223 Figura 181. Diagrama de bloques Ejemplo extraer el seno.vi 223 Figura 182. Diagrama de bloques. Clculo de Transformada rpida de Fourier. 224 Figura 183. Diagrama de bloques. Clculo de Transformada rpida de Fourier. 225 Figura 184. Panel Frontal. Generacin de Tablas. 225 Figura 185. Diagrama de Bloques. Generacin de Tablas. 226 Figura 186. Panel Frontal. Envio de datos al puerto paralelo. 226 Figura 187. Diagrama de Bloques. Envio de datos al puerto paralelo. 227 Figura 188. Paleta Opciones Leer/escribir archivos 227 Figura 189. Men Programing/ Report Generation 228 Figura 190. Uso de Report Generation. 229

  • 1

    UNIVERSIDADNACIONALABIERTAYADISTANCIA UNADESCUELADECIENCIASBSICASTECNOLOGAEINGENIERACONTENIDODIDCTICODELCURSO:208008CADAVANZADOPARAELECTRNICA

    UUNNIIDDAADD 11.. HHEERRRRAAMMIIEENNTTAASS DDEE MMAATTLLAABB INTRODUCCIN En la primera Unidad se presenta las herramientas de Matlab, que es el principal de los paquetes software objeto del curso, en donde el estudiante se familiarizar con el entorno interactivo del programa as como con los comandos, toolbox y funciones, conociendo las caractersticas tcnicas, operativas y ventajas de empleo de dicho software. JUSTIFICACION En electrnica es de gran relevancia esta temtica puesto que los lenguajes de alto nivel forman parte de las herramientas diarias de trabajo tanto de estudiantes como de profesionales y tcnicos en el rea. Estos tipos de software son empleados en infinidad de aplicaciones que requieren el manejo de complejos modelos matemticos o en su defecto de operaciones iterativas que en un momento dado pueden servir de apoyo en el diseo, simulacin y anlisis tanto de circuitos anlogos como digitales as como en el modelado de sistemas de control, de telecomunicaciones, de audio, etc. INTENCIONALIDADES FORMATIVAS Propsitos Se pretende desglosar el manejo general de Matlab desde el punto de vista de las herramientas avanzadas para desarrollar habilidades que le permitan al estudiante identificar y utilizar los aplicativos en el desarrollo de soluciones ptimas a la hora de abordar los problemas y actividades propuestos, al tiempo que se contribuye a generar esquemas mentales en el estudiante con los que podr abordar por su propia cuenta tanto el diseo y desarrollo de soluciones a problemticas planteadas como el aprendizaje de otras herramientas software.

  • 2

    UNIVERSIDADNACIONALABIERTAYADISTANCIA UNADESCUELADECIENCIASBSICASTECNOLOGAEINGENIERACONTENIDODIDCTICODELCURSO:208008CADAVANZADOPARAELECTRNICA

    Objetivos Que el estudiante ample complemente y profundice en las caractersticas operativas, tcnicas, los beneficios del aplicativo Matlab, desde el punto de vista de las herramientas de entrada/salida y manejo de toolbox, para que as puedan emplear y diferenciar las ventajas operativas que ofrecen los paquetes software de anlisis numrico sobre el desarrollo manual. Competencias El estudiante conoce las caractersticas y posibilidades que le brindan las herramientas E/S y los toolbox de Matlab, adems conoce los procedimientos sistemticos para interactuar con stos y dar soluciones a partir de su implementacin en problemas electrnicos. Metas de aprendizaje El estudiante aprender de forma individual las temticas del mdulo del curso para que as pueda aplicar lo aprendido en cada tema mediante ejercicios y actividades tanto individuales como grupales en las que se desarrollen pequeos programas o aplicaciones en donde el estudiante se valga de toda la informacin disponible, de su espritu investigativo y del trabajo en grupo para buscar la manera de generar las soluciones ms ptimas y funcionales ante las problemticas planteadas. Denominacin de Captulos Captulo 1. Entrada/Salida y funciones de Matlab Captulo 2. Toolbox de Matlab Captulo 3. Simulink Conceptos Bsicos

    CAPITULO 1: ENTRADA/SALIDA Y FUNCIONES DE MATLAB

    Introduccin. MATLAB es una poderosa herramienta de programacin que permite realizar diversas aplicaciones, con la ventaja de poseer un lenguaje sencillo e intuitivo y una gran cantidad de comando que simplifica la forma de

  • 3

    UNIVERSIDADNACIONALABIERTAYADISTANCIA UNADESCUELADECIENCIASBSICASTECNOLOGAEINGENIERACONTENIDODIDCTICODELCURSO:208008CADAVANZADOPARAELECTRNICA

    escribirlos, MATLAB dispone de funciones de lectura/escritura anlogas, similares a las del lenguaje C que facilitan la importacin/exportacin de los datos. Leccin 1: Manejo de archivos La introduccin de datos en MATLAB puede hacerse de la siguiente manera:

    Cargando un archivo externo (comando Load) Creando una secuencia de entrada en el editor de comandos (Editor de

    archivos .m). Ejecutando alguna funcin desde la ventana de comandos. Desde la ventana de espacio de trabajo (workspace) directamente.

    Abriendo un archivo. En ciertas ocasiones es necesario escribir programas que necesitan operar con datos que residen en otros archivos o escribir los resultados de las operaciones de los programas hechos en MATLAB. Para poder abrir un archivo es necesario verificar su existencia. El comando para abrir un archivo es fopen, este comando posee varios argumentos, los principales son el nombre del archivo y la forma en el que MATLAB interactuar con ste. El comando retorna un valor entero mayor a 2 que es el nmero de identificacin del archivo, este ser usado para escribir y/o leer del archivo. Los tipos de interaccin con el archivo son:

    r: si se desea abrir un archivo slo para leer. w: si se desea abrir un archivo slo para escribir. r+: si se desea abrir un archivo para leer y escribir. a: si se desea aadir la salida del programa a un archivo. En el caso de

    que no exista MATLAB crear el archivo. Si el archivo existe MATLAB aadir la salida del programa al contenido del archivo.

    Se pueden obtener todas las opciones dadas por este comando, digitando en la ventana de comandos help fopen Estructura del comando: Variable = fopen (nombre_del_archivo)

  • 4

    UNIVERSIDADNACIONALABIERTAYADISTANCIA UNADESCUELADECIENCIASBSICASTECNOLOGAEINGENIERACONTENIDODIDCTICODELCURSO:208008CADAVANZADOPARAELECTRNICA

    Ejemplo: Abrir un archivo que se llama prueba.dat, que existe y reside en el directorio de archivos que se est trabajando y se desea escribir sobre este, entonces la estructura quedara. >>Identificador = fopen (prueba.dat, w) MATLAB retorna el valor que identifica el archivo Identificador = 3 Leyendo desde un archivo. Una vez abierto el archivo, para leerlo se utiliza el comando fscanf. Este comando tiene tres argumentos, el primero es el identificador que ha sido obtenido del comando fopen. El segundo es el formato del dato en el cual est escrito en el archivo y el tercero es opcional que es el nmero de datos que desean ser ledos. Ejemplos de la especificacin de formatos:

    %d: Lee los datos como enteros. Si se usa esta sentencia de formato este leer hasta encontrar el punto decimal.

    %f: Lee los nmeros a la derecha del punto decimal. %s: lee los datos de una cadena de caracteres. Ignorando los espacios en

    blanco y los caracteres de control %c: lee los datos de una cadena de caracteres, sin embargo los espacios

    en blanco y los caracteres de control son preservados. Estructura del comando >>Variable = fscanf (identificador, especificacin de formatos) Ejemplo: Se posee un archivo llamado datos.txt (archivo creado en un editor de texto) que contiene los nmeros del 1 al 10. En donde se asume que el archivo est nombrado correctamente y se encuentra en el directorio en el que se est trabajando.

  • 5

    UNIVERSIDADNACIONALABIERTAYADISTANCIA UNADESCUELADECIENCIASBSICASTECNOLOGAEINGENIERACONTENIDODIDCTICODELCURSO:208008CADAVANZADOPARAELECTRNICA

    datos.txt : 1 2 3 4 5 6 7 8 9 10 >> Identificador = fopen (datos.txt, r) Identificador =

    3 >> a = fscanf(identificador, %d) a = 1 2 3 4 5 6 7 8 9 10

    Si se utilizara otro especificador de formatos, la repuesta de MATLAB sera:

    >> a = fscanf(identificador, %s) a = 12345678910

    Escribiendo a un archivo. Para poder escribir sobre un archivo debe estar abierto primero. El comando para realizar esta funcin es fprintf, el formato para su ejecucin es la siguiente: fprintf(identificador de archivo, formato, variable) El identificador de archivo es el valor retornado por el comando fopen. El formato especifica como se desea que sea escrito el valor y la variable es el nombre donde se tiene guardado el dato.

  • 6

    UNIVERSIDADNACIONALABIERTAYADISTANCIA UNADESCUELADECIENCIASBSICASTECNOLOGAEINGENIERACONTENIDODIDCTICODELCURSO:208008CADAVANZADOPARAELECTRNICA

    Por ejemplo si se escribe A=5

    >>fprintf(identificador, %d, A)

    En el archivo que se especfico se escribir el valor 5, como un entero debido que ese fue el formato que se le especific. Importar y exportar datos desde otras aplicaciones. Es posible traer datos desde otras aplicaciones como por ejemplo desde EXCEL o desde un editor de texto, se puede hacer de diferentes formas:

    se puede utilizar Copiar y Pegar para copiar datos de la aplicacin original y depositarlos entre los corchetes de una matriz o vector, en una lnea de comandos de MATLAB.

    Se puede crear un fichero *.m con un editor de textos.

    Es posible leer un flat file escrito con caracteres ASCII. Un flat file es un

    fichero con filas de longitud constante separadas con Intro, y varios datos por fila separados por espacios en blanco. Estos ficheros pueden ser ledos desde MATLAB con el comando load. Si se ejecuta load datos.txt el contenido del archivo se deposita en una matriz con el nombre datos.

    El comando textread permite leer datos de cualquier tipo de un fichero siempre que estn convenientemente separados.

    Los comandos xlsread y xlswrite permiten leer y escribir un archivo de Excel respectivamente.

    Los comandos cvsread y cvswrite permiten leer y escribir un archivo que contiene nicamente datos numricos y que estn separados por comas.

    Leccin 2: Archivos *.m Son archivos que contienen instrucciones escritas; existen dos tipos de archivos *.m. los archivos de funcin que reciben argumentos de entrada para proporcionar uno o varios datos de salida y los archivos *.m de escritura (script) en los cuales

  • 7

    UNIVERSIDADNACIONALABIERTAYADISTANCIA UNADESCUELADECIENCIASBSICASTECNOLOGAEINGENIERACONTENIDODIDCTICODELCURSO:208008CADAVANZADOPARAELECTRNICA

    se ejecutan una serie de sentencias de MATLAB. Un script es una secuencia de comandos que se pueden ejecutar a menudo, se guardan en archivos de extensin *.m para no tener que escribirlos de nuevo. Un script puede llamar a otros ficheros script para ejecutar sus comandos.

    El editor es la ventana donde se escriben este tipo de archivos y permite al programador o al diseador escribir los archivos en texto ASCII con la extensin *.m (aunque pueden ser creados con cualquier otro editor de textos ASCII), estos contienen el conjunto de comandos o la definicin de funciones creadas por el usuario. La importancia de los archivos m-files, radica en que al ser llamados desde la ventanas de comandos se ejecutan los comandos escritos de manera secuencial, siempre y cuando se encuentren en una de las carpetas de trabajo del Matlab. Este editor no solo permite escribir los cdigos, sino, que tambin permite depurarlos, es decir, ejecutarlos paso a paso para verificar si contienen errores. (Ver Figura 1).

    Figura 1. Editor de Archivos *.m.

    Fuente: Captura de Matlab versin trial (2008). A continuacin se muestra la escritura de un archivo script que calcula la magnitud y el ngulo de un nmero complejo. Se escriben las instrucciones en el editor, se guarda el archivo como complejo.m, y se llama desde la ventana de trabajo en matlab.

  • 8

    UNIVERSIDADNACIONALABIERTAYADISTANCIA UNADESCUELADECIENCIASBSICASTECNOLOGAEINGENIERACONTENIDODIDCTICODELCURSO:208008CADAVANZADOPARAELECTRNICA

    Figura 2. Funcin complejo.m en el editor de Archivos de Matlab

    Fuente: Captura de Matlab versin trial (2008). Por ejemplo para calcular la magnitud y el ngulo del Numero complejo Z=2+3j, se asigna a la variable a el valor de 2 y a la variable b el valor de 3, y se llama el script complejo, lo cual automticamente arroja el resultado en las variables m y ang.

    Figura 3. Ejecucin del script complejo.m

    Fuente: Captura de Matlab versin trial (2008).

  • 9

    UNIVERSIDADNACIONALABIERTAYADISTANCIA UNADESCUELADECIENCIASBSICASTECNOLOGAEINGENIERACONTENIDODIDCTICODELCURSO:208008CADAVANZADOPARAELECTRNICA

    Leccin 3: Grficas Bidimensionales. Las grficas en 2D de MATLAB estn orientadas a la representacin grfica de vectores y matrices. Para realizar todas las operaciones grficas este programa utiliza un tipo especial de ventanas. Algunos comandos abren una nueva ventana mientras que otros realizan operaciones sobre una ventana abierta con anterioridad. MATLAB posee cinco funciones bsicas para crear grficos bidimensionales, los cuales se diferencian en el valor de las escalas que son desplegadas en los ejes de las abscisas y de las ordenadas. Las funciones se pueden observar en la siguiente tabla.

    Tabla 1. Funciones bsicas para crear grficas en 2D.

    Comando Descripcin

    plot() Crea un grfico a partir de vectores y matrices, con escalas lineales sobre ambos ejes

    plotyy () Dibuja dos funciones sobre una misma ventana grfica con escalas lineales independientes en el eje de las ordenadas una a la derecha y otra a la izquierda de la figura. Figura 4

    loglog() Genera grficos con escalas logartmicas en ambos ejes semilogx () Crea grficos con una escala logartmica en el eje de las abscisas y lineal

    en el de las ordenadas semilogx () Genera grficos con una escala lineal en el eje de las abscisas y

    logartmica en el de las ordenadas Polar() Crea un grafico en coordenadas polares

    Fuente: Armando Portela (2008)

    Figura 4. Ejecucin del comando plotyy()

    0 2 4 6 8 10 12 14 16 18 20-200

    -150

    -100

    -50

    0

    50

    100

    150

    200

    0 2 4 6 8 10 12 14 16 18 20-0.8

    -0.6

    -0.4

    -0.2

    0

    0.2

    0.4

    0.6

    0.8

    Fuente: Captura de Matlab versin trial (2008).

  • 10

    UNIVERSIDADNACIONALABIERTAYADISTANCIA UNADESCUELADECIENCIASBSICASTECNOLOGAEINGENIERACONTENIDODIDCTICODELCURSO:208008CADAVANZADOPARAELECTRNICA

    Existen otras funciones utilizadas para modificar las grficas generadas aadindole ttulos a las grficas y a los ejes, etc. Estos comandos son:

    Tabla 2. Funciones para modificacin de las grficas. Comando Descripcin

    title(ttulo) Le coloca ttulo al grfico xlabel(ejeX) Le proporciona un ttulo al eje de las abscisas. Con xlabel off

    desaparece. xlabel(ejeY) Le proporciona un ttulo al eje de las ordenadas. Con ylabel off

    desaparece. text(x,y,texto) Introduce texto en lugar establecido por las coordenadas x e y, si estos

    son vectores, el texto se repetir cada par de elementos . gtext(texto) Introduce el texto en la posicin en el que el puntero del ratn se

    encuentre en la grfica y se haga clic grid() Activa la introduccin de una cuadrcula sobre la grfica. Con el

    comando grid off este se desactiva. Fuente: Armando Portela (2008)

    Ejemplo: Graficar la funcin seno, en el intervalo de -10 a 10, colocndole un ttulo y una marquilla, y activndole la funcin de cuadrcula (grid) (Figura 5).

    >> x=[-10: 0.1:10]; >> y=sin(x); >> plot(x,y) >> grid >> gtext('Grfica de seno') >> title('Seno de x')

    Figura 5. Grafica de la funcin Seno.

    -10 -8 -6 -4 -2 0 2 4 6 8 10-1

    -0.8

    -0.6

    -0.4

    -0.2

    0

    0.2

    0.4

    0.6

    0.8

    1

    Grfica de seno

    Seno de x

    Fuente: Captura de Matlab versin trial (2008).

  • 11

    UNIVERSIDADNACIONALABIERTAYADISTANCIA UNADESCUELADECIENCIASBSICASTECNOLOGAEINGENIERACONTENIDODIDCTICODELCURSO:208008CADAVANZADOPARAELECTRNICA

    El comando subplot permite dividir una ventana grfica en m particiones horizontales y n verticales, con el propsito de representar mltiples grficos en ella. Cada una de estas subventanas tiene sus propios ejes y conservan algunas caractersticas comunes con las otras subventanas. La forma general de este comando es: subplot(m,n,i), donde m y n son el nmero de subdivisiones en filas y columnas, e i es la subdivisin que se convierte en activa. Las subdivisiones se numeran consecutivamente empezando por las de la primera fila, siguiendo por las de la segunda, etc. Por ejemplo, la secuencia de comandos que se observa en la figura 6 genera cuatro grficos en la misma ventana

    Figura 6. Utilizacin del comando subplot.

    Fuente: Captura de Matlab versin Trial (2008). Otras funciones grficas bidimensionales son mencionadas en la tabla 3.

    Tabla 3. Otras Funciones graficas bidimensionales.

    Comando Descripcin bar() Crea diagramas de barras barh() Realiza diagramas de barras horizontales bar3() Realiza diagramas de barras con aspecto 3-D bar3h() Crea diagramas de barras horizontales con aspecto 3-D pie() Genera grficos con forma de tarta pie3() Genera grficos con forma de tarta y aspecto 3-D area() similar plot(), pero rellenando en ordenadas de 0 a y errorbar() representa sobre una grfica mediante barras valores de errores compass() Dibuja los elementos de un vector complejo como un conjunto de vectores

    partiendo de un origen comn Fuente: Armando Portela (2008)

  • 12

    UNIVERSIDADNACIONALABIERTAYADISTANCIA UNADESCUELADECIENCIASBSICASTECNOLOGAEINGENIERACONTENIDODIDCTICODELCURSO:208008CADAVANZADOPARAELECTRNICA

    Leccin 4: Grficas Tridimensionales MATLAB posee varias posibilidades para realizar grficas tridimensionales. Una de las maneras de realizar esto es la utilizacin del comando plot3, que es la analoga de la funcin plot en los grficos bidimensionales, con la diferencia que con este comando es necesario definir tres vectores, una para cada eje, en vez de dos.

    La estructura de este comando es la siguiente:

    plot3 (vector_3, vector_2, vector_1);

    Un ejemplo de este comando es la de graficar una hlice. (ver Figura 7). >> X = [-2:0.01:2]; % Define el primer vector >> plot3 (cos(2*pi*X), sin(2*pi*X), X); % En esta lnea se definen los otros 2 vectores y se grafica la funcin. >> grid

    Figura 7. Grfica de una hlice.

    -1-0.5

    00.5

    1

    -1-0.5

    0

    0.51

    -3

    -2

    -1

    0

    1

    2

    3

    Fuente: Captura de Matlab versin trial (2008).

  • 13

    UNIVERSIDADNACIONALABIERTAYADISTANCIA UNADESCUELADECIENCIASBSICASTECNOLOGAEINGENIERACONTENIDODIDCTICODELCURSO:208008CADAVANZADOPARAELECTRNICA

    Para dibujar superficies en un espacio tridimensional hay dos comandos bsicos: mesh que grafica la estructura en forma de alambres (transparente), y surf que genera las superficies opacas. Por ejemplo se grafica la silla de montar definida por la funcin z=x2 - y2. (Ver Figura 8).

    >> [X,Y] = meshgrid(-2:.1:2, -2:.1:2); %este comando convierte los vectores en matrices para poder realizar la grfica >> Z = X.2 - Y.2; >> mesh(X, Y, Z)

    Figura 8. Grafica de la superficie con el comando mesh.

    -2-1.5

    -1-0.5

    00.5

    11.5

    2

    -2-1.5

    -1-0.5

    00.5

    11.5

    2-4

    -3

    -2

    -1

    0

    1

    2

    3

    4

    Fuente: Captura de Matlab versin trial (2008).

    La diferencia de esta con la grfica (ver Figura 9.) anterior radica en el comando que se utiliz en la ltima lnea del cdigo anterior, se cambi mesh por surf.

  • 14

    UNIVERSIDADNACIONALABIERTAYADISTANCIA UNADESCUELADECIENCIASBSICASTECNOLOGAEINGENIERACONTENIDODIDCTICODELCURSO:208008CADAVANZADOPARAELECTRNICA

    Figura 9. Grafica de la superficie con el comando surf.

    -2-1.5

    -1-0.5

    00.5

    11.5

    2

    -2-1.5

    -1-0.5

    00.5

    11.5

    2-4

    -3

    -2

    -1

    0

    1

    2

    3

    4

    Fuente: Captura de Matlab versin trial (2008).

    Otras funciones de grficas tridimensionales son relacionadas en la tabla 4

    Tabla 4. Otras Funciones grficas tridimensionales

    Comando Descripcin trisurf Similar a surf, dibuja una superficie 3-D a partir de los valores de una

    funcin en una malla de tringulos. meshz mesh con plano de referencia en el valor mnimo y una especie de

    cortina en los bordes del dominio de la funcin trimesh Similar a mesh, dibuja una superficie 3-D a partir de los valores de una

    funcin en una malla de tringulos. surfl Utilizada para controlar la iluminacin determinando la posicin e

    intensidad de un foco de luz. Light Crea un foco de luz en los ejes actuales capaz de actuar sobre

    superficies 3-D. Se le deben pasar como argumentos el color, el estilo (luz local o en el infinito) y la posicin.

    colorbar Adiciona el mapa de colores activo a la figura, redimensionando los ejes para hacerle un lugar. se puede colocar horizontal o verticalmente.

    sphere Dibuja una esfera 3-D de radio unidad. Cylinder Dibuja una superficie cilndrica de radio 1 y altura 1, con 20 facetas

    laterales. Fuente: Armando Portela (2008)

  • 15

    UNIVERSIDADNACIONALABIERTAYADISTANCIA UNADESCUELADECIENCIASBSICASTECNOLOGAEINGENIERACONTENIDODIDCTICODELCURSO:208008CADAVANZADOPARAELECTRNICA

    Leccin 5: Funciones. Las funciones de MATLAB se asemejan a las funciones matemticas, en la medida en que representan una regla que modifica una variable de entrada transformndola en una variable de salida. La funcin en matlab es un llamado a conjunto de comandos, donde se le proporciona un dato de entrada y esta proporciona un resultado de salida. En muchas ocasiones es necesario definir nuevas funciones o emplear funciones ya existentes para anexarlas a los programas que se estn desarrollando en un momento dado, las funciones en Matlab son una herramienta muy til en casos en los que se requiere realizar operaciones repetitivas y que son aplicables a diferentes programas o a diferentes partes del mismo programa, se trata de piezas de cdigo escritas y guardadas de una forma determinada en archivos con extensin *.m que pueden ser llamados por un programador para ejecutar tareas determinadas y as puedan ser usada en diversas ocasiones. Por tal motivo se hace necesario entender cmo debe ser creada y posteriormente empleada una funcin. Reglas para escribir funciones. Para elaborar funciones, se debe generar un nuevo archivo de texto con un nombre adecuado para reconocer la funcin, el archivo debe tener la extensin *.m, para que MATLAB lo reconozca. La creacin de funciones en MATLAB presenta algunas diferencias respecto de la elaboracin de programas. La ms relevante es la siguiente: Una funcin incluye en la primera lnea del archivo una cabecera donde se especifica su nombre, cules y cuntos argumentos tiene, y cules y cuntos valores retorna. Dicha cabecera se identifica, adems, por la palabra function, tal y como se muestra en el siguiente ejemplo: function a=producto(x,y) Como se puede apreciar, se define una funcin de nombre producto, que tiene dos argumentos (x e y) y devuelve un valor en la variable a.

  • 16

    UNIVERSIDADNACIONALABIERTAYADISTANCIA UNADESCUELADECIENCIASBSICASTECNOLOGAEINGENIERACONTENIDODIDCTICODELCURSO:208008CADAVANZADOPARAELECTRNICA

    La primera lnea es llamada lnea de definicin de funcin, donde se le proporciona el nombre, el nmero y el orden de los argumentos de entradas y salidas. Siguiendo la lnea de definicin de funcin, se debe realizar comentarios anteponindoles el smbolo porcentual (%). Esas lneas son llamadas texto de ayuda y son mostradas en respuesta del comando help seguido del nombre de la funcin. Las siguientes lneas constituyen el cuerpo de la funcin; estas contienen las sentencias de MATLAB que calculan el valor de las funciones. Adicionalmente se pueden realizar comentarios acerca de cada sentencia (sin olvidar anteponer el smbolo de porcentaje), todas las sentencias deben culminarse con un punto y coma (;) para suprimir la salida de cada comando. Estos archivos pueden tener mltiples entradas y mltiples salidas. El cuerpo de la funcin contiene las sentencias que sean necesarias para calcular los valores que la funcin va a retornar. Para calcular dichos valores se utilizarn tanto los argumentos de la funcin como todas aquellas otras variables auxiliares que sean precisas. Hay que tener en cuenta que las variables que no sean argumentos son locales a la funcin (es decir, no toman valores desde el espacio de trabajo de MATLAB), y por tanto debern ser inicializadas en sta. Adems hay que tener en cuenta que las funciones nunca modifican las variables o argumentos de entrada, a no ser que se incluyan tambin como valores de retorno. Si el usuario las modifica dentro de la funcin, automticamente el Matlab saca copias de esas variables (se modifican las copias, no las variables originales). Lo que significa que para MATLAB los argumentos de las funciones siempre son valores y no variables. Ejemplo: Crear una funcin que calcule las races de un polinomio de orden dos, ingresando los coeficientes a,b,c correspondientes al polinomio ax2+bx+c=0. Se escribe la funcin en el editor de matlab como se muestra en la figura 10, teniendo en cuenta la cabecera, es decir iniciando con la palabra function, seguida del nombre de la funcin, el argumento y el valor de retorno. Se guarda la funcin en el directorio de trabajo de matlab y se procede a llamarla desde la ventana de trabajo del programa.

  • 17

    UNIVERSIDADNACIONALABIERTAYADISTANCIA UNADESCUELADECIENCIASBSICASTECNOLOGAEINGENIERACONTENIDODIDCTICODELCURSO:208008CADAVANZADOPARAELECTRNICA

    Figura 10. Escritura de la Funcin raices2.m

    Fuente: Captura de Matlab versin trial (2008)..

    Una vez creada la funcin, esta se puede utilizar en la ventana de comandos digitando el nombre de la misma y asignando los valores de entrada. En la figura 11 se observa el clculo de las races del polinomio x2+2x+3=0, mediante el llamado de la funcin races2.m e ingresando los parmetros de entrada a, b, c, que en este caso corresponden a los nmeros 1,2,3.

    Figura 11. Uso de la Funcin raices2.m.

    Fuente: Captura de Matlab versin trial (2008)..

  • 18

    UNIVERSIDADNACIONALABIERTAYADISTANCIA UNADESCUELADECIENCIASBSICASTECNOLOGAEINGENIERACONTENIDODIDCTICODELCURSO:208008CADAVANZADOPARAELECTRNICA

    Funciones de MATLAB. MATLAB contiene una gran cantidad de funciones las categoras incluyen:

    Elfun: Estos son las funciones matemticas elementales, incluyen las funciones trigonomtricas, logartmicas y exponenciales, funciones para la manipulacin de los nmeros complejos, funciones modulares y funciones para el redondeo de nmeros.

    Specfun: son comandos de funciones matemticas ms especializadas como funciones de Bessel, gamma y otras tantas usadas en el tratamiento analtico de sistemas. Tambin incluye funciones para la creacin de factores primos, otras para chequear que un nmero sea primo, funciones para encontrar el mnimo comn mltiplo y el mximo comn divisor y funciones para la conversin de coordenadas.

    Matfun: Estas son las funciones de las matrices. Datafun: son las funciones utilizadas en los anlisis de datos, pueden

    determinar el valor mximo o mnimo dentro de una serie de nmeros, incluyen funciones usadas en anlisis estadsticos. Existen funciones para simular filtros y manipulacin de archivos de sonido.

    Polyfun: Incluye funciones de interpolacin para anlisis geomtrico, para derivar y multiplicar polinomios. Tambin incluye funciones para encontrar las races de los polinomios.

    Funfun: son un grupo de funciones que resuelven ecuaciones diferenciales. Tambin incluye funciones usadas para la integracin numrica y funciones grficas.

    Strfun: incluye funciones que son usadas para manipular una cadena de caracteres.

    Iofun: Son funciones usadas para la entrada y salida de datos. Existen funciones para el posicionamiento y renombramiento de archivos.

    Timefun: contiene funciones que retornan flujo de datos y funciones de calendario y reloj.

    CAPITULO 2: TOOLBOX DE MATLAB Introduccin. Matlab posee libreras especializadas que agrupan un determinado nmero de funciones que poseen caractersticas similares y tienen aplicaciones especficas. A estas libreras se les denomina Toolbox, que traduce literalmente caja de herramientas, gracias a estas cajas de herramientas especializadas, se evita la escritura de cdigos extensos y poco eficientes.

  • 19

    UNIVERSIDADNACIONALABIERTAYADISTANCIA UNADESCUELADECIENCIASBSICASTECNOLOGAEINGENIERACONTENIDODIDCTICODELCURSO:208008CADAVANZADOPARAELECTRNICA

    Leccin 6: Introduccin a los Toolbox de Matlab. Los Toolbox o cajas de herramientas son una coleccin especializada de archivos .m diseada para trabajar problemas especficos en ciertas reas de Ingeniera, como Sistemas de Comunicaciones, Procesamiento de Seales, Redes neuronales, anlisis Financiero entre otras. Algunos de los Toolbox de Matlab son:

    Procesamiento de Seales Matemtica Simblica Lgica Difusa Redes neuronales Procesamiento de Imgenes Comunicaciones Ecuaciones Derivadas parciales Sistemas de Control Identificacin de sistemas Optimizacin Diseo de filtros Bioinformtica Estadstica Anlisis Financiero

    Caractersticas. Entre las caractersticas que poseen los toolbox se tiene:

    Son grupos de comandos con caractersticas similares. Ayudan a simplificar los clculos de ciertas aplicaciones. Facilitan la escritura de algoritmos.

    Esquema general de los Toolbox. Como se ha dicho los toolbox son libreras especializadas, los comandos ah presentes se encuentran organizadas por orden alfabtico y por categoras, para observar la organizacin de estos, se debe remitir a la ayuda que ofrece MATLAB desde su ventana de ayuda y de acuerdo al toolbox escogido as ser la organizacin (Figura 12), aunque existen tems comunes para todos que son:

  • 20

    UNIVERSIDADNACIONALABIERTAYADISTANCIA UNADESCUELADECIENCIASBSICASTECNOLOGAEINGENIERACONTENIDODIDCTICODELCURSO:208008CADAVANZADOPARAELECTRNICA

    Getting started (Inicio): Realizan una breve descripcin del tema del cual est hecho el toolbox.

    Examples (Ejemplo): Muestran ejemplos donde se aplican los comandos ah presentes.

    Functions - Categorical List (Funciones Lista de categoras): Se observan los comandos organizados en categoras particulares de cada toolbox.

    Functions Alphabetical List (Funciones Lista alfabtica): Los comandos estn organizados alfabticamente.

    Releases Notes (Notas relacionadas o de actualizacin): Muestra todas las notas relacionadas con el toolbox y todas las actualizaciones que existentes para este.

    Printable Documentation (Informacin imprimible) (PDF): Este es un hipervnculo donde se muestra la informacin del toolbox en un formato de documento portable.

    Product Page (Pagina del producto): Este es un hipervnculo que dirige al usuario a la pgina de Mathworks, referente al toolbox.

    Figura 12. Esquema general de los toolboxes.

    Fuente: Captura de Matlab versin trial (2008). Ejemplo. Con ayuda del Toolbox de procesamiento de Imgenes tomar una fotografa a color, convertirla a escala de grises y generar un nuevo archivo con la imagen modificada. La imagen que se desea modificar debe estar en el directorio de trabajo de matlab, en este caso se trabaja con la imagen denominada ricardocarro.jpg, a travs de los comandos imread y imshow se lee, se guarda en la variable imagen1 y se muestra la imagen en la ventana Figure.

  • 21

    UNIVERSIDADNACIONALABIERTAYADISTANCIA UNADESCUELADECIENCIASBSICASTECNOLOGAEINGENIERACONTENIDODIDCTICODELCURSO:208008CADAVANZADOPARAELECTRNICA

    Figura 13. Uso de imread e imshow del Toolbox Procesamiento de Imgenes.

    Fuente: Captura de Matlab versin trial (2008).

    Figura 14. Ventana Figure Matlab. Imagen a color

    Fuente: Captura de Matlab versin trial (2008).. Con el comando rgb2gray se convierte la Imagen a escala de grises y el resultado se guarda en la variable b, como se muestra en la figura 15.

  • 22

    UNIVERSIDADNACIONALABIERTAYADISTANCIA UNADESCUELADECIENCIASBSICASTECNOLOGAEINGENIERACONTENIDODIDCTICODELCURSO:208008CADAVANZADOPARAELECTRNICA

    Figura 15. Utilizacin de rg2gray del Toolbox Procesamiento de Imgenes.

    Fuente: Captura de Matlab versin trial (2008). En la figura 16 se observa la imagen convertida a escala de grises.

    Figura 16. Ventana Figure Matlab. Imagen en escala de grises.

    Fuente: Captura de Matlab versin trial (2008). Mediante el comando imwrite se genera un archivo denominado ricardogris.jpg con la imagen en escala de grises. imwrite(b,'ricardogris','jpg')

  • 23

    UNIVERSIDADNACIONALABIERTAYADISTANCIA UNADESCUELADECIENCIASBSICASTECNOLOGAEINGENIERACONTENIDODIDCTICODELCURSO:208008CADAVANZADOPARAELECTRNICA

    Leccin 7: Toolbox de Comunicaciones. El toolbox de comunicaciones es una extensin de MATLAB, con funciones, comandos grficos e interfaces empleadas para explorar, disear, analizar y simular algoritmos con las diferentes etapas de un sistema de comunicacin. Las caractersticas esenciales de este toolbox son:

    Contiene funciones para disear las capas fsicas de un enlace de comunicacin, incluyendo codificacin de fuente, codificacin de canal, modulacin, modelos de canal y ecualizacin.

    Comando de graficacin para la visualizacin de las seales de comunicacin.

    Interfaces graficas de usuario para comparar la tasa de error de bit de cualquier sistema con una amplia variedad de resultados analticos probados.

    Datos del tipo Galois para la construccin de algoritmos de comunicacin. Nociones Bsicas del toolbox. Este toolbox implementa una variedad de comandos relacionados con las comunicaciones. Muchas de las funciones realizan clculos asociados a un componente particular de un sistema de comunicaciones, como demoduladores o ecualizadores. Otras funciones que estn enfocadas en el diseo y el anlisis de diferentes sistemas. Categoras de los comandos de los toolbox. Las funciones y comandos se encuentran organizadas por categoras, estas son: Fuentes de seal: Comandos que crean fuentes de seales aleatorias. Evaluacin del desempeo: Analiza y visualiza la respuesta de un sistema, al

    ruido inherente al mundo real y a los componentes de dicho sistema. El desempeo es evaluado mediante el uso de grficas y as determinar si cumple con los requerimientos.

    BER Tool: Comandos utilizados para medir la tasa de error de bit. Codificacin de fuente: Tambin conocido como cuantizacin o formateo de

    seal, es la forma de reducir la redundancia de los datos o prepararla para su posterior procesamiento. La conversin de datos anlogo/digital y la compresin de datos son formas de codificacin de fuente.

    Modulacin/Demodulacin: Comandos para modular/demodular las seales tanto analgica como digital.

  • 24

    UNIVERSIDADNACIONALABIERTAYADISTANCIA UNADESCUELADECIENCIASBSICASTECNOLOGAEINGENIERACONTENIDODIDCTICODELCURSO:208008CADAVANZADOPARAELECTRNICA

    Codificacin del control de error: Son tcnicas que detectan y posiblemente corrigen errores cuando son transmitidos en un sistema de comunicacin digital. Para conseguir esto, el codificador no solo transmite los smbolos del mensaje si no que tambin transmite smbolos redundantes, el decodificador usa los smbolos redundantes para detectar y posiblemente corregir los errores.

    Filtrado: Comandos que sirven para la seleccin de seales dentro de cualquier rango de frecuencias.

    Interleaving (Entrelazador o entramador): Este permuta los smbolos de acuerdo a un mapeo, y el desentramado utiliza el mapeo inverso para recuperar la secuencia original de smbolos. El entramado y el desentramado son tiles para reducir los errores causados por rfagas en un sistema de comunicaciones.

    Canales: Los canales de comunicaciones introducen, ruido desvanecimiento, interferencias y otras distorsiones a las seales que son transmitidas por estos. La simulacin de un sistema de comunicacin involucra el modelado de un canal basado en descripciones matemticas del canal. Los diversos medios de transmisin tienen diferentes propiedades y son modelados con caractersticas diferentes.

    Ecualizadores: los canales dispersivos en funcin del tiempo pueden causar interferencia inter-simblica (ISI), por ejemplo en un ambiente dispersivo multi-trayecto, el receptor observa versiones retrasadas de los smbolos transmitidos, los cuales pueden interferir con los otros smbolos transmitidos. Un ecualizador intenta mitigar el ISI y as incrementar el desempeo del receptor.

    Campos computacionales de Galois: Es un campo algebraico que tiene un nmero finito de miembros. Los campos de Gaolis tienen 2m miembros que son utilizados para el control de codificacin de error y son denotados GF(2m).

    Fuentes de Seales. Cada sistema de comunicaciones contiene una o ms fuentes de seal, se puede usar este toolbox para generar seales aleatorias, lo cual es muy til cuando se necesita simular ruido, errores o fuentes de seal. Las secciones son las siguientes: Ruido blanco gausiano: Esta funcin (wgn) genera matrices usando una

    distribucin de ruido blanco gausiano donde se puede especificar la potencia y generar ruido tanto en valores reales como complejos y la potencia puede especificarse en unidades de dBW, dBm o lineales.

  • 25

    UNIVERSIDADNACIONALABIERTAYADISTANCIA UNADESCUELADECIENCIASBSICASTECNOLOGAEINGENIERACONTENIDODIDCTICODELCURSO:208008CADAVANZADOPARAELECTRNICA

    La estructura de este comando es la siguiente: >> Y = wgn(M,N,P) genera una matriz M x N de ruido blanco gausiano y P especifica la potencia del ruido en dBW Como ejemplo de este comando se puede generar un vector columna de una longitud de 70 conteniendo valores reales de ruido blanco gausiano el cual posee una potencia de 2 dBW. Cuando no se especifica el valor de la carga el comando lo asume como de 1 Ohm. >> y1 = wgn (70, 1,2)

    Smbolos aleatorios: (randsrc) Este comando crea matrices aleatorias, independientes del alfabeto que el usuario especifique pero con una distribucin que este proporciona. Por ejemplo, crear una matriz 5 X 4, con valores comprendidos entre 2, 4 y 6

    >> A = randsrc(5,4,[2,4,6]) A = 2 2 2 4 4 2 6 6 6 4 4 4 2 2 6 2 2 2 4 6

    Donde la estructura de este comando sera la siguiente;

    Variable = randsrc (M,N, Alfabeto)

    este comando crea una matriz aleatoria M x N con los elementos del alfabeto que se especific.

  • 26

    UNIVERSIDADNACIONALABIERTAYADISTANCIA UNADESCUELADECIENCIASBSICASTECNOLOGAEINGENIERACONTENIDODIDCTICODELCURSO:208008CADAVANZADOPARAELECTRNICA

    Enteros aleatorios (randint): Genera matrices aleatorias de valores enteros de un rango que es proporcionado por el usuario, un caso especial de este comando es crear matrices binarias. Por ejemplo crear una matriz 6 X 5, en el que sus elementos sean valores enteros entre 1 y 10.

    A = randint (6,5,[1,10]) A = 9 8 4 9 9 1 5 6 6 7 7 4 2 5 4 4 2 7 9 3 9 2 4 9 4 6 7 9 7 6

    Patrones aleatorios para el error de bit (randerr): crea matrices en las cuales los elementos son unos y ceros, con una probabilidad ya dada. Estas funciones son utilizadas para medir la taza de error de bit.

    Modulacin y Demodulacin. En la mayora de los medios de comunicacin, solo un rango de frecuencias est disponible para la transmisin. Una forma de comunicar un mensaje cuya seal no se encuentre en el rango de frecuencias disponibles, es modificando la frecuencia hasta alcanzar una que este en concordancia con el sistema de comunicacin, esta modificacin de la frecuencia es lo que se llama modulacin y el volver la seal a un estado muy cercano al original se llama demodulacin. MATLAB posee herramientas que permiten hacer tanto modulacin analgica como digital. Dada una tcnica de modulacin, existes dos formas para simularlo, bandabase y pasabanda. La simulacin bandabase tambin conocida el mtodo equivalente pasabaja requiere menos clculos computacionales. En esteToolbox la simulacin bandabase es utilizada para la modulacin digital mientras que para la modulacin analgica se utiliza la simulacin pasabanda. Los mtodos disponibles que contiene este Toolbox para realizar la modulacin de un sistema de comunicacin dependen del tipo de seal de entrada al sistema ya

  • 27

    UNIVERSIDADNACIONALABIERTAYADISTANCIA UNADESCUELADECIENCIASBSICASTECNOLOGAEINGENIERACONTENIDODIDCTICODELCURSO:208008CADAVANZADOPARAELECTRNICA

    sea anlogo o digital. La siguiente tabla muestra las tcnicas que soporta el toolbox:

    Tabla 5. Tipos de modulacin analgica que soporta el toolbox.

    Mtodo de modulacin analgica Acrnimo Comando para la modulacin Comando para la

    demodulacin Modulacin de amplitud (con supresin o

    transmisin de portadora) AM ammod amdemod

    Modulacin de frecuencia FM fmmod fmdemod Modulacin de fase PM pmmod pmdemod

    Modulacion de amplitud de banda simple SSB ssbmod ssbdemod Fuente: Armando Portela (2008) Argumentos necesarios para realizar la modulacin/demodulacin analgica comunes para todos los tipos: x: mensaje a modular y: mensaje modulado Fc: Frecuencia de la seal portadora (Hz) Fs: Frecuencia de muestreo (Hz) Ini_phase: fase inicial en la seal modulada (radianes)

  • 28

    UNIVERSIDADNACIONALABIERTAYADISTANCIA UNADESCUELADECIENCIASBSICASTECNOLOGAEINGENIERACONTENIDODIDCTICODELCURSO:208008CADAVANZADOPARAELECTRNICA

    Tabla 6. Sintaxis de los distintos Tipos de modulacin analgica que soporta el toolbox.

    Modulacin Sintaxis del comando de modulacin Sintaxis del comando de demodulacin

    AM

    y = ammod(x,Fc,Fs) y = ammod(x,Fc,Fs,ini_phase) y = ammod(x,Fc,Fs,ini_phase,carramp) carramp: amplitud de la portadora

    z = amdemod(y,Fc,Fs) z = amdemod(y,Fc,Fs,ini_phase) z = amdemod(y,Fc,Fs,ini_phase,carramp) z=amdemod(y,Fc,Fs,ini_phase,carramp,num,den) carramp: amplitud de la portadora num, den: establecen el numerador y

    el denominador del filtro pasabajas usado en la demodulacin(radianes)

    FM

    y= fmmod(x,Fc,Fs,freqdev) y = fmmod(x,Fc,Fs,freqdev,ini_phase freqdev: es la constante

    desviacin de frecuencia (Hz) de la seal modulada.

    z = fmdemod(y,Fc,Fs,freqdev) z = fmdemod(y,Fc,Fs,freqdev,ini_phase) freqdev: es la constante desviacin de

    frecuencia (Hz) de la seal modulada.

    PM

    y = pmmod(x,Fc,Fs,phasedev) y = pmmod(x,Fc,Fs,phasedev,ini_phase) phasedev: es la constante

    desviacin de fase (radianes) de la seal modulada.

    z = pmmod(y,Fc,Fs,phasedev) z = pmmod(y,Fc,Fs,phasedev,ini_phase) phasedev: es la constante desviacin

    de fase (radianes) de la seal modulada.

    SSB

    y = ssbmod(x,Fc,Fs) y = ssbmod(x,Fc,Fs,ini_phase) y = ssbmod(x,fc,fs,ini_phase,'upper') upper: Lado escogido para

    realizar la modulacin

    z = ssbdemod(y,Fc,Fs) z = ssbdemod(y,Fc,Fs,ini_phase) z = ssbdemod(y,Fc,Fs,ini_phase,num,den) num, den: establecen el numerador y

    el denominador del filtro pasabajas usado en la demodulacin(radianes)

    Ejemplo: Modular y demodular una seal con el mtodo de modulacin por amplitud.

    >> Fs = 8000; % Tasa de muestreo 8000 muestras por segundo. Fc = 300; % Frecuencia de la portadora en Hz t = [0:.1*Fs]'/Fs; % Tiempos de muestreo para 0.1 segundos x = sin(20*pi*t); % Representacin de la seal y = ammod(x,Fc,Fs); % Modulacin de x para producir y yruidoso = awgn(y,15,'measured'); %Transmisin a travs de un canal ruidoso [num,den] = butter(10,Fc*2/Fs); % Definicin del filtro pasabajas z = amdemod(yruidoso,Fc,Fs,0,0,num,den); % Demodulacin. figure; subplot(3,1,1); plot(t,x); % Dibuja la seal de entrada(Superior).

  • 29

    UNIVERSIDADNACIONALABIERTAYADISTANCIA UNADESCUELADECIENCIASBSICASTECNOLOGAEINGENIERACONTENIDODIDCTICODELCURSO:208008CADAVANZADOPARAELECTRNICA

    subplot(3,1,2); plot(t,yruidoso)% % Dibuja la seal modulada y transmitida(Medio). subplot(3,1,3); plot(t,z); % Dibuja la seal demodulada(Inferior).

    Figura 17. Modulacin y demodulacin por amplitud.

    0 0.01 0.02 0.03 0.04 0.05 0.06 0.07 0.08 0.09 0.1-1

    0

    1

    0 0.01 0.02 0.03 0.04 0.05 0.06 0.07 0.08 0.09 0.1-2

    0

    2

    0 0.01 0.02 0.03 0.04 0.05 0.06 0.07 0.08 0.09 0.1-2

    0

    2

    Fuente: Captura de Matlab versin trial (2008)..

    Tabla 7. Tipos de modulacin digital que soporta el toolbox.

    Mtodo de modulacin digital Acrnimo Comando para la modulacin Comando para la

    demodulacin Modulacin por desplazamiento diferencial

    de fase DPSK dpskmod dpskdemod

    Modulacin por desplazamiento de frecuencia FSK fskmod fskdemod

    Modulacin por desplazamiento mnimo MSK mskmod mskdemod Modulacin por desplazamiento en

    cuadratura compensada OQPSK oqpskmod oqpskdemod

    Modulacin por desplazamiento de fase PSK pskmod pskdemod Modulacin por amplitud de pulso PAM pammod pamdemod

    Modulacin por amplitud en cuadratura QAM qammod qamdemod Fuente: Armando Portela (2008)

  • 30

    UNIVERSIDADNACIONALABIERTAYADISTANCIA UNADESCUELADECIENCIASBSICASTECNOLOGAEINGENIERACONTENIDODIDCTICODELCURSO:208008CADAVANZADOPARAELECTRNICA

    Tabla 8. Sintaxis de los distintos Tipos de modulacin digital que soporta el toolbox.

    Modulac Sintaxis del comando de modulacin Sintaxis del comando de demodulacin

    DPSK

    y = dpskmod(x,M) y = dpskmod(x,M,phaserot) y = dpskmod(x,M,phaserot,symbol_order) x: mensaje que consiste de enteros entre 0

    y M 1, si este fuera una matriz con mltiple columnas y filas MATLAB procesa las columnas independientemente.

    M: es el tamao del alfabeto y debe ser entero.

    phaserot: especifica la rotacin de fases en radianes. En este caso el desplazamiento de fase total por smbolo es la suma del valor asignado en este argumento, ms la fase generada por la modulacin diferencial.

    symbol_order: especifica como la funcin asignar las palabras binarias correspondientes a los enteros.

    z = dpskdemod(y,M) z = dpskdemod(y,M,phaserot) z = dpskdemod(y,M,phaserot,symbol_order) y: mensaje modulado M: es el tamao del alfabeto y debe

    ser entero. phaserot: especifica la rotacin de

    fases en radianes. En este caso el desplazamiento de fase total por smbolo es la suma del valor asignado en este argumento, ms la fase generada por la modulacin diferencial.

    symbol_order: especifica como la funcin asignar las palabras binarias correspondientes a los enteros.

    FSK

    y = fskmod(x,M,freq_sep,nsamp) y = fskmod(x,M,freq_sep,nsamp,Fs) y = fskmod(x,M,freq_sep,nsamp,Fs,phase_cont) y = fskmod(x,M,freq_sep,nsamp,Fs,phase_cont,symbol_order) x: mensaje que consiste de enteros entre 0

    y M 1, si este fuera una matriz con mltiple columnas y filas MATLAB procesa las columnas independientemente.

    M: es el tamao del alfabeto y debe ser entero en potencias de 2.

    freq_sep: es la separacin deseada entre dos frecuencias sucesivas.

    nsamp: Es el nmero de muestras por smbolo en la seal modulada y debe ser un nmero positivo y mucho ms grande que 1.

    Por el teorema de muestreo de Nyquist , el valor de freq_sep y M deben satisfacer la condicin de (M-1)*freq_sep

  • 31

    UNIVERSIDADNACIONALABIERTAYADISTANCIA UNADESCUELADECIENCIASBSICASTECNOLOGAEINGENIERACONTENIDODIDCTICODELCURSO:208008CADAVANZADOPARAELECTRNICA

    Tabla 8. Sintaxis de los distintos Tipos de modulacin digital que soporta el toolbox. (Continuacin)

    Modulac Sintaxis del comando de modulacin Sintaxis del comando de demodulacin

    MSK

    y = mskmod(x,nsamp) y = mskmod(x,nsamp,dataenc) y = mskmod(x,nsamp,dataenc,ini_phase) [y,phaseout] = mskmod(...)* x: mensaje que consiste de 0s y 1s, si este

    fuera una matriz con mltiple columnas y filas MATLAB procesa las columnas independientemente.

    nsamp: denota el nmero de muestras por smbolo en la seal modulada y debe ser un numero positivo.

    dataenc: especfica el mtodo de codificacin de los datos para la MSK, diff para la codificacin diferencial y nondiff para codificacin no diferencial.

    Ini_phase: Especifica la fase inicial del modulador MSK, este es un vector columna el cual su longitud es el nmero de canales y el cual sus valores son mltiplos enteros de de pi/2. Para evitar el anulamiento se del valor de dataenc se debe ajustar a un valor especfico.

    Esta lnea retorna el valor final de la fase de y. esto es til para mantener la continuidad cuando se est modulando una trama de bits futura, con una codificacin diferencial MSK. phaseout: tiene las mismas

    dimensiones que ini_phase y asume los valores de 0, pi/2, pi y 3*pi/2

    z = mskdemod(y,nsamp) z = mskdemod(y,nsamp,dataenc) z = mskdemod(y,nsamp,dataenc,ini_phase) z = mskdemod(y,nsamp,dataenc,ini_phase,ini_state) [z,phaseout] = mskdemod(...)* [z,phaseout,stateout] = mskdemod() El valor inicial de la fase es 0 y: mensaje modulado, si este fuera una

    matriz con mltiple columnas y filas MATLAB procesa las columnas independientemente.

    nsamp: denota el nmero de muestras por smbolo en la seal modulada y debe ser un nmero positivo.

    dataenc: especfica el mtodo de codificacin de los datos para la MSK, diff para la codificacin diferencial y nondiff para codificacin no diferencial.

    Ini_phase: Especifica la fase inicial del modulador MSK, este es un vector columna el cual su longitud es el nmero de canales y el cual sus valores son mltiplos enteros de de pi/2. Para evitar el anulamiento se del valor de dataenc se debe ajustar a un valor especfico.

    Ini_state: Especifica el estado inicial del demodulador, contiene la mitad del smbolo de la seal recibida previamente

    * Esta lnea retorna el valor final de la fase de y. esto es til para demodular una seal futura. phaseout: tiene las mismas

    dimensiones que ini_phase y asume los valores de 0, pi/2, pi y 3*pi/2.

    Stateout: retorna el valor final de nsamp de (y), el cual es til para la demodulacin del primer smbolo de una seal futura. Tiene las mismas dimensiones de ini_state.

    OQPSK

    y = oqpskmod(x) y = oqpskmod(x,ini_phase) x: el mensaje debe consistir valores

    enteros comprendidos entre 0 y 3, si este fuera una matriz con mltiple columnas y filas MATLAB procesa las columnas independientemente.

    Ini_phase: Determina la compensacin de fase de la seal modulada en radianes.

    z = oqpskdemod(y) z = oqpskdemod(y,ini_phase) y: el mensaje modulado, si este fuera una

    matriz con mltiple columnas y filas MATLAB procesa las columnas independientemente.

    Ini_phase: Determina la compensacin de fase de la seal modulada en radianes.

  • 32

    UNIVERSIDADNACIONALABIERTAYADISTANCIA UNADESCUELADECIENCIASBSICASTECNOLOGAEINGENIERACONTENIDODIDCTICODELCURSO:208008CADAVANZADOPARAELECTRNICA

    Tabla 8. Sintaxis de los distintos Tipos de modulacin digital que soporta el toolbox. Modulac Sintaxis del comando de modulacin Sintaxis del comando de demodulacin

    PSK

    y = pskmod(x,M) y = pskmod(x,M,ini_phase) y = pskmod(x,M,ini_phase,symbol_order) x: mensaje que consiste de enteros entre 0

    y M 1, si este fuera una matriz con mltiple columnas y filas MATLAB procesa las columnas independientemente.

    M: es el tamao del alfabeto y debe ser entero en potencias de 2.

    Ini_phase: Determina la fase inicial de la modulacin en radianes.

    Symbol_order: especifica como la funcin asignar las palabras binarias correspondientes a los enteros.

    z = pskdemod(y,M) z = pskdemod(y,M,ini_phase) z = pskdemod(y,M,ini_phase,symbol_order) y: mensaje modulado, si este fuera una

    matriz con mltiple columnas y filas MATLAB procesa las columnas independientemente.

    M: es el tamao del alfabeto y debe ser entero en potencias de 2.

    Ini_phase: Determina la fase inicial de la modulacin en radianes.

    Symbol_order: especifica como la funcin asignar las palabras binarias correspondientes a los enteros.

    PAM

    y = pammod(x,M) y = pammod(x,M,ini_phase) y = pammod(x,M,ini_phase,symbol_order) x: mensaje que consiste de enteros entre 0

    y M 1, si este fuera una matriz con mltiple columnas y filas MATLAB procesa las columnas independientemente.

    M: es el tamao del alfabeto y debe ser entero en potencias de 2.

    Ini_phase: Determina la fase inicial de la modulacin en radianes.

    Symbol_order: especifica como la funcin asignar las palabras binarias correspondientes a los enteros.

    z = pamdemod(y,M) z = pamdemod(y,M,ini_phase) z = pamdemod(y,M,ini_phase,symbol_order) y: mensaje modulado, si este fuera una

    matriz con mltiple columnas y filas MATLAB procesa las columnas independientemente.

    M: es el tamao del alfabeto y debe ser entero en potencias de 2.

    Ini_phase: Determina la fase inicial de la modulacin en radianes.

    Symbol_order: especifica como la funcin asignar las palabras binarias correspondientes a los enteros

    QAM

    y = qammod(x,M) y = qammod(x,M,ini_phase) y = qammod(x,M,ini_phase,symbol_order) x: mensaje que consiste de enteros entre 0

    y M 1, si este fuera una matriz con mltiple columnas y filas MATLAB procesa las columnas independientemente.

    M: es el tamao del alfabeto y debe ser entero en potencias de 2.

    Ini_phase: Determina la fase inicial de la modulacin en radianes.

    Symbol_order: especifica como la funcin asignar las palabras binarias correspondientes a los enteros.

    z = qamdemod(y,M) z = qamdemod(y,M,ini_phase) z = qamdemod(y,M,ini_phase,symbol_order) y: mensaje modulado, si este fuera una

    matriz con mltiple columnas y filas MATLAB procesa las columnas independientemente.

    M: es el tamao del alfabeto y debe ser entero en potencias de 2.

    Ini_phase: Determina la fase inicial de la modulacin en radianes.

    Symbol_order: especifica como la funcin asignar las palabras binarias correspondientes a los enteros

    Fuente: Armando Portela (2008)

  • 33

    UNIVERSIDADNACIONALABIERTAYADISTANCIA UNADESCUELADECIENCIASBSICASTECNOLOGAEINGENIERACONTENIDODIDCTICODELCURSO:208008CADAVANZADOPARAELECTRNICA

    Ejemplo de un sistema de Modulacin y demodulacin digital: Modular una seal aleatoria con la tcnica de QAM, transmitirla a travs de un canal ruidoso, recuperar la seal y medir la tasa de error de smbolo: %Se crea una seal aleatoria M = 32; % Tamao del alfabeto de smbolos x = randint(5000,1,M); % Mensaje seal aleatoria % Usar Modulacin 32-QAM. y = qammod(x,M); % Transmisin de los datos a travs de un canal AWGN yruidoso = awgn(y,15,'measured'); % Se crea el diagrama de dispersin de los datos ruidosos scatterplot(yruidoso); % Demodular para recuperar el mensaje. z = qamdemod(ynoisy,M); % Verifica la tasa de error de smbolo. [num,rt]= symerr(x,z) % %num: es el nmero de smbolos errados %rt: Es la relacin entre los smbolos errados y los datos transmitidos

  • 34

    UNIVERSIDADNACIONALABIERTAYADISTANCIA UNADESCUELADECIENCIASBSICASTECNOLOGAEINGENIERACONTENIDODIDCTICODELCURSO:208008CADAVANZADOPARAELECTRNICA

    Figura 18. Diagrama de dispersin.

    -6 -4 -2 0 2 4 6

    -6

    -4

    -2

    0

    2

    4

    6

    Qua

    drat

    ure

    In-Phase

    Scatter plot

    Fuente: Captura de Matlab versin trial (2008).. Este es el resultado de la medicin de tasa de error de smbolos, los resultados pueden variar en cada simulacin debido la aleatoriedad de la fuente, y del ruido. num = 601 rt = 0.1202

  • 35

    UNIVERSIDADNACIONALABIERTAYADISTANCIA UNADESCUELADECIENCIASBSICASTECNOLOGAEINGENIERACONTENIDODIDCTICODELCURSO:208008CADAVANZADOPARAELECTRNICA

    Filtrado. En los sistemas de comunicacin es necesario eliminar o atenuar las seales que no sean convenientes para el sistema y maximizar las que si lo hagan, por lo que se hace necesario filtrar las seales, esta tarea puede llevarse a cabo filtrando las seales de forma analgica o digital dependiendo de la aplicacin. MATLAB ofrece un toolbox especfico solo para el filtrado de seales. Aunque existen una gran cantidad de filtros, en el toolbox de comunicaciones solo se mencionaran los filtros de la transformada de Hilbert y coseno alzado, muchos de los otros tipos de filtros es encuentran en el toolbox de procesamiento de seales. Filtros con la transformada de Hilbert. Para disear filtros de la transformada de Hilbert es necesario utilizar el comando hilbiir y este comando brinda como respuesta:

    Un diagrama de la respuesta del filtro al impulso. Una caracterizacin cuantitativa del filtro utilizando un modelo de funcin de

    transferencia o modelo de variables de estado. La estructura del comando es la siguiente:

    hilbiir hilbiir(ts) hilbiir(ts,dly) hilbiir(ts,dly,bandwidth) hilbiir(ts,dly,bandwidth,tol)

    Cada una produce un diagrama de la respuesta al impulso del filtro que la funcin hilbiir disea, como tambin la respuesta al impulso del correspondiente filtro ideal de la Transformada de Hilbert.

    Hilbiir dibuja la respuesta impulso de un filtro digital de cuarto orden de la transformada de Hilbert, con un retraso de grupo de 1 segundo. La muestra es de 2/7 segundos. En este diseo en particular, el ndice de tolerancia es de 0.05. El diagrama tambin muestra la respuesta de un filtro ideal de la transformada de Hilbert con retraso de grupo de 1 segundo.

  • 36

    UNIVERSIDADNACIONALABIERTAYADISTANCIA UNADESCUELADECIENCIASBSICASTECNOLOGAEINGENIERACONTENIDODIDCTICODELCURSO:208008CADAVANZADOPARAELECTRNICA

    hilbiir(ts) dibuja la respuesta impulso de un filtro digital de cuarto orden de la transformada de Hilbert con un tiempo de muestreo de ts segundos y un retraso de grupo de ts*7/2. El ndice de tolerancia es de 0.05. El diagrama tambin muestra la respuesta de un filtro ideal de la transformada de Hilbert con un tiempo de muestreo de ts segundos y un retraso de grupo de ts*7/2 segundo.

    hilbiir(ts,dly), es igual a la sintaxis descrita anteriormente, excepto que el retraso de grupo del filtro es dly , para el filtro ideal y para el filtro que el comando hilbiir disea.

    hilbiir(ts,dly,bandwidth), es igual a la sintaxis descrita anteriormente, excepto que se especifica el ancho de banda (bandwidth) supuesto de la seal de entrada y el diseo del filtro debe usar el compensador para la seal de entrada.

    hilbiir(ts,dly,bandwidth,tol), es igual a la sintaxis descrita anteriormente, excepto que tol es el ndice de tolerancia. Si tol 1, entonces el orden del filtro es tol.

    Filtros de coseno alzado. La importancia del filtro de coseno alzado radica en que reduce al mnimo la Interferencia entre Smbolos (ISI). La funcin rcosine disea (pero no aplica los filtros) filtros de los siguientes filtros:

    Filtro de coseno alzado con respuesta al impulso finito FIR. Filtro de coseno alzado con respuesta al impulso infinito IIR. Filtro de coseno alzado FIR de raz cuadrada. Filtro de coseno alzado IIR de raz cuadrada.

    La sintaxis de este comando es la siguiente.

    num = rcosine(Fd,Fs) [num,den] = rcosine(Fd,Fs,type_flag) [num,den] = rcosine(Fd,Fs,type_flag,r) [num,den] = rcosine(Fd,Fs,type_flag,r,delay) [num,den] = rcosine(Fd,Fs,type_flag,r,delay,tol)

  • 37

    UNIVERSIDADNACIONALABIERTAYADISTANCIA UNADESCUELADECIENCIASBSICASTECNOLOGAEINGENIERACONTENIDODIDCTICODELCURSO:208008CADAVANZADOPARAELECTRNICA

    num = rcosine(Fd,Fs): disea un filtro de coseno alzado de respuesta finita al impulso (FIR) y retorna su funcion de transferencia. La seal de entrada digital tiene una frecuencia de muestreo Fd. La frecuencia de muestreo para el filtro es Fs. La relacion Fs/Fd debe ser un entero positivo ms grande que 1. El factor de rolloff del filtro por defecto es 5. El retraso de grupo, el cual es el tiempo entre la entrada del filtro y la respuesta del filtro al impulso. Equivalente el retraso de grupo es de 3/Fd. [num,den] = rcosine(Fd,Fs,type_flag,r): disea un filtro de coseno alzado usando como directiva la cadena de variable type_flag. Los tipos de filtro estn en la tabla 9

    Tabla 9. Tipos de filtros

    Tipo de filtro Valor de Type_flag con respuesta al impulso finito FIR default o fir/normal con respuesta al impulso infinito IIR iir o iir/normal de coseno alzado FIR de raz cuadrada. sqrt o fir/sqrt de coseno alzado IIR de raz cuadrada. iir/sqrt

    Fuente: Armano Portelo (2008) El valor por defecto de la tolerancia en el diseo de en un filtro IIR es de 0.01 [num,den] = rcosine(Fd,Fs,type_flag,r): Con esta sintaxis se especifica el factor de rolloff, que es un valor real entre [0, 1]. [num,den] = rcosine(Fd,Fs,type_flag,r,delay): especifica el retraso de grupo del filtro, medido en entradas muestreadas. El retraso (delay), es un entero positivo. El retraso real del diseo del filtro est dado por delay/Fd segundos.

    [num,den] = rcosine(Fd,Fs,type_flag,r,delay,tol): Especifica la tolerancia en el diseo del filtro IIR. El diseo del filtro FIR no necesita este argumento. Leccin 8: Simulacin de un Sistema de Comunicaciones La siguiente secuencia de comandos en Matlab muestra la Simulacin de un sistema de Comunicaciones Digitales. Primero se definen los parmetros bsicos y la fuente de seal con los que se va a trabajar, posteriormente se aplica modulacin de tipo 16QAM, se filtra la seal y por ltimo se procede al proceso de Demodulacin.

  • 38

    UNIVERSIDADNACIONALABIERTAYADISTANCIA UNADESCUELADECIENCIASBSICASTECNOLOGAEINGENIERACONTENIDODIDCTICODELCURSO:208008CADAVANZADOPARAELECTRNICA

    %%SISTEMA DE COMUNICACIN COMPLETO %% Tomado del toolbox de comunicaciones de MATLAB (Editado) % Definicin de los parmetros. M = 16; % Tamao de la constelacin k = log2(M); % Nmero de Bits por smbolo n = 3e4; % Nmero de bits a procesar. nsamp = 1; % Tasa de Sobremuestreo %% Fuente de Seal % Crear una trama de datos binarios como un vector columna x = randint(n,1); % Trama de datos binarios aleatorios. %%Preparar los datos para que sean modulados % Grafica los primeros 40 bits stem(x(1:40),'filled'); title('Bits Aleatorios'); xlabel('Indice de Bit'); ylabel('Valor Binario');

    Figura 19. Primeros 40 datos binarios.

    0 5 10 15 20 25 30 35 400

    0.1

    0.2

    0.3

    0.4

    0.5

    0.6

    0.7

    0.8

    0.9

    1Bits Aleatorios

    Indice de Bit

    Val

    or B

    inar

    io

    Fuente: Captura de Matlab versin trial (2008).. %% Mapeo de Bit a Smbolo % Transforma los bits en x en k-bits smbolos xsym = bi2de(reshape(x,k,length(x)/k).','left-msb'); %Modifica Forma Matriz

  • 39

    UNIVERSIDADNACIONALABIERTAYADISTANCIA UNADESCUELADECIENCIASBSICASTECNOLOGAEINGENIERACONTENIDODIDCTICODELCURSO:208008CADAVANZADOPARAELECTRNICA

    %% Diagrama de Smbolos % Dibuja los primeros 10 smbolo figure; % Crea una nueva ventana de figure stem(xsym(1:10)); title('Smbolos Aleatorios'); xlabel('ndices de Smbolos'); ylabel('Valor entero');

    Figura 20. Primeros 10 Smbolos

    1 2 3 4 5 6 7 8 9 100

    2

    4

    6

    8

    10

    12

    14Smbolos Aleatorios

    Indices de Smbolos

    Val

    or e

    nter

    o

    Fuente: Captura de Matlab versin trial (2008)..

    %DEFINICIN DEL FILTRO DE COSENO ALZADO nsamp = 4; % Modificacin de la tasa de muestreo para el filtro % Definicin del filtro % Se definen los parmetros relacionados con el filtro filtorder = 40; % Orden del filtro delay = filtorder/(nsamp*2); % Retraso de grupo %(# de entradas muestreadas) rolloff = 0.25; % Factor de Rolloff del filtro % Crea un filtro coseno de raz cuadrada rrcfilter = rcosine(1,nsamp,'fir/sqrt',rolloff,delay); % Dibuja la respuesta al impulso figure; impz(rrcfilter,1)

  • 40

    UNIVERSIDADNACIONALABIERTAYADISTANCIA UNADESCUELADECIENCIASBSICASTECNOLOGAEINGENIERACONTENIDODIDCTICODELCURSO:208008CADAVANZADOPARAELECTRNICA

    Figura 21. Respuesta al impulso del sistema.

    0 5 10 15 20 25 30 35 40-0.1

    0

    0.1

    0.2

    0.3

    0.4

    0.5

    0.6

    n (samples)

    Am

    plitu

    de

    Impulse Response

    Fuente: Captura de Matlab versin trial (2008).. %% Modulacin % Modular 16 QAM y = qammod(xsym,M); %% Seal Transmitida % Muetreo elevado y aplicacin del filtro de coseno alzado de raz cuadrada ytx = y; ytx = rcosflt(y,1,nsamp,'filter',rrcfilter); % Crea el patrn de ojo de la seal filtrada eyediagram(ytx(1:2000),nsamp*2);

  • 41

    UNIVERSIDADNACIONALABIERTAYADISTANCIA UNADESCUELADECIENCIASBSICASTECNOLOGAEINGENIERACONTENIDODIDCTICODELCURSO:208008CADAVANZADOPARAELECTRNICA

    Figura 22. Patrn de ojo de la seal filtrada

    -0.5 0 0.5-3

    -2

    -1

    0

    1

    2

    3

    Time

    Am

    plitu

    de

    Eye Diagram for In-Phase Signal

    -0.5 0 0.5-3

    -2

    -1

    0

    1

    2

    3

    Time

    Am

    plitu

    de

    Eye Diagram for Quadrature Signal

    Fuente: Captura de Matlab versin trial (2008)..

    %% Canal % Enva la seal sobre un canal AWGN. EbNo = 10; % In dB snr = EbNo + 10*log10(k) - 10*log10(nsamp); ynoisy = awgn(ytx,snr,'measured'); %%Seal recibida % Seal filtrada recibida usando un filtro de coseno alzado de raz cuadrada yrx = ynoisy; yrx = rcosflt(ynoisy,1,nsamp,'Fs/filter',rrcfilter); yrx = downsample(yrx,nsamp); % Baja de muestreo. yrx = yrx(2*delay+1:end-2*delay); % Cuenta del retraso. % Diagrama de dispersin % Crea un diagrama de dispersin de la seal antes y despus de ser filtrada h = scatterplot(sqrt(nsamp)*ynoisy(1:nsamp*5e3),nsamp,0,'g.'); hold on; scatterplot(yrx(1:5e3),1,0,'kx',h); title('Seal Recibida, Antes y despus del filtrado'); legend('Antes del filtrado','Despues del filtrado'); axis([-5 5 -5 5]); % Ajusta el rango de la axisa