Você está na página 1de 4

Processamento Digital de sinais

Prof. Eng. Viviana R. Zurro MSc.

Atividades Práticas – Filtros


Um determinado sistema digital tem a função de transferência (resposta em frequência)
definida por 𝐻(𝑧):

𝑎𝑧 −𝑏
𝐻 (𝑧 ) =
(1 − 𝑐𝑧 −1 )(1 + 𝑑𝑧 −1 )

Sendo:

 𝑎 = 10 ∗ 𝑅𝑈2 (adotar 2 se o RU for igual a zero)


 𝑏 = 𝑅𝑈3 (adotar 2 se o RU for igual a zero)
𝑀𝑎𝑖𝑜𝑟 𝑛ú𝑚𝑒𝑟𝑜 𝑑𝑜 𝑅𝑈
 𝑐=
10
𝑆𝑒𝑔𝑢𝑛𝑑𝑜 𝑚𝑎𝑖𝑜𝑟 𝑛ú𝑚𝑒𝑟𝑜 𝑑𝑜 𝑅𝑈
 𝑑= 10

O sinal de entrada corresponde ao seu RU cujo segundo número corresponde à amostra em


𝑛 = 0 como mostrado no exemplo a seguir:

Exemplo RU: 1234567

RU1 RU2 RU3 RU4 RU5 RU6 RU7


1 2 3 4 5 6 7

𝑥 [𝑛] = [1 𝟐 3 4 5 6 7]

Usando o ambiente matemático Scilab calcular o sinal de saída 𝑦[𝑛] definido por:

𝑦[𝑛] = 𝑥 [𝑛] ∗ ℎ[𝑛]

Onde ℎ[𝑛] é a resposta ao impulso (domínio do tempo) correspondente à 𝐻 (𝑧) (domínio da


frequência). E o sinal de saída 𝑦[𝑛] é resultante da convolução entre o sinal de entrada 𝑥 [𝑛]
e a resposta ao impulso do sistema ℎ[𝑛].

Resolução

𝑎𝑧 −𝑏
𝐻 (𝑧 ) =
(1 − 𝑐𝑧 −1 )(1 + 𝑑𝑧 −1 )

Para o RU 123456:

20𝑧 −3
𝐻 (𝑧 ) =
(1 − 0,7𝑧 −1 )(1 + 0,6𝑧 −1 )

Resposta ao impulso ℎ[𝑛]

20𝑧 −3
𝐻 (𝑧 ) =
(1 − 0,7𝑧 −1 )(1 + 0,6𝑧 −1 )

AP Filtros - exemplo para gravar 1


Processamento Digital de sinais

Prof. Eng. Viviana R. Zurro MSc.

Frações parciais:

1
𝐻(𝑧) = 20𝑧 −3 ( )
(1 − 0,7𝑧 −1 )(1 + 0,6𝑧 −1 )
𝐴 𝐵 (1)
= 20𝑧 −3 ( + )
(1 − 0,7𝑧 ) (1 + 0,6𝑧 −1 )
−1

Polinômio:

𝐴 𝐵 𝐴(1 + 0,6𝑧 −1 ) + 𝐵(1 − 0,7𝑧 −1 )


+ =
(1 − 0,7𝑧 −1 ) (1 + 0,6𝑧 −1 ) (1 − 0,7𝑧 −1 )(1 + 0,6𝑧 −1 )

𝐴 + 𝐴0,6𝑧 −1 + 𝐵 − 𝐵0,7𝑧 −1 1 + 0𝑧 −1
=
(1 − 0,7𝑧 −1 )(1 + 0,6𝑧 −1 ) (1 − 0,7𝑧 −1 )(1 + 0,6𝑧 −1 )

Trabalhando com os numeradores das equações:

𝐴 + 𝐵 + 𝐴0,6𝑧 −1 − 𝐵0,7𝑧 −1 = 1 + 0𝑧 −1

Portanto:

𝐴 + 𝐵 = 1 0,6𝐴𝑧 −1 − 0,7𝐵𝑧 −1 = 0𝑧 −1

𝐴+𝐵 =1 0,6𝐴 − 0,7𝐵 = 0 (2)

Resolvendo o sistema de equações (2):

𝐴 = 0,5384 𝐵 = 0,4615

Substituindo na equação (1):

0,5384 0,4615
𝐻 (𝑧) = 20𝑧 −3 ( + )
(1 − 0,7𝑧 ) (1 + 0,6𝑧 −1 )
−1

Resolvendo a equação:

10,768𝑧 −3 9,23𝑧 −3
𝐻 (𝑧 ) = +
(1 − 0,7𝑧 −1 ) (1 + 0,6𝑧 −1 )

Para obter a resposta ao impulso aplicaremos transformada 𝑧 inversa usando a Tabela


3.1 da página 68 do livro texto e as propriedades das transformadas da seção 3.4 da página
75 do mesmo livro:

ℎ[𝑛] = 10,768(0,7)(𝑛−3) 𝑢[𝑛 − 3] + 9,23(−0,6)(𝑛−3) 𝑢[𝑛 − 3]

Para calcular o sinal de saída do sistema usaremos a função convolução no software


Scilab.

Algoritmo Scilab (AP2 Filtros)

function [y]=impulso(x)

AP Filtros - exemplo para gravar 2


Processamento Digital de sinais

Prof. Eng. Viviana R. Zurro MSc.

y = zeros(1, length(x));
y(find(x==0)) = 1;
endfunction//função impulso

function [y]=degrau(x)
y = zeros(1, length(x));
y(find(x>=0)) = 1;
endfunction//função degrau

RU1=1;RU2=2;RU3=3;RU4=4;RU5=5;RU6=6;RU7=7;

clc//limpa console
clf//limpa janela gráfica
f=gcf()//manipulador de gráficos

n=[-20:1:20]//geração do vetor n
n1=[-40:1:40]//geração do vetor n1 para a convolução

x=RU1*impulso(n+1)+RU2*impulso(n)+RU3*impulso(n-1)+RU4*impulso(n-2)+RU5*impulso(n-
3)+RU6*impulso(n-4)+RU7*impulso(n-5);//x[n]

u=degrau(n-3)//u[n-3]

for i=-20:20//geração do vetor h[n]


h(i+21)=10.768*0.7^(i-3)*u(i+21)+9.23*(-0.6)^(i-3)*u(i+21)//h[n]
end

y=conv(x,h);//Convolução

//Sinais

subplot(311)
plot2d3(n,x,style=2)//Sinal de entrada
f.children.children(1).children.thickness=2;//controla a grossura da linha
title('x[n]')
xlabel('amostra')
ylabel('amplitude')

subplot(312)
plot2d3(n,h,style=3)//Resposta ao impulso
f.children.children(1).children.thickness=2;//controla a grossura da linha
title('h[n]')
xlabel('amostra')
ylabel('amplitude')

subplot(313)
plot2d3(n1,y,style=5)
title('y[n]')//sinal de saída do sistema
f.children.children(1).children.thickness=2;//controla a grossura da linha
xlabel('amostra')
ylabel('amplitude')

AP Filtros - exemplo para gravar 3


Processamento Digital de sinais

Prof. Eng. Viviana R. Zurro MSc.

--------------------------------------------------------------------------------------------------------------------------

AP Filtros - exemplo para gravar 4

Você também pode gostar