Você está na página 1de 35

Introdução ao MATLAB

www.mathworks.com

Prof. Dr. Manuel Leonel da Costa Neto

Departamento de Engenharia de Eletricidade


CCET – UFMA

Semestre 2018.1

1
Introdução ao uso do MATLAB e da Toolbox de Sinais
MATLAB = MATrix LABoratory

 Software desenvolvido em principio para ser um


"laboratório matricial".
 Surgiu em 1970 com o intuito de auxiliar os cursos de
Teoria Matricial, Álgebra Linear e Analise Numérica.
 é uma linguagem sensível ao tipo de caractere utilizado
(maiúsculo ou minúsculo), ou seja, RH, Rh, rH e rh são
tratados como variáveis diferentes.
 São utilizadas poucas linhas de comando com relação a
outros programas, como por exemplos: Fortran e C.
 Possui facilidades gráficas incluindo 2D e 3D.
 É multiplataforma: Windows, Linux, MacOS.
 É iniciado com dois cliques no ícone:
2
Ambiente de Desenvolvimento

Prompt  MATLAB esperando os


comandos

3
Ambiente de Desenvolvimento

Navegador de Ajuda
Espaço de Lançamento

Navegador de Diretório Corrente Janela de Comandos MATLAB

Janela de Histórico de Comandos


4
Ambiente de Desenvolvimento

5
Uso do MATLAB
 Matemática e Computação.
 Desenvolvimento de Algoritmos.
 Aquisição de Dados.
 Modelagem, Simulação e Prototipação.
 Análise, Exploração e Visualização de Gráficos
Científicos e de Engenharia;
 Desenvolvimento de Aplicativos.
 Desenvolvimento de Interface Gráfica

6
Características
 É um sistema cujo dado básico é um array
 Resolve problemas computacionais, especialmente com
matrizes e vetores em uma fração de tempo que levaria
para escrever um programa em uma linguagem escalar
não interativa (como C ou Fortran).
 Tem diversos toolbox para aplicações especificas, tais
como:
 Processamento de Sinais;
 Sistemas de Controle
 Redes Neurais
 Lógica Fuzzy
 Wavelets
 Simulação

7
Comandos Básicos

>>who -- Lista as variáveis.

>>whos -- Lista e especifica as variáveis.

>>clc -- Limpa a Janela de Comandos.

>>clg -- Limpa a Janela Gráfica

>>clear -- Deleta variáveis do workspace MATLAB.

>>help -- Ajuda do MATLAB, documentação.

>>help elfun – Lista funções do MATLAB

8
Comandos do MATLAB
• São usualmente digitados em linhas separadas, embora
possa-se ter múltiplos comandos na mesma linha, desde
que separados por ponto e vírgula (;).

• Os comentários são precedidos do sinal de porcentagem


(%).
• Também podem ser executadas sequências de comandos
que estão armazenadas em arquivos com extensão .m
• O comando what mostra uma listagem dos arquivos-M,
disponíveis no diretório corrente;
• Também podem ser vistos pelo comando type.

9
Matrizes, Vetores e Escalares
• Uma matriz pode ser descrita como A(i , j) ou a(i , j), em
que A e a são matrizes diferentes.
• O índice i se refere às linhas e o índice j às colunas.
• O tamanho de uma matriz é especificado pelo número de
linhas e colunas.
• Uma matriz que possui somente uma linha ou somente
uma coluna é chamada de vetor;
• Uma matriz possuir somente uma linha e uma coluna, ela
é um escalar.
• Exemplo 1: Digitar e executar os comandos abaixo com e
sem ;
a = 0.5;
b = [ 1 3 5 7 9]; D = [1 2 3
c = [2;4;6;8;10]; 456
7 8 9]
D = [1 2 3;4 5 6;7 8 9]; 10
Comando Whos

• mostra o nome de todas as variáveis existentes no espaço


de trabalho global, bem como os seus tipos e dimensões.
• Com base no Exemplo 1 temos:

» whos

Name Size Bytes Class

D 3x3 72 double array


a 1x1 8 double array
b 1x5 40 double array
c 5x1 40 array

Total de 20 elementos usando 160 bytes de


memória
11
Opções para Escrever Matrizes
O MATLAB permite se definir uma matriz a partir de outra já existente.
Exemplo 2: sejam os comandos

A = [1 .53 1-2*j] Isto é equivalente a: B = [ 0 -3 1 .53 1-2*j];

Pode-se mudar ou adicionar valores num vetor. Exemplo: B(1) = -1;


(para trocar o primeiro elemento do vetor B de 0 para -1).

Pode-se estender num vetor com a definição de


novos elementos. Exemplo: B(7) = pi;

Neste caso B(6) terá , automaticamente, o valor 0.


Um vetor também pode ser criado usando-se o comando (:).
Exemplo: X = 1:10

12
Opções para Escrever Matrizes
Se o operador (:) for usado para separar três números a, b, e c , então o
comando gera valores entre a e c com o incremento dado por b.
Exemplos: Y = 10:-1:1
Z = -pi:pi/10:pi
O comando (:) também pode ser usado para selecionar submatrizes a
partir de uma outra matriz. Exemplo, seja a matriz D
D = [1 2 3;4 5 6;7 8 9];
os comandos:
dl2 = D(2,:); % Segunda linha da matriz D.
dc1 = D(:,1); % Primeira coluna da matriz D.
dd = D(2:3,1:2); % dd = [4 5;7 8]

No MATLAB é válido se ter uma matriz vazia. Exemplo: a = [ ]


13
Operações com Escalares

Operação Forma Algébrica MATLAB

Adição a+b a+b

Subtração a-b a–b

Multiplicação axb a*b

Divisão à direita a/b a/b

Divisão à esquerda b\a a\b

Exponenciação (a) b a^b

14
Exemplos de Operações com Escalares
>> 3*pi^2 >> sqrt(ans) >> x = (ans-3)/2
ans = ans = x=
29.6088 5.4414 1.2207

O Matlab possui muitas funções do tipo “built-in”, como por


exemplo:

>> pi
ans =
3.1416
>> exp(1)
ans =
2.7183
>> log(ans)
ans =
1
15
Formatação dos Dados
Existem várias formas possíveis de formatação, que podem ser vistas
usando o comando help format

MATLAB comand pi Comentários

format compact 3.1416 5 dígitos


format long 3.14159265358979 16 dígitos

format short e 3.1416e+000 5 dígitos + expoente

format long e 3.141592653589793e 16 dígitos + expoente


+000
format short g 3.1416 short ou short e
format long g 3.14159265358979 long ou long e

>> format compact >> format long


Exemplos: >> pi >> pi
ans = 3.1416 ans = 3.14159265358979 16
Criação de Matrizes e Vetores
O Matlab possui comandos que permitem a criação de algumas matrizes
e vetores especiais:
zeros(m,n) cria uma matriz m x n de zeros.
ones(m,n) cria uma matriz m x n de uns.
eye(m,n) cria uma matriz identidade m x n.
diag(v) cria uma matriz n x n com v na diagonal principal (v é um vetor
de tamanho n).
Exemplos:

>> x = zeros(1,5) >> y = ones(5,1)


x= 0 0 0 0 0 y=
1
1
1
1
1
17
Comandos size e lenght
Permitem determina as dimensões de matrizes e vetores, respectivamente.
Por exemplo:

>> size(x) >> [m,n] = size(y)


ans = m=
1 5 5
n=
1

>> lx = length(x) >> ly = length(y)


lx = ly =
5 5

Deve-se observar que o comando length não consegue diferenciar se o


vetor é linha ou coluna.

18
Operações com Vetores
As operações adição, subtração, multiplicação, e divisão de um vetor por
um escalar são aplicadas a todos os elementos do vetor:
Sejam os vetores a e b dados por:
» a*2
» a = 1:5; b = 1:2:9; Então:
ans = 2 4 6 8 10

Quando dois vetores forem de mesmo tamanho, as operações de adição,


subtração, multiplicação, e divisão são aplicadas elemento a elemento.
Por exemplo:
» a+b
ans = 2 5 8 11 14
» ans-a
ans = 1 3 5 7 9

19
Operações com Vetores
A multiplicação e divisão elemento por elemento é feita de maneira
similar, exceto por uma pequena alteração na notação:

» a.*b
ans =
1 6 15 28 45

Os vetores a e b foram multiplicados elemento a elemento usando o


operador (.*), que é diferente da operação multiplicação matricial (*).

A divisão de vetores elemento a elemento requer o uso do símbolo ponto


(.):
» a./b
ans = 1.0000 0.6667 0.6000 0.5714 0.5556
» b.\a
ans = 1.0000 0.6667 0.6000 0.5714 0.5556
20
Operações com Vetores
A exponenciação de vetores também é feita elemento a elemento, podendo
ser definida de várias maneiras:
1. Elementos individuais de a elevados ao quadrado.

» a.^2
ans = 1 4 9 16 25

2. Escalar 2 elevado a uma potência dada por cada elemento de a.


» 2.^a
ans = 2 4 8 16 32
3. Cada elemento do vetor a é elevado a uma potência dada por cada
elemento do vetor b.
» a.^b
ans = 1 8 243 16384 1953125
21
Gráficos
O MATLAB tem um processador que pode gerar de gráficos em até três
dimensões.
O gráfico mais simples é o de um conjunto de pontos no plano x-y.
Exemplo: » x = 1:6; y = [-1 1/4 1 pi 2 1]; plot(x,y)

22
Gráficos
Um gráfico alternativo, mostrado na figura anterior pode ser obtido da
seguinte forma:
» x = 1:6; y = [-1 1/4 1 pi 2 1]; plot(x,y,'+')

23
Gráficos
• Aos gráficos das figuras anteriores pode-se acrescentar título, nomes
dos eixos, e reticulado.

• Pode-se também controlar as cores das curvas, bem como o tipo de


linha utilizado.

• É possível se ter mais de uma curva num mesmo gráfico.

• Para se aprender mais sobre os recursos da função plot é o de entrar


com o comando help plot.

• O MATLAB pode gerar diversos tipos de gráficos: curvas em 2D,


superfícies em 3D, gráficos de contorno de superfícies em 3D, curvas
paramétricas em 2D e em 3D (Consultar o HELP).

24
Comando subplot
• Cria diversos gráficos numa mesma janela gráfica.

• A sua sintaxe é subplot(m,n,k), em que mn é o número de gráficos a


serem criados, organizado numa matriz com m linhas e n colunas, e k
é a ordem em que aparecem os gráfico ao longo das linhas. Exemplo:
» x = 0:pi/20:2*pi;
» n = 0:.3:6;
»subplot(2,2,1)
»plot(x, sin(x))
»subplot(2,2,2)
»plot(x, exp(-x))
»subplot(2,2,3)
»stem(n, sin(2*pi*n/4))
»subplot(2,2,4)
»stem(n, 0.5.^n) 25
Comando subplot

26
Scripts e Funções
Um “script” é simplesmente uma coleção de comandos do MATLAB
escritos num arquivo tipo m ( um arquivo texto com extensão .m).

exemplo, vamos supor que o arquivo seno.m contenha o script


mostrado abaixo.

% Programa para gerar um gráfico da função seno


% Geração um vetor x com N amostras entre 0 e 2pi
x = linspace(0,2*pi,N); y = sin(x); % gera o vetor y a partir de x
plot(x,y),title('Gráfico do Seno') xlabel ('Ângulo em
rad'),ylabel('Amplitude'), grid

Se entrarmos no espaço de trabalho com os seguintes comandos:

» N=50; a=1;
» seno 27
Scripts e Funções
Com base no script anterior teremos o seguinte gráfico:

28
Uso da "Toolbox Signal"
• A “Toolbox Signal" possui uma coleção de funções que são
utilizadas em processamento de sinais.

• Os sinais devem estar na forma discreta, embora os gráficos se


mostrem de forma contínua, para isto basta que se use um número
suficientemente grande de pontos do sinal contínuo.

• Estes pontos, ou amostras, são obtidos pelo processo de amostragem.

• Exemplo: pΔΔara se gerar um vetor t no intervalo [0,1s], com Δt =


0,001s (fs = 1 kHz), usam-se os seguintes comandos:

» fs = 1000; % freqüência de amostragem


» t = 0:1/fs:1; % vetor com amostras separadas de 0,001s (1 ms)

29
Exercício 1
Gerar uma onda quadrada periódica com amplitude unitária, com freqüência
fundamental de 10 Hz, e ciclo de repetição de 50% ( ciclo de repetição é a
porção de cada ciclo para a qual o sinal é positivo, e 0 < cr < 100%).
% Programa para gerar uma onda quadrada

A = 1; % amplitude de pico
f0 = 10; % freqüência fundamental em Hz
cr = 50; % onda quadrada simétrica em %
fs = 1000; % freqüência de amostragem em Hz
t = 0:1/fs:1; % gera o eixo do tempo
onda_quadrada = A*square(2*pi*f0*t,cr);
plot(t,onda_quadrada), xlabel('t (s)'),ylabel('Amplitude')
title('Onda Quadrada Simétrica')
axis([0 1 -1.5 1.5]);
30
Exercício 1

31
Exercício 2
Gerar uma onda quadrada simétrica e discreta, com amplitude
unitária, frequência fundamental de π/6 rad, e no intervalo [-15,15].

% Programa para gerar uma onda quadrada discreta


A = 1; % amplitude de pico
wd = pi/6; % freqüência fundamental em rad
cr = 50; % onda quadrada simétrica em %
n = -15:15; % gera os índices das amostras
dquadrada = A*square(wd*n,cr);
stem(n,dquadrada), xlabel('n'),ylabel('Amplitude')
title('Onda Quadrada Simétrica')
axis([-15 15 -1.5 1.5]);

32
Exercício 2

33
Exercício 3
Gerar o sinal x(t) = 5e-4t sen(20.π.t). Considere a frequência de
amostragem como sendo de 1 kHz.

% Programa para gerar uma senóide amortecida.


fs = 1000; % freq. de amostragem
fo = 10; % freq. fundamental
a = -4; % coef. da exponencial
fi = 0; % fase inicial
A = 5; % amplitude da senóide
t = 0:1/fs:1; % eixo do tempo
x = A*sin(2*pi*fo*t + fi).*exp(a*t);
plot(t,x),xlabel('t (s)'),ylabel('Amplitude')
title('Senóide Amortecida')
34
axis([0 1 -6 6]);
Exercício 3

35

Você também pode gostar