Baixe o app para aproveitar ainda mais
Prévia do material em texto
KAWACADEMY.COM.BR 2014 1 Sistemas Lineares Invariantes no Tempo e a Operação de Convolução Objetivo � Estudar e verificar as propriedades de Linearidade e Invariância no Tempo dos SLIT’s; � Estudar o conceito de Resposta do Sistema ao Impulso Unitário; � Desenvolver o conceito da Operação de Convolução para SLIT’s de tempo discreto. Fundamentação Teórica SLIT – Sistema Linear Invariante no Tempo Um sistema é LINEAR se ele obedece ao Princípio da Superposição. Se for dado um sistema com entrada x1(t) associada à saída y1(t), entrada x2(t) associada à saída y2(t), e assim por diante até a N-ésima entrada xN(t) associada à N-ésima saída yN(t). e então: Figura 1 – Sistema Linear Um sistema é INVARIANTE NO TEMPO se um retardo, ou avanço, de tempo do sinal de entrada resulta em um deslocamento temporal idêntico ao sinal de saída. As características de um sistema invariante no tempo não se alteram com o tempo. Figura 2 – Sistema Invariante no Tempo Discreto Sistemas que apresentam as características de linearidade e invariância no tempo são conhecidos por Sistemas Lineares Invariantes no Tempo – SLIT’s. Exper. �� h(t) x1(t) y1(t) h(t) x2(t) y2(t) . . . h(t) xN(t) yN(t) h(t) x(t) y[n] h[n] x(t – to) y(t – to) h(t) )()()()( 21 txtxtxtx N+++= L )()()()( 21 tytytyty N+++= L KAWACADEMY.COM.BR 2014 2 Representação de Sinais Discretos em Função de Impulsos Unitários Podemos representar qualquer sinal discreto no tempo como um produto de suas amostras pela função impulso deslocada no tempo. Vejamos um exemplo: seja o sinal discreto no tempo, representado na Figura 3: Figura 3 – Sinal Discreto no Tempo Podemos representar cada amostra de x[n] em termos da função impulso, como se segue: −≠ −=− =+− 1,0 1],1[]1[].1[ n nx nx δ ≠ = = 0,0 0],0[][].0[ n nx nx δ (1) ≠ = =− 1,0 1],1[]1[].1[ n nx nx δ Assim, podemos representar o sinal x[n] decomposto em impulsos unitários por: ]1[].1[][].0[]1[].1[][ −+++−= nxnxnxnx δδδ (2) Podemos generalizar essa representação para qualquer sinal discreto contendo amostras entre ∞− a ∞+ : LL +−+−+++−++−+= ]2[].2[]1[].1[][].0[]1[].1[]2[].2[][ nxnxnxnxnxnx δδδδδ ∑ +∞ −∞= −= k knkxnx ][].[][ δ (3) A Operação de Convolução A resposta de um sistema discreto a uma entrada Impulso Unitário é a saída devido a uma entrada de amplitude unitária aplicada no tempo zero (n = 0). A Resposta ao Impulso Unitário, h(t), caracteriza completamente o comportamento dinâmico de um determinado SLIT. Figura 4 – Resposta de um Sistema ao Impulso Unitário Supondo que o operador T{·} de transformação linear descreva o comportamento do SLIT no qual a entrada x[n] é aplicada, e usando a Equação (3) para representar a entrada x[n], teremos como saída do sistema o sinal y[n]: −= ∑ +∞ −∞=k knkxTny ][][][ δ (4) 2 n x[n] -2 -4 ... ... -3 -1 0 1 3 4 x[0] x[1] x[-1] SLIT ][nδ ][nh KAWACADEMY.COM.BR 2014 3 Agora, usando a propriedade da linearidade (homogeneidade e aditividade) para trocar o operador de transformação do sistema T{·} com o somatório, obtemos: { } ∑∑ +∞ −∞= +∞ −∞= =−= k k k nhkxknTkxny ][][][].[][ δ (5) em que { }][][ knTnhk −= δ é a resposta do sistema a um impulso unitário aplicado no tempo k. Supondo que o sistema seja invariante ao tempo, então um deslocamento temporal no sinal da entrada resulta em um mesmo deslocamento de tempo no sinal de saída. Isto implica em que a saída provocada por um impulso deslocado no tempo também será uma versão deslocada do mesmo tempo da resposta do sistema ao impulso na origem; ou seja, ][][ 0 knhnhk −= . Admitindo que ][][ 0 nhnh = seja a resposta ao impulso do sistema T{·} do tipo SLIT. Assim, a Equação (5) pode ser reescrita como: ∑ +∞ −∞= −= k knhkxny ][][][ (6) Assim, a saída de um SLIT para uma dada entrada x[n] é dada pela soma ponderada de respostas ao impulso deslocadas no tempo. A soma na Equação (6) é chamada de soma da convolução e essa operação é indicada pelo símbolo * (asterisco), ou seja: ∑ +∞ −∞= −== k knhkxnhnxny ][][][*][][ (7) A convolução de um sinal de tempo contínuo x(t) pela resposta impulsiva de um SLITC, h(t), por analogia, pode ser expressa por: τττ dthxthtxty ∫ +∞ ∞− −== )()()(*)()( (8) EXEMPLO 1 Cálculo da convolução de sinais discretos: entrada x[n] aplicada ao sistema h[n]: ]4[][][ −−= nununx e ≤≤ = .,0 30,][ valoresoutros nn nh RESOLUÇÃO: 0]4[]5[]6[]7[]7[ 3]3[]4[]5[]6[]6[ 5]2[]3[]4[]5[]5[ 6]1[]2[]3[]4[]4[ 6]0[]1[]2[]3[]3[ 3]1[]0[]1[]2[]2[ 1]2[]1[]0[]1[]1[ 0]3[]2[]1[]0[]0[ )(.1][ :logo ,30 para 1][ mas , ][][][*][][ 3 0 =+++= =+++= =+++= =+++= =+++= =−+++= =−+−++= =−+−+−+= −=≤≤= −== ∑ ∑ + = +∞ −∞= hhhhy hhhhy hhhhy hhhhy hhhhy hhhhy hhhhy hhhhy knhnykkx knhkxnhnxny k k KAWACADEMY.COM.BR 2014 4 O índice k varia de 0 a 3, pois somente nestas situações x[k] será diferente de zero (e igual a um), não sendo, portanto, necessário se avaliar a soma para outros valores da variável k. Material Utilizado Software de simulação computacional (Matlab/Octave ou Python). Procedimento Prático 1 – Desenvolva um programa para resolver o Exemplo 1. Trace os gráficos dos sinais produzidos no exemplo. 2 – Dados x[n] e h[n], desenvolva um programa para traçar o gráfico do resultado da convolução entre eles. ( ) ][][][5.0][ nunhnunx n == Dica (Python): n = arange(-5,6); x = ((0.5)**n)*degrau(n)1 3 – Idem para: { }]13[]2[9.0][]12[2]2[2][ −−−=−−+= nununhnununx n Dica (Python): n=arange(-15,16); h=((0.9)**n)*(degrau(n-2)-degrau(n-13)) 4 – O que faz o seguinte script? 5 – Esboce a saída de um SLITD, descrito pela sua resposta impulsiva h[n] = {9, 7, 5, 3, 1}, quando o sinal de entrada for x[n] = 5.cos(0,8�n), para -5 � n � 25 ? 1 A função degrau(n) não existe no Python, logo voce precisa criá-la como função do usuário. # Python import numpy as np import matplotlib.pylab as plt def degrau(x): y = np.zeros(len(x)) for i in xrange(0,len(x)): if x[i] >= 0: y[i] = 1. return y n = np.arange(-10,11) # base temporal (índices das amostras) x = degrau(n) - degrau(n-4) # sinal de entrada para o sistema plt.figure(1) plt.subplot(3,1,1); plt.stem(n,degrau(n)) plt.subplot(3,1,2); plt.stem(n,degrau(n-4)) plt.subplot(3,1,3); plt.stem(n,x) h = np.zeros(len(n)) h[12:16] = np.array([0,1,2,3]) # resposta ao impulso do sistema y = np.convolve(x,h) # saída (convolução entre x e h): y = x*h i = np.nonzero(y>0) # descobre posição do 1o. valor de y[n] > zero a = i.__getitem__(0) m = np.arange(-23,len(x)+len(h)-1-23) plt.figure(2) plt.subplot(3,1,1); plt.stem(n,x) plt.subplot(3,1,2); plt.stem(n,h) plt.subplot(3,1,3); plt.stem(m,y) plt.show()
Compartilhar