MatLabs

8
Tratamiento y Transmisión de Señales - Grado Ingeniería Electrónica Industrial Práctica 1. Cuantización uniforme y adaptable. OBJETIVOS: En esta práctica se realizará la simulación mediante MATLAB/Simulink de un sistema de cuantización uniforme y adaptable con adaptación de la ganancia hacia delante. El diagrama de este último sistema se muestra en la siguiente figura: x(n) Cuantizador uniforme Codificador c(n) G(n) c(n) x(n) ˆ G(n) Decodificador y(n) ŷ(n) ŷ’(n) Adaptación Ganancia x(n) Cuantizador uniforme Codificador c(n) G(n) c(n) x(n) ˆ x(n) ˆ G(n) Decodificador y(n) ŷ(n) ŷ’(n) Adaptación Ganancia Fig. 1.1. Cuantización adaptable con adaptación de ganancia. El objetivo de la práctica es doble; por un lado familiarizarse con el uso de la herramienta Simulink de Matlab y por otro implementar el esquema de adaptación analizado en teoría. Este esquema de cuantización permite reducir el error de cuantización especialmente para señales en las que predominan los valores de x(n) próximos a cero frente a las grandes amplitudes. INTRODUCCIÓN A SIMULINK: Simulink es una utilidad gráfica para la simulación de sistemas, tanto analógicos como discretos. En realidad, se trata de un recubrimiento de MatLab, un lenguaje interpretado que está especialmente adaptado al cálculo vectorial, lo que hace que sea adecuado para aplicaciones de procesado de señales (mono y bidimensionales), comunicaciones, control, etc. Para una primera sesión con Simulink, es conveniente seguir los siguientes puntos: 1. Arrancar MATLAB y fijar el directorio de trabajo. 2. Desde la ventana de comandos de MATLAB ejecutar la orden “simulink”. 3. Aparecerá entonces una nueva ventana con la biblioteca de módulos de SIMULINK y otras librerías. Los módulos están agrupados por su función general. 4. Lo primero que debe hacerse es crear un nuevo modelo (File-->New, o icono correspondiente) donde construir el esquema deseado. 5. Una vez abiertos los grupos de bloques necesarios, el sistema deseado se va generando mediante selección y desplazamiento de los bloques a la ventana de trabajo. 6. Para unir los distintos módulos del sistema se trazan líneas conductoras pulsando con el ratón en la salida de uno de los bloques y arrastrando hasta la entrada del siguiente (o viceversa). 7. Es posible cortar y copiar bloques como si de texto se tratase. 8. Los bloques y líneas se pueden desplazar seleccionándolos con el botón izquierdo y arrastrando hasta la nueva posición.

description

Diseño mabLab para aprender a funcionar

Transcript of MatLabs

Page 1: MatLabs

Tratamiento y Transmisión de Señales - Grado Ingeniería Electrónica Industrial

Práctica 1. Cuantización uniforme y adaptable.

OBJETIVOS:

En esta práctica se realizará la simulación mediante MATLAB/Simulink de un

sistema de cuantización uniforme y adaptable con adaptación de la ganancia hacia

delante. El diagrama de este último sistema se muestra en la siguiente figura:

x(n)Cuantizador

uniformeCodificador

c(n)

G(n)

c’(n)

x’(n)ˆG’(n)

Decodificador

y(n)ŷ(n)

ŷ’(n)

Adaptación

Ganancia

x(n)Cuantizador

uniformeCodificador

c(n)

G(n)

c’(n)

x’(n)x̂’(n)ˆG’(n)

Decodificador

y(n)ŷ(n)

ŷ’(n)

Adaptación

Ganancia

Fig. 1.1. Cuantización adaptable con adaptación de ganancia.

El objetivo de la práctica es doble; por un lado familiarizarse con el uso de la

herramienta Simulink de Matlab y por otro implementar el esquema de adaptación

analizado en teoría. Este esquema de cuantización permite reducir el error de

cuantización especialmente para señales en las que predominan los valores de x(n)

próximos a cero frente a las grandes amplitudes.

INTRODUCCIÓN A SIMULINK:

Simulink es una utilidad gráfica para la simulación de sistemas, tanto analógicos

como discretos. En realidad, se trata de un recubrimiento de MatLab, un lenguaje

interpretado que está especialmente adaptado al cálculo vectorial, lo que hace que sea

adecuado para aplicaciones de procesado de señales (mono y bidimensionales),

comunicaciones, control, etc. Para una primera sesión con Simulink, es conveniente

seguir los siguientes puntos:

1. Arrancar MATLAB y fijar el directorio de trabajo.

2. Desde la ventana de comandos de MATLAB ejecutar la orden “simulink”.

3. Aparecerá entonces una nueva ventana con la biblioteca de módulos de SIMULINK y

otras librerías. Los módulos están agrupados por su función general.

4. Lo primero que debe hacerse es crear un nuevo modelo (File-->New, o icono

correspondiente) donde construir el esquema deseado.

5. Una vez abiertos los grupos de bloques necesarios, el sistema deseado se va

generando mediante selección y desplazamiento de los bloques a la ventana de trabajo.

6. Para unir los distintos módulos del sistema se trazan líneas conductoras pulsando con

el ratón en la salida de uno de los bloques y arrastrando hasta la entrada del siguiente (o

viceversa).

7. Es posible cortar y copiar bloques como si de texto se tratase.

8. Los bloques y líneas se pueden desplazar seleccionándolos con el botón izquierdo y

arrastrando hasta la nueva posición.

Page 2: MatLabs

Tratamiento y Transmisión de Señales - Grado Ingeniería Electrónica Industrial

9. Cada bloque tiene una serie de parámetros que controla su funcionamiento. Para

verlos o modificarlos debe pulsarse dos veces sobre ellos.

10. El simulador propiamente dicho también tiene una serie de parámetros de control

que deben ajustarse adecuadamente, de acuerdo con las necesidades de cada caso. Esto

se consigue seleccionando Simulation en el menú de la ventana de trabajo. Dentro de

este menú se encuentran también las opciones para arrancar y detener la simulación.

DESARROLLO:

Se propone realizar la adaptación de ganancia en función de la señal de entrada.

Nótese que si x(n) tiene una desviación típica instantánea x(n) reducida, la ganancia

G(n) debe ser superior a la unidad para amplificar la señal y adaptarla al rango de

entrada del cuantizador uniforme. Por otro lado, si x(n) es elevada y la señal se ajusta

al rango de entrada del cuantizador, la ganancia debe de ser la unidad para mantener

inalterada la señal. Así, la ganancia G(n) se ha de definir inversamente proporcional a la

desviación típica G(n)= G0/x(n) resultando necesario acotarla entre un valor máximo y

mínimo (rango dinámico del adaptador).

REALIZACIÓN:

Ejecute Matlab y en la ventana de comandos introduzca la sentencia:

simulink

Con esta orden se abre el diálogo de la toolbox en cuestión. Como entrada se

suministrará una señal de voz en formato WAV de 8 bits con una frecuencia de

muestreo de 8 kHz. Para leerlo en Matlab se ha de utilizar el comando wavread en la

ventana de comandos de Matlab. Ejecute desde la ventana de comandos (“Command

Window”) de Matlab el siguiente código:

s= wavread('v11570c1.0.8k.wav');

Fs=8000;

t=0:1/Fs:(length(s)-1)/Fs;

entrada=[t s’];

Con él definimos la frecuencia de muestreo del sistema, el vector de tiempos y una

variable "entrada" que usará Simulink. En la realización de esta práctica (véase figura

1.2) se deben abordar los siguientes aspectos:

1. Proponga un método para realizar la estimación instantánea de la desviación

típica de x(n) basada en un “buffer” de N muestras de la señal [x(n-N+1),…, x(n-

1), x(n)]. Ej. N=30.

2. Construya el diagrama de bloques Simulink que permita realizar la simulación

del sistema. Use como variables del problema Gain1=1/10, =0.1 (intervalo de

cuantización);

3. Compruebe el correcto funcionamiento del sistema y proponga una manera de

evaluar la mejora que introduce este sistema de cuantización adaptable sobre un

sistema de cuantización convencional.

Page 3: MatLabs

Tratamiento y Transmisión de Señales - Grado Ingeniería Electrónica Industrial

Para todo ello, abra un nuevo modelo de Simulink: en la barra de Menú de

Simulink: "File", "New Model" (.mdl). Desde la barra de búsqueda de Simulink, busque

el bloque "From Workspace" para incorporar la variable "entrada" al modelo de

simulación mdl (Nota: previamente se ha definido el tiempo de muestreo para cada

valor de amplitud y la variable "entrada" como: entrada =[ t s'], véase ayuda de este

bloque).

Fig. 1.2. Diagrama de bloques Simulink para un sistema de cuantización adaptable y

comparación con uno uniforme.

Desarrollo del esquema de adaptación: En esta sección se presentan los bloques

necesarios para la implementación del esquema de adaptación. Cada uno de estos

bloques puede ser configurado dependiendo de las exigencias del problema mediante la

ventana de diálogo de cada bloque, a la que se accede con un doble click.

A continuación dentro de las librerías de Simulink (“Simulink Library

Browser”) seleccione la de “Simulink” que contiene los bloques principales. Con cada

bloque elegido, añádalo al nuevo modelo con el botón derecho y seleccionando “Add to

a new model”. De esta forma componga el diagrama de la figura 1.2. A continuación se

describe la selección de cada bloque y sus variables y parámetros más importantes.

Menú Fuentes (“Sources”):

“From Workspace” Adquiere las variables cargadas desde el espacio de trabajo

en Matlab.

Introduzca en

Data: entrada

Sample time: 1/Fs

Menú de bloques más utilizados (“Commonly used block”):

UNIFORME

ADAPTABLE

Page 4: MatLabs

Tratamiento y Transmisión de Señales - Grado Ingeniería Electrónica Industrial

Ganancia (“Gain”)

Selecciones la ganancia con valor 1/10

Visualizador (“Scope”): Visualiza, como un osciloscopio, la señal en el cable al que está

conectado

Menú de discontinuidades (“Discontinuities”):

Cuantizador (“Quantizer”): Seleccione el intervalo de cuantización con valor 0.1.

Saturación (“Saturation”): Seleccione a 50 el umbral de saturación

Menú de operaciones matemáticas (“Math Operations”):

Producto (“Product”)

Suma (“Sum”): Elija correctamente los signos

Función matemática (“Math Function”) : Elija la función recíproca para calcular la

inversa (1/u):

Menú de enrutado de la señal (“Signal Routing”):

Multiplexador (“Mux”)

Menú de Sumideros (“Sinks”)

Al espacio de trabajo (“To Workspace”): Guarda la variable en cuestión en el espacio

de trabajo de Matlab con el nombre "simout".

Menú de procesado de señal/estadística (“Signal ProcessingBlockset/Statistics”):

Raíz del Error cuadrático medio “RMS”. Calcula el valor RMS.

Estimador Sigma:

Este bloque debe ser implementado por el alumno de la manera que estime oportuna

(véase Apéndice). Considerando que la señal es de media nula, tenemos que

implementar a nivel de bloques la siguiente operación sobre la señal de entrada:

sqrt (sum([x(n-N+1),…, x(n-1), x(n)]/N)).

Page 5: MatLabs

Tratamiento y Transmisión de Señales - Grado Ingeniería Electrónica Industrial

SIMULACIÓN:

Las opciones básicas que se pueden configurar (en el menú “SimulationConfiguration

Parameters”) en Simulink son:

1. Tiempo de simulación en el que se especifica el comienzo (“Star time”) a 0.0

y el tiempo de parada (“Stop time”) a 3.5.

2. Método de integración en la que especificamos un paso o muestreo fijo en

las simulaciones de esta práctica (“Fixed-step”). La resolución se hace en

modo discreto (“Solver: discrete”).

3. Intervalo de muestreo sin restricciones (“Unconstrained”) y en modo

automático (“Auto”) en nuestro caso.

Para empezar la simulación pulse “start”:

Finalmente con bloques "scope" situados en los "cables" pertinentes y con las variable

creada por Simulink ("To Workspace") en Matlab podrá visualizar resultados como los

que se muestran a continuación:

Page 6: MatLabs

Tratamiento y Transmisión de Señales - Grado Ingeniería Electrónica Industrial

Tabla 1.1. Algunos resultados de la práctica 1.

Page 7: MatLabs

Tratamiento y Transmisión de Señales - Grado Ingeniería Electrónica Industrial

APÉNDICE: Estimación de la desviación típica

Dado que no existe un bloque en Simulink que directamente implemente el estimador

sigma, tenemos que seguir una serie de pasos para crearlo:

1. Una posible solución es escoger los bloques siguientes en un nuevo modelo que

una vez terminado añadiremos al esquema principal (Ej. d=30):

Analice el anterior sistema y compruebe que estamos realizando la operación

requerida.

2. En el menú de edición (“Edit”) creamos a continuación un subsistema (“Create

Subsystem”) seleccionando todos los bloques excepto “In” y “Out”.

3. A continuación editamos la máscara con “Edit Mask Subsystem”

Configuramos el icono y puertos desde la siguiente pantalla:

Configuramos los parámetros del bloque, en nuestro caso, el número de retardos:

Inicializamos el bloque con N=30 para satisfacer los requisitos de la práctica:

Page 8: MatLabs

Tratamiento y Transmisión de Señales - Grado Ingeniería Electrónica Industrial

Finalmente se obtiene el bloque: