Professional Documents
Culture Documents
English
Laboratory Session # 1.
Getting Started with the MATLAB Simulation Environment
SESSION GOAL: 1. To provide a short introduction to MATLAB 2. To understand how to get started with the vector-matrix computations 3. To simulate a linear filter in the vector form
Lab 1. - English
Espaol
MATLAB es un sistema interactivo que tiene como dato base un arreglo que no requiere ser dimensionado Esto permite resolver muchos problemas tcnicos computacionales, especficamente aquellos con planteamientos de vectores y matrices, en una fraccin de tiempo de la que tomara escribir un programa en un lenguaje escalar no interactivo como C o Fortran. El nombre MATLAB proviene de las siglas en ingles para matrix laboratory. En el ambiente universitario, es la herramienta estndar para los cursos introductorios y avanzados de matemticas, ingeniera y ciencias. En la industria MATLAB es la herramienta elegida para la investigacin, el desarrollo y el anlisis de alta productividad. MATLAB tiene una familia de soluciones para aplicaciones especficas denominadas toolboxes. Importantsimo para la mayora de los usuarios de MATLAB, los toolboxes permiten aprender y aplicar tecnologa especializada. Los toolboxes son colecciones muy completas de funciones (M-files) que aumentan el ambiente de MATLAB para la solucin de clases particulares de problemas. Algunas de las reas en las que los toolboxes estn disponibles son en procesamiento de seales, control de sistemas, redes neuronales, lgica difusa, ondeletas, simulacin, entre muchas otras.
Lab 1. - Espaol
English
Handle Graphics.
This is the MATLAB graphics system. It includes high-level commands for twodimensional and three-dimensional data visualization, image processing, animation, and presentation graphics. It also includes low-level commands that allow you to fully customize the appearance of graphics as well as to build complete Graphical User Interfaces on your MATLAB applications.
Espaol
El lenguaje MATLAB Se trata de un lenguaje de alto nivel de matriz / array con declaraciones de flujo de control, funciones, estructuras de datos, entrada/salida, y rasgos de programa mediante objetos. Permite tanto "de programacin pequea "para crear rpidamente de forma instantnea programas desechables, y "la programacin grande "para crear programas grandes y completas aplicaciones complejas. El ambiente de trabajo de MATLAB Este es el conjunto de herramientas y facilidades que usted trabaja con MATLAB como el usuario o programador. Ello incluye facilidades para el manejo de las variables en su rea de trabajo e importacin y exportacin de datos. Tambin incluye herramientas para el desarrollo, gestin, depuracin y compilacin de M-archivos, aplicaciones de MATLAB. Los manejadores de grficos (Handle Graphics) Esto es el sistema MATLAB de grficos. Esto incluye comandos de alto nivel para la visualizacin de datos bidimensional y tridimensional, el procesamiento de imgenes, la animacin, y la grfica de presentacin. Esto tambin incluye los comandos de bajo nivel que permiten personalizar totalmente el aspecto de grfica as como construir Interfaces Graficas completas de Usuario sobre aplicaciones en MATLAB. La biblioteca de funciones matemticas de MATLAB Se trata de una vasta coleccin de algoritmos computacionales que van desde funciones elementales como suma, seno, coseno, y aritmtica compleja, a las funciones ms sofisticadas como matriz inversa, matriz de valores propios, funciones de Bessel, y transformada rpida de Fourier. EL API (Interface de Aplicacin de Programa) de MATLAB Esto es una biblioteca que le permite escribir programas en C y Fortran que actan recprocamente con MATLAB. Esto incluye la facilidad de llamar rutinas de MATLAB (la unin dinmica), llamando a MATLAB como un motor computacional, y para leer y escribir archivos .mat.
2. La programacin en MATLAB
MATLAB es poderoso lenguaje de programacin axial como un ambiente interactivo de computacin. Los archivos que contienen cdigo en el lenguaje de MATLAB son llamados archivos M o M-files. Existen 2 tipos de archivos M. Scripts, que no aceptan argumentos de entrada ni regresan argumentos de salida. Estos operan sobre los datos en el espacio de trabajo. Funciones, que aceptan argumentos de entrada y regresan argumentos de salida. Variables internas son locales para la funcin.
Lab 1. - Espaol
English
If you're a new MATLAB programmer, just create the M-files that you want to try out in the current directory. As you develop more of your own M-files, you will want to organize them into other directories and personal toolboxes that you can add to MATLAB's search path. If you duplicate function names, MATLAB executes the one that occurs first in the search path. To view the contents of an M-file, for example,
myfunction myfunction.m,
use type
Scripts When you invoke a script, MATLAB simply executes the commands found in the file. Scripts can operate on existing data in the workspace, or they can create new data on which to operate. Although scripts do not return output arguments, any variables that they create remain in the workspace, to be used in subsequent computations. In addition, scripts can produce graphical output using functions like plot.
Lab 1. - English
Espaol Si usted es un nuevo programador MATLAB, solamente crea los Archivos .m que usted quiera probar en el directorio actual. Como usted desarrolla ms de sus propios Archivos de m, usted querr organizarlos en otros directorios y toolboxes personales que usted puede aadir al camino de bsqueda del MATLAB. Si usted duplica nombres de funcin, MATLAB ejecuta el que que ocurre primero en el camino de bsqueda. Para ver el contenido de un Archivo de m, por ejemplo, myfunction.m, el empleo escribe my function Scrips Cuando se invoca un script, MATLAB simplemente ejecuta el comando encontrado en el archivo. Los scripts pueden operar sobre datos ya existentes en el espacio de trabajo, o pueden crear nuevos datos sobre los cuales operar. A pesar de que los scripts no regresan argumentos de salida, cualquier variable que estos creen se preserva en el espacio de trabajo, para ser usado en clculos subsecuentes. Adems, los scripts pueden producir grficos de salida usando funciones como plot.
Lab 1. - Espaol
English
Working with matrices Input >> a = [1 2 3] a= 123 >> b = [1;2;3] b= 1 2 3 - column vector - row vector
We may use concatenation for joining the string variables. Here is the example: >> a = Hello,; >> b = world!;
Lab 1. - English
Espaol >> [a b] ans = Trabajando con matrices. >> a=[1 2 3] a= 1 2 3 % vector renglon
>> b=[1;2;3] b= 1 2 3
% vector columna
% producto punto
% suma de a y la transpuesta de b
% vector de concatenacin
Lab 1. - Espaol
English
>> A = [1 1 2; 3 3 4; 1 2 3] - square 3-by-3 matrix A= 112 334 123 >> det(A) ans = 2 >> A * inv{A) ans = 1.0000 0 0 0 1.0000 0 0 0 1.0000 - a function that returns the determinant of a matrix
We have introduced here two simplest examples of invoking the MATLAB functions. Continue the study of the MATLAB functions invoking the MATLAB Help/ Examples and Demos/ Matrices/ Basic matrix operations.
Lab 1. - English
Espaol
Hello, world! >> A = [1 1 2; 3 3 4; 1 2 3] - square 3-by-3 matrix A= 112 334 123 >> det(A) - % la funcin retorna el determinante de la matriz ans = 2 >> A * inv{A) %Multiplicacion de la matriz A por la matriz inversa A ans = 1.0000 0 0 0 1.0000 0 0 0 1.0000 Hemos introducido aqu dos ejemplos simples de invocar funciones en MATLAB. Siga el estudio de las funciones de MATLAB que invocan la Ayuda de MATLAB / Ejemplos y Demos/ matrices/ operaciones Bsicas de la matriz.
1. Ejecute el ejemplo dado ms arriba en su computadora. 2. Modificar su ejemplo para los vectores de dimensin N (N especificar como un parmetro). 3. Haga concatenaciones de los vectores de dimensin N. 4. Forme matrices de dimensiones usando diferentes concatenaciones. 5. Componer un vector cero y un vector unidad de diferentes dimensiones. Utilice la funcin de MATLAB zeros() y ones(). Mostrar los resultados en la pantalla.
Lab 1. - Espaol
English
6. Understand how to compute the inner products, determinants of matrices and inverse matrices in MATLAB by running the examples of scripts . 7. Understand how to create graphs in MATLAB using standards commands: 7.1. Plot the result of the vector summation commands: >> plot(A) and >> grid off ; >> bar(A) , 7.3. Plot A = a + b with grid lines. Use the
7.2. Make graph type "bar" with axis labels using the commands: >> xlabel('string') >> ylabel('string'); Use the commands: and specify N . A using applying symbols in plot (for example, '*'). >> plot(A, '*') , axis(0 N 0 N)
8. Understand how to multiply the correspondent elements of two matrices using the .* operation. Run an example. 9. Understand how to obtain: 9.1. The eigenvalues of a matrix using function >> eig(A); 9.2. The characteristic polynomial of a matrix using >> p = round(poly(a)); 9.3. The roots of a polynomial using >> p = roots(p); 10. Understand how to convolve two vectors and display the result as a graph. Try two various ways: 1st using function >> conv(a,b); 2nd using element-by-element multiplication >> a.*b; Display the results using function >>plot(r); Run the example: >> r = conv(a,b); plot(r) .
11. Understand how to work with the MATLAB Help and Demo Environment running the examples from the MATLAB Demo Window.
Lab 1. - English
Espaol
1. Entender la forma de calcular productos internos, determinantes de matrices e inversa de matrices en MATLAB ejecutando los ejemplos de scripts. 2. Entender cmo crear grficos en MATLAB utilizando los comandos standar: 7,1. Parcela el resultado de la suma vectorial A = a + b con cuadrcula. Utilice los comandos: >> Plot(A) y >> grid off; 7,2. Haga grfico tipo "bar", con las etiquetas de los ejes >> Bar (A), >> xlabel ( 'cadena') >> mediante los comandos: ylabel ( 'cadena');
7,3. Trazar una aplicacin utilizando smbolos en la parcela (por ejemplo,'*'). Utilice los comandos: >> Plot (A, '*'), eje (0 N 0 N) y especificar N. 3. Entender cmo se multiplican los elementos correspondientes de dos matrices utilizando el operador .*. Ejecutar un ejemplo. 4. Entender la forma de obtener: 9,1.Los valores propios de
una
matriz usando
la
funcin>>
eig(A);
9,2. El polinomio caracterstico de una matriz usando>> p = round (poly (a)); 9,3. Las races de un polinomio utilizando>> p = roots(p); 5. Entender la Convolucin de dos vectores y mostrar el resultado en un grfico. Trate las dos formas: 1 funcin utilizando >> conv (a, b); 2 usando multiplicacin elemento por elemento >> a. * b; Mostrar los resultados utilizando la funcin >> plot (r); Ejecute el ejemplo:>> r = conv (a, b); plot (r). 6. Entender cmo trabajar con la ayuda de MATLAB y el funcionamiento del Ambiente Demo ejecutando ejemplos Demos de la ventana de MATLAB.
English
Let us start with the following example. function s = summa2(x) % SUMMA2(X) computes the sum of squared values of the numbers that compose vector X
s = 0; for i = 1:length(x) s = s + x(i)^2; end
Save this file as SUMMA2.M. The first line of a function M-file starts with the keyword function. It gives the function name and order of arguments. In this case, there are one input argument and one output argument. The next several lines, up to the first blank or executable line, are comment lines that provide the help text. These lines are printed when you type >> help summa2 The rest of the file is the executable MATLAB code defining the function. The variable s introduced in the body of the function is local to the function; it is separate from any variables in the MATLAB workspace.
>> summa2([1 2 3]) ans =
14 Vectorization To obtain the most speed out of MATLAB, it's important to vectorize the algorithms in your M-files. Where other programming languages might use For or Do loops, MATLAB can use vector or matrix operations. A vectorized version of the program code of function SUMMA2 presented above is function s=summa2(x) % SUMMA2(X) computes the sum of squared values of the numbers that compose vector X
s = 0; s = sum(x.*x);
Lab 1. - English
Espaol
Vamos a empezar con el siguiente ejemplo. function s = summa2(x) % SUMMA2(X) computes the sum of squared values of the numbers that compose vector X s = 0; for i = 1:length(x) s = s + x(i)^2; end Guardar este archivo como SUMMA2.M. La primera lnea de una funcin m-file comienza con la palabra clave de la funcin. Esto da el nombre de la funcin y el orden de argumentos. En este caso, tenemos un argumento de entrada y un argumento de salida. Las siguientes lneas, hasta la primera lnea en blanco o ejecutable, son lneas de comentario que proporcionan el texto de ayuda. Estas lneas son imprimidas cuando usted escribe. >> help summa2 El resto del archivo es el cdigo de MATLAB ejecutable que define la funcin. La variable s es introducida en el cuerpo de la funcin y es local a la funcin; es separado de cualquier variable en el espacio de trabajo MATLAB. >> summa2([1 2 3]) ans = 14 Vectorizacion Para obtener la mayor velocidad de MATLAB, es importante que vectorize los algoritmos en su Mfiles. Donde otros lenguajes de programacin podran usar for o Do loops, MATLAB pueden usar vectores u operaciones de la matriz. Una versin vectorized del cdigo de programa de funcin SUMMA2 presentado arriba es: function s=summa2(x) % SUMMA2(X) Calcula la suma de los valores cuadrados que componen el vector s = 0; s = sum(x.*x); - operador .* define multiplicacin elemento por elemento
Lab 1. - Espaol
English
For more complicated code, vectorization options are not always so obvious. When speed is important, however, you should always look for ways to vectorize your algorithms. MATLAB provides four functions that generate basic matrices:
zeros
All zeros
ones
All ones
rand
Lab 1. - English
Espaol
Para obtener un codigo mas complicado, las opciones de vectorizacin no son siempre tan evidentes. Cuando la velocidad es importante, sin embargo, siempre debe buscar maneras de vectorizar sus algoritmos. MATLAB ofrece cuatro funciones bsicas que generan matrices:
Algunos ejemplos: >>Z = zeros(2,4) Z= 0000 0000 >>F = 5*ones(3,3) F= 555 555 555 >>N = fix(10*rand(1,10)) N= 4944852680 Lab 1. - Espaol
English
M-Files You can create your own matrices using M-files, which are text files containing MATLAB code. Just create a file containing the same statements you would type at the MATLAB command line. Save the file under a name that ends in .m. For example, create a file containing these five lines:
A = [ ... 16.0 3.0 5.0 10.0 9.0 6.0 4.0 15.0 2.0 13.0 11.0 8.0 7.0 12.0 14.0 1.0 ];
Store the file under the name magik.m. Then the statement >>magik reads the file and creates a variable, A, containing our example matrix.
Concatenation Concatenation is the process of joining small matrices to make bigger ones. In fact, you made your first matrix by concatenating its individual elements. The pair of square brackets, [], is the concatenation operator. Deleting Rows and Columns You can delete rows and columns from a matrix using just a pair of square brackets. For any matrix A start with >>X = A; Then, to delete the second column of X, use
>>X(:,2) = []
Creating a Plot The plot function has different forms, depending on the input arguments. If y is a vector, plot(y) produces a piecewise linear graph of the elements of y versus the index of the elements of y. If you specify two vectors as arguments, plot(x,y) produces a graph of y versus x. For example, to plot the value of the sine function from zero to 2, use >> t = 0:pi/100:2*pi; >> y = sin(t);
Lab 1. - English
Espaol
M-Files Usted puede crear sus propias matrices usando M-archivos, que son archivos de texto que contienen cdigo de MATLAB. Simplemente crear un archivo que contiene las mismas declaraciones que usted escriba en la lnea de comandos MATLAB. Guarde el archivo bajo un nombre que termina en. M. Por ejemplo, cree un archivo que contenga estas cinco lneas: A = [ ... 16.0 3.0 2.0 13.0 5.0 10.0 11.0 8.0 9.0 6.0 7.0 12.0 4.0 15.0 14.0 1.0 ]; Guarde el archivo con el nombre magik.m. A continuacin la declaracin. >> Magik lee el archivo y cree una variable, A, que contiene matriz de nuestro ejemplo. Concatenacin Concatenacin es el proceso de adhesin a las pequeas matrices para hacerlas ms grandes. De hecho, usted ha hecho su primera matriz de concatenar cada uno de sus elementos. El par de corchetes, [], es el operador de concatenacin.
Eliminar filas y columnas. Puede eliminar filas y columnas de una matriz usando slo un par de corchetes. Para cualquier matriz A de comenzar con: >> X = A; Entonces, para suprimir la segunda columna de X, usar >> X (:, 2) = [] la Creacin Plot La funcin plot tiene formas diferentes, dependiendo los argumentos de entrada. Si y es un vector, el plot (y) produce un grfico piecewise lineal de los elementos de y contra el ndice de los elementos de y. Si usted especifica dos vectores como argumentos, el argumento (x, y) produce un grfico de y contra x. Por ejemplo, para trazar el valor del seno funcionan del cero a 2pi, use: >> t = 0:pi/100:2*pi; >> y = sin(t); Lab 1. - Espaol
English
plot(t,y)
Multiple x-y pairs create multiple graphs with a single call to plot. MATLAB automatically cycles through a predefined (but user settable) list of colors to allow discrimination between each set of data. For example, these statements plot three related functions of t, each curve in a separate distinguishing color: >> y2 = sin(t-.25); >> y3 = sin(t-.5); >> plot(t,y,t,y2,t,y3)
Subplots The subplot function allows you to display multiple plots in the same window or print them on the same piece of paper. Typing >> subplot(m,n,p) breaks the figure window into an m-by-n matrix of small subplots and selects the pth subplot for the current plot. The plots are numbered along first the top row of the figure window, then the second row, and so on. For example, you may modify the above program as follows, >> t = 0:pi/100:2*pi; >> y = sin(t); >> subplot(3,1,1); >> plot(y) >> y2 = sin(t-.25); >> subplot(3,1,2); >> plot(y2) >> y3 = sin(t-.5); >> subplot(3,1,3); >> plot(y3) You may use function title('string') to add title to current Axes. (For more details read the item Getting Started from MATLAB Help Desk)
Lab 1. - English
Espaol
>> plot(t,y)
Mltiples pares de x-y crean mltiples grficos con una llamada a plot. MATLAB automticamente crea ciclos predefinido lista de colores para permitir a discriminacin entre cada juego de datos. Por ejemplo, estas declaraciones trazan tres funciones relacionadas de t, cada curva en un color diferente:
>> y2 = sin(t-.25); >> y3 = sin(t-.5); >> plot(t,y,t,y2,t,y3)
Subplots La funcin subplot le permite mostrar mltiples argumentos en la misma ventana o imprimirlos sobre la misma hoja de papel. Mecanografa.
>> subplot(m,n,p)
Divide la ventana de figura en una matriz de m-por-n de pequeos subplot y selecciona el subplot para el argumento actual. Los argumentos son numerados a lo largo de primera fila superior de la ventana de figura despus la segunda fila, etctera. Por ejemplo, usted puede modificar el susodicho programa as, >> t = 0:pi/100:2*pi; >> y = sin(t); >> subplot(3,1,1); >> plot(y) >> y2 = sin(t-.25); >> subplot(3,1,2); >> plot(y2) >> y3 = sin(t-.5); >> subplot(3,1,3); >> plot(y3) Puede usar la funcin title ( 'string') y agregar ttulos a los ejes actuales. (para mas detalles leer la ayuda que ofrece Matlab)
Lab 1. - Espaol
English
Example 2. Bar plot of a bell shaped curve: >> x=-2.9:0.1:2.9; bar(x, exp(-x.*x)) Example 3. Stem plot: >> x=0:0.1:4; y=sin(x.^2).*exp(-x); stem(x,y)
Example 4. Error bar: >> x=-2:0.1:2; y=erf(x); e=rand(size(x))/10; errorbar(x,y,e) 3. Understand how to create a toeplitz-form matrix using function toeplitz(a); 4. Understand how to display the 3-D graph of a matrix using function mesh(A); surf(A); countor(A) . Example 1. Example 2. Example 3. A=peaks(25);mesh(A) A=peaks(25);surf(A) A=peaks(25);contour(A)
5. Understand how to display the results of vector-matrix computations using mesh(), subplot(), plot(), xlabel() ylabel() and title() functions. 6. Create your own examples of M-file to run the programs of the above tasks.
________________________________________________
Lab 1. - English
Espaol
Ejemplo 2. Bar plot de una curva de campana: >> x =-2.9:0.1:2.9; barra (x, exp (-x.*x)) Ejemplo 3. Stem plot: >> x=0:0.1:4; y=sin(x.^2).*exp(-x); stem(x,y) Ejemplo4. Error bar: >> x=-2:0.1:2; y=erf(x); e=rand(size(x))/10; errorbar(x,y,e) 3 Entender cmo crear una forma de toeplitz matriz usando la funcin toeplitz (a); 4. Entender cmo mostrar el 3-D grfico de una matriz usando la funcin de mesh (A); surf (A); countor (A). Ejemplo 1. A=peaks(25);mesh(A) Ejemplo2. A=peaks(25);surf(A) Ejemplo 3. A=peaks(25);contour(A) 1. Entender como mostrar los resultados de calculos vector-matriz usando las funciones mesh (), subplot(), plot(), xlabel () ylabel () y title(). 2. Crear sus propios ejemplos M-File para ejecutar los programas de las tareas comentadas.
7. Ejemplo Prctico: Simulando un Filtro lineal en Forma Vectorial Objetivo de la sesin. Considere dadas: 1.-N La dimensin (longitud) de la seal de informacin vectorial v; 2.-Ampl. El valor mximo de la magnitud del vector informacin; 3.-N0 Constante de densidad de ruido blanco (varianza del ruido); 4.-K El ancho de la funcin de dispersin del sistema (matriz instrumental del sistema) S; Realice los siguientes clculos y simulaciones: 1.-Calcule y grafique el vector v para un conjunto dado de elementos no nulos y el vector de ruido blanco Gaussiano n; 2.-Calcule y grafique la matriz del sistema S de forma toeplitz para un primer rengln dado (calculado). 3.-Calcule y grafique el vector de datos degradado resultante (suavizada y con ruido) u = Sv + n.
Lab 1. - Espaol
English
7.1. Formation of the information signal vector Initialize the information vector as v=zeros(N,1); Assign the nonzero elements of the information vector as follows: v(30,1)=0.6*Ampl; v(45,1)=0.1*Ampl; v(90,1)=0.4*Ampl; This fragment of the program returns the information vector that has three nonzero elements in positions 30, 45 and 90 with amplitudes that are the fractions of the parameter Ampl. 7.2. Formation of the system matrix. To form the system matrix S it is convenient to use the special so-called toeplitz function as S=toeplitz(b); where b denotes the vector of the first column (or the first row) of a toeplitz matrix. Example Consider the rectangular shape of the system response function rect(K) of a given width K . Then we may program the procedure for forming the relevant system matrix S as follows: b=zeros(N,1); for i=1:floor(K/2), b(i)=a; end S=toeplitz(b); Perform the following computations: Modify the written above program for forming the system matrices that simulate the two other system spread (instrumental) function models: ) S2(x) = rect(K) exp(x2/a) b) S3(x) = rect(K)| sin(ax)/ax | Consider the given width K for the both functions.
Lab 1. - English
Espaol
Lab 1. - Espaol
English
for signal, noise, system and data simulation. Use three types of system matrices of a toeplitz form: S1(x) = rect(K) S2(x) = rect(K) exp(x2/a) S3(x) = rect(K) | sin(ax)/ax | 2. Graph (display) the results of simulations of v, n, S and u (for different models of ther input vector, noise intensity N0 and system matrix) using the MATLAB functions mesh(), subplot(), plot(), title(), etc . Lab 1. - English
S1(x)= rect(K) S2(x)= rect(K)*exp(-x2/a) S3(x)= rect(K)*|sin(ax)/ax| 2. Grafique (muestre) los resultados de la simulacin de v, n, S y u (para diferentes modelos de vector de entrada, intensidad de ruido N0 y matrices de sistema) usando las funciones de MATLAB mesh(), subplot(), plot(), title(), etc.
Lab 1. - Espaol