Sistemas de Processamento Digital
Engenharia de Sistemas e Informática
Guia 0
2005/2006
4.º Ano/ 2.º Semestre
Utilização do MATLAB e do LABVIEW
O MATLAB é um programa cálculo numérico que pode ser usado interactivamente. A sua estrutura de dados
fundamental é a matriz, que pode ter elementos reais ou complexos. Embora na sua versão base o MATLAB
já possua um vasto conjunto de funções de carácter genérico, existem várias bibliotecas de funções
adicionais (designadas por toolboxes) que expandem as suas capacidades em domínios de aplicação mais
específicos.
1. Variáveis e expressões
No MATLAB todas as variáveis são identificadas por um nome que é formado por um ou mais
símbolos alfanuméricos, não podendo o primeiro ser um dígito. É também possível utilizar o símbolo
_ como parte do identificador de uma variável.
Para criar a variável x com o valor 2 podemos escrever:
» x=2
e o MATLAB responde com
x =
2
Para criar a variável y com o valor (complexo) 2+i podemos escrever:
» y =2+i
y =
2.0000 + 1.0000i
Note-se que o MATLAB inicializa as variáveis i e j com a raiz quadrada de –1. Para calcular o
valor z = x ⋅ y − 4 y + y 3 escrevemos:
» z=x*y-4/y+y^3
z =
4.4000 +13.8000i
Para obter informação sobre as operações elementares que podem ser usadas em expressões podemos
usar o comando help ops.
Sistemas de Processamento Digital
Manuel A. E. Baptista
1
2. Funções
Entre as funções base do MATLAB incluem-se as funções trigonométricas, exponenciais e
logarítmicas. Para determinar o valor de uma função num dado ponto há apenas que indicar qual a
função e o ponto em causa. Assim, se quisermos calcular sin 0.5 teremos simplesmente de escrever:
» sin(0.5)
ao que o MATLAB responde com
ans =
0.4794
Se nada for dito em contrário o MATLAB atribui o resultado da última operação à variável ans. Se
quiséssemos guardar o valor de sin 0.5 na variável a, teríamos de escrever:
» a=sin(0.5);
Uma vez a expressão foi terminada com o carácter ; o MATLAB não mostra o seu resultado (esta
possibilidade é particularmente útil quando estamos a efectuar cálculos intermédios envolvendo
grande quantidade de dados e não necessitamos de saber quais os seus valores).
Para obter uma listagem e descrição das funções elementares do MATLAB usa-se o comando help
elfun.
3. Vectores
A forma mais simples de criar vectores é simplesmente listar os seus elementos. Para tal é apenas
necessário usar os caracteres [ e ] para sinalizar o início e o fim do vector. Criemos então o vector
u:
» u=[1 0 3 5 –1 4]
u =
1
0
3
5
-1
4
A criação de vectores de pontos igualmente espaçados é feita de uma forma muito simples. Se
quisermos criar um vector v com pontos de 0 a 10 igualmente espaçados de 2 unidades, fazemos
simplesmente:
» v=0:2:10
v =
0
2
4
6
8
10
Se quisermos somar os vectores u e v (podemos fazê-lo pois têm a mesma dimensão) temos
simplesmente de fazer:
» u+v
ans =
1
2
7
11
7
14
Se quisermos multiplicar o vector u por 0.4 temos apenas de fazer:
Sistemas de Processamento Digital
Manuel A. E. Baptista
2
» 0.4*u
ans =
0.4000
0
1.2000
2.0000
-0.4000
1.6000
Para determinar o valor de uma função em todos os elementos de um vector basta indicar o vector
como argumento da função. Assim se pretendermos calcular a função coseno nos pontos
correspondentes aos elementos do vector v, basta efectuar:
» cos(v)
ans =
1.0000
-0.4161
-0.6536
0.9602
-0.1455
-0.8391
4. Gráficos
Para desenhar um gráfico de uma função real de variável real, teremos de definir dois vectores, um
com os valores da variável independente e outro com os valores da função calculados em cada um
desses pontos. Assim se quisermos desenhar o gráfico da função seno no intervalo [0,10] teremos de
definir:
» x=0:0.05:10;
» y=sin(x);
Para desenhar o gráfico usaremos o comando:
» plot(x,y)
Após este comando o MATLAB abre uma janela onde é mostrado o gráfico da função.
O comando help graphics permite listar as funções gráficas disponíveis.
5. Matrizes
O modo mais simples de definir uma matriz é indicando os seus elementos. Estes deverão estar
compreendidos entre os caracteres [ e ] e são listados linha a linha; cada linha da matriz é terminada
com o caractere; ou com ENTER. Na verdade os vectores (linha) já apresentados não são mais do que
matrizes com apenas uma linha. Criemos então as matrizes A e B:
» A=[0 2 1; 3 4 5]
A =
0
3
2
4
1
5
» B=[0 1 0; 2 3 4]
B =
0
2
1
3
Sistemas de Processamento Digital
0
4
Manuel A. E. Baptista
3
Se quisermos somar as matrizes A e B faremos simplesmente:
» A+B
ans =
0
5
3
7
1
9
Se quisermos calcular a matriz C = A ⋅ A T devemos fazer:
» C=A*A’
C =
5
13
13
50
Note-se que no caso geral de uma matriz com elementos complexos, o operador apóstrofe fornece a
matriz transposta conjugada. Em tal caso dever-se-á utilizar o operador .’ (ponto-apóstrofe) para
determinar a matriz transposta.
É também possível a partir de duas matrizes de iguais dimensões obter outra cujos elementos sejam
os produtos ou quocientes dos elementos das matrizes originais. Para tal usam-se os operadores .* e
./. Assim, se quisermos multiplicar a matrizes A e B elemento a elemento:
» A.*B
ans =
0
6
2
12
0
20
A expressão C^3 fornece a potência de ordem 3 da matriz (quadrada) C:
» C^3
ans =
10265
38272
38272
142745
A expressão B.^3 fornece uma matriz com as potências de ordem 3 dos elementos da matriz B:
» B.^3
ans =
0
8
1
27
0
64
Existem operações que permitem seleccionar um ou mais elementos de uma matriz. Por exemplo, o
elemento da linha 2 e coluna 3 da matriz A, obtém-se fazendo:
» A(2,3)
ans =
5
Para obter os elementos da primeira linha de B deve-se fazer:
» B(1,:)
ans =
0
1
Sistemas de Processamento Digital
0
Manuel A. E. Baptista
4
Para obter os elementos da segunda coluna de A faz-se:
» A(:,2)
ans =
2
4
Para além de todas estas operações sobre matrizes existem um vasto leque de funções especialmente
dedicadas à manipulação de matrizes. Uma listagem e descrição destas funções pode ser obtida por
intermédio dos comandos help elmat e help matfun. Uma função bastante útil é a função
inv que permite calcular inversa de uma matriz quadrada:
» D=inv(C)
ans =
0.6173
-0.1605
-0.1605
0.0617
A função eig calcula os valores próprios de uma matriz:
» eig(C)
ans =
1.5144
53.4856
Refira-se que esta função permite também obter vectores próprios de uma matriz. Uma descrição
detalhada do seu funcionamento obtém-se fazendo help eig.
A função size retorna um vector (linha) em que o primeiro elemento é o número de linhas e o
segundo o número de colunas de uma matriz passada como argumento:
» size(A)
ans =
2
3
A função eye aceita como argumento um inteiro positivo e retorna a matriz identidade
correspondente. A função zeros retorna uma matriz com todos os elementos nulos e a função
ones retorna uma matriz com todos os elementos iguais a um; em ambas, os argumentos definem o
número de linha e de colunas da matriz a construir.
Sistemas de Processamento Digital
Manuel A. E. Baptista
5
Polinómios
Embora o MATLAB não permita trabalhar directamente com polinómios, dispõe de um conjunto de
funções dedicadas à manipulação de polinómios. Uma listagem e descrição destas funções pode ser
obtida fazendo help polyfun. No MATLAB um polinómio numa variável, por exemplo, x é
representado por uma vector linha cujos elementos são os coeficientes das sucessivas potências de x,
listados das mais alta potência até ao termo independente. Assim, o polinómio
p ( x) = x 4 + 10 x 3 + 35 x 2 + 50 x + 24 será representado por:
» p=[1 10 35 50 24]
p =
1
10
35
50
24
A função roots permite calcular as raízes de um polinómio:
» raizes=roots(p)
raizes =
-4.0000
-3.0000
-2.0000
-1.0000
A função poly permite obter um polinómio a partir de um vector (coluna) com as suas raízes. O
polinómio retornado tem o coeficiente da mais alta potência unitário:
» poly(raizes)
ans =
1
10.0000
35.0000
50.0000
24.0000
Esta função quando aplicada a uma matriz quadrada retorna o seu polinómio característico (sempre
com o coeficiente da mais alta potência unitário). Assim o polinómio característico da matriz C será
dado por:
» poly(C)
ans =
1.0000
-55.0000
81.0000
Para somar ou subtrair dois polinómios basta somar os vectores com os respectivos coeficientes. No
entanto estes vectores terão de ter o mesmo número de elementos. Se tal não acontecer ter-se-á de
aumentar o vector de menor dimensão com elementos nulos. Para efectuar a soma r ( x) = p( x) + q( x) ,
onde q( x) = −10 x 2 + 20 x − 24 , deveremos fazer:
» q=[–10 20 –24];
» r=p+[0 0 q]
r =
1
10
Sistemas de Processamento Digital
25
70
0
Manuel A. E. Baptista
6
Para multiplicar dois polinómios utiliza-se a função conv. O produto m( x) = p( x) ⋅ q( x) determina-se
do seguinte modo:
» m=conv(p,q)
m =
-10
-80
-174
-40
-80
-720
-576
A função deconv realiza a divisão entre polinómios, fornecendo os polinómios quociente e resto.
Assim os polinómios l (x) e n(x) tais que p( x) = l ( x) ⋅ q( x) + n( x) , onde o grau de n(x) é inferior ao de
q(x) , obtêm-se fazendo:
» [l,n]=deconv(p,q)
l =
-0.1000
-1.2000
-5.6600
0
0
n =
0
Sistemas de Processamento Digital
134.4000 -111.8400
Manuel A. E. Baptista
7
Download

Enunciado