Baixe o app para aproveitar ainda mais
Prévia do material em texto
ATIVIDADE PRÁTICA – FILTROS Eloy Vieira Sousa Filho RU 1976198 1 – Calcular a resposta ao impulso Um determinado sistema digital tem a função de transferência (resposta em frequência) definida por 𝐻(𝑧): ( . ) ( 1 ) Sendo: 𝑎𝑧−𝑏 𝐻(𝑧) = (1 − 𝑐𝑧−1)(1 + 𝑑𝑧−1) · 𝑎 = 10 ∗ 𝑅𝑈2 (adotar 2 se o RU for igual a zero) · 𝑏 = 𝑅𝑈3 (adotar 2 se o RU for igual a zero) · · O sinal de entrada corresponde ao seu RU cujo segundo número corresponde à amostra em 𝑛 = 0: RU 1976198 RU1 RU2 RU3 RU4 RU5 RU6 RU7 1 9 7 6 1 9 8 𝑥[𝑛] = [1 9 7 6 1 9 8] Desenvolvimento matemático: Temos: · · · · Portanto: Substuindo os valores de a, b, c e d na equação: Separando as frações parciais, obtemos: Considerando os numeradores das equações, temos: Com a separação dos mutiplicandos e não multiplicandos por : Solucionando o sistema de equações: a) b) Com a substiuição de a) em b) obtemos: Substituindo B em a) obtemos: Obtivemos portanto: Substiuido na equação original: Obtemos: Solucionando a equação (multiplicando os numradores por ) obtemos: Aplicando a transformada 𝑧 inversa usando a Tabela 3.1 da página 68 do livro texto, obtemos a resposta do impulso: ℎ[𝑛] = 42,354(0,9)(𝑛−7)𝑢[𝑛 − 7] + 53,316(−0,8)(𝑛−7)𝑢[𝑛 − 7] 2 – Algorítimo Definição das funções e vetores (𝑥[𝑛], vetor 𝑛, impulso, degrau, etc.) function [y]=impulso(x) 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=9;RU3=7;RU4=6;RU5=1;RU6=9;RU7=8; 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] Definição da função da reposta ao impulso do sistema (ℎ[𝑛]) ℎ[𝑛] = 42,354(0,9)(𝑛−7)𝑢[𝑛 − 7] + 53,316(−0,8)(𝑛−7)𝑢[𝑛 − 7] for i=-14:20//geração do vetor h[n] h(i+21)=42,354*0.9^(i-7)*u(i-7+21)+53,316*(-0.8)^(i-7)*u(i-7+21)//h[n] end Definição da função 𝑦[𝑛] y=conv(x,h);//Convolução Linhas de comando dos gráficos 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') Algorítimo no ambiente Scilab: function [y]=impulso(x) 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=9;RU3=7;RU4=6;RU5=1;RU6=9;RU7=8; 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=-14:20//geração do vetor h[n] h(i+21)=42,354*0.9^(i-7)*u(i+21)+53,316*(-0.8)^(i-7)*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') xlabel('amostra') ylabel('amplitude') 3 – Gráficos: Sinal de entrada do sistema 𝑥[𝑛] Resposta de impulso ℎ[𝑛]: Sinal de saída Bibliografia: Roteiro de estudo disciplina Processamento digital de sinais – Uninter 2021. Prof. Eng. Viviane R Zurro Msc – Roteiro de Atividade Prática. Scinote.html function [y]=impulso(x) 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=9;RU3=7;RU4=6;RU5=1;RU6=9;RU7=8; 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=-14:20//geração do vetor h[n] h(i+21)=42,354*0.9^(i-7)*u(i+21)+53,316*(-0.8)^(i-7)*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') xlabel('amostra') ylabel('amplitude')
Compartilhar