Top Banner
MATLAB Harri Saarnisaari, Part of Simulations and Tools for Telecommunication Course
21

MATLAB Harri Saarnisaari, Part of Simulations and Tools for Telecommunication Course.

Jan 03, 2016

Download

Documents

Madeline Barton
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: MATLAB Harri Saarnisaari, Part of Simulations and Tools for Telecommunication Course.

MATLAB

Harri Saarnisaari,

Part of Simulations and Tools for Telecommunication Course

Page 2: MATLAB Harri Saarnisaari, Part of Simulations and Tools for Telecommunication Course.

2

Purpose of the lecture

• This lecture contains a short introduction to the MATLAB– For further details see other sources

• Later we will apply Matlab to a simple simulation exercise of a communication system

• In that exercise we study, at the same time as learning MATLAB, different aspects of communication simulations

Page 3: MATLAB Harri Saarnisaari, Part of Simulations and Tools for Telecommunication Course.

3

MATLAB

• MATLAB is an interactive, matrix-based system for scientific and engineering numeric computation and visualization

• You can solve complex numerical problems in a fraction of the time required with a programming language such as Fortran or C.

• The name MATLAB is derived from MATrix LABoratory

Page 4: MATLAB Harri Saarnisaari, Part of Simulations and Tools for Telecommunication Course.

4

MATLAB …

• MATLAB is an expression language– the expressions you type are interpreted and

evaluated• MATLAB statements are usually of the form

– variable = expression, or simply

– expression

Page 5: MATLAB Harri Saarnisaari, Part of Simulations and Tools for Telecommunication Course.

5

MATLAB …

• MATLAB contains several build-in functions– Written either using C, or as a form of m-files

• You can create your own functions (m-files)– Most of work is writing functions that are used to

execute simulations• You can obtain functions (m-files) written by others• BUT, AS ALWAYS,

– Remember to validate all the functions (if not already validated by others)

– Even build-in functions may contain errors, or are not usable in your problem since every numeric algorithm has its limitations

• remember to check the function manual

Page 6: MATLAB Harri Saarnisaari, Part of Simulations and Tools for Telecommunication Course.

6

MATLAB …

• MATLAB has its core with some basic functions (which can be used to build everything)

• In addition, it has TOOLBOXes that include build-in functions to support different areas or multiple of areas

• TOOLBOXes ease and fasten simulations in their areas– Naturally, one has to learn how to use

functions in TOOLBOXes

Page 7: MATLAB Harri Saarnisaari, Part of Simulations and Tools for Telecommunication Course.

7

Toolboxes

Page 8: MATLAB Harri Saarnisaari, Part of Simulations and Tools for Telecommunication Course.

8

Toolboxes

Page 9: MATLAB Harri Saarnisaari, Part of Simulations and Tools for Telecommunication Course.

9

Information sources

• Matlab primer– http://ise.stanford.edu/Matlab/matlab-primer.pdf– Guide to basic properties, – very helpful if read and executed simultaneously

• Mathworks home page– http://www.mathworks.com/– Information of all Matlab related products– Helps– User created m-files from several areas

Page 10: MATLAB Harri Saarnisaari, Part of Simulations and Tools for Telecommunication Course.

10

Matrices

• MATLAB can efficiently use matrices and vectors– MATLAB handles vector vector and matrix

vector products faster than for loops (if sizes are not too large)

– Many books and papers where you can find algorithms use matrix notation

– So, learn to use matrices and vectors efficiently!

– A hint: always write vectors in the same way• Either as a column or row vector• Column form is the most common

Page 11: MATLAB Harri Saarnisaari, Part of Simulations and Tools for Telecommunication Course.

11

M-files

• You can call m-files in the command line or inside m-files– You can use other m-files in your simulations

• A good practice is to make small, general-usable m-files (if possible) and then apply them in your master simulation m-file– The generality allows you to apply the same m-

file in many places • Build-in m-files are general

• M-files are called such since they have file type “.m”

Page 12: MATLAB Harri Saarnisaari, Part of Simulations and Tools for Telecommunication Course.

12

M-files

• M-files can be either script files or function files• A script file consists of a sequence of normal

MATLAB statements• When the m-file is called, the statements are

executed• Variables in a script file are global and will

change the value of variables of the same name in the environment of the current MATLAB session

Page 13: MATLAB Harri Saarnisaari, Part of Simulations and Tools for Telecommunication Course.

13

Script file example

• We want to calculate logarithm (base 10) of 10• In command line it is log10(10) (since log is ln)• Put this as a variable a=log10(10)• Create m-file which calculates logarithm on 100,

and puts the result in a variable a, name this as testA.m

• Execute first a=log10(10) and then testA.m

Page 14: MATLAB Harri Saarnisaari, Part of Simulations and Tools for Telecommunication Course.

14

Value of variable a changes since script fileshave global variables

If the result is not a named variable Matlab givesans

Page 15: MATLAB Harri Saarnisaari, Part of Simulations and Tools for Telecommunication Course.

15

M-files …

• Function files provide extensibility to MATLAB• You can create new functions specific to your

problem which will then have the same status as other MATLAB functions

• Variables in a function file are by default local – A variable can, however, be declared global

(see help global)– Locality means that a value of variable on the

command line is not changed even if a function file contains the same variable

Page 16: MATLAB Harri Saarnisaari, Part of Simulations and Tools for Telecommunication Course.

16

M-files …

• Inputs to function files may be variables• Remember to comment your files

– you may even create a help part that explains what the function does

– Commenting helps you and others to remember what the different lines do and what for the different variables are

Page 17: MATLAB Harri Saarnisaari, Part of Simulations and Tools for Telecommunication Course.

17

Function file example

• We create a function file that – computes a sinusoidal function with a

frequency f over an interval 0 - T – results values of a sinusoidal and the interval– And plots the signal

• In addition– We make a help – and comment the file

Page 18: MATLAB Harri Saarnisaari, Part of Simulations and Tools for Telecommunication Course.

18

function [y,t]=testB(f,T,n);%[y,t]=testB(f,T,n) plots a sinusoidal with a frequency f [Hz]%over an interval 0 - T [s] and results values of the function y and%corresponding time instants. n+1 is the number of time instants, %the default being 128.%%by Michael Mfilewriter, 2006

%check if n is given or not%if not set it as defaultif nargin<3, n=127;else n=n-1; %makes sure that we have n+1 time instantsend

Page 19: MATLAB Harri Saarnisaari, Part of Simulations and Tools for Telecommunication Course.

19

%create time scale with n stepst=0:T/n:T;t=t(:); % t(:) makes a column vector

%compute values of sinusoidealy=sin(2*pi*f*t);

%plot it with t as a x-axis and y as a y-axisplot(t,y)xlabel('time [s]') %creates text for x-labelylabel('sinusoidal') %creates text for y-label

Page 20: MATLAB Harri Saarnisaari, Part of Simulations and Tools for Telecommunication Course.

20

[y,t]=testB(1,10,1024); results

Page 21: MATLAB Harri Saarnisaari, Part of Simulations and Tools for Telecommunication Course.

21

Help

• If m-files have a help it is called as help m-file

• E.g., if we call help of testB.m ashelp testB

• It results[y,t]=testB(f,T,n) plots a sinusoidal with a frequency f [Hz]over an interval 0 - T [s] and results values of the function y and corresponding time instants. n+1 is the number of time instants, the default being 128.

by Michael Mfilewriter, 2006

• That is, help results everything commented (by %) in the code before first line without %