Aula 05 - Sistemas de tempo discreto Classificação Bibliografia OPPENHEIM, A.V.; WILLSKY, A. S. Sinais e Sistemas, 2a edição, Pearson, 2010. ISBN 9788576055044. Páginas 25-36. HAYKIN, S. S.; VAN VEEN, B. Sinais e sistemas, Bookman, 2001. ISBN 8573077417. Páginas 59-70. 2. Sistemas de tempo discreto no domínio do tempo 2.1 Sistema de tempo discreto Em aulas passadas já foi discutido o conceito de sistema. Foi visto que um sistema é uma interconexão de operações que transforma um sinal de entrada em um sinal de saída. Neste curso, abordam-se particularmente os sistemas em que os sinais são de tempo discreto. Estes sistemas são chamados de sistemas de tempo discreto. Matematicamente, se expressa um sistema por um operador. Por exemplo, para dizer que um sinal [ n] é a saída de um sistema H cuja entrada é [ n] x escreve-se: Em diagrama de blocos: n = H x n x [ n] [ n] H Exercícios 1. (LATHI, 2007; p. 295) A média móvel é usada para detectar a tendência de uma variável que flutua muito rapidamente como as médias do mercado de ações. Uma variável pode flutuar (para cima ou para baixo) diariamente, mascarando a sua tendência de longo prazo. 1
Podemos obter a tendência de longo prazo suavizando ou tomando a média dos N últimos valores da variável. Para o mercado de ações, podemos considerar uma média móvel de 3 dias [n] como sendo a média dos valores de fechamento do mercado de ações dos últimos três dias, x [ n], x [ n 1] e [ n 2] (a) Escreva a equação de diferenças relacionando [n] x. com a entrada [ n] x. (b) Usando elementos de atraso, faça um diagrama de blocos deste filtro de média móvel. 2. (LATHI, 2007; p. 297) Resolva a seguinte equação iterativamente (primeiros três termos apenas): [ n] 0,6[ n 1] 0,16 [ n 2] = 0 com [ 1 ] = 25, [ 2 ] = 0. 3. (LATHI, 2007; p. 297) Resolva a seguinte equação iterativamente (primeiros três termos apenas): [ n + 2 ] + 3[ n + 1] + 2[ n] = x[ n + 2] + 3x[ n + 1] + x[ n] 3 com x[n] 3 u[n], [-1] = 3 e [-2] = 2 = n. 4. (LATHI, 2007; p. 295) A saída de uma caixa registradora [n] representa o preço total de n itens passados pela caixa. A entrada x [ n] é o preço do n - ésimo item. (a) Escreva a equação de diferenças relacionando [n] a [ n] x. (b) Esquematize a realização deste sistema usando APENAS UM elemento de atraso. 2
2.1.1 Classificação de sistemas 2.1.1.1 Memória Diz-se que um sistema possui memória se sua saída depende de valores passados ou futuros do sinal de entrada. A extensão temporal de valores passados dos quais a saída depende define quão longe a memória se estende no passado. Em contrapartida, diz-se que um sistema é sem memória se seu sinal de saída depende somente do valor presente do sinal de entrada. Por exemplo, o sistema de média móvel do Exercício 1 descrito pela relação entrada-saída: 1 [ n] = n 3 ( x[ n] + x[ n 1] + x[ 2] ) tem memória, uma vez que o valor do sinal de saída [n] no instante n depende do valor atual e de dois valores passados do sinal de entrada x [ n]. Por outro lado, um sistema descrito pela relação: 2 [ n] = x [ n] é sem memória uma vez que o valor do sinal de saída [n] no tempo n depende apenas do valor atual do sinal de entrada x [ n]. 2.1.1.2 Causalidade Diz-se que um sistema é causal se o valor atual do sinal de saída depender somente dos valores presentes e/ou passados do sinal de entrada. Em contrapartida, o sinal de saída de um sistema não causal depende de valores futuros do sinal de entrada. Por exemplo, o sistema de média móvel já descrito, 3
1 [ n] = n 3 ( x[ n] + x[ n 1] + x[ 2] ) é causal. Por outro lado, o sistema de média móvel descrito por: 1 [ n] = n 3 ( x[ n + 1] + x[ n] + x[ 1] ) é não causal uma vez que o sinal de saída [ n] depende de um valor futuro do sinal de entrada, a saber, x [ n +1]. 2.1.1.3 Invariância no tempo Diz-se que um sistema é invariante no tempo se um retardo de tempo ou avanço de tempo do sinal de entrada levar a um deslocamento idêntico no sinal de saída. Isto implica que um sistema invariante no tempo reage de maneira idêntica, não importa quando o sinal de entrada seja aplicado. Dizendo com outras palavras, as características de um sistema invariante no tempo não se modificam com o tempo. Caso contrário, diz-se que o sistema é variante no tempo. Por exemplo, o sistema [ n] = 2x[ n 1] n [ n] = r x( n) é variante no tempo. é invariante no tempo. Já o sistema 2.1.1.4 Linearidade Dizemos que um sistema é linear quando são válidos os princípios da superposição e da homogeneidade explicados a seguir. Caso contrário, o sistema é chamado não linear. 4
A. Princípio da superposição Seja um sistema [ n] = H[ x[ n ] e sejam 1 [ n] a resposta à entrada x 1 [ n] e [ n] resposta à entrada [ n] x 2 2 a. Um sistema satisfaz o princípio da superposição se, quando aplicamos a ele a entrada [ n] = x [ n] x [ n] sua saída é [ n] [ n] x S 1 + 2 S 1 + 2 =. B. Princípio da homogeneidade Seja um sistema [ n] = H[ x[ n ] e seja 1 [ n] a resposta à entrada [ n] x 1. Um sistema satisfaz ao princípio da homogeneidade se quando aplicamos a ele a entrada [ n] ax [ n] x H 1 * =, R a, sua saída é [ n] a [ n] H 1 =. Assim, para verificar se um sistema é linear é necessário testar as duas condições acima. Exercícios 5. (1021) Um sistema linear e invariante no tempo tem a seguinte resposta à entrada x[ n] δ [ n] = (resposta ao impulso): Faça um esboço da saída [ n] deste sistema quando a entrada é: (a) x[ n] = 3δ [ n] (b) x[ n] = δ [ n 2] (c) x[ n] = 2δ [ n] + 0,5δ [ n 1] 5
6. (1031) Um sistema de tempo discreto é definido pela seguinte equação de diferenças: (a) Este sistema é causal? Justifique. [ n] = x[ n] ( 1 x[ n 1] ) (b) Este sistema tem memória? Justifique. (c) Este sistema é linear? Justifique. (d) Este sistema é invariante no tempo? Justifique. (e) Determine iterativamente a resposta ao degrau deste sistema ( [ n] u[ n] 0 n 5. (f) Repita o item (e) para [ n] = u[ n 2]. x. (g) Repita o item (e) para x[ n] 3u[ n] =. Resp: (f) [ n] = { 0; 0; 1; 0; 0; 0}, 0 n 5; (g) [ n] = { 3; 6; 6; 6; 6; 6 }, 0 n 5 x = ) para L2 - Sequências e equações de diferenças L.2.1 Geração de Sinais Discretos (Sequências de Números) Um sinal discreto é representado matematicamente como sequências de números. A sequência de números x, no qual o n -ésimo número é denotado por x [ n], é representada por { x[ n] } x =. Segue-se um exemplo de como definir um sinal de tempo discreto usando o Matlab. a- Definir as variáveis (como o vetor de índices de tempo {n}) >> nn = 0:30; % vetor de índice de tempo com 31 pontos %com intervalo inteiro = 1 b- Definir a função matemática que representa a sequência >> seno = sin(nn/2+1) c- Usa-se para apresentar graficamente sinais discretos a função stem >> stem(nn,seno) 6
L.2.1.1 Sinal impulso Vejamos agora como representar um impulso de tempo discreto δ [ n] no Matlab. Como se definiu na aula anterior, Exemplo 1 δ 1, n = 0 δ [ n] = e 0, n 0 [ n n ] 0 1, n = n0 = 0, n n A seguinte sequência de comandos gera um impulso [ n] >> clear >> npontos = 31; >> nn = 0:(npontos-1); >> imp = zeros(npontos,1); >> imp(1) = 1; >> stem(nn,imp); >> title('sinal amostrado') >> xlabel('amostras no tempo') >> label('amplitude') 0 δ para 0 30 n. Uma sequência pode ser formada por uma soma de impulsos ponderados deslocados. Exemplo 2 Gere o sinal x1 [ n] definido por 1[ n] = 0,9 [ n 5] clear x δ, 0 n 19. 7
npontos = 20; nn = 0:npontos-1; x1 = zeros(npontos,1); x1(6) = 1*0.9; stem(nn,x1); title('sinal X1 amostrado') xlabel('amostras no tempo') label('amplitude') grid L.2.1.2 O sinal senoidal A função cosseno é geralmente descrita por quatro parâmetros: amplitude, frequência, instantes em que se deseja calcular seu valor e fase. [ n] = Acos ( ω n + φ) x 0 A seguinte função implementa a função [ n] = Acos ( ω n + φ) no Matlab. x 0 function [x]=calccos(a,w,n,f); % calcula o cosseno dados os parâmetros % amplitude, frequência angular, vetor de intervalos do tempo, e fase x=a*cos(w*n+f); 8
Exemplo 3 A seguir, a função descrita é utilizada para gerar o sinal x[ n] 0 n 25. clear a = 1; w = pi/17; fase = 0; nn = 0:25; x1=calccos(a,w,nn,fase); stem(nn,x1); title('sinal Co-seno X1 amostrado') xlabel('amostras no tempo'); label('amplitude'); grid = cos π n 17 para L.2.1.3 O sinal degrau unitário Viu-se também na aula passada que o sinal degrau unitário é definido por u [ n] 1, se n 0 = 0, se n < 0 A seguinte função pode ser usada para gerar sinais degraus function [x,n]=step1(n0,n1,n2); 9
% gera degrau quando x[n]=u[n-n0]; n1<=n<=n2 n = [n1:n2]; x =[(n-n0)>=0]; Exemplo 4 Como exemplo de sua utilização, a seguinte sequência de comandos gera um sinal rampa x [ n] = nu[ n] 1 para 0 20 n. clear n = [0:20] x1 = n.*(step1(0,0,20)) stem(n,x1); title('sinal X1') xlabel('amostras no tempo') label('amplitude') grid L.2.2 Equações de diferença lineares com coeficientes constantes As equações de diferença lineares com coeficientes constantes são de extrema importância para o processamento digital de sinais. Os filtros digitais podem ser e são geralmente descritos por equações de diferença lineares com coeficientes constantes. Os processadores digitais (DSP) possuem instruções para essas equações, para mapeamento delas dentro de um programa. 10
Uma equação de diferenças genérica pode ser descrita como N k = 0 em que N é a ordem do sistema. a k M [ n k] = b x[ n k] Utiliza-se a função filter do Matlab para se obter a resposta de um sistema quando aplicada uma excitação. Por exemplo, para a equação: em que x [ n] é o sinal de entrada e [ n] pb=[0.3 0.6 0.3]; %coeficientes (b) pa=[1 0 0.9]; %coeficientes (a) k = 0 [ n] + 0,9 [ n 2] = 0,3x[ n] + 0,6x[ n 1] + 0,3x[ n 2] é o sinal de saída, =filter(pb,pa,x); %Y = resposta do sistema quando aplicado uma excitação X k Exemplo 5 O seguinte programa calcula [ n] para a equação de diferenças quando x[ n] δ [ n] clf reset n=0:128; [ n] + 0,9 [ n 2] = 0,3x[ n] + 0,6x[ n 1] + 0,3x[ n 2] = e 0 n 128. comprimento=max(size(n)); pb=[0.3 0.6 0.3]; pa=[1 0 0.9]; x = zeros(comprimento,1); x(1) = 1; =filter(pb,pa,x); stem(n(1:100),(1:100)); title('resultado') xlabel('indice (n)') grid; 11
L.2.3 Estabilidade de um sistema descrito por equações de diferença lineares com coeficientes constantes Para verificar a estabilidade de um sistema descrito por equações de diferenças lineares, aplica-se um impulso x[ n] δ [ n] [ n] h[ n] = obedece: = como entrada e verifica-se se sua saída n= 0 h [ n] finito Utiliza-se aqui a função sum(abs(h)) do Matlab para verificar a somatória da equação acima. Exemplo 6 Verificar a estabilidade do sistema descrito pela equação de diferenças clf reset n=0:128; npontos=max(size(n)); pb=[0.3 0.6 0.3]; pa=[1 0 0.9]; x = zeros(npontos,1); x(1) = 1; =filter(pb,pa,x); sum(abs()) [ n] + 0,9 [ n 2] = 0,3x[ n] + 0,6x[ n 1] + 0,3x[ n 2] 12
Rode a sequência de comandos acima, use comprimentos diferentes para n e verifique se o sistema é estável ou não. Exercícios 1. Gere e faça o gráfico de cada uma das seguintes sequências sobre seus respectivos intervalos. (a) x[ n] = 2 [ n 2] δ [ n 4] COMANDOS: δ, 5 n 5 0,3[ 10] (b) x[ n] = n{ u[ n] u[ n 10] } + 10e { u[ n 10] u[ n 20] } COMANDOS: n, 0 n 20 2. Obtenha as respostas dos seguintes sistemas quando excitados com impulso unitário e degrau unitário. Verifique também se o sistema e estável. (a) [ n] = [ n 2] + x[ n] 2, 20 n 120 COMANDOS E RESPOSTA: (b) [ n] = [ n ] [ n 10] + x[ n] 1, 0 n 200 COMANDOS E RESPOSTA: 3. (INGLE; PROAKIS, 2007, p. 39) Um diferenciador digital simples é dado por: [ n] = x[ n] x[ n 1] 13
que computa a diferença de primeira ordem para trás da sequência de entrada. Escreva comandos Matlab que programem este diferenciador para as seguintes sequências de entrada e faça gráficos dos resultados. Entregue os comandos e gráficos obtidos. (a) x [ n] = 5[ u[ n] u[ n 20 ] : um pulso retangular (b) x [ n] = n( u[ n] u[ n 10] ) + ( 20 n) [ u( n 10) u( n 20) ] πn 25 (c) x[ n] = sin ( u[ n] u[ n 100] ) : um pulso senoidal : um pulso triangular 14