I-3 Introdução ao Matlab

Documentos relacionados
I-3 Introdução ao Matlab

Mini curso básico. Gilberto A. S. Segundo Fábio Carmo. Programa de Educação Tutorial

Resumo. Sinais e Sistemas Introdução ao Matlab/Octave. Arquitectura. Matlab/Octave

Características Básicas

SCS Sistemas de Controle / Servomecanismos. Aula 01 Introdução ao software MATLAB

Sistemas e Sinais (LEE & LETI)

Minicurso de MATLAB. Programa de Educação Tutorial de Engenharia Elétrica. lmax Rodrigues. lcaroline Pereira. lnayara Medeiros

MATLAB. Que é MATLAB?

Inteligência Computacional Aula 2 - Introdução ao MatLab Graduação /2

MATLAB Avançado. Melissa Weber Mendonça

Introdução ao MATLAB

Sinais e Sistemas Discretos no Tempo Convolução

AULA 2 1) Comando linspace 2) Indexação de matriz

PÓS-GRADUAÇÃO PRESENCIAL MARINGÁ

Matlab Noções introdutórias. Roteiro para aula

Vetores, Matrizes e Gráficos

Murilo F. Tomé ICMC-USP

Introdução ao Matlab. Rodrigo Soares de Abreu

INTRODUÇÃO AO MATLAB - PARTE 2

TUTORIAL SIMPLIFICADO DE MATLAB

Introdução ao MATLAB. Parte 2

CÁLCULO NUMÉRICO. Profa. Dra. Yara de Souza Tadano

INTRODUÇÃO À COMPUTAÇÃO - EPET006 Aula 3

Introdução ao MATLAB. Afonso Paiva ICMC-USP

Introdução a Matrizes

CÁLCULO NUMÉRICO. Profa. Dra. Yara de Souza Tadano

Simulação de Sistemas Dinâmicos Lineares Visão Geral do Matlab

Minicurso de MATLAB. Programa de Educação Tutorial de Engenharia Elétrica 28/03/15. lmax Rodrigues. lcaroline Pereira.

PROGRAMAÇÃO de COMPUTADORES: LINGUAGEM FORTRAN 90/95

MATLAB EM VIBRAÇÕES MECÂNICAS

RESOLUÇÃO. Computação e Programação (2009/2010-1º Semestre) 1º Teste (11/11/2009) Nome. Número. Leia com atenção os pontos que se seguem:

Introdução ao MATLAB. Parte II. Afonso Paiva ICMC-USP

CÁLCULO NUMÉRICO. Profa. Dra. Yara de Souza Tadano

MATLAB Avançado. Melissa Weber Mendonça Universidade Federal de Santa Catarina. M. Weber Mendonça (UFSC) MATLAB Avançado 2011.

Análise matricial de estruturas usando Matlab

Prof. Marcelo Azevedo Costa. Departamento de Engenharia de Produção Universidade Federal de Minas Gerais

Minicurso MATLAB BÁSICO MÓDULO 1

Computação e Programação. Exame Época Normal

CÁLCULO NUMÉRICO. Profa. Dra. Yara de Souza Tadano

COMPUTAÇÃO E PROGRAMAÇÃO

Prof. Dr. Marco Antonio Leonel Caetano

Computação e Programação Exame Época de recurso

Computação e Programação Exame Resolvido 1ª Época

Notas de Aula MatLab - 2

CÁLCULO NUMÉRICO. Profa. Dra. Yara de Souza Tadano.

CÁLCULO NUMÉRICO. Profa. Dra. Yara de Souza Tadano

Introdução à Ciência da Computação

Aula 7. Noções Básicas de Octave

Introdução ao Fortran 90. Aula 3

O SOFTWARE MATLAB COMO AUXÍLIO DIDÁTICO - PEDAGÓGICO

INTRODUÇÃO AO SCILAB

Utilidades Diversas. Aplicações Informáticas para Engenharia. SérgioCruz

Gustavo G. Parma. Objetivos: O aluno deverá ser capaz de compreender os conceitos básicos de VHDL.

Simulação MATLAB - Transmissão PCM em Banda Base e Diagrama de Olho. Testar o efeito de filtros sem ISI no espectro e na curva BERXE b /N 0.

Processamento (Digital) de Sinal. Caderno de exercícios para as aulas

Conceitos de Programação

Trabalho de Processamento Digital de Sinais usando MATLAB R

Transcrição:

I-3 Introdução ao Matlab Comunicações (24 de março de 2017) 1

Sumário 1. Matlab MATrix LABoratory 2. Formas de utilização a) A janela de comandos b) Scripts c) Funções 3. Sintaxe, variáveis, matrizes e vetores 4. Operações comuns a) Definição de sinais b) Desenho de gráficos c) Operações sobre sinais 5. Controlo de fluxo: if, for, while 6. Funções úteis 7. Desenvolvimento de GUI 8. Links 9. Exercícios 2

1. Matlab MATLAB - MATrix LABoratory Ambiente de execução Linguagem de programação específica Sistema interativo para a execução de cálculos científicos e de engenharia Suportado por software baseado em cálculo matricial Facilidade de realização de operações matriciais Facilidade de visualização de dados Desenvolvido pela empresa MathWorks http://www.mathworks.com/ 3

1. Matlab Exemplos de dados na forma matricial: Vetor linha x=[10 21 13]; Vetor coluna y=[ 3 5 7 12] ; Matriz A=[1 2 3; 4 5 6; 7 8 9]; Cálculo da matriz inversa: inv(a) Cálculo do determinante de A: det(a) Soma de elementos: sum(x) e sum(y), soma de todos os elementos de x e y sum(a), soma das colunas de A sum(sum(a)), soma de todos os elementos de A 4

1. Matlab Facilidade de desenho Gráficos elaborados com pouco código k = 5; n = 2^k-1; [x,y,z] = sphere(n); c = hadamard(2^k); surf(x,y,z,c); colormap([1 1 0; 0 1 1]) axis equal 5

1. Matlab Facilidade de desenho 1 0.5 0-0.5 60 40 20 0 0 10 20 30 40 50 6

1. Matlab Facilidade de desenho 7

1. Matlab Processamento de imagem monocromática 8

1. Matlab Processamento de imagem a cores 9

1. Matlab Ambiente de desenvolvimento Editor e Debugger Current Directory Workspace Command History Command Window 10

1. Matlab Ambiente de desenvolvimento Editor e Debugger Breakpoint 11

1. Matlab Ambiente de desenvolvimento: execução e debug Visualização Gráfica Breakpoint Ativo Análise Numérica 12

2. Formas de Utilização Existem três formas distintas de executar código: a) Escrita direta na janela de comandos (à semelhança da command prompt) b) Scripts - conjunto de comandos em sequência, num ficheiro de texto c) Funções - conjunto de comandos em sequência, num ficheiro de texto, com semântica de parâmetros de entrada, parâmetros de saída e stack 13

2. A Janela de Comandos Utilização da consola para executar operações 14

2. A Janela de Comandos Declaração do vetor v Cálculo da soma e da média dos elementos do vetor v 15

Sempre que seja necessário executar vários comandos em sequência é conveniente usar um script Um script consiste num ficheiro texto de extensão.m, com comandos Criar um ficheiro script <nomefich>.m 2. Chamada a scripts Exemplo da criação do script com.m: >> edit com.m 16

2. Chamada a scripts Ao executar o script as linhas de código são interpretadas sucessivamente Equivalente a serem executadas em sequência na janela de comandos Deverá ser utilizado para pequenos testes Não existe a noção de listas de parâmetros de entrada nem de saída Todas as variáveis permanecem em memória, após a execução do script 17

2. Chamada a funções O nome da função deve coincidir com o do ficheiro.m, no qual se insere Declaração da função Resultado obtido Chamada à função com parâmetros de entrada e de saída 18

2. Chamada a funções Declaração da função function_b.m com: um parâmetro de entrada seis parâmetros de saída O parâmetro de entrada é obrigatório Os parâmetros de saída são opcionais Várias formas de invocação da função 19

2. Chamada a funções Sintaxe de declaração com lista de parâmetros de entrada e de saída O nome da função deve coincidir com o nome do ficheiro de texto (extensão.m), no qual se encontra declarada Syntax function [out1, out2,...] = funname(in1, in2,...) Description function [out1, out2,...] = funname(in1, in2,...) defines function funname that accepts inputs in1, in2, etc. and returns outputs out1, out2, etc. 20

3. Sintaxe, Variáveis, Matrizes e Vetores Não existe necessidade de declarar o tipo das variáveis. Por omissão: double (64 bits) Declaração e afetação feita simultaneamente, através do operador = Seguem-se alguns exemplos: >> 2+3 ans = 5 >> a= 2 + 3 a = 5 >> b=pi b = 3.1416 21

3. Sintaxe, Variáveis, Matrizes e Vetores Definição de um vetor: >> A=[1 2 3] A = 1 2 3 Definição de uma matriz: >> A=[1 2 3; 4 5 6] A = 1 2 3 4 5 6 Obter as dimensões de uma variável: >> size(a) ans = 2 3 >> length(a) ans = 3 Nota: Operador ; permite definir várias linhas 22

3. Sintaxe, Variáveis, Matrizes e Vetores Operador :, sintaxe: valorinicial : incremento : valorfinal Por omissão o incremento é 1 Exemplos: >> d=1:4 d = 1 2 3 4 >> d=1:2:4 d = 1 3 >> d = 10 : -3 : -5 d = 10 7 4 1-2 -5 23

3. Sintaxe, Variáveis, Matrizes e Vetores Operador, sintaxe: Exemplos: >> d=1:4 d = 1 2 3 4 >> e=d e = 1 2 3 4 >> size(d) ans = 1 4 >> size(e) ans = 4 1 24

3. Sintaxe, Variáveis, Matrizes e Vetores A indexação dos vetores e matrizes começa em 1 É realizada recorrendo a parênteses curvos Exemplos: >> d=1:4 d = 1 2 3 4 >> d(1) ans = 1 >> A=[1 2 3; 4 5 6] A = 1 2 3 4 5 6 >> A(1,3) ans = 3 25

3. Sintaxe, Variáveis, Matrizes e Vetores Pode ser usada para seleção ou afetação de mais que um valor simultaneamente, usando o operador : >> A=[1 2 3; 4 5 6] A = 1 2 3 4 5 6 >> A(:,1) ans = 1 4 >> A(2,:) ans = 4 5 6 >> A(2,1:2) ans = 4 5 >> A(2,:)=0 A = 1 2 3 0 0 0 26

3. Sintaxe, Variáveis, Matrizes e Vetores Inserção (concatenação) e remoção de linhas/colunas >> A(3,:)=[7 8 9] A = 1 2 3 4 5 6 7 8 9 >> A(:,3)=[] A = 1 2 4 5 7 8 Indexação Linear (column-wise) >> X=[1 2] X = 1 2 >> A=[A; X] A = 1 2 4 5 1 2 >> A=[1 2 3; 4 5 6] A = 1 2 3 4 5 6 >> A(1) ans = 1 >> A(4) ans = 5 27

3. Sintaxe, Variáveis, Matrizes e Vetores Funções zeros e ones >> A=zeros(3) A = 0 0 0 0 0 0 0 0 0 >> ones(1,3) ans = 1 1 1 Sintaxe: zeros(nlinhas, ncolunas) ou zeros(num) 28

3. Sintaxe, Variáveis, Matrizes e Vetores Operações aritméticas na janela de Help 29

3. Sintaxe, Variáveis, Matrizes e Vetores Operações algébricas ou matriciais (+ - * / ^) >> v=1:3 v = 1 2 3 >> v*v ans = 14 >> v'*v ans = 1 2 3 2 4 6 3 6 9 Operações elemento a elemento (ponto a ponto).* produto ponto a ponto entre vetores/matrizes da mesma dimensão./ divisão ponto a ponto entre vetores/matrizes da mesma dimensão 30

4. Operações comuns Cálculo de energia do sinal x[n] (representado através de vetor linha) >> sum( x.^2 ) >> sum( x.* x ) >> x * x Cálculo do valor médio do sinal x[n] (representado através de vetor linha) >> mean( x ) >> sum( x ) / length(x) 31

5. Controlo de fluxo: if, for, while Decisão binária, If if expression, statements, end if expression1 statements1 elseif expression2 statements2 else statements3 end 32

5. Controlo de fluxo: if, for, while Ciclo for for x=initval:endval, statements, end for x=initval:stepval:endval, statements, end for variable = initval:endval statement... statement end 33

5. Controlo de fluxo: if, for, while Ciclo while while expression, statements, end Exemplo: eps = 1; while (1+eps) > 1 eps = eps/2; end eps = eps*2 34

5. Controlo de fluxo: if, for, while Exemplos: ciclos for decisão binária 35

6. Funções/Comandos Úteis conv Calcula a convolução linear entre dois sinais fft e fftshift Calcula o espetro de um sinal. figure Cria uma nova figura. filter Realiza a filtragem de um sinal por um determinado sistema. hist Desenha o histograma dos dados presentes num vetor. length Calcula a dimensão de um vetor. max Calcula o valor máximo de um vetor. mean Calcula o valor médio de um vetor. min Calcula o valor mínimo de um vetor. plot Desenha vetores unindo os pontos, tornado o sinal aparentemente contínuo. rand, randn e randint Gera matriz com valores aleatórios ones Cria uma matriz com todos os elementos iniciados a 1. size Obtém as dimensões de uma matriz. sound ou soundsc Reproduzem para a card audio, o conteúdo de um vetor. stem Desenha vetores, mostrando as amostras individualmente. subplot Define vários gráficos dentro da mesma figura. sum Soma todos os elementos de um vetor. 36

6. Funções/Comandos Úteis wavplay, audioplayer wavread, audioread wavrecord, audiorecorder wavwrite, audiowrite zeros Reproduz para a card audio, o conteúdo de um vetor. Lê o conteúdo de um ficheiro wave para um vetor. Adquire um sinal a partir da card audio. Escreve para ficheiro wave, o conteúdo de um vetor. Cria uma matriz com todos os elementos iniciados a zero. xlabel ylabel title legend Coloca a label eixo xx, num gráfico Coloca a label eixo yy, num gráfico Coloca título no gráfico Define a legenda para o gráfico clc clear clear x close all grid on Apaga o conteúdo da janela de comandos. Remove todas as variáveis em memória. Remove a variável x de memória. Fecha todas as janelas de figuras. Coloca uma grelha sobre o eixo gráfico. fopen, fclose, fread, fwrite, fgets, fprintf,... Funções de manuseamento de ficheiros 37

8. Desenvolvimento de GUI GUI Graphical User Interface Edição da janela Propriedades e ações dos elementos 38

8. Desenvolvimento de GUI Edição Execução 39

8. Desenvolvimento de GUI Ações do GUI: desenho de sinal sinusoidal 40

8. Links Mathworks, empresa que desenvolve e comercializa o MATLAB, http://www.mathworks.com/ MatlabCentral, troca de informação, código e resolução de problemas em MATLAB http://www.mathworks.com/matlabcentral/ GNU Octave https://www.gnu.org/software/octave/ 41

8. Links - Octave https://www.gnu.org/software/octave/ GNU Octave is a high-level interpreted language, primarily intended for numerical computations. It provides capabilities for the numerical solution of linear and nonlinear problems, and for performing other numerical experiments. It also provides extensive graphics capabilities for data visualization and manipulation. Octave is normally used through its interactive command line interface, but it can also be used to write non-interactive programs. The Octave language is quite similar to Matlab so that most programs are easily portable. 42

8. Links - Octave https://www.gnu.org/software/octave/ 43

9. Exercícios Exercícios sugeridos (de enunciados de testes de semestres anteriores): Exercício #2, alínea b) do 1.º teste parcial, inverno 2016/2017, 25 de novembro de 2017 Exercício #1, alínea c), do teste de época de normal, inverno 2016/2017, 30 de janeiro de 2017 Exercício #1, alínea c), do teste de época de recurso, inverno 2016/2017, 16 de fevereiro de 2017 Exercício #3 do 1.º teste parcial, verão 2015/2016, 3 de maio de 2016 44

9. Exercícios Exercícios sugeridos (de enunciados de testes de semestres anteriores): Exercício #2 do 1.º teste parcial, verão 2014/2015, 4 de maio de 2015 Exercício #2 do 1.º teste (época normal), verão 2014/2015, 9 de julho de 2015 Exercício #2 do 1.º teste parcial, inverno 2014/2015, 26 de novembro de 2014 Exercício #3 do 1.º teste parcial, verão 2013/2014, 19 de abril de 2014 Exercício #3 do 1.º teste parcial, inverno 2013/2014, 13 de novembro de 2013 45