Introdução ao MatLab Aula 2 Sistemas Multimédia 3º ano Engenharia Informática Universidade Católica de Angola 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; B if Bu(t t0 ) 0 if t t0 t to . Função Passo Genérico %F1_7b Signal g(t) multiplica f(101:501)=2.5cos(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; Sequências 1. Sequência Rampa 2. Uma sequência rampa transladada com declive B é definida g (n) B(n n0 ) 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); Sequência Exponencial Real 1. Definida como: f (n) A(a)n 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([-10 10 0 30]); Sequência Sinusoidal 1. Uma sequência sinusoidal pode ser descrita como : 2n f (n) A cos N 2. 3. 4. 5. Onde A é um número real positivo (amplitude), N é o período, e a a fase. Exemplo: A = 5, N = 16 e a / 4. 6. Código MATLAB : 7. 8. 9. n=-20:1:20; f=5*[cos(n*pi/8+pi/4)]; stem(n,f); Sequência sinusoidal modulada exponencialmente 1. Obtém-se multiplicando uma sequência exponencial por uma sequência sinusoidal. Pode ser descrita por : 2n g (n) A(a) n cos N 2. 3. Examplo: A = 10, N = 16, a = 0.9 / 4. Código MATLAB : 1. 2. 3. 4. 5. 6. n=-20:1:20; f=10*[0.9 .^n]; g=[cos(2*n*pi/16+pi/4)]; h=f .*g; stem(n,h); axis([-20 20 -30 70]); Introdução ao MatLab 1. 2. 3. 4. 5. 6. 7. 8. 9. Números e Formato Ajuda da linha de comando Variáveis Vectores e Matrizes Desenho de funções elementares Carregamento e salvaguarda Ficheiros M Instruções para ciclos e Ifs Variáveis definidas pelo utilizador Números e formatos • O MatLab reconhece vários tipos de números: – – – – – Integer (Ex: 12 - 678), Real (Ex: 4.607 - 199.34), Complex (Ex: 2 + 3i , i=j=sqrt(-1)), Inf (Ex: Infinity 2/0), NaN (EX: Not a Number, 0/0). • Todos os cálculos são feitos em dupla precisão Números e Formato – O comando format no MatLab é usado para controlar a impressão dos números – O nº de dígitos mostrados não tem a ver com a precisão ou acurácia – Para formatar a visualização pode-se usar: format short e para notação científica com 5 casas decimais format long e para notação científica com 15 casas decimais format bank para colocação de dois dígitos significativos nas casas decimais Números e Formatos Use help format para mais informação. Comando • • • • • • format short format short e format long e format bank format hex format + Examplo de saída 11.3045 (4-casas decimais) 1.1304e+01 1.130452467450893+01 11.30 (2-casas decimais) Formato hexadecimal São impressos os símbolos +, - e espaços em braco Ajuda no MatLab • Ajuda e informação no MatLab pode ser obtida de várias formas – Na linha de comando usando help tópico – Numa janela de ajuda separada no menu de help – No helpdesk MatLab mantido no disco ou CDROM Ajuda na linha de comando >>help pi PI 3.1415926535897.... PI = 4*atan(1) = imag(log(1)) = 3.1415926535897.... >>help sin SIN Sine. SIN(X) is the sine of the elements of X. Variáveis • Variáveis ans atribuídas por defeito pelo MATLAB. • Por exemplo, teclando >>12+2.3*2 ou >>12+2.3*2,devolve: ans = 16.6000 • >>12+2.3*2; não devolve nada (mas o resultado é guardado na variável "ans“) • (escreva >>ans para ver o resultado da operação que é 16.6000). • Vírgulas (,) dizem ao MATLAB para mostrar resultados • Ponto e vírgula (; ) para suprimir impressões Variáveis • As variáveis é atribuído um valor numérico teclando directamente a expressão. Por exemplo, – >>a = 12+2.3*2 – devolve: a = 16.6000 • A resposta não será mostrada se for colocado um ; no fim da expressão. Por exemplo, • >>a = 12+2.3*2; Variáveis • Nomes legais de variáveis consistem numa combinação qualquer de letras e dígitos, começando com uma letra. – Examploss: Ali22B, Cost, X3_f22 and s2Sc6. • Variáveis ilegais no MatLab: Ali-22, 5x, 3Cost, &r5, %67 and @xyt56 Caracteres no MATLAB por exemplo X='a'; Strings no MATLAB por exemplo mg1='Ali'; ou mg2='MATLAB DEMOS'; Variáveis • O MatLab usa os seguintes operadores (para matrizes e vectores) + para adição para subtração * para multiplicação ^ para potência ‘ para transposta \ para divisão à esquerda / para divisão à direita Variáveis • As operações sobre matrizes também se aplicam a escalares – Um escalar é uma matriz 1x1 • Comentários são precedidos por um "%". • Os comandos who e whose dão os noms das variáveis que foram definidas na área de trabalho. Variáveis A uma variável pode ser atribuído um valor que usa esses operadores a combinar números e variáveis definidas previamente. Por exemplo, uma vez que a foi definido previamente é valida a seguinte expressão • >>b = 5*a; • Para determinar o valor duma quantidade definida previamente basta teclar a variável assocada • >>b • devolve: b = 83.0000 Variáveis • Ua expressão não couber numa linha use três ou mais ou mais pontos no fim da linha e continue na linha seguinte – >>c = 1+2+3+... 5+6+7; • Há uma série de variáveis pré-definidas que podem ser usadas em qualquer altura tal como as variáveis definidas pelo utilizador: – i, sqrt(-1) - j, sqrt(-1) - pi, 3.1416... Variáveis • Há uma série de funções pré-definidas que podem ser usadas na definição duma variável. Algumas das mas usadas são abs angle cos sin magnitude dum número (valor absoluto para números reais) ângulo dum número complexo, em radianos função coseno com argumento em radianos função seno com argumento em radianos exp função exponencial Variáveis • • • • • • • • • • • • • • Com o y definido anteriormente, x = abs(y) devolve: x = 10.8167 c = angle(y) devolve: x = 0.9828 Com a = 3, x = cos(a) devolve: x = - 0.9900 x = exp(a) devolve: x = - 20.0855 Observe que exp pode ser utilizado em números complexos. Por exemplo com y = 2+8i, x = exp(y) resulta: x = - 1.0751 + 7.3104i O que pode ser verificado com a fórmula de Euler – x = exp(2)cos(8) + j.exp(2)sin(8) Vectores e Matrizes • O MATLAB é baseado na álgebra de is matrizes e vectores; mesmo os escalares são tratados como matrizes 1x1. • Portanto, as operações são tão simples como as comuns num calculador. • O número de entradas (elementos ou componentes) é designado por “comprimento" do vector. • As entradas dem ser colocadas entre […] Vectores e Matrizes Os vectores podem ser criados de duas formas . O primeiro método é usado para elementos arbitrários >>v = [1 3 5 sqrt(49)]; • Cria um vector 1x4 vector com elementos 1, 3, 5 and 7. • Poderiam ser usadas vírgulas para separar os elementos do vector ([1,3,5,sqrt(49)]). • Podem-se adicionar elementos ao vector – >>v(5) = 8; – Cria o vector v = [1 3 5 7 8]. • Vectores definidos anteriormente podem ser usados para definir um novo vector. • Por exemplo com o v definido anteriormente • >>a = [9 10]; • >>b = [v a]; • Cria o vector b = [1 3 5 7 8 9 10]. Vectores e matrizes • O segundo método é usado para criar vectores com elementos igualmente espaçados: – >>t = 0:0.1:10; – Cria um vector 1x101 com os elementos 0, .1, .2, .3,...,10. • O número a meio é o incremento – Se forem dados apenas dois números o incremento é colocado para o valor 1 por omissão. – >>k = 0:10; – Cria um vector 1x11 com os elementos 0, 1, 2, ..., 10. Vectores e Matrizes • São definidas introduzindo os elementos fila a fila: – >>A = [2 3 4; 5 -7 6; 10 5 3] • Cria a matriz Vectores e Matrizes • Há uma série de matrizes especiais que podem ser definidas: matriz nula: M = [ ]; matriz nxm de zeros: M = zeros(n,m); matriz nxm de uns : M = ones(n,m); matriz identidade nxn : M = eye(n); Intrdu Vectors and Matrices: • There are a number of special matrices that can be defined: null matrix: M = [ ]; nxm matrix of zeros: M = zeros(n,m); nxm matrix of ones: M = ones(n,m); nxn identity matrix: M = eye(n);