Baixe o app para aproveitar ainda mais
Prévia do material em texto
INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DA PARAÍBA CAMPUS CAMPINA GRANDE CURSO SUPERIOR DE TECNOLOGIA EM TELEMÁTICA RESUMO DO CAPÍTULO 4 DO LIVRO: DIGITAL SIGNAL PROCESSING USING MATLAB Aluno: Rodolfo Bolconte Donato Disciplina: Processamento Digital de Sinais Campina Grande, 30 de Junho de 2018 2 1. Capítulo 4 – Transformada Z Existem duas lacunas na abordagem da transformada de Fourier. Primeiro, há muitos sinais úteis na prática - como u(n) e nu(n) - para os quais a transformada de Fourier em tempo discreto não existe. Em segundo lugar, a resposta transitória de um sistema devido a condições iniciais ou devido a mudanças de entradas não pode ser calculada usando a abordagem de transformada de Fourier em tempo discreto. Portanto, é considerada uma extensão da transformada de Fourier em tempo discreto para resolver esses dois problemas. Essa extensão é chamada de Transformada Z. Sua versão bilateral fornece outro domínio no qual uma classe maior de sequências e sistemas pode ser analisada, e sua versão unilateral pode ser usada para obter respostas do sistema com condições iniciais ou alterações de entrada. 1.1. Transformada Z Bilateral A Transformada Z de uma sequência é dada por: onde z é uma variável complexa. O conjunto de valores z para os quais X(z) existe é chamado de região de convergência. A Transformada Z inversa de uma função complexa X(z) é dada por: onde C é um contorno no sentido anti-horário cercando a origem na Região de Convergência. Observações: 1. A variável complexa z é chamada de frequência complexa, que é dada por z = |z| ejω, onde |z| é a magnitude e ω é a frequência real; 2. Como a Região de Convergência é definida em termos da magnitude |z|, a forma da Região é um anel aberto. Note que Rx− pode ser igual a zero e/ou Rx+ poderia ser ∞; 3. Se Rx+ < Rx−, então a Região de Convergência é um espaço nulo e a transformada z não existe; 4. A função |z| = 1 (ou z = ejω) é um círculo de raio unitário no plano z e é chamado de círculo unitário. Se a Região de Convergência contém o círculo unitário, então podemos avaliar X(z) no círculo unitário. Portanto, a transformada de Fourier de tempo discreto X(ejω) pode ser vista como um caso especial da Transformada Z de X(z). 3 1.1.1. Propriedades da Região de Convergência A partir da observação da Região de Convergência nos três exemplos do Capítulo no livro, são declaradas as seguintes propriedades.: 1. A Região de Convergência é sempre limitada por um círculo, uma vez que a condição de convergência está na magnitude |z|; 2. A sequência x1(n) = anu(n) no Exemplo 4.1 do capítulo é um caso especial de uma sequência de direitos, definida como uma sequência x(n) que é zero para alguns n < n0. Do Exemplo 4.1, a Região de Convergência para sequências do lado direito está sempre fora de um círculo de raio Rx−. Se n0 ≥ 0, a sequência do lado direito também é chamada de sequência causal; 3. A sequência x2(n) = −bnu(−n − 1) no Exemplo 4.2 do Capítulo é um caso especial de uma sequência do lado esquerdo, definida como uma sequência x(n) que é zero para alguns n > n0. Se n0 ≤ 0, a sequência resultante é chamada de sequência anticausal. Do Exemplo 4.2, a Região de Convergência para sequências do lado esquerdo está sempre dentro de um círculo de raio Rx+; 4. A sequência x3(n) no Exemplo 4.3 do Capítulo é uma sequência bilateral. A Região de Convergência para sequências de dois lados é sempre um anel aberto Rx− < |z| < Rx+, se existir; 5. As sequências que são zero para n < n1 e n > n2 são chamadas de sequências de duração finita. A Região de Convergência para essas sequências é todo o plano Z. Se n1 < 0, então z = ∞ não está na Região. Se n2 > 0, então z = 0 não está na Região; 6. A Região de Convergência não pode incluir um polo, uma vez que X(z) converge uniformemente para lá; 7. Há pelo menos um polo no limite de uma Região de Convergência de um X(z) racional; 8. A Região de Convergência é uma região contígua; isto é, não vem em pedaços. No Processamento Digital de Sinais, os sinais são considerados causais, já que quase todos os dados digitais são adquiridos em tempo real. 1.2. Propriedades Importantes da Transformada Z As propriedades da Transformada Z são generalizações das propriedades da transformada de Fourier em tempo discreto. Ingle e Proakis declaram as seguintes propriedades (ROC significa Região de Convergência em português): 1. Linearidade: 2. Troca de Amostra: 3. Mudança de Frequência: 4 4. Dobramento: 5. Conjugado: 6. Diferenciação no domínio Z: 7. Multiplicação: 8. Convolução: 1.2.1. Pares Comuns de Transformadas Z Usando a definição de Transformada Z e suas propriedades, pode-se determinar transformações z de sequências comuns. Uma lista de algumas dessas sequências é dada na tabela abaixo: 1.3. Inversão da Transformada Z O cálculo da transformada Z inversa requer uma avaliação de uma integral de contorno complexa que, em geral, é um procedimento complicado. A abordagem mais prática é usar o método de 5 expansão parcial da fração. A transformação z, no entanto, deve ser uma função racional. Este requisito é geralmente satisfeito no processamento de sinal digital. Ideia central Quando X(z) é uma função racional de z − 1, podendo ser uma soma de fatores simples usando a expansão parcial da fração. As sequências individuais correspondentes a esses fatores podem ser escritas usando a tabela de transformadas z. O procedimento de transformação z inversa pode ser resumido da seguinte forma: Sendo pode ser expressada como onde o primeiro termo do lado direito é a parte racional adequada, e o segundo termo é o polinômio (comprimento finito). Execute uma expansão de fração parcial na parte racional adequada de X(z) para obter onde pk é o kth de X(z) e Rk é o resíduo em pk. Supõe-se que os polos são distintos para os quais os resíduos são dados por Para polos repetidos, a expansão tem uma forma mais geral. Se um polo pk tem multiplicidade r, então sua expansão é dada por 1.4. Representação do Sistema no Domínio Z Semelhante à função de resposta de frequência H(ejω), podemos definir a função do domínio z, H(z), chamada de função do sistema. No entanto, ao contrário de H(ejω), H(z) existe para sistemas que podem não ser BIBO estáveis. Usando a propriedade de convolução da transformada z, a transformada de saída Y(z) é dada por 6 desde que a Região de Convergência x se sobreponha a Região de Convergência h. Portanto, um sistema linear e invariante no tempo pode ser representado no domínio z por 1.4.1. Função do Sistema da Representação da Equação de Diferença Quando os sistemas LTI são descritos por uma equação de diferença a função do sistema H(z) pode ser facilmente calculada. Tomando a transformada z de ambos os lados, e usando as propriedades da transformada z, ou Depois da fatoração, temos onde zls são zeros do sistema e pk são os polos do sistema. Assim, H(z) (e, portanto, um sistema LTI) também pode ser representado no domínio z usando um gráfico de polo-zero. Este fato é útil para projetar filtros simples através da colocação correta de polos e zeros. 1.4.2. Representação da Função de Transferência Se a Região de Convergência de H(z) inclui um círculo unitário (z = ejω), então podemos avaliar H(z) no círculo unitário, resultando em uma função de resposta em frequência ou função de transferência H(ejω). Então a partir da última equação 7 O fator (ejω - zl) pode ser interpretado como um vetorno plano z complexo de um zero zl para o círculo unitário em z = ejω, enquanto o fator (ejω - pk) pode ser interpretado como um vetor de um polo pk para a unidade círculo em z = ejω. Daí a função de resposta de magnitude pode ser interpretada como um produto dos comprimentos de vetores de zeros para o círculo unitário dividido pelos comprimentos de vetores de polos para o círculo unitário e escalados por |b0|. Similarmente, a função de resposta de fase pode ser interpretada como a soma de um fator constante, um fator de fase linear e um fator de fase não linear (ângulos dos “vetores zero” menos a soma dos ângulos dos “vetores de polo”). 1.4.4. Estabilidade e Causalidade Para sistemas LTI, a estabilidade do BIBO é equivalente a . A partir da existência da transformada de Fourier em tempo discreto, esta estabilidade implica que H(ejω) existe, o que implica ainda mais que o círculo unitário |z| = 1 deve estar na Região de Convergência de H(z). Esse resultado é chamado de teorema da estabilidade do domínio z. Teorema 1 (Estabilidade LTI no Domínio Z): Um sistema LTI é estável se, e somente se, o círculo unitário estiver na Região de Convergência de H(z). Para causalidade de LTI, exigimos que h(n) = 0, para n < 0 (isto é, uma sequência de direitos). Isto implica que a Região de Convergência de H(z) deve estar fora de algum círculo do raio Rh−. Esta não é uma condição suficiente, uma vez que qualquer sequência do lado direito tem uma Região de Convergência semelhante. No entanto, quando o sistema é estável, sua causalidade é fácil de verificar. Teorema 2 (Estabilidade LTI causal do Domínio Z): Um sistema LTI causal é estável se e somente se a função do sistema H (z) tiver todos os seus polos dentro do círculo unitário. 1.5. Soluções das Equações de Diferença No Capítulo 2 do livro, foram mencionadas duas formas para a solução de equações lineares de diferença de coeficiente constante. Uma forma envolvia encontrar as soluções particulares e homogêneas, enquanto a outra forma envolvia encontrar as respostas de entrada zero (condição inicial) e de estado zero. Usando as transformações z, Ingle e Proakis fornecem um método para obter esses formulários. Além disso, é discutido também as respostas transitórias e de estado estacionário. No processamento digital de sinais, as equações diferenciais geralmente evoluem na direção n positiva. Portanto, o período de tempo para essas soluções será n ≥ 0. Para isso, é definida uma versão da transformação z bilateral chamada de transformação z unilateral. A Transformada Z Unilateral de uma sequência x(n) é dada por 8 Então a propriedade de mudança de amostra é dada por Ou Esse resultado agora pode ser usado para resolver equações diferenciais com condições iniciais diferentes de zero ou com a alteração de entradas. Queremos resolver a equação da diferença sujeito a estas condições iniciais: 2. Respostas das Questões do Capítulo 4 2.1. Questão 1 Usando a definição da Transformada Z. 1. x(n) = {3, 2, 1, −2, −3}: Então X(z) = 3z2 + 2z + 1 − 2z−1 + 3z−2, 0 < |z| < ∞. b1 = [0 2 3]; a1 = [1]; [delta,n] = impseq(0,0,4); xb1 = filter(b1,a1,delta); xb1 = fliplr(xb1); n1 = -fliplr(n); b2 = [1 -2 -3]; a2 = [1]; xb2 = filter(b2,a2,delta); n2 = n; [xa1,na1] = sigadd(xb1,n1,xb2,n2); xa2 = [0 0 3 2 1 -2 -3 0 0]; error = max(abs(xa1-xa2)) error = 0 2. x(n) = (0.8) n u(n − 2): Então b = [0 0 0.64]; a = [1 -0.8]; [delta,n] = impseq(0,0,10); 9 xb1 = filter(b,a,delta); [u,n] = stepseq(2,0,10); xb2 = ((0.8).^n).*u; error = max(abs(xb1-xb2)) error = 1.1102e-016 3. x(n) = [(0.5) n + (−0.8) n ]u(n): Então b = [ 2 0.3]; a = [1 0.3 -0.4]; [delta,n] = impseq(0,0,7); xb1 = filter(b,a,delta); [u,n] = stepseq(0,0,7); xb2 = (((0.5).^n).*u)+(((-0.8).^n).*u); error = max(abs(xb1-xb2)) error = 1.1102e-016 4. x(n) = 2 n cos(0.4πn)u(−n): Considerando b = 0.5*[2 -cos(0.4*pi)]; a = [1 -cos(0.4*pi) 0.25]; [delta,n1] = impseq(0,0,7); xb1 = filter(b,a,delta); xb1 = fliplr(xb1); [u,n2] = stepseq(-7,-7,0); xb2 = ((2.^n2).*cos(0.4*pi*n2)).*u; error = max(abs(xb1-xb2)) error = 2.7756e-017 5. x(n) = (n + 1)(3) n u(n): Considerando b = [1 -3]; a = [1 -9 27 -27]; [delta,n1] = impseq(0,0,7); xb1 = filter(b,a,delta); [u,n2] = stepseq(0,0,7); xb2 = ((n2+1).*(3.^n2)).*u; error = max(abs(xb1-xb2)) error = 0 10 2.2. Questão 2 Considere a sequência x(n) = (0,9)n cos(πn/4)u(n). 1. A transformada z Y(z) de y(n) em termos da transformada z X(z) de x(n): Considere 2. A transformada z de x(n) é dada por: Consequentemente 3. Verificação no Matlab: b = [1 0 -0.9*cos(pi/4)]; a = [1 0 2*-0.9*cos(pi/4) 0 0.81]; [delta,n1] = impseq(0,0,13); xb1 = filter(b,a,delta); [u,n2] = stepseq(0,0,6); x1 = (((0.9).^n2).*cos(pi*n2/4)).*u; xb2 = zeros(1,2*length(x1)); xb2(1:2:end) = x1; error = max(abs(xb1-xb2)) error = 1.2442e-016 2.3. Questão 3 Cálculo da transformada z usando propriedades e a tabela de transformada z: 1. x(n) = 2δ(n – 2) + 3u(n - 3): b = [0 -8 0 -1.5 0 -1/16]; a = [1 0 3/16 0 3/256 0 1/(256*16)]; [delta,n1] = impseq(0,0,9); xb1 = filter(b,a,delta); [u,n2] = stepseq(0,0,9);xb2 = (((n2-3).*((1/4).^(n2- 2))).*cos((pi/2)*(n2-1))).*u; error = max(abs(xb1-xb2)) error = 0 11 Hf_1 = figure; set(Hf_1,’NumberTitle’,’off’,’Name’,’P0403e’); [Hz,Hp,Hl] = zplane(b,a); set(Hz,’linewidth’,1); set(Hp,’linewidth’,1); title(’Pole-Zero plot’,’FontSize’,TFS); print -deps2 ../epsfiles/P0403e; 2. x(n) = 3(0.75)n cos(0.3πn)u(n) + 4(0.75)n sin(0.3πn)u(n): b = [3 (3*sin(0.3*pi)-2.25*cos(0.3*pi))]; a = [1 - 1.5*cos(0.3*pi) 0.5625]; [delta,n1] = impseq(0,0,7); xb1 = filter(b,a,delta); [u,n2] = stepseq(0,0, 7); xb2 = 3*(((0.75).^n2).*cos(0.3*pi*n2)).*u+4*(((0.75).^n2).*sin(0.3*pi* n2)).*u ; error = max(abs(xb1-xb2)) error = 4.4409e-016 Hf_1 = figure; set(Hf_1,’NumberTitle’,’off’,’Name’,’P0403b’); [Hz,Hp,Hl] = zplane(b,a); set(Hz,’linewidth’,1); set(Hp,’linewidth’,1); title(’Pole-Zero plot’,’FontSize’,TFS); print -deps2 ../epsfiles/P0403b; 12 3. x(n) = n sin((πn)/3)u(n) + (0.9)n u(n − 2): Considere Consequentemente b = [0 sin(pi/3) (0.81-0.9*sin(pi/3)) -(1.62+sin(pi/3)) ... (0.9*sin(pi/3)+2.43) -1.62 0.81]; a = [1 -2.9 4.8 -4.7 2.8 -0.9]; [delta,n1] = impseq(0,0,9); xb1 = filter(b,a,delta); [u2,n2] = stepseq(0,0,9); [u3,n3] = stepseq(2,0,9); xb2 = (n2.*sin(pi/3*n2)).*u2+((0.9).^n3).*u3; error = max(abs(xb1-xb2)) Hf_1 = figure; set(Hf_1,’NumberTitle’,’off’,’Name’,’P0403c’); [Hz,Hp,Hl] = zplane(b,a); set(Hz,’linewidth’,1); set(Hp,’linewidth’,1); title(’Pole-Zero plot’,’FontSize’,TFS); print -deps2 ../epsfiles/P0403c; error = 2.1039e-014 13 4. x(n) = n2 (2/3)n−2 u(n − 1): Considere Finalmente, x(n) = (3/2)x3(n). Consequentemente b = 3/2*[0 1 0 -4/9]; a = [1 -8/3 8/3 -32/27 16/81]; [delta,n1] = impseq(0,0,8); xb1 = filter(b,a,delta); [u,n2] = stepseq(1,0,8); xb2 = ((n2.^2).*((2/3).^(n2-2))).*u; error = max(abs(xb1-xb2)) Hf_1 = figure; set(Hf_1,’NumberTitle’,’off’,’Name’,’P0403d’); [Hz,Hp,Hl] = zplane(b,a); set(Hz,’linewidth’,1); set(Hp,’linewidth’,1); title(’Pole-Zero plot’,’FontSize’,TFS); print -deps2 ../epsfiles/P0403d; error = 9.7700e-015 14 5. x(n) = (n – 3) (1/4)n – 2 cos{(π/2)(n – 1)} u(n): Considere Consequentemente b = [0 -8 0 -1.5 0 -1/16]; a = [1 0 3/16 0 3/256 0 1/(256*16)]; [delta,n1] = impseq(0,0,9); xb1 = filter(b,a,delta); [u,n2] = stepseq(0,0,9);xb2 = (((n2-3).*((1/4).^(n2- 2))).*cos((pi/2)*(n2-1))).*u; error = max(abs(xb1-xb2)) Hf_1 = figure; set(Hf_1,’NumberTitle’,’off’,’Name’,’P0403e’); [Hz,Hp,Hl] = zplane(b,a); set(Hz,’linewidth’,1); set(Hp,’linewidth’,1);title(’Pole-Zero plot’,’FontSize’,TFS); print -deps2 ../epsfiles/P0403e; error = 2.9392e-015 15 2.4. Questão 4 Seja x(n) uma sequência de valor complexo com a parte real xR(n) e a parte imaginária x1(n). 1. As relações de transformada z para partes reais e imaginárias.: Considere 2. Verificação usando x(n) = exp {(-1 + j0.2π) n} u(n): Considere Assim, as partes reais e imaginárias de x(n), respectivamente, são Com transformadas z, respectivamente, 16 A transformada z de x(n) é 2.5. Questão 5 A transformada z de x(n) é X(z) = 1/(1 + 0.5z−1), |z| ≥ 0.5. 1. A transformada z de x1(n) = x(3 − n) + x(n − 3): 2. A transformada z de x2(n) = (1 + n + n2)x(n): 3. A transformada z de x3(n) = (1/2)nx(n – 2): 4. A transformada z de x4(n) = x(n + 2) ∗ x(n − 2): 5. A transformada z de x5(n) = cos(πn/2)x ∗ (n): 17 2.6. Questão 6 A transformada z de x(n) é 1. A transformada z de x1(n) = x(3 − n) + x(n − 3): 2. A transformada z de x2(n) = (1 + n + n2)x(n): 3. A transformada z de x3(n) = (1/2)n x(n – 2): 4. A transformada z de x4(n) = x(n + 2) ∗ x(n − 2): 18 5. A transformada z de x5(n) = cos(πn/2)x ∗ (n): 2.7. Questão 7 A transformada z inversa de X(z) é x(n) = (1/2)nu(n). Cálculo de sequência usando as propriedades da transformada z: 1. X1(z) = [(z – 1)/z]X(z): Considere 2. X2(z) = zX(z-1): Considere 3. X3(z) = 2X(3z) + 3X(x/3): Considere 4. X4(z) = X(z)X(z-1): Considere 19 5. X5(z) = z2[(dX(z))/dz]: Considere 2.8. Questão 8 Se as sequências x1(n), x2(n) e x3(n) estão relacionadas por x3(n) = x1(n) ∗ x2(n), então 1. Prova usando a definição de convolução: 2. Prova usando a propriedade de convolução: 3. Verificação no Matlab: N = 1000; n1 = [0:N]; x1 = rand(1,length(n1)); n2 = [0:N]; x2 = rand(1,length(n2)); [x3,n3] = conv_m(x1,n1,x2,n2); sumx1 = sum(x1); sumx2 = sum(x2); sumx3 = sum(x3); error = max(abs(sumx3-sumx1*sumx2)) 20 error = 2.9104e-011 2.9. Questão 9 Operações polinomiais usando Matlab: 1. X1(z) = (1 − 2z−1 + 3z−2 − 4z−3 )(4 + 3z−1 − 2z−2 + z−3 ) n1 = [0:3]; y1 = [1 -2 3 -4]; n2 = [0:3]; y2 = [4 3 -2 1]; [x1,n] = conv_m(y1,n1,y2,n2) x1 = 4 -5 4 -2 -20 11 -4 n = 0 1 2 3 4 5 6 Consequentemente 2. X2(z) = (z2 − 2z + 3 + 2z−1 + z−2 )(z3 − z−3 ) n1 = [-2:2]; y1 = [1 -2 3 2 1]; n2 = [-3:3]; y2 = [1 0 0 0 0 0 1]; [x2,n] = conv_m(y1,n1,y2,n2) x2 = 1 -2 3 2 1 0 1 -2 3 2 1 n = -5 -4 -3 -2 -1 0 1 2 3 4 5 Consequentemente 3. X3(z) = (1 + z−1 + z−2 )3 n1 = [0 1 2]; y1 = [1 1 1]; [y2,n2] = conv_m(y1,n1,y1,n1); [x3,n] = conv_m(y1,n1,y2,n2) x3 = 1 3 6 7 6 3 1 n = 0 1 2 3 4 5 6 Consequentemente 4. X4(z) = X1(z)X2(z) + X3(z) n11 = [0:3]; y11 = [1 -2 3 -4]; n12 = [0:3]; y12 = [4 3 -2 1]; [y13,n13] = conv_m(y11,n11,y12,n12); n21 = [-2:2]; y21 = [1 -2 3 2 1]; n22 = [-3:3]; y22 = [1 0 0 0 0 0 1]; [y23,n23] = conv_m(y21,n21,y22,n22); 21 n31 = [0 1 2]; y31 = [1 1 1]; [y32,n32] = conv_m(y31,n31,y31,n31); [y33,n33] = conv_m(y31,n31,y32,n32); [y41,n41] = conv_m(y13,n13,y23,n23); [x4,n] = sigadd(y41,n41,y33,n33) x4 = Columns 1 through 12 4 -13 26 -17 -10 49 -79 -8 23 -8 -11 49 Columns 13 through 17 -86 -1 -10 3 -4 n = Columns 1 through 12 -5 -4 -3 -2 -1 0 1 2 3 4 5 6 Columns 13 through 17 7 8 9 10 11 Consequentemente 5. X5(z) = (z−1 − 3z−3 + 2z−5 + 5z−7 − z−9 )(z + 3z2 + 2z3 + 4z4) n1 = [0:9]; y1 = [0 1 0 -3 0 2 0 5 0 -1]; n2 = [-4:0]; y2 = [4 2 3 1 0]; [x5,n] = conv_m(y1,n1,y2,n2) x5 = Columns 1 through 12 0 4 2 -9 -5 -1 1 26 12 11 3 -3 Columns 13 through 14 -1 0 n = Columns 1 through 12 -4 -3 -2 -1 0 1 2 3 4 5 6 7 Columns 13 through 14 8 9 Consequentemente 2.10. Questão 10 A função deconv_m do Matlab: 22 Verificação no Matlab: nb = [-2:3]; b = [1 1 1 1 1 1]; na = [-1:1]; a = [1 2 1]; [p,np,r,nr] = deconv_m(b,nb,a,na) p = 1 -1 2 -2 np = -1 0 1 2 r = 0 0 0 0 3 3 nr = -2 -1 0 1 2 3 Consequentemente
Compartilhar