A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Introdução ao MatLab Aula 4 Multimédia Engenharia Biomédica.

Apresentações semelhantes


Apresentação em tema: "Introdução ao MatLab Aula 4 Multimédia Engenharia Biomédica."— Transcrição da apresentação:

1 Introdução ao MatLab Aula 4 Multimédia Engenharia Biomédica

2 Ficheiros M O MATLAB necessita que o ficheiro M seja armazenado ou na directoria de trabalho ou numa directoria que é especificado na sua directoria de trabalho. Por exemplo considere a utilização do MatLab num PC com um ficheiro M definido pelo utilizador armazenado numa directoria chamada "\MATLAB\MFILES";. Então, para aceder a esse ficheiro M tanto se pode mudar a directoria de trabalho com cd\matlab\mfiles da janela de comandos MATLAB ou adicionando esse directório ao percurso (path) do MATLAB. Adição permanente ao percurso é conseguido editando o ficheiro \MATLAB\matlabrc.m. Uma modificação temporária do percurso é feita teclando path(path,'\matlab\mfiles') a partir do MATLAB.

3 Ficheiros M Os ficheiros que vêm com o MATLAB estão já em directorias adequadas e podem ser usadas a partir de qualquer directoria de trabalho.

4 Funções em Ficheiros M Como exemplo duma M-File que define uma função, crie na sua directoria de trabalho um ficheiro chamado yplusx.m que contenha os seguintes comandos: –function z = yplusx(y,x) –z = y + x; Os seguintes comandos teclados no MATLAB demonstram este ficheiro M é usado –x = 2; –y = 3; –z = yplusx(y,x)

5 Controlo de Fluxo Instruções ciclos e condicionais –As instruções para ciclos e if existem mas devem se evitadas por serem computacionalmente ineficientes. –Um exemplo de uso da instrução for é for k=1:10, x(k) = cos(k); end Cria um vector de inteiros de inteiros positivos de 1 a 10. Esta operação pode ser criada com o comando k = 1:10; x = cos(k); Cria a função dum vector em vez do ciclo for

6 Instruções condicionais –Uma instrução if pode ser usada para definir instruções condicionais –Um exemplo é if(a <= 2), b = 1; elseif(a >=4) b = 2; else b = 3; end As comparações permitidas são >=,, ==, e ~=.

7 Ciclos While (controlo de fluxo) O ciclo While executa um conjunto de comandos um número determinado de vezes A forma geral do ciclo while é while expression commands… end Os comandos entre o while e o end são executados enquanto a expressão for verdadeira Exemplo >>num=0; EPS=1; >>while (1+EPS)>1 EPS=EPS/2; num=num+1; end >>num num = 53. >>EPS=2*EPS EPS= e-16

8 Variáveis definidas pelo utilizador Suponha por exemplo que deseja correr um ficheiro M com valores diferentes da variável T. A linha de comando seguinte no ficheiro M define o valor T = input('Introduza o valor de T: ') Sempre que o comentário entre plicas for mostrado no ecrã, o utilizador deve teclar o valor apropriado Use o help com os seguintes itens diary, save, load, who e whos.

9 Simulink Capacidade gráfica para diagramas de blocos –Pode introduzir e remover componentes (chamados blocos) Biblioteca extensiva de blocos –Uma é o conjunto de blocos para DSP

10 Simullink Um ambiente para construção e simulação de modelos. –Sistemas contínuos, discretos e híbridos –Componentes lineares e não lineares –Pode simular eventos assíncronos Integrada de forma harmoniosa com o MATLAB e as caixas de ferramentas

11 Modelo Simulink Um modelo simulink típico contém fontes, sistemas e sumidouros Fontes Sistemas Sumidouros 1.Ondas sinusoidais 2.Geradores de funções 3.From MATLAB workspace 4.Ficheiros em disco 1.Interligação de Blocos lineares e não lineares 1.Displays scopes 2.FFT scopes 3.Para o MATLAB workspace 4.Para ficheiros em disco

12 Um modelo Simulink simples

13 Biblioteca de Blocos Simulink –O Simullink contém bibliotecas que contêm componentes que podem ser usados para construir modelos –Uma biblioteca de blocos pode conter outras bibliotecas como blocos Sinks é uma bibloteca de componentes

14 Construção dum modelo Janela do modloe Biblioteca de blocos lineares Biblioteca de Fontes Use o botão esquerdo do rato para arrastar blocos para a janela do modelo

15 Use o botão do lado esquerdo do rato para Clicar numa porta e arrastar a lição Use o botão do lado Direito para fazer ligações Ligação de blocos

16 Mais sobre o Simulink Clique duas vezes num bloco para abrir a sua caixa de diálogo. Os parâmetros para o boloco podem ser estabelecidos nessa caixa. –Exemplo: definir a amplitude, frequência, fase e frequência da fonte sinusoidal Clique no botão de HELP da caixa de diálogo dum bloco para activar o browser web no ficheiro de ajuda desse componente. Uma vez seleccionado, o bloco pode ser rodado e variado o seu tamanho –Objectivo: o tornar o diagrama de blocos mais legível

17 Parâmetros de simulação O menu de simulação pode ser usado para definir os parâmetros da simulação Pode-se especificar o solver adequado. –Para sistemas discretos de passo fixo usar o solver discreto de passo fixo –Para sistemas multi-taxa usar o solver discreto de passo variável Pode-se também especificar variáveis que podem ser obtidas ou devolvidas ao espaço de trabalho MATLAB

18 Pode seleccionar porções do modelo usando o rato e transformá-los em subsistemas Pode mascarar subsistemas para esconder a complxidade do utilizador. Subsistemas

19 Exemplos

20 Função Passo Unitário %F1_7a Unit step function t=-2:0.01:5;% make t a vector of 701 points q=size(t); f=zeros(q(1),q(2));% set f = a vector of zeros q=size(t(201:701)); f(201:701)=ones(q(1),q(2));% set final 500 points of f to 1 plot(t,f),title('Fig.1.7a Unit step function'); axis([-2,5,-1,2]); % sets limits on axes xlabel('time, t'); ylabel(' u(t)'); grid; %F1_7a Unit step function t=-2:0.01:5;% make t a vector of 701 points q=size(t); f=zeros(q(1),q(2));% set f = a vector of zeros q=size(t(201:701)); f(201:701)=ones(q(1),q(2));% set final 500 points of f to 1 plot(t,f),title('Fig.1.7a Unit step function'); axis([-2,5,-1,2]); % sets limits on axes xlabel('time, t'); ylabel(' u(t)'); grid; Função Passo Genérico

21 %F1_7b Signal g(t) multiplica f(101:501)=2.5- cos(5*t(101:501) por funções pulso ([u(t+1)-u(t-3)] %F1_7b Signal g(t) multiplied by a pulse functions t= -2:0.01:5; q=size(t); f=zeros(q(1),q(2)); f(101:501)=2.5-cos(5*t(101:501)); plot(t,f),title('Fig.1.7b Signal g(t) multiplied by a pulse functions'); axis([-2,5,-1,4]); xlabel('time, t'); ylabel(' g(t)[u(t+1)-u(t-3)]'); grid; %F1_7b Signal g(t) multiplied by a pulse functions t= -2:0.01:5; q=size(t); f=zeros(q(1),q(2)); f(101:501)=2.5-cos(5*t(101:501)); plot(t,f),title('Fig.1.7b Signal g(t) multiplied by a pulse functions'); axis([-2,5,-1,4]); xlabel('time, t'); ylabel(' g(t)[u(t+1)-u(t-3)]'); grid;

22 Sequências 1.Sequência Rampa 2.Uma sequência rampa transladada com declive B é definida como: 3.Sequência rampa unitária e sequências de rampa transladada Código MATLAB : n=-10:1:20; f=2*(n-10); stem(n,f); Código MATLAB : n=-10:1:20; f=2*(n-10); stem(n,f);

23 Sequência Exponencial Real 1.Definida como: Exemplo para A = 10 e a = 0.9, a sequência aproxima-se de zero quando n tende para infinito e aproxima-se de mais infinito quando n tende para menos infinito MATLAB Code: n=-10:1:10; f =10*(.9).^n; stem(n,f); axis([ ]);

24 Sequência Sinusoidal 1.Uma sequência sinusoidal pode ser descrita como : 2.Onde A é um número real positivo (amplitude), N é o período, e a a fase. 3.Exemplo: 4.A = 5, N = 16 5.e 6.Código MATLAB : 7.n=-20:1:20; 8.f=5*[cos(n*pi/8+pi/4)]; 9.stem(n,f);

25 Sequência sinusoidal modulada exponencialmente 1.Obtém-se multiplicando uma sequência exponencial por uma sequência sinusoidal. Pode ser descrita por : 2.Exemplo: 3.A = 10, N = 16, a = 0.9 Código MATLAB : 1.n=-20:1:20; 2.f=10*[0.9.^n]; 3.g=[cos(2*n*pi/16+pi/4)]; 4.h=f.*g; 5.stem(n,h); 6.axis([ ]);


Carregar ppt "Introdução ao MatLab Aula 4 Multimédia Engenharia Biomédica."

Apresentações semelhantes


Anúncios Google