Baixe o app para aproveitar ainda mais
Prévia do material em texto
Processamento Digital de sinais Prof. Eng. Viviana R. Zurro MSc. AP Sistemas LIT - exemplo para gravar 1 Atividades Práticas – Sistemas LIT Verificar se o sistema é linear e invariante no tempo. 𝑇{𝑥[𝑛]} = 𝑛𝑥[𝑅𝑈3 − 𝑛] + 𝑥[𝑛 − 𝑅𝑈6] Se RU3 ou RU6 (ou os dois) são iguais a zero, adotar 2 para o que for igual a zero 𝑥[𝑛] =RU com amostra zero no segundo número. Exemplo RU: 1234567 RU1 RU2 RU3 RU4 RU5 RU6 RU7 1 2 3 4 5 6 7 𝑥[𝑛] = [1 𝟐 3 4 5 6 7] Para linearidade: o 𝑥1[𝑛] = 𝑥[𝑛], 𝑥2[𝑛] = 2𝑥[𝑛] o 𝑎 = RU2 (se for zero adotar 2) o 𝑏 = RU5 (se for zero adotar 3) Para invariância no tempo considerar 𝑛0 = RU6 (se for zero considerar o maior número do seu RU) atrasado Definir o vetor 𝑛 entre -20 e 20 Exemplo RU: 1234567 𝑇{𝑥[𝑛]} = 𝑛𝑥[3 − 𝑛] + 𝑥[𝑛 − 6] 𝑎 = 2 𝑏 = 5 𝑛0 = 6 𝑥[𝑛] = [1 𝟐 3 4 5 6 7] Resolução Linearidade Função do sistema: 𝑇{𝑎𝑥1[𝑛] + 𝑏𝑥2[𝑛]} = 𝑎(𝑛𝑥1[𝑅𝑈3 − 𝑛] + 𝑥1[𝑛 − 𝑅𝑈6]) + 𝑏(𝑛𝑥2[𝑅𝑈3 − 𝑛] + 𝑥2[𝑛 − 𝑅𝑈6]) 𝑇{𝑎𝑥1[𝑛] + 𝑏𝑥2[𝑛]} = 𝑎(𝑛𝑥[𝑅𝑈3 − 𝑛] + 𝑥[𝑛 − 𝑅𝑈6]) + 𝑏(𝑛2𝑥[𝑅𝑈3 − 𝑛] + 2𝑥[𝑛 − 𝑅𝑈6]) (1) Sinal de saída para duas entradas: 𝑦1[𝑛] = 𝑛𝑥1[𝑅𝑈3 − 𝑛] + 𝑥1[𝑛 − 𝑅𝑈6] = 𝑛𝑥[3 − 𝑛] + 𝑥[𝑛 − 6] 𝑦2[𝑛] = 𝑛𝑥2[𝑅𝑈3 − 𝑛] + 𝑥2[𝑛 − 𝑅𝑈6] = 𝑛2𝑥[3 − 𝑛] + 2𝑥[𝑛 − 6] Processamento Digital de sinais Prof. Eng. Viviana R. Zurro MSc. AP Sistemas LIT - exemplo para gravar 2 𝑦[𝑛] = 𝑎𝑦1[𝑛] + 𝑏𝑦2[𝑛] 𝑦[𝑛] = 𝑎(𝑛𝑥[𝑅𝑈3 − 𝑛] + 𝑥[𝑛 − 𝑅𝑈6]) + 𝑏(𝑛2𝑥[𝑅𝑈3 − 𝑛] + 2𝑥[𝑛 − 𝑅𝑈6]) (2) As equações (1) e (2) são iguais, portanto o sistema é linear Algoritmo Scilab (AP1 Sistemas LIT p2 - linearidade) function [y]=impulso(x) y = zeros(1, length(x)); y(find(x==0)) = 1; endfunction//função impulso 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, escolhido entre -20 e 20 para ter uma boa margem quando usar o deslocamento circular da função cshift 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] a=RU2;//segundo número do RU - VERIFICAR AS INDICAÇÕES DO ROTEIRO b=RU5;//quinto número do RU - VERIFICAR AS INDICAÇÕES DO ROTEIRO x1=x;//x1[n]=x[n] x2=2*x;//x2[n]=2x[n] //PRIMEIRO TERMO DA FUNÇÃO nx[RU3-n] o1=cshift(x,[0,-RU3]);//x[n+RU3] deslocamento circular no tempo adiantado for i=-20:20//i deve ter o mesmo comprimento de n o(i+21)=i*o1(-i+21)//primeiro termo da função de transferência end//nx[RU3-n] este é um vetor coluna que deverá ser transformado em vetor linha para poder somar com outros vetores //SEGUNDO TERMO DA FUNÇÃO x[n-RU6] p=cshift(x,[0,RU6]);//x[n-RU6] deslocamento circular no tempo atrasado - segundo termo da função de transferência //FUNÇÃO DO SISTEMA PARA UMA ENTRADA T=o'+p//'transforma o vetor coluna em vetor linha e vice versa //ADITIVIDADE E HOMOGENEIDADE T1=T;//T1=nx1[RU3-n]+x1[n-RU6], devido a que x1=x T2=2*T;//T2=nx2[RU3-n]+x2[n-RU6], devido a que x2=2x Tlin=a*T1+b*T2; //y[n] Processamento Digital de sinais Prof. Eng. Viviana R. Zurro MSc. AP Sistemas LIT - exemplo para gravar 3 y=a*(o'+p)+b*2*(o'+p);//sinal de saída //Sinais subplot(221) plot2d3(n,x,style=1)//sinal de entrada x1[n], a função style define a cor da linha f.children.children(1).children.thickness=2;//controla a grossura da linha title('x[n]') xlabel('amostra') ylabel('amplitude') subplot(222) plot2d3(n,T,style=2)//Função do sistema f.children.children(1).children.thickness=2;//controla a grossura da linha title('Função do sistema') xlabel('amostra') ylabel('amplitude') subplot(223) plot2d3(n,Tlin,style=3)//Função do sistema para duas entradas f.children.children(1).children.thickness=2;//controla a grossura da linha title('Função do sistema para duas entradas')//sinal de saída do sistema xlabel('amostra') ylabel('amplitude') subplot(224) plot2d3(n,y,style=5)//Saída do sistema para duas entradas f.children.children(1).children.thickness=2;//controla a grossura da linha title('y[n]')//sinal de saída y[n] para as entradas individuais xlabel('amostra') ylabel('amplitude') Processamento Digital de sinais Prof. Eng. Viviana R. Zurro MSc. AP Sistemas LIT - exemplo para gravar 4 Invariância no tempo Função do sistema: 𝑇{𝑥[𝑛]} = 𝑛𝑥[𝑅𝑈3 − 𝑛] + 𝑥[𝑛 − 𝑅𝑈6] Função do sistema com atraso: 𝑇{𝑥[𝑛 − 𝑛0]} = 𝑛𝑥[3 − 𝑛 − 6] + 𝑥[𝑛 − 6 − 6] = 𝑛𝑥[−3 − 𝑛] + 𝑥[𝑛 − 12] (3) Sinal de saída: 𝑦[𝑛] = 𝑛𝑥[3 − 𝑛] + 𝑥[𝑛 − 6] Sinal de saída com atraso: 𝑦[𝑛 − 𝑛0] = (𝑛 − 𝑛0)𝑥[𝑅𝑈3 − (𝑛 − 𝑛0)] + 𝑥[(𝑛 − 𝑛0) − 𝑅𝑈6] 𝑦[𝑛 − 6] = (𝑛 − 6)𝑥[3 − 𝑛 + 6] + 𝑥[𝑛 − 6 − 6] = (𝑛 − 6)𝑥[9 − 𝑛] + 𝑥[𝑛 − 12] (4) As equações (3) e (4) não são iguais, portanto o sistema não é invariante no tempo Processamento Digital de sinais Prof. Eng. Viviana R. Zurro MSc. AP Sistemas LIT - exemplo para gravar 5 Algoritmo Scilab (AP1 Sistemas LIT p2 – invariância no tempo) function [y]=impulso(x) y = zeros(1, length(x)); y(find(x==0)) = 1; endfunction//função impulso 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, escolhido entre -20 e 20 para ter uma boa margem quando usar o deslocamento circular da função cshift 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] //Invariância no tempo n0=RU6;//sexto número do RU - VERIFICAR AS INDICAÇÕES DO ROTEIRO //PRIMEIRO TERMO DA FUNÇÃO nx[RU3-n] o1=cshift(x,[0,-RU3]);//x[n+RU3] deslocamento circular no tempo adiantado for i=-20:20//i deve ter o mesmo comprimento de n o(i+21)=i*o1(-i+21)//primeiro termo da função de transferência: nx[RU3-n] end //SEGUNDO TERMO DA FUNÇÃO x[n-RU6] p=cshift(x,[0,RU6]);//x[n-RU6] deslocamento circular no tempo atrasado - segundo termo da função de transferência //FUNÇÃO DO SISTEMA SEM DESLOCAMENTO T=o'+p//'transforma o vetor coluna em vetor linha e vice versa - função de transferência sem deslocamento //PRIMEIRO TERMO DA FUNÇÃO nx[RU3-n-n0] com deslocamento o2=cshift(x,[0,(-RU3+n0)])//x[n+(RU3-n0)] deslocamento circular no tempo adiantado for i=-20:20//i deve ter o mesmo comprimento de n x1(i+21)=i*o2(-i+21)//x1[n]=nx[RU3-n-n0] deslocamento circular no tempo atrasado end //SEGUNDO TERMO DA FUNÇÃO x[n-n0-RU6] com deslocamento x2=cshift(p,[0,n0]);//x2[n]=x[n-n0-RU6] deslocamento circular no tempo atrasado //FUNÇÃO DO SISTEMA COM ATRASO T1=x1'+x2;//função do sistema atrasada //y[n] COM ATRASO PRIMEIRO TERMO //y[n]=(n-n0)x[RU3-(n-n0)]=(n-n0)x[RU3-n+n0]=(n-n0)x[RU3+n0-n] m=cshift(x,[0,(-RU3-n0)])//x[RU3+n0+n] deslocamento circular no tempo adiantado for i=-20:20//i deve ter o mesmo comprimento de n Processamento Digital de sinais Prof. Eng. Viviana R. Zurro MSc. AP Sistemas LIT - exemplo para gravar 6 y1(i+21)=(i-n0)*m(-i+21)//x1[n]=(n-n0)x[RU3+n0-n] end y2=x2;//A segunda parte da função é igual ao segundo termo da função do sistema y=y1'+y2; subplot(221) plot2d3(n,x,style=1)//sinal de entrada f.children.children(1).children.thickness=2;//controla a grossura dalinha title('x[n]') xlabel('amostra') ylabel('amplitude') subplot(222) plot2d3(n,T,style=2)//função do sistema sem deslocamento f.children.children(1).children.thickness=2;//controla a grossura da linha title('Função do sistema sem deslocamento') xlabel('amostra') ylabel('amplitude') subplot(223) plot2d3(n,T1,style=3) title('Função do sistema com deslocamento')//função do sistema com deslocamento f.children.children(1).children.thickness=2;//controla a grossura da linha xlabel('amostra') ylabel('amplitude') subplot(224) plot2d3(n,y,style=5) f.children.children(1).children.thickness=2;//controla a grossura da linha title('y[n-no]')//sinal de saída y[n] para as entradas individuais xlabel('amostra') --------------------------------------------------------------------------------------------------------------------------
Compartilhar