• No se han encontrado resultados

CAD Avanzado para electrónica julio 2009 V2

N/A
N/A
Protected

Academic year: 2021

Share "CAD Avanzado para electrónica julio 2009 V2"

Copied!
253
0
0

Texto completo

(1)

 

U

U

N

N

I

I

V

V

E

E

R

R

S

S

I

I

D

D

A

A

D

D

N

N

A

A

C

C

I

I

O

O

N

N

A

A

L

L

A

A

B

B

I

I

E

E

R

R

T

T

A

A

Y

Y

A

A

D

D

I

I

S

S

T

T

A

A

N

N

C

C

I

I

A

A

E

E

S

S

C

C

U

U

E

E

L

L

A

A

D

D

E

E

C

C

I

I

E

E

N

N

C

C

I

I

A

A

S

S

B

B

Á

Á

S

S

I

I

C

C

A

A

S

S

T

T

E

E

C

C

N

N

O

O

L

L

O

O

G

G

Í

Í

A

A

E

E

I

I

N

N

G

G

E

E

N

N

I

I

E

E

R

R

Í

Í

A

A

P

P

R

R

O

O

G

G

R

R

A

A

M

M

A

A

I

I

N

N

G

G

E

E

N

N

I

I

E

E

R

R

I

I

A

A

E

E

L

L

E

E

C

C

T

T

R

R

Ó

Ó

N

N

I

I

C

C

A

A

2

2

0

0

8

8

0

0

0

0

8

8

C

C

A

A

D

D

A

A

V

V

A

A

N

N

Z

Z

A

A

D

D

O

O

P

P

A

A

R

R

A

A

E

E

L

L

E

E

C

C

T

T

R

R

Ó

Ó

N

N

I

I

C

C

A

A

J

J

U

U

A

A

N

N

O

O

L

L

E

E

G

G

A

A

R

R

I

I

O

O

M

M

O

O

N

N

R

R

O

O

Y

Y

V

V

A

A

S

S

Q

Q

U

U

E

E

Z

Z

( (DDiirreeccttoorrNNaacciioonnaall))

O

O

S

S

C

C

A

A

R

R

D

D

O

O

N

N

A

A

L

L

D

D

O

O

R

R

O

O

D

D

R

R

I

I

G

G

U

U

E

E

Z

Z

( (AAccrreeddiittaaddoorr))

S

S

O

O

G

G

A

A

M

M

O

O

S

S

O

O

J

J

u

u

l

l

i

i

o

o

d

d

e

e

2

2

0

0

0

0

9

9

(2)

 

This work is licensed under a Creative Commons Attribution‐NoDerivs 2.5 License. CURSO: CAD PARA ELECTRÓNICA

@Copyright Universidad Nacional Abierta y a Distancia ISBN

2009

(3)

ASPECTOS DE PROPIEDAD INTELECTUAL Y VERSIONAMIENTO

El presente módulo fue diseñado en el año 2008 por el Ing. Electrónico Armando Portela Duarte, integrante de la Fundación Internacional Para La Investigación de la Cultura y la Participación.

El presente módulo ha tenido una actualización, desarrollada en Julio de 2009 por los Ingenieros Juan Olegario Monroy Vásquez y Sandra Isabel Vargas López, tutores de la UNAD en el CEAD Sogamoso. El Ingeniero Monroy se desempeña actualmente como director del curso a nivel Nacional.

En este mismo año el Ing. Oscar Donaldo Rodríguez, tutor del CEAD Pereira, apoyó el proceso de revisión de estilo del módulo y dio aportes disciplinares, didácticos y pedagógicos en el proceso de acreditación de material didáctico desarrollado en Julio de 2009.

(4)

INTRODUCCIÓN

CAD Avanzado para Electrónica es un curso metodológico de 3 créditos enmarcados en un campo de formación disciplinario, cuya intencionalidad es la de formar las bases teóricas y prácticas en el estudiante para que éste pueda implementar y ejecutar algoritmos en diferentes software de procesamiento numérico y de herramientas gráficas, mediante el uso de lenguajes de alto nivel. Esta temática 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 análisis y operaciones numéricas, simulaciones en el tiempo de modelos matemáticos de sistemas reales obteniendo información valiosa como datos estadísticos o gráficos que pueden representar infinidad de variables durante determinados procesos de diseño o investigación científica.

Para tal efecto el curso cosiste en 3 unidades didácticas, 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 características técnicas, operativas y ventajas de empleo de dicho software. En la Segunda Unidad se presentan de forma general las herramientas avanzadas para aplicaciones específicas del Matlab, en especial se analiza el entorno gráfico o SIMULINK, herramienta potente al momento de hacer simulación de modelos de sistemas.

Finaliza con el estudio del Labview, que es un entorno interactivo que emplea un lenguaje de programación muy novedoso conocido como programación gráfica o programación G altamente empleado en aplicaciones de adquisición de datos, instrumentación virtual y control industrial.

Los contenidos del curso serán presentados al estudiante empleando documentos digitales que podrán 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 acompañamiento

(5)

tutorial en foros y sesiones de Chat predefinidas, la evaluación del curso se realizará a partir de la guía de actividades en donde el estudiante también entrará a interactuar con sus compañeros en grupos para la realización de ciertas actividades, dejando evidenciar la importancia de la participación 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 autoevaluación que busca identificar puntos criticos donde es necesario hacer refuerzos o ampliar las consultas.

CAD Avanzado para electrónica sienta pues las bases primordiales en el estudiante para que aplique sus conocimientos matemáticos así como en sistemas informáticos para la programación de diferentes algoritmos y aplicaciones específicas que simplificarán ampliamente su trabajo en infinidad de aplicaciones donde se requiera el análisis numérico y modelado de sistemas.

(6)

INDICE DE CONTENIDO

UNIDAD 1. HERRAMIENTAS DE MATLAB 1

CAPITULO 1: ENTRADA/SALIDA Y FUNCIONES DE MATLAB 2

Lección 1: Manejo de archivos 3

Lección 2: Archivos *.m 6

Lección 3: Gráficas Bidimensionales. 9

Lección 4: Gráficas Tridimensionales 12

Lección 5: Funciones. 15

CAPITULO 2: TOOLBOX DE MATLAB 18

Lección 6: Introducción a los Toolbox de Matlab. 19

Lección 7: Toolbox de Comunicaciones. 23

Lección 8: Simulación de un Sistema de Comunicaciones 37

Lección 9: Toolbox de Sistemas de Control. 43

Lección 10: Simulación de un sistema de control 75

CAPITULO 3: SIMULINK. CONCEPTOS BASICOS 80

Lección 11: Características 80

Lección 12: Entorno de trabajo en Simulink 82

Lección 13: Modelos 86

Lección 14: Subsistemas. 93

(7)

ACTIVIDAD DE AUTOEVALUACIÓN UNIDAD 1 107

FUENTES DOCUMENTALES UNIDAD 1 108

UNIDAD 2. SIMULINK 111

CAPITULO 1: MODELAR CON SIMULINK 113

Lección 1. Modelar Ecuaciones 113

Lección 2: Modelar con Control de Flujo Condicional 118

Lección 3: Modelar con control de flujo Iterativo. 123

Lección 4: Ejemplos de Modelado. 127

Lección 5: Consejos para la Construcción de Modelos. 132

CAPITULO 2. NAVEGAR POR LOS MODELOS 132

Lección 6: Explorar, Buscar y Navegar por los Modelos. 133

Lección 7: Ejecutar la Simulación del modelo. 139

Lección 8: Importar y Exportar Datos. 142

Lección 9: Establecer la Configuración de la Simulación. 147

Lección 10: Resultados de la Simulación. 148

CAPÍTULO 3 BLOQUES, SEÑALES Y FUNCIONES S 152

Lección 11: Bloques y Señales. 152

Lección 12: Tipos de datos 158

Lección 13: Funciones S 159

Lección 14: Usar Funciones S en los modelos 160

(8)

ACTIVIDAD DE AUTOEVALUACIÓN UNIDAD 2 165

FUENTES DOCUMENTALES UNIDAD 2 166

UNIDAD 3. LABVIEW 170

CAPITULO 1. CONCEPTOS BASICOS DE LABVIEW 172

Lección 1: Características y Aplicaciones 172

Lección 2: Entorno de Trabajo. Panel Frontal. 174

Lección 3: Entorno de Trabajo. Diagrama de Bloques. 185

Lección 4: Ejecutar y Depurar un Instrumento Virtual. 191

Lección 5: Ejemplos. 195

CAPITULO 2. PROGRAMACION ESTRUCTURADA. 204

Lección 6: Estructuras Case y Sequence. 204

Lección 7: Estructuras Iterativas For, While. 208

Lección 8: Estructura Formula Node. 212

Lección 9: Variables Locales y Globales. 214

Lección 10: Sub VIs 216

CAPITULO 3. APLICACIONES EN LABVIEW 222

Lección 11: Filtrado de señales. 222

Lección 12: Análisis Espectral 224

Lección 13: Generación de Tablas en Labview para presentación de datos. 225

Lección 14: Manipulación de puertos. 226

(9)

ACTIVIDAD DE AUTOEVALUACIÓN UNIDAD 3 230

(10)

LISTADO DE TABLAS

Tabla 1. Funciones básicas para crear gráficas en 2D. 9

Tabla 2. Funciones para modificación de las gráficas. 10

Tabla 3. Otras Funciones graficas bidimensionales. 11

Tabla 4. Otras Funciones gráficas tridimensionales 14

Tabla 5. Tipos de modulación analógica que soporta el toolbox. 27 Tabla 6. Sintaxis de los distintos Tipos de modulación analógica que soporta el

toolbox. 28

Tabla 7. Tipos de modulación digital que soporta el toolbox. 29 Tabla 8. Sintaxis de los distintos Tipos de modulación 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 análisis de

sistemas de control. 64

Tabla 14. Sintaxis y ejemplos de comandos empleados para el análisis de la

(11)

Tabla 15. Parámetros de un Motor de Corriente Continua 76 Tabla 16. Relación entre sentencias en C y bloques de SIMULINK I 118 Tabla 17. Relación entre sentencias en C y bloques de SIMULINK II. 123

Tabla 18. Bloques virtuales. 153

Tabla 19. Librerías y bloques de SIMULINK de uso común. 157

(12)

LISTADO DE GRÁFICOS Y FIGURAS

Figura 1. Editor de Archivos *.m. 7

Figura 2. Función complejo.m en el editor de Archivos de Matlab 8

Figura 3. Ejecución del script complejo.m 8

Figura 4. Ejecución del comando plotyy() 9

Figura 5. Grafica de la función Seno. 10

Figura 6. Utilización del comando subplot. 11

Figura 7. Gráfica de una hélice. 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 Función raices2.m 17

Figura 11. Uso de la Función raices2.m. 17

Figura 12. Esquema general de los toolboxes. 20

Figura 13. Utilización de imread y imshow del Toolbox Procesamiento de

Imagenes. 21

Figura 14. Ventana Figure Matlab. Imagen a color 21

Figura 15. Utilización de rg2gray del Toolbox Procesamiento de Imagenes. 22 Figura 16. Ventana Figure Matlab . Imagen en escala de grises. 22

(13)

Figura 18. Diagrama de dispersión. 34

Figura 19. Primeros 40 datos binarios. 38

Figura 20. Primeros 10 Símbolos 39

Figura 21. Respuesta al impulso del sistema. 40

Figura 22. Patrón de ojo de la señal filtrada 41

Figura 23. Señal recibida antes y después del filtrado. 42 Figura 24. Interconexión en paralelo de dos modelos LTI. Adición y

sustracción 53

Figura 25. Interconexión en serie 54

Figura 26. Modelo compuesto. 56

Figura 27. Ejemplo de interconexión de sistemas 58

Figura 28. Interconexión de un sistema en paralelo 61

Figura 29. Interconexión de un sistema en serie 62

Figura 30. Interconexión de un sistema con retroalimentación 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 escalón 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. Comparación de los diagramas de Bodes continuo y discretos 71

(14)

Figura 37. Diagrama de Nyquist del sistema 72

Figura 38. Lazos de retroalimentación 73

Figura 39. Diagrama del lugar geométrico de las raíces del sistema 75 Figura 40. Esquema del circuito eléctrico y diagrama mecánico rotacional 75

Figura 41. Acceso a SIMULINK. 83

Figura 42. Pantalla inicial de SIMULINK 83

Figura 43. Ventana de Inserción de bloques y simulación, 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 librerías 88

Figura 48. Bloques organizados dentro del editor de modelo 89

Figura 49. Puerto de entrada y de salida. 89

Figura 50. Conexión de los bloques. 89

Figura 51. Ramificación de una conexión. 90

Figura 52. Cuadro de diálogo para la configuración de los parámetros de

simulación 91

Figura 53. Inicio y/o detención de la Simulación 91

Figura 54. Respuesta de la simulación. 92

(15)

Figura 56. Ejemplo del subsistema. 94

Figura 57. Selección de bloques 95

Figura 58. Señal de habilitación de un subsistema. 96

Figura 59. Ventana de diálogo para el ajuste de las salidas. 97 Figura 60. Ventana de diálogo para el ajuste de estados. 98

Figura 61. Apagado de la señal de control. 99

Figura 62. Modelo de un subsistema habilitado. 100

Figura 63. Indicador del funcionamiento de cada bloque. 100

Figura 64. Nivel de señal. 101

Figura 65. Subsistema activado por disparo. 102

Figura 66. Ventana de diálogo para la selección 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. Símbolo 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 conversión de unidades. 114

(16)

Figura 76. Diagrama de bloques de la ecuación diferencial. 115 Figura 77. Visualización de la respuesta de la ecuación diferencial. 116 Figura 78. Modelo del ejemplo como función de transferencia. 117

Figura 79. Diagnóstico de un lazo inválido 118

Figura 80. Implementación de la sentencia si-sino en SIMULINK. 119

Figura 81. Utilización de If- Else 121

Figura 82. Diagrama del subsistema If – Action 121

Figura 83. Implementación de la sentencia Switch en SIMULINK. 122 Figura 84. Implementación de la sentencia While en SIMULINK 123 Figura 85. Implementación de la sentencia For en SIMULINK. 125

Figura 86. Factorial de un número en Matlab. 126

Figura 87. Programación de un For en Simulink 127

Figura 88. Simulación de un sistema de orden 1. 128

Figura 89. Sistema Mecánico. 129

Figura 90. Simulación Sistema Mecánico. 130

Figura 91. Circuito RLC serie 130

Figura 92. Simulación sistema RLC serie 131

Figura 93. Editor de modelo. 133

Figura 94. Árbol de jerarquía. 134

(17)

Figura 96. Barra de menú principal. 135

Figura 97. Barra de búsqueda. 136

Figura 98. Controles de la barra de búsqueda. 136

Figura 99. El buscador. 137

Figura 100. Opciones de filtrado. 137

Figura 101. Panel de búsqueda avanzado. 138

Figura 102. Navegador de modelo. 139

Figura 103. Localización del botón de inicio 141

Figura 104. Localización del botón de parada, pausa y la barra de progreso de

la simulación. 141

Figura 105. Modelo con dos entradas. 144

Figura 106. Explorador de modelo para el ajuste de la configuración. 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 diagnóstico de la simulación. 151

Figura 111. Bloque que genera el error. 152

Figura 112. Ventana de diálogo de propiedades del bloque. 154 Figura 113. Ventana de diálogo de anotaciones del bloque. 155

(18)

Figura 115. Ventana de diálogo de llamados del bloque. 156 Figura 116. Relación entre un bloque de función S, su ventana de diálogo y el archivo fuente que define el comportamiento del bloque. 161

Figura 117. Parámetros de la S- función 162

Figura 118. Esquema de la relación Matemática de los bloques 163

Figura 119. Como SIMULINK ejecuta una simulación. 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 Numéricos. 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 Unión. 188

(19)

Figura 134. Botón de correr (run) 192 Figura 135. Botón de correr (run) mientras se ejecute la simulación 192 Figura 136. Botón de correr continuamente (run continuously) 192

Figura 137. Botón de correr roto 193

Figura 138. Botón de Ejecución iluminada (Highligth Execution) 194 Figura 139. Botón de Ejecución 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 numéricos 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. Ubicación de la Función Simulate Signal. 202 Figura 151. Aspecto Final del Panel Frontal. Generación de Señales Seno y

Coseno. 203

Figura 152. Aspecto final Diagrama de Bloques. Generación de Señales Seno

(20)

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. Definición 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

(21)

Figura 173. Icono que representa al subVI. 219 Figura 174. Icono del subVi seleccionando show conector. 219 Figura 175. Icono del subVI con adición de variables entrada/salida. 220

Figura 176. Llamando un SubVI. 220

Figura 177. Icono del subVI en el Diagrama de Bloques. 221

Figura 178. Utilización de un SubVI, Panel Frontal 221

Figura 179. Utilización 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. Cálculo de Transformada rápida de

Fourier. 224

Figura 183. Diagrama de bloques. Cálculo de Transformada rápida de

Fourier. 225

Figura 184. Panel Frontal. Generación de Tablas. 225

Figura 185. Diagrama de Bloques. Generación 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

(22)

U

UN

NI

ID

DA

AD

D

1

1.

.

H

HE

ER

RR

RA

AM

M

IE

I

EN

NT

TA

AS

S

D

DE

E

M

M

AT

A

TL

LA

AB

B

INTRODUCCIÓN

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 características técnicas, operativas y ventajas de empleo de dicho software.

JUSTIFICACION

En electrónica es de gran relevancia esta temática puesto que los lenguajes de alto nivel forman parte de las herramientas diarias de trabajo tanto de estudiantes como de profesionales y técnicos en el área. Estos tipos de software son empleados en infinidad de aplicaciones que requieren el manejo de complejos modelos matemáticos o en su defecto de operaciones iterativas que en un momento dado pueden servir de apoyo en el diseño, simulación y análisis tanto de circuitos análogos como digitales así como en el modelado de sistemas de control, de telecomunicaciones, de audio, etc.

INTENCIONALIDADES FORMATIVAS

Propósitos

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 diseño y desarrollo de soluciones a problemáticas planteadas como el aprendizaje de otras herramientas software.

(23)

Objetivos

Que el estudiante amplíe complemente y profundice en las características operativas, técnicas, 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 análisis numérico sobre el desarrollo manual.

Competencias

El estudiante conoce las características y posibilidades que le brindan las herramientas E/S y los toolbox de Matlab, además conoce los procedimientos sistemáticos para interactuar con éstos y dar soluciones a partir de sus implementación en problemas electrónicos.

Metas de aprendizaje

El estudiante aprenderá de forma individual las temáticas del módulo 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 pequeños programas o aplicaciones en donde el estudiante se valga de toda la información disponible, de su espíritu investigativo y del trabajo en grupo para buscar la manera de generar las soluciones más óptimas y funcionales ante las problemáticas planteadas.

Denominación de Capítulos

Capítulo 1. Entrada/Salida y funciones de Matlab Capítulo 2. Toolbox de Matlab

Capítulo 3. Simulink Conceptos Básicos

CAPITULO 1: ENTRADA/SALIDA Y FUNCIONES DE MATLAB

Introducción. MATLAB es una poderosa herramienta de programación 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

(24)

escribirlos, MATLAB dispone de funciones de lectura/escritura análogas, similares a las del lenguaje C que facilitan la importación/exportación de los datos.

Lección 1: Manejo de archivos

La introducción 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 función 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 número de identificación del archivo, este será usado para escribir y/o leer del archivo. Los tipos de interacción con el archivo son:

• ‘r’: si se desea abrir un archivo sólo para leer. • ‘w’: si se desea abrir un archivo sólo para escribir. • ‘r+’: si se desea abrir un archivo para leer y escribir.

• ‘a’: si se desea añadir la salida del programa a un archivo. En el caso de que no exista MATLAB creará el archivo. Si el archivo existe MATLAB añadirá 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:

(25)

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 quedaría.

>>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 número de datos que desean ser leídos.

Ejemplos de la especificación 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 números 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, ‘especificación de formatos’) Ejemplo:

Se posee un archivo llamado datos.txt (archivo creado en un editor de texto) que contiene los números 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.

(26)

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 sería: >> 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 función es fprintf, el formato para su ejecución 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.

(27)

Por ejemplo si se escribe A=5

>>fprintf(identificador, ‘%d’, A)

En el archivo que se específico 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 aplicación original y depositarlos entre los corchetes de una matriz o vector, en una línea 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 leídos 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 estén 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 numéricos y que esten separados por comas.

Lección 2: Archivos *.m

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

(28)

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 extensión *.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 diseñador escribir los archivos en texto ASCII con la extensión *.m (aunque pueden ser creados con cualquier otro editor de textos ASCII), estos contienen el conjunto de comandos o la definición 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 códigos, sino, que también 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 versión trial (2008).

A continuación se muestra la escritura de un archivo script que calcula la magnitud y el ángulo de un número 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.

(29)

Figura 2. Función complejo.m en el editor de Archivos de Matlab  

  Fuente: Captura de Matlab versión 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 automáticamente arroja el resultado en las variables m y ang.

Figura 3. Ejecución del script complejo.m

(30)

Lección 3: Gráficas Bidimensionales.

Las gráficas en 2D de MATLAB están orientadas a la representación gráfica de vectores y matrices. Para realizar todas las operaciones gráficas 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 básicas para crear gráficos 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 básicas para crear gráficas en 2D.

Comando Descripción

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

plotyy () Dibuja dos funciones sobre una misma ventana gráfica 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 gráficos con escalas logarítmicas en ambos ejes

semilogx () Crea gráficos con una escala logarítmica en el eje de las abscisas y lineal en el de las ordenadas

semilogx () Genera gráficos con una escala lineal en el eje de las abscisas y logarítmica en el de las ordenadas

Polar() Crea un grafico en coordenadas polares Fuente: Armando Portela (2008)

Figura 4. Ejecución 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

(31)

Existen otras funciones utilizadas para modificar las gráficas generadas añadiéndole títulos a las gráficas y a los ejes, etc. Estos comandos son:

Tabla 2. Funciones para modificación de las gráficas.

Comando Descripción

title(‘título’) Le coloca título al gráfico

xlabel(‘ejeX’) Le proporciona un título al eje de las abscisas. Con xlabel off desaparece.

xlabel(‘ejeY’) Le proporciona un título 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 posición en el que el puntero del ratón se encuentre en la gráfica y se haga clic

grid() Activa la introducción de una cuadrícula sobre la gráfica. Con el comando grid off este se desactiva.

Fuente: Armando Portela (2008)

Ejemplo: Graficar la función seno, en el intervalo de -10 a 10, colocándole un título y una marquilla, y activándole la función de cuadrícula (grid) (Figura 5).

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

Figura 5. Grafica de la función 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 Gráfica de seno Seno de x

(32)

El comando subplot permite dividir una ventana gráfica en m particiones horizontales y n verticales, con el propósito de representar múltiples gráficos en ella. Cada una de estas subventanas tiene sus propios ejes y conservan algunas características comunes con las otras subventanas. La forma general de este comando es: subplot(m,n,i), donde m y n son el número de subdivisiones en filas y columnas, e i es la subdivisión 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 gráficos en la misma ventana

Figura 6. Utilización del comando subplot.

Fuente: Captura de Matlab versión Trial (2008).

Otras funciones gráficas bidimensionales son mencionadas en la tabla 3. Tabla 3. Otras Funciones graficas bidimensionales.

Comando Descripción

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 gráficos con forma de “tarta”

pie3() Genera gráficos con forma de “tarta” y aspecto 3-D

area() similar plot(), pero rellenando en ordenadas de 0 a y

errorbar() representa sobre una gráfica –mediante barras– valores de errores

compass() Dibuja los elementos de un vector complejo como un conjunto de vectores partiendo de un origen común

(33)

Lección 4: Gráficas Tridimensionales

MATLAB posee varias posibilidades para realizar gráficas tridimensionales. Una de las maneras de realizar esto es la utilización del comando plot3, que es la analogía de la función plot en los gráficos 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 hélice. (ver Figura 7). >> X = [-2:0.01:2]; % Define el primer vector

>> plot3 (cos(2*pi*X), sin(2*pi*X), X); % En esta línea se definen los otros 2 vectores y se grafica la función.

>> grid

Figura 7. Gráfica de una hélice.

-1 -0.5 0 0.5 1 -1 -0.5 0 0.5 1 -3 -2 -1 0 1 2 3

(34)

Para dibujar superficies en un espacio tridimensional hay dos comandos básicos:

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 función ‘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 gráfica

>> 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 0 0.5 1 1.5 2 -2 -1.5 -1 -0.5 0 0.5 1 1.5 2 -4 -3 -2 -1 0 1 2 3 4

Fuente: Captura de Matlab versión trial (2008).

La diferencia de esta con la gráfica (ver Figura 9.) anterior radica en el comando que se utilizó en la última línea del código anterior, se cambió mesh por surf.

(35)

Figura 9. Grafica de la superficie con el comando surf. -2 -1.5 -1 -0.5 0 0.5 1 1.5 2 -2 -1.5 -1 -0.5 0 0.5 1 1.5 2 -4 -3 -2 -1 0 1 2 3 4

Fuente: Captura de Matlab versión trial (2008).

Otras funciones de gráficas tridimensionales son relacionadas en la tabla 4 Tabla 4. Otras Funciones gráficas tridimensionales

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

función en una malla de triángulos.

meshz mesh con plano de referencia en el valor mínimo y una especie de

“cortina” en los bordes del dominio de la función

trimesh Similar a mesh, dibuja una superficie 3-D a partir de los valores de una función en una malla de triángulos.

surfl Utilizada para controlar la iluminación determinando la posición 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 posición.

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 cilíndrica de radio 1 y altura 1, con 20 facetas laterales.

(36)

Lección 5: Funciones.

Las funciones de MATLAB se asemejan a las funciones matemáticas, en la medida en que representan una regla que modifica una variable de entrada transformándola en una variable de salida. La función 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 están 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 código escritas y guardadas de una forma determinada en archivos con extensión *.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 cómo debe ser creada y posteriormente empleada una función.

Reglas para escribir funciones. Para elaborar funciones, se debe generar un

nuevo archivo de texto con un nombre adecuado para reconocer la función, el archivo debe tener la extensión *.m, para que MATLAB lo reconozca.

La creación de funciones en MATLAB presenta algunas diferencias respecto de la elaboración de programas. La más relevante es la siguiente:

Una función incluye en la primera línea del archivo una cabecera donde se especifica su nombre, cuáles y cuántos argumentos tiene, y cuáles y cuántos

valores retorna. Dicha cabecera se identifica, además, 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 función de nombre producto, que tiene dos argumentos (x e y) y devuelve un valor en la variable a.

(37)

La primera línea es llamada línea de definición de función, donde se le proporciona el nombre, el número y el orden de los argumentos de entradas y salidas. Siguiendo la línea de definición de función, se debe realizar comentarios anteponiéndoles el símbolo porcentual (%). Esas líneas son llamadas texto de ayuda y son mostradas en respuesta del comando help seguido del nombre de la función. Las siguientes líneas constituyen el cuerpo de la función; 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 símbolo de porcentaje), todas las sentencias deben culminarse con un punto y coma (;) para suprimir la salida de cada comando. Estos archivos pueden tener múltiples entradas y múltiples salidas.

El cuerpo de la función contiene las sentencias que sean necesarias para calcular los valores que la función va a retornar. Para calcular dichos valores se utilizarán tanto los argumentos de la función 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 función (es decir, no toman valores desde el espacio de trabajo de MATLAB), y por tanto deberán ser inicializadas en ésta.

Además hay que tener en cuenta que las funciones nunca modifican las variables o argumentos de entrada, a no ser que se incluyan también como valores de retorno. Si el usuario las modifica dentro de la función, automáticamente 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 función que calcule las raíces de un polinomio de orden dos, ingresando los coeficientes a,b,c correspondientes al polinomio ax2+bx+c=0.

Se escribe la función 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 función, el argumento y el valor de retorno. Se guarda la función en el directorio de trabajo de matlab y se procede a llamarla desde la ventana de trabajo del programa.

(38)

Figura 10. Escritura de la Función raices2.m

Fuente: Captura de Matlab versión trial (2008)..

Una vez creada la función, 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 cálculo de las raíces del polinomio x2+2x+3=0, mediante el llamado de la función raíces2.m e ingresando los parámetros de entrada a, b, c, que en este caso corresponden a los números 1,2,3.

Figura 11. Uso de la Función raices2.m.

(39)

Funciones de MATLAB. MATLAB contiene una gran cantidad de funciones las

categorías incluyen:

• Elfun: Estos son las funciones matemáticas elementales, incluyen las funciones trigonométricas, logarítmicas y exponenciales, funciones para la manipulación de los números complejos, funciones modulares y funciones para el redondeo de números.

• Specfun: son comandos de funciones matemáticas más especializadas como funciones de Bessel, gamma y otras tantas usadas en el tratamiento analítico de sistemas. También incluye funciones para la creación de factores primos, otras para chequear que un número sea primo, funciones para encontrar el mínimo común múltiplo y el máximo común divisor y funciones para la conversión de coordenadas.

• Matfun: Estas son las funciones de las matrices.

• Datafun: son las funciones utilizadas en los análisis de datos, pueden determinar el valor máximo o mínimo dentro de una serie de números, incluyen funciones usadas en análisis estadísticos. Existen funciones para simular filtros y manipulación de archivos de sonido.

• Polyfun: Incluye funciones de interpolación para análisis geométrico, para derivar y multiplicar polinomios. También incluye funciones para encontrar las raíces de los polinomios.

• Funfun: son un grupo de funciones que resuelven ecuaciones diferenciales. También incluye funciones usadas para la integración numérica y funciones gráficas.

• 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

Introducción. Matlab posee librerías especializadas que agrupan un determinado

número de funciones que poseen características similares y tienen aplicaciones específicas. A estas librerías se les denomina Toolbox, que traduce literalmente caja de herramientas, gracias a estas ‘cajas de herramientas’ especializadas, se evita la escritura de códigos extensos y poco eficientes.

(40)

Lección 6: Introducción a los Toolbox de Matlab.

Los Toolbox o cajas de herramientas son una colección especializada de archivos .m diseñada para trabajar problemas específicos en ciertas áreas de Ingeniería, como Sistemas de Comunicaciones, Procesamiento de Señales, Redes neuronales, análisis Financiero entre otras.

Algunos de los Toolbox de Matlab son: • Procesamiento de Señales • Matematica Simbolica • Logica Difusa • Redes neuronales • Procesamiento de Imágenes • Comunicaciones

• Ecuaciones Derivadas parciales • Sistemas de Control • Identificación de sistemas • Optimización • Diseño de filtros • Bioinformatica • Estadistica • Analisis Financiero

Características. Entre las características que poseen los toolbox se tiene:

• Son grupos de comandos con características similares. • Ayudan a simplificar los cálculos de ciertas aplicaciones. • Facilitan la escritura de algoritmos.

Esquema general de los Toolbox. Como se ha dicho los toolbox son librerías

especializadas, los comandos ahí presentes se encuentran organizadas por orden alfabético y por categorías, para observar la organización 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 organización (Figura 12), aunque existen ítems

(41)

• Getting started (Inicio): Realizan una breve descripción 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 categorías): Se observan los comandos organizados en categorías particulares de cada toolbox. • Functions – Alphabetical List (Funciones – Lista alfabética): Los comandos

están organizados alfabéticamente.

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

• Printable Documentation (Información imprimible) (PDF): Este es un hipervínculo donde se muestra la información del toolbox en un formato de documento portable.

• Product Page (Pagina del producto): Este es un hipervínculo que dirige al usuario a la página de Mathworks, referente al toolbox.

Figura 12. Esquema general de los toolboxes.

Fuente: Captura de Matlab versión trial (2008)..

Ejemplo. Con ayuda del Toolbox de procesamiento de Imágenes tomar una fotografía 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 través de los comandos imread y imshow se lee, se guarda en la variable imagen1 y se muestra la imagen en la ventana Figure.

(42)

Figura 13. Utilización de imread y imshow del Toolbox Procesamiento de Imagenes.

Fuente: Captura de Matlab versión trial (2008).. Figura 14. Ventana Figure Matlab. Imagen a color  

Fuente: Captura de Matlab versión 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.

(43)

Figura 15. Utilización de rg2gray del Toolbox Procesamiento de Imagenes.

Fuente: Captura de Matlab versión 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 versión trial (2008)..

Mediante el comando imwrite se genera un archivo denominado ricardogris.jpg con la imagen en escala de grises.

(44)

Lección 7: Toolbox de Comunicaciones.

El toolbox de comunicaciones es una extensión de MATLAB, con funciones, comandos gráficos e interfaces empleadas para explorar, diseñar, analizar y simular algoritmos con las diferentes etapas de un sistema de comunicación. Las características esenciales de este toolbox son:

• Contiene funciones para diseñar las capas físicas de un enlace de comunicación, incluyendo codificación de fuente, codificación de canal, modulación, modelos de canal y ecualización.

• Comando de graficación para la visualización de las señales de comunicación.

• Interfaces graficas de usuario para comparar la tasa de error de bit de cualquier sistema con una amplia variedad de resultados analíticos probados.

• Datos del tipo Galois para la construcción de algoritmos de comunicación.

Nociones Básicas del toolbox. Este toolbox implementa una variedad de

comandos relacionados con las comunicaciones. Muchas de las funciones realizan cálculos asociados a un componente particular de un sistema de comunicaciones, como demoduladores o ecualizadores. Otras funciones que están enfocadas en el diseño y el análisis de diferentes sistemas.

Categorías de los comandos de los toolbox. Las funciones y comandos se

encuentran organizadas por categorías, estas son:

• Fuentes de señal: Comandos que crean fuentes de señales aleatorias.

• Evaluación del desempeño: Analiza y visualiza la respuesta de un sistema, al ruido inherente al mundo real y a los componentes de dicho sistema. El desempeño es evaluado mediante el uso de gráficas y así determinar si cumple con los requerimientos.

• BER Tool: Comandos utilizados para medir la tasa de error de bit.

• Codificación de fuente: También conocido como cuantización o formateo de señal, es la forma de reducir la redundancia de los datos o prepararla para su posterior procesamiento. La conversión de datos análogo/digital y la compresión de datos son formas de codificación de fuente.

• Modulación/Demodulación: Comandos para modular/demodular las señales tanto analógica como digital.

(45)

• Codificación del control de error: Son técnicas que detectan y posiblemente corrigen errores cuando son transmitidos en un sistema de comunicación digital. Para conseguir esto, el codificador no solo transmite los símbolos del mensaje si no que también transmite símbolos redundantes, el decodificador usa los símbolos redundantes para detectar y posiblemente corregir los errores.

• Filtrado: Comandos que sirven para la selección de señales dentro de cualquier rango de frecuencias.

• Interleaving (Entrelazador o entramador): Este permuta los símbolos de acuerdo a un mapeo, y el desentramado utiliza el mapeo inverso para recuperar la secuencia original de símbolos. El entramado y el desentramado son útiles para reducir los errores causados por ráfagas en un sistema de comunicaciones.

• Canales: Los canales de comunicaciones introducen, ruido desvanecimiento, interferencias y otras distorsiones a las señales que son transmitidas por estos. La simulación de un sistema de comunicación involucra el modelado de un canal basado en descripciones matemáticas del canal. Los diversos medios de transmisión tienen diferentes propiedades y son modelados con características diferentes.

• Ecualizadores: los canales dispersivos en función del tiempo pueden causar interferencia inter-simbólica (ISI), por ejemplo en un ambiente dispersivo multi-trayecto, el receptor observa versiones retrasadas de los símbolos transmitidos, los cuales pueden interferir con los otros símbolos transmitidos. Un ecualizador intenta mitigar el ISI y así incrementar el desempeño del receptor.

• Campos computacionales de Galois: Es un campo algebraico que tiene un número finito de miembros. Los campos de Gaolis tienen 2m miembros que son

utilizados para el control de codificación de error y son denotados GF(2m).

Fuentes de Señales. Cada sistema de comunicaciones contiene una o más

fuentes de señal, se puede usar este toolbox para generar señales aleatorias, lo cual es muy útil cuando se necesita simular ruido, errores o fuentes de señal. Las secciones son las siguientes:

• Ruido blanco gausiano: Esta función (wgn) genera matrices usando una distribución 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.

(46)

La estructura de este comando es las 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)

• Símbolos aleatorios: (randsrc) Este comando crea matrices aleatorias, independientes del alfabeto que el usuario especifique pero con una distribución 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 sería la siguiente; Variable = randsrc (M,N, Alfabeto)

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

(47)

• 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.

• Modulación y Demodulación.

En la mayoría de los medios de comunicación, solo un rango de frecuencias está disponible para la transmisión. Una forma de comunicar un mensaje cuya señal no se encuentre en el rango de frecuencias disponibles, es modificando la frecuencia hasta alcanzar una que este en concordancia con el sistema de comunicación, esta modificación de la frecuencia es lo que se llama modulación y el volver la señal a un estado muy cercano al original se llama demodulación. MATLAB posee herramientas que permiten hacer tanto modulación analógica como digital.

Dada una técnica de modulación, existes dos formas para simularlo, bandabase y pasabanda. La simulación bandabase también conocida el método equivalente pasabaja requiere menos cálculos computacionales. En esteToolbox la simulación bandabase es utilizada para la modulación digital mientras que para la modulación analógica se utiliza la simulación pasabanda.

Los métodos disponibles que contiene este Toolbox para realizar la modulación de un sistema de comunicación dependen del tipo de señal de entrada al sistema ya

(48)

sea análogo o digital. La siguiente tabla muestra las técnicas que soporta el toolbox:

Tabla 5. Tipos de modulación analógica que soporta el toolbox.

Método de modulación analógica Acrónimo Comando para la modulación

Comando para la demodulación

Modulación de amplitud (con supresión o

transmisión de portadora) AM ammod amdemod

Modulación de frecuencia FM fmmod fmdemod

Modulación de fase PM pmmod pmdemod

Modulacion de amplitud de banda simple SSB ssbmod ssbdemod Fuente: Armando Portela (2008)

Argumentos necesarios para realizar la modulación/demodulación analógica comunes para todos los tipos:

x: mensaje a modular y: mensaje modulado

Fc: Frecuencia de la señal portadora (Hz) Fs: Frecuencia de muestreo (Hz)

(49)

Tabla 6. Sintaxis de los distintos Tipos de modulación analógica que soporta el

toolbox.

Modulación Sintaxis del comando de

modulación Sintaxis del comando de demodulación

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,n um,den)

• carramp: amplitud de la portadora • num, den: establecen el numerador y

el denominador del filtro pasabajas usado en la demodulación(radianes) FM y= fmmod(x,Fc,Fs,freqdev) y = fmmod(x,Fc,Fs,freqdev,ini_phase • freqdev: es la constante desviación de frecuencia (Hz) de la señal modulada. z = fmdemod(y,Fc,Fs,freqdev) z = fmdemod(y,Fc,Fs,freqdev,ini_phase) • freqdev: es la constante desviación de

frecuencia (Hz) de la señal modulada.

PM

y = pmmod(x,Fc,Fs,phasedev)

y = pmmod(x,Fc,Fs,phasedev,ini_phase)

• phasedev: es la constante

desviación de fase (radianes) de la señal modulada.

z = pmmod(y,Fc,Fs,phasedev)

z = pmmod(y,Fc,Fs,phasedev,ini_phase) • phasedev: es la constante desviación

de fase (radianes) de la señal 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 modulación

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 demodulación(radianes)

Ejemplo: Modular y demodular una señal con el método de modulación 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); % Representación de la señal

y = ammod(x,Fc,Fs); % Modulación de x para producir y

yruidoso = awgn(y,15,'measured'); %Transmisión a través de un canal ruidoso

[num,den] = butter(10,Fc*2/Fs); % Definición del filtro pasabajas z = amdemod(yruidoso,Fc,Fs,0,0,num,den); % Demodulación. figure;

(50)

subplot(3,1,2); plot(t,yruidoso)% % Dibuja la señal modulada y transmitida(Medio).

subplot(3,1,3); plot(t,z); % Dibuja la señal demodulada(Inferior). Figura 17. Modulación y demodulación 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 versión trial (2008)..

Tabla 7. Tipos de modulación digital que soporta el toolbox.

Método de modulación digital Acrónimo Comando para la modulación

Comando para la demodulación

Modulación por desplazamiento diferencial

de fase DPSK dpskmod dpskdemod

Modulación por desplazamiento de

frecuencia FSK fskmod fskdemod

Modulación por desplazamiento mínimo MSK mskmod mskdemod Modulación por desplazamiento en

cuadratura compensada OQPSK oqpskmod oqpskdemod

Modulación por desplazamiento de fase PSK pskmod pskdemod Modulación por amplitud de pulso PAM pammod pamdemod Modulación por amplitud en cuadratura QAM qammod qamdemod Fuente: Armando Portela (2008)

Referencias

Documento similar