MatLabs
-
Upload
davidlucas200 -
Category
Documents
-
view
213 -
download
0
description
Transcript of 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.
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.
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
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)).
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:
Tratamiento y Transmisión de Señales - Grado Ingeniería Electrónica Industrial
Tabla 1.1. Algunos resultados de la práctica 1.
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:
Tratamiento y Transmisión de Señales - Grado Ingeniería Electrónica Industrial
Finalmente se obtiene el bloque: