• Nenhum resultado encontrado

Curso de Especialização em Teleinformática e Redes de Computadores Departamento Acadêmico de Eletrônica Universidade Tecnológica do Paraná

N/A
N/A
Protected

Academic year: 2021

Share "Curso de Especialização em Teleinformática e Redes de Computadores Departamento Acadêmico de Eletrônica Universidade Tecnológica do Paraná"

Copied!
70
0
0

Texto

(1)

1

Introdução ao MATLAB (Aula 3)

Curso de Especialização em Teleinformática e

Redes de Computadores

Departamento Acadêmico de Eletrônica

Universidade Tecnológica do Paraná

(2)

2

Introdução ao MATLAB

Copyright@2007 Prof. Gustavo B. Borba

Uso da placa de som do PC

sound(y, Fs, bits)

envia o sinal contido em um vetor, amostrado com um

freqüência Fs e resolução bits para o placa de som do

computador.

faixa do sinal: -1 <= y <= +1, valores fora dessa faixa

são ceifados (clipped).

Vamos dividir esse exemplo em duas partes:

- gerar uma forma de onda senoidal

(3)

3

Introdução ao MATLAB

Copyright@2007 Prof. Gustavo B. Borba

(4)

4

Introdução ao MATLAB

Copyright@2007 Prof. Gustavo B. Borba

AP tuner

Baixe e instale o “AP tuner” para observar a freqüência do

sinal gerado:

http://www.aptuner.com/cgi-bin/aptuner/apmain.html

Observe a tabela de freqüências das notas musicais

(5)

5

Introdução ao MATLAB

Copyright@2007 Prof. Gustavo B. Borba

(6)

6

Introdução ao MATLAB

Copyright@2007 Prof. Gustavo B. Borba

(7)

7

Introdução ao MATLAB

Copyright@2007 Prof. Gustavo B. Borba

(8)

8

Introdução ao MATLAB

Copyright@2007 Prof. Gustavo B. Borba

Ler e reproduzir um arquivo “.wav”

Observe o valor de Fs_in, veja que cada arquivo wave tem um freqüência

de amostragem diferente.

(9)

9

Introdução ao MATLAB

Copyright@2007 Prof. Gustavo B. Borba

Ler e reproduzir um arquivo “.wav”

(10)

10

Introdução ao MATLAB

Copyright@2007 Prof. Gustavo B. Borba

Sobre a freqüência de amostragem

A freqüência de amostragem corresponde à taxa de

amostras com a qual o sinal foi gravado. Sem essa

informação não é possível a correta reprodução do arquivo

digitalizado.

(11)

11

Introdução ao MATLAB

Copyright@2007 Prof. Gustavo B. Borba

Gravando sons com um microfone usando Matlab

r = audiorecorder(Freq_amostragem, nbits, ncanais);

r = audiorecorder(44100, 16, 1);

(12)

12

Introdução ao MATLAB

Copyright@2007 Prof. Gustavo B. Borba

Trabalho para ser entregue

Produzir as freqüências correspondentes as notas musicais

abaixo:

Tocar a música:

“dó re mi fá fá fá, dó ré dó ré ré ré, dó sol fá mi mi mi, dó ré mi fá fá

fá”

(13)

13

Introdução ao MATLAB

Copyright@2007 Prof. Gustavo B. Borba

Criando um menu de execução:

Faça o download, execute e analise o arquivo XXX.m do site

da disciplina.

Observe os seguintes recursos:

Funções:

input()

exist()

clc

Controle de fluxo:

switch

(14)

14

Introdução ao MATLAB

Copyright@2007 Prof. Gustavo B. Borba

Criando um menu de execução:

Programa:

playWasFs.m

Parte 1 de 2

Disponível no site

da disciplina.

(15)

15

Introdução ao MATLAB

Copyright@2007 Prof. Gustavo B. Borba

Criando um menu de execução:

Programa:

playWasFs.m

Parte 2 de 2

Disponível no site

da disciplina.

(16)

16

Introdução ao MATLAB

Copyright@2007 Prof. Gustavo B. Borba

Exercício:

Creio o aquivo playWavFs2.m com os seguintes adicionais:

-

Mostrar o tempo de reprodução

(17)

17

Introdução ao MATLAB

Copyright@2007 Prof. Gustavo B. Borba

Gráficos 2D - plot()

(18)

18

Introdução ao MATLAB

Copyright@2007 Prof. Gustavo B. Borba

Gráficos 2D - plot()

(19)

19

Introdução ao MATLAB

Copyright@2007 Prof. Gustavo B. Borba

Gráficos 2D - plot()

(20)

20

Introdução ao MATLAB

Copyright@2007 Prof. Gustavo B. Borba

Gráficos 2D - plot()

(21)

21

Introdução ao MATLAB

Copyright@2007 Prof. Gustavo B. Borba

Gráficos 2D - plot()

axis(),

set(),

grid,

xlabel(),

ylabel(),

title

(22)

22

Introdução ao MATLAB

Copyright@2007 Prof. Gustavo B. Borba

Gráficos 2D - plot()

(23)

23

Introdução ao MATLAB

Copyright@2007 Prof. Gustavo B. Borba

Gráficos 2D - plot()

(24)

24

Introdução ao MATLAB

Copyright@2007 Prof. Gustavo B. Borba

Gráficos 2D - plot()

legend()

(25)

25

Introdução ao MATLAB

Copyright@2007 Prof. Gustavo B. Borba

Gráficos 2D - plot()

legend()

(26)

26

Introdução ao MATLAB

Copyright@2007 Prof. Gustavo B. Borba

Gráficos 3D - plot3()

plot3(X,Y,Z,LineSpec)

(27)

27

Introdução ao MATLAB

Copyright@2007 Prof. Gustavo B. Borba

meshgrid()

Gera matrizes X e Y para gráficos 3D

[X,Y] = meshgrid(x,y)

Converte o domínio especificado pelos vetores x e y nos

vetores X e Y, os quais são utilizados na avaliação de

gráficos 3D.

As linhas de X são cópias do vetor x

As colunas de Y são cópias do vetor y

(28)

28

Introdução ao MATLAB

Copyright@2007 Prof. Gustavo B. Borba

meshgrid()

As linhas de X

são cópias do

vetor 1:3

As colunas de Y

são cópias do

vetor 10:14

(29)

29

Introdução ao MATLAB

Copyright@2007 Prof. Gustavo B. Borba

Mesh plots – mesh()

mesh(X,Y,Z) Cria uma wireframe surface especificada por X, Y com cor

determinada por Z, assim a cor é proporcional a altura da superfície.





+

=

2

2

2

σ

2

j

i

e

j)

g(i,

(30)

30

Introdução ao MATLAB

Copyright@2007 Prof. Gustavo B. Borba

(31)

31

Introdução ao MATLAB

Copyright@2007 Prof. Gustavo B. Borba

(32)

32

Introdução ao MATLAB

Copyright@2007 Prof. Gustavo B. Borba

(33)

33

Introdução ao MATLAB

Copyright@2007 Prof. Gustavo B. Borba

(34)

34

Introdução ao MATLAB

Copyright@2007 Prof. Gustavo B. Borba

(35)

35

Introdução ao MATLAB

Copyright@2007 Prof. Gustavo B. Borba

Manipulação de matrizes 3D: exemplos para imagens

RGB: componentes

Red

Green

Blue

Truecolor: cada pixel de cada

componente tem 8 bits (24 bits por pixel)

No matlab: img é uma matriz de 12 linhas x 12 colunas x 3

Exemplo:

fazendo o

pixel p amarelo:

img(2,3,1) = 255;

%R

img(2,3,2) = 255;

%G

(36)

36

Introdução ao MATLAB

Copyright@2007 Prof. Gustavo B. Borba

Manipulação de matrizes

Exemplo:

Matrizes R,

G e B de

uma

imagem.

(37)

37

Introdução ao MATLAB

Copyright@2007 Prof. Gustavo B. Borba

Matrizes R, G e B

(38)

38

Introdução ao MATLAB

Copyright@2007 Prof. Gustavo B. Borba

Manipulação de matrizes

Exemplo:

Matrizes R, G

e B de uma

imagem

concatenadas

em uma

única matriz.

(39)

39

Introdução ao MATLAB

Copyright@2007 Prof. Gustavo B. Borba

Matrizes R, G e B

1536 colunas

(512*3)

1152 linhas

(384*3)

(40)

40

Introdução ao MATLAB

Copyright@2007 Prof. Gustavo B. Borba

(41)

41

Introdução ao MATLAB

Copyright@2007 Prof. Gustavo B. Borba

imtool() [Obs.: função antiga: imview() ]

Ferramenta interativa que para

obter a coordenada de um pixel e

seu valor.

Exemplo:

Atenção:

(X,Y)

(42)

42

Introdução ao MATLAB

Copyright@2007 Prof. Gustavo B. Borba

imview()

(43)

43

Introdução ao MATLAB

Copyright@2007 Prof. Gustavo B. Borba

(44)

44

Introdução ao MATLAB

Copyright@2007 Prof. Gustavo B. Borba

Manipulação de matrizes

Exemplo: Cópia de uma região de uma imagem RGB (as coordenadas

(45)

45

Introdução ao MATLAB

Copyright@2007 Prof. Gustavo B. Borba

(46)

46

Introdução ao MATLAB

Copyright@2007 Prof. Gustavo B. Borba

Exercício

Faça o download da imagem colorida veiculo1.jpg. Utilizando o

imtool(), localize as coordenadas de uma região retangular que

cubra somente a placa. Escreva um script chamado regVeiculo1.m

para preencher esta região da imagem com a cor azul.

www.labiem.cpgei.cefetpr

.br/members/humberto2/t

eaching/pdi/imagens

(47)

47

Introdução ao MATLAB

Copyright@2007 Prof. Gustavo B. Borba

Tipo de dado struct (estrutura)

Para criar uma esturtura:

Função struct

myStruct = struct(‘field1’, data1, ‘field2’, data2, …, ‘fieldn’, datan);

Os campos são acessados da seguinte forma:

var = myStruct.field2;

%structName.fieldName

Permite o armazenamento de

elementos de diferentes tipos.

Cada elemento é um campo

(field) da estrutura.

(48)

48

Introdução ao MATLAB

Copyright@2007 Prof. Gustavo B. Borba

Tipo de dado struct (estrutura)

Pode-se criar um vetor de estruturas:

índice da estrutura

Os campos são acessados da seguinte forma:

(49)

49

Introdução ao MATLAB

Copyright@2007 Prof. Gustavo B. Borba

Tipo de dado struct (estrutura)

Exemplo: Um vetor de estruturas para armazenar alguns dados

dos clientes de uma locadora e a movimentação de cada um

em número de ítens locados, nos últimos 5 meses.

(50)

50

Introdução ao MATLAB

Copyright@2007 Prof. Gustavo B. Borba

Tipo de dado struct (estrutura)

(51)

51

Introdução ao MATLAB

Copyright@2007 Prof. Gustavo B. Borba

Tipo de dado struct (estrutura)

Visualização da estrutura cliente no ArrayEditor

Duplo clique

na variável

Duplo clique para expandir

cada struct do vetor

(52)

52

Introdução ao MATLAB

Copyright@2007 Prof. Gustavo B. Borba

Tipo de dado struct (estrutura)

Acessando os campos das estruturas

5º elemento do

vetor

movim

(53)

53

Introdução ao MATLAB

Copyright@2007 Prof. Gustavo B. Borba

Tipo de dado struct (estrutura)

Exemplo: uma função que recebe um mês como parâmetro de

entrada, varre as estruturas do vetor e devolve o cadastro do

usuário com maior movimentação neste mês.

Digite e código e

salve. Lembre-se que

o nome do

arquivo .m deve ser

idêntico ao da

função.

Neste exemplo:

(54)

54

Introdução ao MATLAB

Copyright@2007 Prof. Gustavo B. Borba

Depuração do código (debug)

Pode-se inserir breakpoints no código e executá-lo passo a

passo. As variáveis aparecem no workspace.

Exemplo:

Para inserir um

breakpoint,

basta clicar na

linha.

(55)

55

Introdução ao MATLAB

Copyright@2007 Prof. Gustavo B. Borba

Depuração do código (debug)

Após inserir o breakpoint, execute a função para o mês 4:

O prompt altera-se

(K>>)

e o Editor/Debugger é ativado:

As variáveis que

estão no escopo da

função aparecem

no Worskspace

A flecha verde indica

a linha de programa

na qual a execução

se encontra (neste

caso, no breakpoint,

conforme esperado)

(56)

56

Introdução ao MATLAB

Copyright@2007 Prof. Gustavo B. Borba

Depuração do código (debug)

Verificando:

OK! Todos as movimenteções

do mês 4 foram cerregadas no

vetor movimMes.

Estrutura de entrada.

As movimentações do mês 4 são, na

seqüência: 2, 4, 6, 2.

Dentro do vetor de estruturas, o cliente

com maior movimentação no mês 4 é o

cliente(3), com 6 locações.

Seu cadastro é 1349.

É esse o valor de saída que

esperamos da função

(57)

57

Introdução ao MATLAB

Copyright@2007 Prof. Gustavo B. Borba

Depuração do código (debug)

Diferentes opções para a depuração estão disponíveis,

no menu Debug:

A tecla F10 (Step)

executa passo-a-passo,

a partir do ponto atual

(58)

58

Introdução ao MATLAB

Copyright@2007 Prof. Gustavo B. Borba

Depuração do código (debug)

(59)

59

Introdução ao MATLAB

Copyright@2007 Prof. Gustavo B. Borba

Depuração do código (debug)

F10

F10

F10 (finaliza)

(60)

60

Introdução ao MATLAB

Copyright@2007 Prof. Gustavo B. Borba

(61)

61

Introdução ao MATLAB

Copyright@2007 Prof. Gustavo B. Borba

Outro caso…

E se houver clientes

empatados na

movimentação

máxima daquele mês?

Em outras palavras:

Um ou

mais clientes com a

mesma movimentação

máxima no mesmo

mês?

Vamos criar esta

situação e observar o

comportamento da

função.

Fazer um Save As... do

script buildStruct.m,

criando o script

buildScript2.m

(62)

62

Introdução ao MATLAB

Copyright@2007 Prof. Gustavo B. Borba

Outro caso…

Situação exemplo: neste novo

conjunto de dados, o

cliente(1) e o cliente(3)

tiveram a mesma

movimentação máxima no

mes3.

Com isso, a função deveria

retornar os cadastros destes

dois clientes:

1347

e

1349

Executando a função:

(63)

63

Introdução ao MATLAB

Copyright@2007 Prof. Gustavo B. Borba

Função max()

Na nossa função, é a função max() do MATLAB que encontra o

índice do cliente com máxima movimentação naquele mês:

No entanto,a função max()

retorna apenas O máximo.

Testando a função max():

Observar que max() retorna o

índice do “primeiro

máximo”

(64)

64

Introdução ao MATLAB

Copyright@2007 Prof. Gustavo B. Borba

Função find()

Para encontrar os índices de todos os máximos, pode-se

utilizar o seguinte algoritmo:

Supondo o vetor v

v = [1 2 3 3 4 1 4 2]

m = max(v)

i =

find(

v == m

)

im1 = i(1)

im2 = i(2)

valor do máximo:

m = 4

índices dos máximos:

i = [5 7]

índice do máximo 1:

im1 = 5

(65)

65

Introdução ao MATLAB

Copyright@2007 Prof. Gustavo B. Borba

Reescrevendo a função clienteMaiorMov()

Fazer um Save As...

do arquivo

clienteMaiorMov.m,

criando o arquivo

(66)

66

Introdução ao MATLAB

Copyright@2007 Prof. Gustavo B. Borba

(67)

67

Introdução ao MATLAB

Copyright@2007 Prof. Gustavo B. Borba

Função error()

A função clienteMaiorMov2() aceita

2 parâmetros como entrada.

Na sua chamada, esta condição

deve ser respeitada. Caso

contrário, ocorrerá um erro:

Da mesma forma, o valor de mes especificado na entrada deve estar

dentro da faixa 1...5 (considerando o vetor de estruturas “cliente” do

exemplo)

(68)

68

Introdução ao MATLAB

Copyright@2007 Prof. Gustavo B. Borba

Função error()

A função error() pode ser utilizada nesses casos, para mostrar uma

mensagem e abortar a função.

A função nargin também é útil nestas situações. Dentro do corpo da

função, ela indica o número de argumentos de entrada.

(69)

69

Introdução ao MATLAB

Copyright@2007 Prof. Gustavo B. Borba

Função error()

(70)

70

Introdução ao MATLAB

Copyright@2007 Prof. Gustavo B. Borba

Exercício

Elabore uma função chamada clienteMaiorMovT():

Recebe o vetor de estruturas criado pelo script buildStruct.m e

devolve o cadastro do cliente com maior movimentação na

Referências

Documentos relacionados

No entanto, maiores lucros com publicidade e um crescimento no uso da plataforma em smartphones e tablets não serão suficientes para o mercado se a maior rede social do mundo

Declaro meu voto contrário ao Parecer referente à Base Nacional Comum Curricular (BNCC) apresentado pelos Conselheiros Relatores da Comissão Bicameral da BNCC,

Starting out from my reflection on the words cor, preto, negro and branco (colour, black, negro, white), highlighting their basic meanings and some of their

The challenges of aging societies and the need to create strong and effective bonds of solidarity between generations lead us to develop an intergenerational

O relatório encontra-se dividido em 4 secções: a introdução, onde são explicitados os objetivos gerais; o corpo de trabalho, que consiste numa descrição sumária das

Além das espécies selvagens, existem também algumas variedades de tomate da espécie Solanum lycopersicum que podem ser utilizadas como fontes de resistência a algumas pragas, entre

Entre as atividades, parte dos alunos é também conduzida a concertos entoados pela Orquestra Sinfônica de Santo André e OSESP (Orquestra Sinfônica do Estado de São

e) Em 20 de agosto de 2013, a controlada IBA Comercial e Distribuição S.A. Essa operação gerou um ágio de R$5.204 que foi totalmente baixado contra o resultado do exercício por