10 de nov. de 2012

Passar função de transferência para forma Paralela

Eis aqui um script de matlab para passar uma função de transferência H(z) = b(z)/a(z) para a forma paralela, utilizando blocos de segunda ordem . A função residue retorna simplesmente valores de primeira ordem, com coeficientes complexos. Utilizando esta função, o valor retornado já é da forma (bk1z+bk2)/(z^2+ak1z+ak2).


  1. function [num_paralelo,den_paralelo]=formaParalela(b,a)
  2. % forma paralela dado um polinomio H=b/a
  3. % input: formaParalela(b,a)
  4. % resposta do tipo
  5. %
  6. % [0 bk1 bk2 1 ak1 ak2]
  7. %
  8. % onde a funcao correspondente e':
  9. %
  10. % bk1z+bk2
  11. %-----------
  12. %z^2+ak1z+ak2
  13. %
  14. % fonte: Diniz, Digital Signal Processing 2nd Ed (p. 265)
  15. [Residuos,Polos,Constante]=residue(b,a);
  16. Nparalelo=length(Polos);
  17. polos_reais=cplxpair(Polos);
  18. residuos_reais=zeros(Nparalelo,1);
  19. for i=1:Nparalelo,
  20.    residuos_reais(find(polos_reais==Polos(i)),1)=Residuos(i);
  21. end;
  22. num_blocks=ceil(Nparalelo/2);
  23. Hparalelo=zeros(num_blocks,6);
  24. for count_p =1:num_blocks,
  25.   if length(polos_reais)~=1,
  26.     Hparalelo(count_p,2)=residuos_reais(1)+residuos_reais(2);
  27.     Hparalelo(count_p,3)=-residuos_reais(1)*polos_reais(2)-polos_reais(1)*residuos_reais(2);
  28.     Hparalelo(count_p,5)=-polos_reais(1)-polos_reais(2);
  29.     Hparalelo(count_p,6)=polos_reais(1)*polos_reais(2);
  30.     residuos_reais(1:2) = []; polos_reais(1:2) = [];
  31.   else,
  32.     Hparalelo(count_p,2) = residuos_reais(1);
  33.     Hparalelo(count_p,5) = -polos_reais(1);
  34.   end;
  35. Hparalelo(count_p,4) = 1;
  36. end;
  37. Hparalelo= real(Hparalelo)

O arquivo deve ser salvo com o nome formaParalela.m e, caso precise de ajuda, o cabeçalho comentado é acessado através de help formaParalela. 

Nenhum comentário:

Quem sou eu

Raphael Fernandes
Carioca, Brasileiro, Estudante de Robótica
Hiperativo, Imperativo
Gosto de tecnologia, de transporte, de Rock, de reclamar e de propagandas criativas (e outras coisas que posso ter falado em um post ou não)
Musicalmente falando, sou assim.

Related Posts Plugin for WordPress, Blogger...

Veja também...