Curso de Matlab

Curso de Matlab

(Parte 9 de 11)

a = 5.6; disp (circum(a)) c = [1.2 3; 5 2.3]; circum ( c) ;

Assim, circum passa a ser uma função MATLAB assim como ones, sin e outras. A parte comentada no arquivo circum.m é usada quando digitarmos help circum no prompt do MATLAB.

Há algumas regras para escrever uma função de arquivo M:

• A função deve começar com uma linha contendo a palavra function, seguida pelo argumento de saída, um sinal de igual, e o nome da função. Os argumentos para a função devem estar entre parênteses. Esta linha define os argumentos de entrada e saída;

• As primeiras linhas devem ser comentários porque serão exibidas quando o menu help for usado juntamente com o nome da função , como help circum;

• A única informação retornada da função é contida nos argumentos de saída, que são, obviamente, matrizes. Verificar se a função inclui um comando que assegure um valor ao argumento de saída.

• Uma função que possui mais de uma variável de saída como por exemplo: function [ dist, vel, acel] = motion (x)

Deve apresentar as variáveis de saída dentro de colchetes. Além disso, todos os valores devem ser calculados dentro da função.

• Uma função que tenha múltiplos argumentos de entrada deve listar os argumentos no comando function, como mostramos no exemplo a seguir, que tem dois argumentos de entrada:

function error = mse (w,d)

• As variáveis especiais nargin e nargout podem ser usadas para determinar o número de argumentos de entrada passadas para uma função e o número de argumentos de saída solicitados quando a função é chamada.

Curso de MATLAB

Cap. 3 – Cálculos com Matrizes34

Solução de Problemas Aplicados à Engenharia: Sinais de Sonar

O estudo do sonar (sound navigation and ranging) inclui a geração, transmissão, e recepção de energia sonora na água. Dentre as aplicações destacamos: mapeamento geológico, medidas de sinal biológico, navegação submarina e exploração mineral. Um sistema sonar ativo transmite um sinal que é normalmente um sinal senoidal de freqüência conhecida. As reflexões ou os ecos do sinal são recebidos e analisados para prover informações sobre o meio envolvente. Um sistema sonar passivo não transmite sinais mas coleta-os de sensores e os analisa baseado em suas freqüências.

Nesta seção, descreveremos as senóides, já que é um sinal básico usando em sistemas sonar. Depois, desenvolveremos um programa MATLAB para gerar um sinal sonar.

Geração de um Sinal Senoidal Uma senóide é uma função seno escrita em função do tempo:

g(t) = sen (2pft) onde f é a freqüência da senóide em ciclos por segundo, ou Hertz(Hz). Se a freqüência de uma senóide for 5 HZ, teremos:

g(t) = sen (2p5t) = sen (10pt)

Então haverá cinco ciclos da senóide em um segundo, ou seja, a freqüência de uma senóide é 5 HZ. O período P de uma senóide é o intervalo de tempo que corresponde a um ciclo; portanto, o período desta senóide é 0,2 segundos. A relação entre período e freqüência é dada por f = 1/ P onde f é a freqüência em Hz e P é o período em segundos. Se a senóide é multiplicada por um escalar A, a equação pode ser escrita nesta forma:

O escalar é também chamado de amplitude da senóide. Uma senóide com um ângulo de fase f em radianos pode ser escrita como:

g(t) = Asen (2pft + f )

Se o ângulo de fase for igual a p/2 radianos, a senóide poderá ser escrita sob termos de uma função seno ou cosseno, e pode ou não incluir um ângulo de fase.

Curso de MATLAB

Cap. 3 – Cálculos com Matrizes35

Gerando um sinal sonar

Conforme já dito, um dos tipos de sinais usados em sistemas de sonar é um sinal senoidal.

As senóides podem ser representadas pela equação: onde :

E é a energia transmitida, PD é a duração do pulso em segundos, fc é a freqüência em Hertz.

Duração de um sinal sonar podem alcançar de uma fração de milisegundos a alguns segundos; e as freqüências, de poucas centenas de Hz a dezenas de KHz dependendo do sistema e do alcance de operação desejado.

Escreva um programa MATLAB que permita ao usuário entrar com valores de E, PD, e fc para gerar um sinal sonar. Armazene os valores do sinal em um arquivo MAT denominado sonar.mat. A amostragem do sinal deve cobrir a duração do pulso e conter 10 amostras de cada período de x(t). Além disso, adicione um período de 200 pontos de silêncio depois do pulso.

Escreva um programa para gerar um sinal sonar que contenha 10 amostras de cada período de uma senóide específica, cobrindo uma duração de tempo determinada.

Os valores de E (energia transmitida em joules), PD (duração do pulso em segundos), e fc (freqüência em Hz) são os valores de entrada. A saída é um arquivo denominado sonar.mat, que contém os valores de tempo e sinal para a duração do pulso sonar, como mostramos na figura 3.7. Também plotamos o sinal sonar.

£= tesinsdemaisospara

PDtfc

PDE ts tan0 sonar.mat

Curso de MATLAB

Cap. 3 – Cálculos com Matrizes36

Para um exemplo manual, usamos os valores a seguir:

E = 500 joules PD = 5 milisegundos (ms) fc = 3,5 KHz

O período da senóide é 1/3500, ou aproximadamente 0,3 ms. Assim, para ter 10 amostras por período, o intervalo da amostragem precisa ser aproximadamente 0,03 ms. A duração do pulso é 0,5 ms, e portanto precisamos de 167 amostras do sinal:

Os primeiros valores do sinal sonar são calculados com aproximação de uma casa decimal.

Adicionaríamos 200 pontos de silêncio através de dados adicionais com seus tempos correspondentes e valores de sinais.

3.5 Números Complexos

As soluções de muitos problemas de engenharia como sistema de controle para um braço mecânico ou análise da estabilidade de um circuito elétrico envolvem a busca das raízes de uma equação da seguinte forma: y = f(x) onde as raízes são os valores de x para qual y é igual a zero. Considere a forma geral para um polinômio de grau n:

a1xn + a2xn-1 + a3xn-2 + … + na-1 x2 + anx + an+1 = 0

Um polinômio de grau n terá n raízes, sendo que algumas podem ser raízes múltiplas ou raízes complexas. Nesta seção discutiremos as operações com números complexos e as funções MATLAB que os usam.

Curso de MATLAB

Cap. 3 – Cálculos com Matrizes37

Operações Aritméticas com Números Complexos

(Parte 9 de 11)

Comentários