Anda di halaman 1dari 11

VISO GERAL DA

FERRAMENTA
MATrix LABoratory

CURSO DE Computao tcnica


Capacidade: Processamento,
MATLAB visualizao e programao.

Caractersticas:
Aplicaes em Notao matemtica
Modelagem e simulao
Sinais e Sistemas Anlise e visualizao de dados
Grficos cientficos
Desenvolvimento de algoritmos
e aplicaes
Moacir P. Ponti Junior
Plataformas (Release 13)
moacir@dc.ufscar.br Windows (98->2003)
UNIX / Linux
Solaris
MacOS
Moacir P. Ponti Jr. 1 Moacir P. Ponti Jr. 2

AMBIENTE DE EDITOR DE ARQUIVOS


DESENVOLVIMENTO .M (LINGUAGEM)

Janela de Comandos

Espao de trabalho

Histrico
Moacir P. Ponti Jr. 3 Moacir P. Ponti Jr. 4

1
Trabalhando com
MATLAB BSICO
Matrizes

Matrizes, Vetores e Operador dois pontos (:)


Criao de matriz/vetor
Escalares
Seleo de partes da matriz
escA = 3.5
vetB = [3.5, 2.1, 10] Vetor de 0 a 1, incremento 0.2:
>> vetA= 0:0.2:1
matC = [3.5 2.1
vetA=
4 5 ] 0 0.2 0.4 0.6 0.8 1.0
matD = [3.5 2.1; 4 5]
Matriz 3x3 com valores de 1 a 9:
>> matA=[1:1:3; 4:1:6;
Busca valores por ndice 7:1:9]
vetB(3) = 10 matA =
matC(2,2) = 5 1 2 3
matC(1,2) = 2.1 4 5 6
7 8 9

Moacir P. Ponti Jr. 5 Moacir P. Ponti Jr. 6

Trabalhando com
MATLAB BSICO
Matrizes
Operador dois pontos (:) Comando format
Matriz 3x3, valores de 10 a 90: sqrt(2)
>> matB= [10:10:30;
40:10:60; 70:10:90] short: 1.4142
matB = 10 20 30 long: 1.41421356237310
40 50 60
70 80 90 short e: 1.4142e+000

Pegando apenas uma parte da long e:


matriz acima: 1.414213562373095 e+000
>> matC = matB(1:2,1:3)
matC = 10 20 30 +: + (sinal)
40 50 60 rat: 1393/985 (aproximao)
>> matC = matB(1,:) hex: 3ff6a09e667f3bcd
matC = 10
40
70
Moacir P. Ponti Jr. 7 Moacir P. Ponti Jr. 8

2
Valores e Matrizes Valores e Matrizes
Especiais, Operaes Especiais, Operaes
Matrizes:
pi = 3,1416
magic(n): nmeros de 1 a
i, j = 1 n2, soma coluna = soma
linha
+Inf, -Inf = + , zeros(m,n): apenas 0s
ones(m,n): apenas 1s
NaN = not a number eye(m,n): identidade
pascal(n): matriz de pascal
Clock = [ano ms hora
min seg] Operaes:
Date = dia-ms-ano Adio (+)
Subtrao (-)
ans = armazena resposta Multiplicao (*)
mais recente Diviso (/ \)
Potenciao (^)

Moacir P. Ponti Jr. 9 Moacir P. Ponti Jr. 10

Valores e Matrizes Overflow e Underflow


Especiais, Operaes (Limites)
Operao com cada Overflow (10308)
elemento da matriz de
Aproxima para
forma individual:
x = 2e200
Multiplicao, Diviso e
Potenciao
y = 1e200
Colocar ponto na frente do z = x*y (2e400)
operador z = Inf

A=[ 1 2 B=[ 2 2 Underflow (10-308):


1 2 ] 2 2 ] Aproxima para 0
x = 2e-200
y = 1e200
A*B=[ 6 6 A.*B=[ 2 4
z = x/y (2e-400)
6 6 ] 2 4 ]
z = 0

Moacir P. Ponti Jr. 11 Moacir P. Ponti Jr. 12

3
Entrada e Sada Prtica 1
comando input
1. Calcular distncia entre
>> input z=(Valor de z);
dois pontos (x e y):
fprintf(texto %,v) Usurio deve entrar com
e - exponencial os pontos
f - decimal fixa Exibir resultado na tela
g - reduzido
d xy = ( x1 x2 ) 2 + ( y1 y2 ) 2
ARQUIVOS .MAT
save [/ascii] 2. Criar vetor de 0 a 2 com
>>save matrizes A B incremento a cada 0.2.
>>save mCont A B /ascii Este vetor pode ser
utilizado como tempo de
load
0 a 2 segundos, com
>> load matrizes amostragem a cada 0.2s
>> load mCont Salvar o vetor em um
arquivo ascii
Moacir P. Ponti Jr. 13 Moacir P. Ponti Jr. 14

Criao de funes em Criao de funes em


arquivos .M arquivos .M
Arquivos .M armazenam Exemplo: funo para
funes reutilizveis
calcular a distncia:
function [s,s2]=nome(e,e2)
% Ajuda da funo
function d=diste(p1,p2)
Parmetros: %Calcula e imprime
s, s2 = sadas %distncia entre 2 pontos
e, e2 = entradas if nargin = 2
Ajuda: comentrios logo aps d = (p1(1)-p2(1)).^2
a assinatura da funo d = d + (p1(2)-p2(2)).^2
nargin = nmero de d = sqrt(d)
argumentos de entrada end
passados
nargout = nmero de
argumentos de sada
requeridos
Moacir P. Ponti Jr. 15 Moacir P. Ponti Jr. 16

4
Funes Funes

abs(x): nmero absoluto sin(x), cos(x), tan(x)


sqrt(x): raiz quadrada asin(x), acos(x), atan(x)
rand(n,m): matriz aleatria
sign(x): retorna 1 para
[n,m] = size(X): tamanho
negativo, 0 para zero, 1
de X
para positivo
Arredondamento: rem(x,y): resto da diviso
round(x): inteiro + prximo entre x e y (x/y)

fix(x): inteiro + prximo de 0 any(x): verdadeiro se um


floor(x):inteiro mais prximo elemento de x for <> 0
de Inf eig(x): autovalores e
autovetores
ceil(x): inteiro mais prximo inv(x): inversa
de +Inf det(x): determinante
Moacir P. Ponti Jr. 17 Moacir P. Ponti Jr. 18

Nmeros Complexos GRFICOS

Clculos realizados plot(x,y, )


automaticamente x e y = igual dimenso
Funes: = mtodo de exibio
real(x), imag(x)
fplot(funo,[intervalo])
conj(x), abs(x), angle(x)
subplot(m,n,p) = divide a
Converso polar/retangular: janela em mxn partes para
x = a+b*i exibir vrios grficos ao
mesmo tempo, escolhendo
r = abs(x)
a parte p para a prxima
theta = angle(x) exibio:

a = r*cos(theta) subplot(2,1,1); plot(X,Y)


b = r*sin(theta) subplot(2,1,2);
fplot(sin,[0 2*pi])
y = a+b*i
Moacir P. Ponti Jr. 19 Moacir P. Ponti Jr. 20

5
Desenvolvimento de Desenvolvimento de
Algoritmos Algoritmos
Operadores relacionais: Estruturas condicionais:
>, <, >=, <=, ==, ~= switch (argumento)
case (condicao)
Operadores lgicos: otherwise
&-E end
| - Ou
Estruturas de repetio:
~ - No
for (i=n : N)
Estruturas condicionais: break
continue
if (condicao)
end
...
elseif (condicao)
while (condio)
... break
else continue
... end
end
Moacir P. Ponti Jr. 21 Moacir P. Ponti Jr. 22

Prtica 2 Prtica 2

Dado um sinal de entrada, function SS=adeco(SE,nE,vAS,vAT)


produza um sinal de sada com: % Adiciona ecos em um sinal
% SE = sinal de entrada
- Perodo de 7 segundos
% nE = numero de ecos
- Amostragem cada 0,1s % vAS = vetor atraso
- Inserir 3 ecos: % vAT = vetor atenuao
Atraso Atenuao % tam dos vetores deve ser igual a
nE
1 2s 0.5 % Retorna sinal com os ecos
2 -3.5 s 0.3 if nargin == 4
[n,tAS] = size(vAS);
3 6s 0.1
[n,tAT] = size(vAT);
Construir funo .M adeco SS = SE
Grfico:sinal original e com ecos if (nE == tAS) & (nE == tAT)
Sinal de entrada / Vetor tempo: for i=1:nE
[n,tSS] = size(SS);
SEn=[0 0.5 1.0 1.5 2.0 2.5
SS = [SS zeros(1,vAS(i)-tSS)
3.0 3.5 4.0 4.5 5.0] SE*vAT(i)];
Tmp=[0 0.1 0.2 0.3 0.4 0.5 end
0.6 0.7 0.8 0.9 1.0] end
end
Moacir P. Ponti Jr. 23 Moacir P. Ponti Jr. 24

6
Prtica 2 Prtica 2

>> Tmp = [0:0.1:7];


>> SEn = [0:0.5:5];
>> N = 3;
>> Atr = [20 30 60];
>> Ate = [0.5 -0.3 0.1];
>> SS =
adeco(SEn,N,Atr,Ate);
>> Tmp1 = [0:0.1:1];
>> subplot(2,1,1);
>> plot(Tmp1,SEn);
>> subplot(2,1,2);
>> plot(Tmp,SS);

Moacir P. Ponti Jr. 25 Moacir P. Ponti Jr. 26

Outras operaes com


Medidas Estatsticas
Matrizes

max(x), min(x) reshape(X,n,m):


mean(x), median(x) redimensiona matriz X

std(x), var(x) rot90(X): rotaciona 90

sum(x), cumsum(x): diag(X): pega apenas


valores da diagonal
soma e soma acumulativa
principal de X
prod(x), cumprod(x):
triu(X): seleciona apenas
produto e produto valores de X da diagonal
acumulativo principal para cima
sort(x): ordena x tril(X): seleciona apenas
hist(x,b): exibe valores de X da diagonal
histograma com b divises principal para baixo

Moacir P. Ponti Jr. 27 Moacir P. Ponti Jr. 28

7
Outros comandos Grficos

who: exibe as variveis stem(x,y): grfico de


sequncia discreta
whos: exibe as variveis e
seus contedos bar(x,y): grfico de barras
stairs(x,y): grfico
clear: limpa a memria
escada, com 1 ou 2
exit/quit: finaliza o Matlab variveis
clf: limpa a tela de trabalho plotyy(x,y,S): grfico
usando 2 eixos y com
gcf: coloca a figura atual escalas diferentes
(grficos, etc.) em 1 plano
plot3(x,y,z)
cfg: limpa a figura atual
polar(fase,ngulo)
ls / dir: lista o contedo da t=(0:2*pi / 100:2*pi)
pasta atual r =t/(2*pi)
help / help [comando]: polar(t,r)
exibe ajuda
Moacir P. Ponti Jr. 29 Moacir P. Ponti Jr. 30

Grficos TOOLBOXES
mesh
[x,y]=meshgrid(-2:.2:2, Processamento de Imagens
-2:.2:2); Processamento de Sinais
z= x.*exp(-x.^2 -y.^2); Realidade Virtual
mesh(z) Comunicao
Simbologia Matemtica
Estatstica
Wavelet
Financeiro
Redes Neurais
Lgica Fuzzy
Banco de Dados
Sistemas de Controle

Moacir P. Ponti Jr. 31 Moacir P. Ponti Jr. 32

8
Toolbox: Processamento
Representando Sinais
de Sinais
Sinais so representados
Suporta operaes com
por um vetor
sinais, desde a gerao at
filtragem, modelagem e 2n, 3 n 3
anlise espectral
x[n] =
0, otherwise
>> n= -3:3;
Filtros digitais e analgicos >> x = 2*n;
>> stem(n,x);
Implementao de filtros
>> n= -5:5;
digitais >> x = [0 0 x 0 0]
Transformadas >> stem(n,x);
Processamento estatstico
Modelagem paramtrica
Predio linear
Gerao de sinais

Moacir P. Ponti Jr. 33 Moacir P. Ponti Jr. 34

Representando Sinais Grficos do Sinal Gerado

x(t ) = sin(t / 4)
cria-se um vetor tempo:
>> t = -5:5;
e a representao do sinal:
>> s = sin(pi*t/4);

x[n] = e j ( / 8) n
>> n = 0:32
>> x = exp(j*(pi/8)*n)
>> stem(n,real(x));
>> stem(n,imag(x));
>> stem(n,abs(x));
>> stem(n,angle(x));

Moacir P. Ponti Jr. 35 Moacir P. Ponti Jr. 36

9
Toolbox: Processamento Toolbox: Processamento
de Sinais de Sinais
Gerao de Sinais: Exemplo: gerao de rudo:
Gerando dados com freqncia randn: gera matriz aleatria
de amostragem 100Hz com distribuio gaussiana
- Vetor tempo: t=0:0.01:1
- Sinal constitudo de 2
yn = y + randn(size(t))
senoidais com frequncia de % adiciona rudo aleatrio
50Hz e 120:
y = sin(2*pi*50*t) +
sin(2*pi*120*t)
plot(t(1:25),y(1:25));

Moacir P. Ponti Jr. 37 Moacir P. Ponti Jr. 38

Toolbox: Processamento Toolbox: Processamento


de Sinais de Sinais
Sequncias comuns: Filtragem
y = filter(a,b,X)
Impulso unitrio: Filtra X com dados descritos em
y = [1; zeros(99,1)] a (coeficiente denominador) e
b (coeficiente numerador),
Degrau: gerando o sinal y.
y = ones(100,1); Exemplo: filtro da mdia mvel
X = randn(1,25)
Rampas: Y = filter(ones(1,2)/2,1,X);
t = (0:0.001:1)'; plotyy(X,ko,Y,r);

y = t;
y = t.^2;

Moacir P. Ponti Jr. 39 Moacir P. Ponti Jr. 40

10
Toolbox: Processamento Toolbox: Processamento
de Sinais de Sinais
Convoluo e Filtragem Transformada Rpida de
conv(x,y) e conv2(x,y) Fourier (FFT)
fft(x,n,dim) / ifft(x,n,dim)
A sada de um filtro digital y(k)
representa a sua entrada x(k)
convoluda com sua resposta
impulsiva h(k)

se a entrada x(k) e resposta


impulsiva h(k) do filtro so
finitas, podemos usar conv
para implementar um filtro
x = randn(5,1);
h = [1 1 1 1]/4;
y = conv(h,x);
Moacir P. Ponti Jr. 41 Moacir P. Ponti Jr. 42

Toolbox: Processamento
Mais MATLAB
de Sinais
Exemplo: encontrar componentes
de freqncia em um sinal www.mathworks.com
ruidoso (domnio do tempo)
www.mat.ufmg.br/
t = 0:0.001:0.6;
~regi/topicos/intmatl.html
x = sin(2*pi*50*t)+
sin(2*pi*120*t); www.math.ufl.edu/
y = x + 2*randn(size(t)); help/matlab-tutorial/
plot(1000*t(1:100),y(1:100))
www.dc.ufscar.br/~mauricio
title(Sinal Ruidoso')
xlabel(tempo(ms)')
www.dc.ufscar.br/~moacir
Y = fft(y);
Py = Y.*conj(Y); moacir@dc.ufscar.br
f = 1000*(0:600)/600;
plot(f,Py)

Moacir P. Ponti Jr. 43 Moacir P. Ponti Jr. 44

11

Anda mungkin juga menyukai