matlab harri saarnisaari, part of simulations and tools for telecommunication course
Post on 03-Jan-2016
230 Views
Preview:
TRANSCRIPT
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
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
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
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
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
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
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
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”
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
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
14
Value of variable a changes since script fileshave global variables
If the result is not a named variable Matlab givesans
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
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
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
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
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
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 %
top related