Courtesy of Thomas F Weiss. Used with permission. MASSACHUSETTS INSTITUTE OF TECHNOLOGY Department of Electrical Engineering and Computer Science Signals and Systems --6.003 NTRODUCTION TO MATLAB- Fall 1999 Thomas f. Weiss H modification September 9, 1999
MASSACHUSETTS INSTITUTE OF TECHNOLOGY Department of Electrical Engineering and Computer Science Signals and Systems — 6.003 INTRODUCTION TO MATLAB — Fall 1999 Thomas F. Weiss Last modification September 9, 1999 1 Courtesy of Thomas F. Weiss. Used with permission
Contents 1 Introduction 2 Getting Started 3 Getting Help from Within MATLAB 4 MATLAB Variables -Scalars, Vectors and Matrices 4.1 Complex number operations 4.2 Generating vectors 4.3 Accessing vector elements 5 Matrix Operations 5.1 Arithmetic matrix operations 334445556677 5.2 Relational operations 5.3 Flow control operations 5.4 Math functions 6 MATLAB Files 6.1 M-Files 6.1.1 Scripts 6.1.2 Functions 6.2 Mat-Files 8899 6.3 Postscript Files 6.4 Diary Files 7 Plotting 10 7.1 Simple plotting commands 11 7.2 Customization of plot 8 Signals and Systems Commands 8.1 Polynomials 8.2 Laplace and Z Transforms 8.3 Frequency responses 11233 8.4 Fourier transforms and filterin 9 Examples of Usage 13 9.1 Find pole-zero diagram, bode diagram, step response from system function. 13 9.1.1 Simple solution 9.1.2 Customized solution 9.2 Locus of roots of a polynomial 9.3 Response of an LTI system to an input 10 Acknowledgement 688
Contents 1 Introduction 3 2 Getting Started 3 3 Getting Help from Within MATLAB 4 4 MATLAB Variables — Scalars, Vectors, and Matrices 4 4.1 Complex number operations . . . ........................ 4 4.2 Generating vectors . . . ............................. 5 4.3 Accessing vector elements ............................ 5 5 Matrix Operations 5 5.1 Arithmetic matrix operations . . ........................ 6 5.2 Relational operations . . ............................. 6 5.3 Flow control operations . ............................. 7 5.4 Math functions . ................................. 7 6 MATLAB Files 7 6.1 M-Files . ..................................... 8 6.1.1 Scripts . . ................................. 8 6.1.2 Functions ................................. 8 6.2 Mat-Files ..................................... 9 6.3 Postscript Files . ................................. 9 6.4 Diary Files . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 7 Plotting 10 7.1 Simple plotting commands . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 7.2 Customization of plots . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 8 Signals and Systems Commands 11 8.1 Polynomials . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 8.2 Laplace and Z Transforms . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 8.3 Frequency responses . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 8.4 Fourier transforms and filtering . . . . . . . . . . . . . . . . . . . . . . . . . 13 9 Examples of Usage 13 9.1 Find pole-zero diagram, bode diagram, step response from system function . 13 9.1.1 Simple solution . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 9.1.2 Customized solution . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 9.2 Locus of roots of a polynomial . . . . . . . . . . . . . . . . . . . . . . . . . . 16 9.3 Response of an LTI system to an input . . . . . . . . . . . . . . . . . . . . . 18 10 Acknowledgement 18 2
1 Introduction MATLAB is a programming language and data visualization software package which is es- pecially effective in signal processing and systems analysis. This document is a brief in- troduction to MAtLAB that focuses on those features that are of particular importance in 6.003. It is assumed that the reader is familiar with Project Athena, has an Athena account and has little or no experience with MATLAB. Other MATLAB help is available through Athena consulting which offers a number of more tutorial handouts and short courses(ext 3-4435 ), on-line consulting(type olc at the Athena prompt), and Athena on-line help(type help at the Athena prompt). There are a number of books available that describe MAT LAB. For example, Engineering Problem Solving with Matlab, by D. M. Etter, published by Prentice-Hall(1997) and Mastering MATLAB, by Hanselman and Littlefield, published by Prentice-Hall(1996). The paperback MATLAB Primer by K. Sigmon, published by CRC Press(1994)is a handy summary of MATLAB instructions. Further information about MATLAB can be found at the web page of the vendor(The Math Works, Inc ) whose URL ishttp://www.mathworks.com.FulldocumentationcanbepurchasedbycontactingThe Math Works 2 Getting Started On Project Athena, MATLAB can be accessed directly from the Dashboard(menu at the top of the screen after you login to Project Athena) by using the hierarchical menu and navigating as follows Numerical/ Math//Analysis and Plotting//MATLAB MATLAB will then open a command window which contains the MATLAB prompt>> MATLAB contains a number of useful commands that are similar to uniX commands g, 'ls,, 'pwd, and cd. These are handy for listing MATLAB's working directory, checking the path to the working directory, and changing the working directory. matlaB checks for MATLAB files in certain directories which are controlled by the command path. The command pathlists the directories in MATLAB's search path. A new directory can be appended or prepended to MATLAB's search path with the command path(path, p)or path(p, path) where p is some new directory, for example, containing functions written by the There is specially designed software available which can also be accessed from the project Athena Dashboard by navigating as follows Courseware//Electrical Engineering and Computer Science// 6.003 Signals and Systems //MATLAB These commands display a graphical user interface for exploring several important topics in 6.003. The same software is used in lecture demonstrations Revisions of this document will be posted on the 6.003 homepage on the web
1 Introduction MATLAB is a programming language and data visualization software package which is especially effective in signal processing and systems analysis. This document is a brief introduction to MATLAB that focuses on those features that are of particular importance in 6.003.1 It is assumed that the reader is familiar with Project Athena, has an Athena account, and has little or no experience with MATLAB. Other MATLAB help is available through Athena consulting which offers a number of more tutorial handouts and short courses (ext. 3-4435), on-line consulting (type olc at the Athena prompt), and Athena on-line help (type help at the Athena prompt). There are a number of books available that describe MATLAB. For example, Engineering Problem Solving with Matlab, by D. M. Etter, published by Prentice-Hall (1997) and Mastering MATLAB, by Hanselman and Littlefield, published by Prentice-Hall (1996). The paperback MATLAB Primer by K. Sigmon, published by CRC Press (1994) is a handy summary of MATLAB instructions. Further information about MATLAB can be found at the web page of the vendor (The MathWorks, Inc.) whose URL is http://www.mathworks.com. Full documentation can be purchased by contacting The MathWorks. 2 Getting Started On Project Athena, MATLAB can be accessed directly from the Dashboard (menu at the top of the screen after you login to Project Athena) by using the hierarchical menu and navigating as follows: Numerical/Math//Analysis and Plotting//MATLAB. MATLAB will then open a command window which contains the MATLAB prompt ‘>>’. MATLAB contains a number of useful commands that are similar to UNIX commands, e.g., ‘ls’, ‘pwd’, and ‘cd’. These are handy for listing MATLAB’s working directory, checking the path to the working directory, and changing the working directory. MATLAB checks for MATLAB files in certain directories which are controlled by the command ‘path’. The command ‘path’ lists the directories in MATLAB’s search path. A new directory can be appended or prepended to MATLAB’s search path with the command path(path,p) or path(p,path) where p is some new directory, for example, containing functions written by the user. There is specially designed software available which can also be accessed from the Project Athena Dashboard by navigating as follows: Courseware//Electrical Engineering and Computer Science// 6.003 Signals and Systems//MATLAB. These commands display a graphical user interface for exploring several important topics in 6.003. The same software is used in lecture demonstrations. 1Revisions of this document will be posted on the 6.003 homepage on the web. 3
3 Getting Help from Within MATLAB If you know the name of a function which you would like to learn how to use, use the help command > help functionname This command displays a description of the function and generally also includes a list of related functions. If you cannot remember the name of the function, use the lookfor' command and the name of some keyword associated with the function > lookfor keyword This command will display a list of functions that include the keyword in their descriptions Other help commands that you may find useful are ' info, what, andwhich. descrip- tions of these commands can be found by using the help command. MATLAB also contains a variety of demos that can be with the 'demo'command 4 MATLAB Variables- Scalars. Vectors, and matri ces MATLAB Stores variables in the form of matrices which are mxn where m is the number of rows and n the number of columns. a 1 x1 matrix is a scalar: a 1xn matrix is a row vector, and M xl matrix is a column vector. All elements of a matrix can be real or complex numbers;v-I can be written as either"i'orj' provided they are not redefined by the user A matrix is written with a square bracket '[]' with spaces separating adjacent columns and semicolons separating adjacent rows. For example, consider the following assignments of the variable x Real scalar >>x=5 Complex scalar >>x=5+10j(or >>x=5+101) [123]( Column vector >>x= [1; 2: 3] 3 matrix>>x=[123;456;789 There are a few notes of caution. Complex elements of a matrix should not be typed with spaces, i.e., -1+2j is fine as a matrix element, -1 2j is not. Also, -1+2j is interpreted correctly whereas -1+j2 is not(MATLAB interprets the j2' as the name of a variable You can always write-1+j*2 4.1 Complex number operations Some of the important operations on complex numbers are illustrated below
3 Getting Help from Within MATLAB If you know the name of a function which you would like to learn how to use, use the ‘help’ command: >> help functionname This command displays a description of the function and generally also includes a list of related functions. If you cannot remember the name of the function, use the ‘lookfor’ command and the name of some keyword associated with the function: >> lookfor keyword This command will display a list of functions that include the keyword in their descriptions. Other help commands that you may find useful are ‘info’, ‘what’, and ‘which’. Descriptions of these commands can be found by using the help command. MATLAB also contains a variety of demos that can be with the ‘demo’ command. 4 MATLAB Variables — Scalars, Vectors, and Matrices MATLAB stores variables in the form of matrices which are M ×N, where M is the number of rows and N the number of columns. A 1 × 1 matrix is a scalar; a 1 × N matrix is a row vector, and M ×1 matrix is a column vector. All elements of a matrix can be real or complex numbers; √−1 can be written as either ‘i’ or ‘j’ provided they are not redefined by the user. A matrix is written with a square bracket ‘[]’ with spaces separating adjacent columns and semicolons separating adjacent rows. For example, consider the following assignments of the variable x Real scalar >> x = 5 Complex scalar >> x = 5+10j (or >> x = 5+10i) Row vector >> x = [1 2 3] (or x = [1, 2, 3]) Column vector >> x = [1; 2; 3] 3 × 3 matrix >> x = [1 2 3; 4 5 6; 7 8 9] There are a few notes of caution. Complex elements of a matrix should not be typed with spaces, i.e., ‘-1+2j’ is fine as a matrix element, ‘-1 + 2j’ is not. Also, ‘-1+2j’ is interpreted correctly whereas ‘-1+j2’ is not (MATLAB interprets the ‘j2’ as the name of a variable. You can always write ‘-1+j*2’. 4.1 Complex number operations Some of the important operations on complex numbers are illustrated below 4
omp >>x=3+4 maginary part of IT > imag(x)=4 Magnitude of ar >>abs(x) →5 Angle of >> angle(x)=→0.9273 plex conjugate of >> conj(x) →3-4i 4.2 Generating vectors Vectors can be generated using the command. For example, to generate a vector a that takes on the values 0 to 10 in increments of 0.5, type the following which generates a 1 x 21 matrix Other ways to generate vectors include the commands: "linspace' which generates a vector by specifying the first and last number and the number of equally spaced entries between the first and last number, and"logspace' which is the same except that entries are spaced logarithmically between the first and last entry 4.3 Accessing vector ele ts Elements of a matrix are accessed by specifying the row and column. For example, in matrix specified by A=[1 2 3;456:789], the element in the first row and third column can be accessed by writing > x=A(1, 3)which yields 3 The entire second row can be accessed with A (2,: which yields [4 5 6] where the: ' here means"take all the entries in the column". A submatrix of A consisting of rows 1 and 2 and all three columns is specified by >>z=A(1:2,1:3) which yields[123;456 5 Matrix Operations MATLAB contains a number of arithmetic, relational, and logical operations on matrices
Complex scalar >> x = 3+4j Real part of x >> real(x) =⇒ 3 Imaginary part of x >> imag(x) =⇒ 4 Magnitude of x >> abs(x) =⇒ 5 Angle of x >> angle(x) =⇒ 0.9273 Complex conjugate of x >> conj(x) =⇒ 3 - 4i 4.2 Generating vectors Vectors can be generated using the ‘:’ command. For example, to generate a vector x that takes on the values 0 to 10 in increments of 0.5, type the following which generates a 1 × 21 matrix >> x = [0:0.5:10]; Other ways to generate vectors include the commands: ‘linspace’ which generates a vector by specifying the first and last number and the number of equally spaced entries between the first and last number, and ‘logspace’ which is the same except that entries are spaced logarithmically between the first and last entry. 4.3 Accessing vector elements Elements of a matrix are accessed by specifying the row and column. For example, in the matrix specified by A = [1 2 3; 4 5 6; 7 8 9], the element in the first row and third column can be accessed by writing >> x = A(1,3) which yields 3 The entire second row can be accessed with >> y = A(2,:) which yields [4 5 6] where the ‘:’ here means “take all the entries in the column”. A submatrix of A consisting of rows 1 and 2 and all three columns is specified by >> z = A(1:2,1:3) which yields [1 2 3; 4 5 6] 5 Matrix Operations MATLAB contains a number of arithmetic, relational, and logical operations on matrices. 5