Exercícios Resolvidos de Transformada Z

Ver Teoria

Enunciado

Um sistema LIT de tempo discreto é descrito por

y n + 2 + 1 2 y n + 1 + y n = x n + 1 + 2 x [ n ]

  1. Obtenha a função de transferência do sistema, tendo y [ n ] como saída e x [ n ] como entrada;
  2. Obtenha a resposta do sistema a um degrau unitário.

Passo 1

Uma função de transferência é a razão entre a saída e a entrada de um sistema. No tempo discreto, ela é obtida aplicando a transformada Z em uma equação das diferenças, considerando as condições iniciais nulas, e dividindo a saída pela entrada. Logo, a função de transferência H [ z ] será:

H [ z ] = Y [ z ] X [ z ]

Onde Y [ z ] é a tranformada Z de y [ n ] e X [ z ] , de x [ n ] .

Para resolver a letra a o exercício, primeiramente aplicaremos a função z t r a n s do MATLAB na equação de diferenças para encontrarmos a transformada de y e x , que indicaremos por Y e X , respectivamente. Em seguida, manipularemos a equação para obtermos Y / X , que será a função de transferência H [ z ] .

Para resolver a letra b do exercício, calcula-se produto entre H [ z ] e a transformada Z do degrau do unitário, que é criado usando a função h e a v i s i d e . Em seguida, usamos a função i z t r a n s para calcular sua transformada inversa e encontrar a resposta ao degrau.

Passo 2

Para resolver a letra a, vamos rearranjar a equação, jogando todos os termos para a esquerda:

y n + 2 + 1 2 y n + 1 + y n - x n + 1 - 2 x n = 0

No MATLAB, vamos aplicar a função z t r a n s em cada termo da equação individualmente, pois dessa forma conseguiremos fazer a manipulação algébrica que nos dará a função de transferência. Lembrando que z t r a n s tem a sintaxe:

F = z t r a n s ( f )

Ela retorna a transformada Z da função f , armazenando-a na variável F .

A transformada Z dos termos da equação das diferenças será identificada da seguinte maneira:

t 1 = Z { y n + 2 }

t 2 = Z 1 2 y n + 1

t 3 = Z y n

t 4 = Z x n + 1

t 5 = Z 2 x n

Onde Z { … } indica a transformada Z. Logo:

t 1 + t 2 + t 3 - t 4 - t 5 = 0

Considerando tudo isso, em um novo script, digite as linhas de código:

Na primeira linha, definimos as variáveis simbólicas n , x ( n ) e y ( n ) (indicamos que x e y são em função de n ).

Na segunda linha, assumimos que n   >   0 , para que o degrau unitário u , que será usado para resolver a letra b, seja igual a 1 .

Na terceira, quarta, quinta, sexta e sétima linha, a transformada Z de cada um dos termos da equação das diferenças rearranjada é calculada, sendo armazenada em t 1 , t 2 , t 3 , t 4 e t 5 .

Após definir os termos da equação, construa a transformada Z dela a partir de t 1 , t 2 , t 3 , t 4 e t 5 , com o comando:

Desta forma, a transformada da equação é armazenada na variável E .

Vamos ver como ficou a equação após a aplicação da transformada Z, executando o programa e imprimindo E no Command Window:

Passo 3

Nossa, E tá enorme, nem dá pra ler. Mas podemos deixar E mais enxuto: ele tem termos que têm exatamente a mesma estrutura da função z t r a n s e que representam transformadas que podem ser substituídas por uma única letra, indicando que é a transformada de uma função de n . z t r a n s ( y ( n ) ,   n ,   z ) representa a transformada Z de y ( n ) , podendo ser substituído por Y ( z ) . No caso, chamaremos Y ( z ) só de Y .

z t r a n s ( x ( n ) ,   n ,   z ) representa a transformada Z de x ( n ) , podendo ser substituído por X ( z ) . Como fizemos para Y ( z ) , chamaremos X ( z ) só de X .

Adicione os comandos abaixo em seu programa para fazer a substituição:

Primeiramente, criamos mais três variáveis simbolicas: z , Y e X . Em seguida, usamos a função s u b s para pedir ao MATLAB que substitua em E a expressão z t r a n s ( y ( n ) ,   n ,   z ) por Y . Logo abaixo, fazemos a mesma coisa para z t r a n s ( x ( n ) ,   n ,   z ) . O resultado da substituição é armazenado em E , ficando no lugar da expressão antiga:

Nossa, bem melhor. E tem mais coisa que podemos substituir em E . Precisamos encontrar a função de transferência do sistema, que é determinada considerando as condições iniciais nulas. Logo, x 0 = y 0 = y ( 1 ) = 0 . Para fazer a substiuição, adicione ao seu programa a linha de código:

Com este comando, substituímos x 0 ,   y ( 0 ) e y ( 1 ) por 0 em E e armazenamos a nova expressão em E , atualizando a equação. Executando o programa, podemos ver como E está agora:

Bem mais agradável de se olhar!

Passo 4

Para calcular H [ z ] , precisamos dividir Y [ z ] por X [ z ] . Em E , a variável Y representa Y [ z ] e podemos usar a função s o l v e do MATLAB para isolá-la na equação. Adicione em seu código:

Com este comando, a função s o l v e resolve a equação E para a variável Y e armazena a solução em Y , atualizando seu valor. Na prática, isolamos Y na equação com este comando e Y passa a representar a expressão algébrica de Y [ z ] . Rodando o programa, temos que Y é igual a:

Para definir H [ z ] , divida Y por X , já aplicando a função s i m p l i f y para eliminar o X do numerador de Y :

E temos que a função de transferência H é igual a:

Está aí a resposta da letra a ;)

Passo 5

Com H , podemos resolver a letra b do exercício e calcular a resposta ao degrau unitário do sistema, que é dada pelo produto entre H [ z ] e a transformada Z do degrau do unitário. Para criar o degrau unitário, usaremos a função h e a v i s i d e , que tem a estrutura:

u = h e a v i s i d e ( n )

Ela cria um degrau unitário e o armazena em u : quando n   <   0 , u = 0 . Se n = 0 , u = 1 / 2 . Finalmente, para n >   0 , u = 1 . Como dissemos que n   >   0 , temos u = 1 .

Após criar o degrau com h e a v i s i d e , aplicamos z t r a n s nele para obter sua transformada Z. Por isso, digite em seu programa os comandos:

Na primeira linha, criamos o degrau unitário e o armazenamos em u . Em seguida, calculamos sua transformada Z e a registramos em U .

Para encontrar a resposta ao degrau, inclua no seu programa o comando:

R é o produto entre H e U e representa a transformada Z da resposta ao degrau unitário:

Passo 6

Para finalizar, vamos calcular a transformada inversa de R para encontrar r [ n ] , a resposta do sistema ao degrau unitário no domínio de tempo discreto.

Para encontrarmos r [ n ] , vamos aplicar a função i z t r a n s do MATLAB em R . A função i z t r a n s tem a estrutura:

f = i z t r a n s ( F )

Ela retorna a inversa da transformada Z de F , armazenando-a na variável f .

Para encontrar r [ n ] , digite os comandos:

Com o primeiro comando, o MATLAB calcula a inversa da transformada Z de R e armazena o resultado em r . O segundo comndo simplifica r , para deixá-lo mais enxuto.

Rodando o programa, r é igual a:

Resposta

  1. A função de transferência é:
  2. H z = 2 z + 4 2 z 2 + z + 2

  3. A resposta ao degrau unitário é:

r n = 4 - 1 n cos ⁡ n cos - 1 ⁡ 1 / 4 5 + - 1 n 2 2 - 2 n 15 1 - 15 i n - 1 4 i 1 5 - - 1 n 2 2 - 2 n 15 1 + 15 i n - 1 4 i 15 + 6 5