28
Introdução ao MatLab Aula 2 Sistemas Telemáticos 5ºAno LESI/MCC Universidade do Minho

Introdução ao MatLab Aula 2 Sistemas Telemáticos 5ºAno LESI/MCC Universidade do Minho

Embed Size (px)

Citation preview

Page 1: Introdução ao MatLab Aula 2 Sistemas Telemáticos 5ºAno LESI/MCC Universidade do Minho

Introdução ao MatLabAula 2

Sistemas Telemáticos

5ºAno LESI/MCC

Universidade do Minho

Page 2: Introdução ao MatLab Aula 2 Sistemas Telemáticos 5ºAno LESI/MCC Universidade do Minho

Função Passo Unitário%F1_7a Unit step functiont=-2:0.01:5; % make t a vector of 701 pointsq=size(t);f=zeros(q(1),q(2)); % set f = a vector of zerosq=size(t(201:701));f(201:701)=ones(q(1),q(2));% set final 500 points of f to 1plot(t,f),title('Fig.1.7a Unit step function');axis([-2,5,-1,2]); % sets limits on axesxlabel('time, t');ylabel(' u(t)');grid;

%F1_7a Unit step functiont=-2:0.01:5; % make t a vector of 701 pointsq=size(t);f=zeros(q(1),q(2)); % set f = a vector of zerosq=size(t(201:701));f(201:701)=ones(q(1),q(2));% set final 500 points of f to 1plot(t,f),title('Fig.1.7a Unit step function');axis([-2,5,-1,2]); % sets limits on axesxlabel('time, t');ylabel(' u(t)');grid;

.0

)( 00

ottif

ttifBttBu

Função Passo Genérico

Page 3: Introdução ao MatLab Aula 2 Sistemas Telemáticos 5ºAno LESI/MCC Universidade do Minho

%F1_7b Signal g(t) multiplica f(101:501)=2.5-cos(5*t(101:501) por funções pulso ([u(t+1)-u(t-3)]

%F1_7b Signal g(t) multiplied by a pulse functionst= -2:0.01:5;q=size(t);f=zeros(q(1),q(2));f(101:501)=2.5-cos(5*t(101:501));plot(t,f),title('Fig.1.7b Signal g(t) multiplied by a

pulse functions');axis([-2,5,-1,4]);xlabel('time, t');ylabel(' g(t)[u(t+1)-u(t-3)]');grid;

%F1_7b Signal g(t) multiplied by a pulse functionst= -2:0.01:5;q=size(t);f=zeros(q(1),q(2));f(101:501)=2.5-cos(5*t(101:501));plot(t,f),title('Fig.1.7b Signal g(t) multiplied by a

pulse functions');axis([-2,5,-1,4]);xlabel('time, t');ylabel(' g(t)[u(t+1)-u(t-3)]');grid;

Page 4: Introdução ao MatLab Aula 2 Sistemas Telemáticos 5ºAno LESI/MCC Universidade do Minho

Sequências1. Sequência Rampa2. Uma sequência rampa transladada com declive B é definida

como:

3. Sequência rampa unitária e sequências de rampa transladada

)()( 0nnBng

Código MATLAB :n=-10:1:20;f=2*(n-10);stem(n,f);

Código MATLAB :n=-10:1:20;f=2*(n-10);stem(n,f);

Page 5: Introdução ao MatLab Aula 2 Sistemas Telemáticos 5ºAno LESI/MCC Universidade do Minho

Sequência Exponencial Real1. Definida como: Exemplo para A = 10 e a = 0.9, a sequência aproxima-se de zero quando n

tende para infinito e aproxima-se de mais infinito quando n tende para menos infinito

naAnf )()(

MATLAB Code:n=-10:1:10;f =10*(.9).^n;stem(n,f);axis([-10 10 0 30]);

Page 6: Introdução ao MatLab Aula 2 Sistemas Telemáticos 5ºAno LESI/MCC Universidade do Minho

Sequência Sinusoidal1. Uma sequência sinusoidal pode ser descrita como :

2. Onde A é um número real positivo (amplitude), N é o período, e a a fase. 3. Exemplo: 4. A = 5, N = 16 5. e

6. Código MATLAB :7. n=-20:1:20;8. f=5*[cos(n*pi/8+pi/4)]; 9. stem(n,f);

N

nAnf

2cos)(

.4/a

Page 7: Introdução ao MatLab Aula 2 Sistemas Telemáticos 5ºAno LESI/MCC Universidade do Minho

Sequência sinusoidal modulada exponencialmente

1. Obtém-se multiplicando uma sequência exponencial por uma sequência sinusoidal. Pode ser descrita por :

2. Examplo: 3. A = 10, N = 16, a = 0.9

Código MATLAB :1. n=-20:1:20;2. f=10*[0.9 .^n];3. g=[cos(2*n*pi/16+pi/4)];4. h=f .*g;5. stem(n,h);6. axis([-20 20 -30 70]);

N

naAng n 2

cos)()(

.4/

Page 8: Introdução ao MatLab Aula 2 Sistemas Telemáticos 5ºAno LESI/MCC Universidade do Minho

Introdução ao MatLab

1. Números e Formato

2. Ajuda da linha de comando

3. Variáveis

4. Vectores e Matrizes

5. Desenho de funções elementares

6. Carregamento e salvaguarda

7. Ficheiros M

8. Instruções para ciclos e Ifs

9. Variáveis definidas pelo utilizador

Page 9: Introdução ao MatLab Aula 2 Sistemas Telemáticos 5ºAno LESI/MCC Universidade do Minho

Números e formatos

• O MatLab reconhece vários tipos de números:– Integer (Ex: 12 - 678),

– Real (Ex: 4.607 - 199.34),

– Complex (Ex: 2 + 3i , i=j=sqrt(-1)),

– Inf (Ex: Infinity 2/0),

– NaN (EX: Not a Number, 0/0).

• Todos os cálculos são feitos em dupla precisão

Page 10: Introdução ao MatLab Aula 2 Sistemas Telemáticos 5ºAno LESI/MCC Universidade do Minho

Números e Formato

– O comando format no MatLab é usado para controlar a impressão dos números

– O nº de dígitos mostrados não tem a ver com a precisão ou acurácia

– Para formatar a visualização pode-se usar: format short e para notação científica com 5 casas

decimais format long e para notação científica com 15 casas

decimais format bank para colocação de dois dígitos

significativos nas casas decimais

Page 11: Introdução ao MatLab Aula 2 Sistemas Telemáticos 5ºAno LESI/MCC Universidade do Minho

Números e Formatos

Use help format para mais informação. Comando Examplo de saída

• format short 11.3045 (4-casas decimais)• format short e 1.1304e+01• format long e 1.130452467450893+01• format bank 11.30 (2-casas decimais)• format hex Formato hexadecimal• format + São impressos os símbolos

+, - e espaços em braco

Page 12: Introdução ao MatLab Aula 2 Sistemas Telemáticos 5ºAno LESI/MCC Universidade do Minho

Ajuda no MatLab

• Ajuda e informação no MatLab pode ser obtida de várias formas – Na linha de comando usando help tópico– Numa janela de ajuda separada no menu de

help– No helpdesk MatLab mantido no disco ou CD-

ROM

Page 13: Introdução ao MatLab Aula 2 Sistemas Telemáticos 5ºAno LESI/MCC Universidade do Minho

Ajuda na linha de comando

>>help piPI 3.1415926535897....PI = 4*atan(1) = imag(log(-1)) = 3.1415926535897....

>>help sinSIN Sine.SIN(X) is the sine of the elements of X.

Page 14: Introdução ao MatLab Aula 2 Sistemas Telemáticos 5ºAno LESI/MCC Universidade do Minho

Variáveis• Variáveis ans atribuídas por defeito pelo MATLAB. • Por exemplo, teclando >>12+2.3*2 ou

>>12+2.3*2,devolve: ans = 16.6000 • >>12+2.3*2; não devolve nada

(mas o resultado é guardado na variável "ans“) • (escreva >>ans para ver o resultado da operação que

é 16.6000). • Vírgulas (,) dizem ao MATLAB para mostrar

resultados• Ponto e vírgula (; ) para suprimir impressões

Page 15: Introdução ao MatLab Aula 2 Sistemas Telemáticos 5ºAno LESI/MCC Universidade do Minho

Variáveis

• As variáveis é atribuído um valor numérico teclando directamente a expressão. Por exemplo, – >>a = 12+2.3*2– devolve: a = 16.6000

• A resposta não será mostrada se for colocado um ; no fim da expressão. Por exemplo,

• >>a = 12+2.3*2;

Page 16: Introdução ao MatLab Aula 2 Sistemas Telemáticos 5ºAno LESI/MCC Universidade do Minho

Variáveis• Nomes legais de variáveis consistem numa

combinação qualquer de letras e dígitos, começando com uma letra.– Examploss: Ali22B, Cost, X3_f22 and s2Sc6.

• Variáveis ilegais no MatLab:

Ali-22, 5x, 3Cost, &r5, %67 and @xyt56

Caracteres no MATLAB por exemplo X='a';Strings no MATLAB por exemplo mg1='Ali'; ou mg2='MATLAB DEMOS';

Page 17: Introdução ao MatLab Aula 2 Sistemas Telemáticos 5ºAno LESI/MCC Universidade do Minho

Variáveis

• O MatLab usa os seguintes operadores (para matrizes e vectores)

+ para adição- para subtração* para multiplicação

^ para potência ‘ para transposta \ para divisão à esquerda / para divisão à direita

Page 18: Introdução ao MatLab Aula 2 Sistemas Telemáticos 5ºAno LESI/MCC Universidade do Minho

Variáveis

• As operações sobre matrizes também se aplicam a escalares– Um escalar é uma matriz 1x1

• Comentários são precedidos por um "%%".

• Os comandos whowho e whosewhose dão os noms das variáveis que foram definidas na área de trabalho.

Page 19: Introdução ao MatLab Aula 2 Sistemas Telemáticos 5ºAno LESI/MCC Universidade do Minho

VariáveisA uma variável pode ser atribuído um valor que usa

esses operadores a combinar números e variáveis definidas previamente.

Por exemplo, uma vez que a foi definido previamente é valida a seguinte expressão

• >>b = 5*a;• Para determinar o valor duma quantidade definida

previamente basta teclar a variável assocada• >>b• devolve: b = 83.0000

Page 20: Introdução ao MatLab Aula 2 Sistemas Telemáticos 5ºAno LESI/MCC Universidade do Minho

Variáveis

• Ua expressão não couber numa linha use três ou mais ou mais pontos no fim da linha e continue na linha seguinte– >>c = 1+2+3+...

5+6+7;

• Há uma série de variáveis pré-definidas que podem ser usadas em qualquer altura tal como as variáveis definidas pelo utilizador:–  i, sqrt(-1) - j, sqrt(-1) - pi, 3.1416...

Page 21: Introdução ao MatLab Aula 2 Sistemas Telemáticos 5ºAno LESI/MCC Universidade do Minho

Variáveis

• Há uma série de funções pré-definidas que podem ser usadas na definição duma variável. Algumas das mas usadas são

abs magnitude dum número (valor absoluto para números reais)

angle ângulo dum número complexo, em radianoscos função coseno com argumento em radianossin função seno com argumento em radianos

exp função exponencial

Page 22: Introdução ao MatLab Aula 2 Sistemas Telemáticos 5ºAno LESI/MCC Universidade do Minho

Variáveis• Com o y definido anteriormente,• x = abs(y)• devolve: x = 10.8167• c = angle(y)• devolve: x = 0.9828• Com a = 3,• x = cos(a)• devolve: x = - 0.9900• x = exp(a)• devolve: x = - 20.0855• Observe que exp pode ser utilizado em números complexos. Por exemplo

com y = 2+8i, • x = exp(y)• resulta: x = - 1.0751 + 7.3104i• O que pode ser verificado com a fórmula de Euler

– x = exp(2)cos(8) + j.exp(2)sin(8)

Page 23: Introdução ao MatLab Aula 2 Sistemas Telemáticos 5ºAno LESI/MCC Universidade do Minho

Vectores e Matrizes• O MATLAB é baseado na álgebra de is matrizes e

vectores; mesmo os escalares são tratados como matrizes 1x1.

• Portanto, as operações são tão simples como as comuns num calculador.

• O número de entradas (elementos ou componentes) é designado por “comprimento" do vector.

• As entradas dem ser colocadas entre […]

Page 24: Introdução ao MatLab Aula 2 Sistemas Telemáticos 5ºAno LESI/MCC Universidade do Minho

Vectores e Matrizes

Os vectores podem ser criados de duas formas .O primeiro método é usado para elementos arbitrários >>v = [1 3 5 sqrt(49)];• Cria um vector 1x4 vector com elementos 1, 3, 5 and 7. • Poderiam ser usadas vírgulas para separar os elementos do vector

([1,3,5,sqrt(49)]). • Podem-se adicionar elementos ao vector

– >>v(5) = 8;– Cria o vector v = [1 3 5 7 8].

• Vectores definidos anteriormente podem ser usados para definir um novo vector.

• Por exemplo com o v definido anteriormente • >>a = [9 10]; • >>b = [v a]; • Cria o vector b = [1 3 5 7 8 9 10].

Page 25: Introdução ao MatLab Aula 2 Sistemas Telemáticos 5ºAno LESI/MCC Universidade do Minho

Vectores e matrizes

• O segundo método é usado para criar vectores com elementos igualmente espaçados: – >>t = 0:0.1:10; – Cria um vector 1x101 com os elementos 0, .1, .2, .3,...,10.

• O número a meio é o incremento– Se forem dados apenas dois números o incremento é colocado

para o valor 1 por omissão. – >>k = 0:10;– Cria um vector 1x11 com os elementos 0, 1, 2, ..., 10.

Page 26: Introdução ao MatLab Aula 2 Sistemas Telemáticos 5ºAno LESI/MCC Universidade do Minho

Vectores e Matrizes

• São definidas introduzindo os elementos fila a fila:– >>A = [2 3 4; 5 -7 6; 10 5 3]

• Cria a matriz

Page 27: Introdução ao MatLab Aula 2 Sistemas Telemáticos 5ºAno LESI/MCC Universidade do Minho

Vectores e Matrizes

• Há uma série de matrizes especiais que podem ser definidas:

matriz nula:  M = [ ]; 

matriz nxm de zeros: M = zeros(n,m); 

matriz nxm de uns :  M = ones(n,m); 

matriz identidade nxn :  M = eye(n);

Page 28: Introdução ao MatLab Aula 2 Sistemas Telemáticos 5ºAno LESI/MCC Universidade do Minho

IntrduIntrduIntrduIntrduVectors and Matrices:

• There are a number of special matrices that can be defined:

null matrix:  M = [ ]; 

nxm matrix of zeros: M = zeros(n,m); 

nxm matrix of ones:  M = ones(n,m); 

nxn identity matrix:  M = eye(n);

Vectors and Matrices:

• There are a number of special matrices that can be defined:

null matrix:  M = [ ]; 

nxm matrix of zeros: M = zeros(n,m); 

nxm matrix of ones:  M = ones(n,m); 

nxn identity matrix:  M = eye(n);