FERRAMENTA
MATrix LABoratory
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
Janela de Comandos
Espao de trabalho
Histrico
Moacir P. Ponti Jr. 3 Moacir P. Ponti Jr. 4
1
Trabalhando com
MATLAB BSICO
Matrizes
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
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 (^)
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
4
Funes Funes
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
6
Prtica 2 Prtica 2
7
Outros comandos Grficos
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
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
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));
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));
y = t;
y = t.^2;
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)
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)
11