• Nenhum resultado encontrado

LABORATÓRIO DE PROCESSAMENTO DIGITAL I (2015)

N/A
N/A
Protected

Academic year: 2021

Share "LABORATÓRIO DE PROCESSAMENTO DIGITAL I (2015)"

Copied!
6
0
0

Texto

(1)

LABORATÓRIO DE PROCESSAMENTO DIGITAL I (2015)

Prof. José Roberto Marques

Regras para projeto para filtros digitais rejeita faixa e passa faixa passa

baixas e passa altas utilizando o método de fixação polo zero.

O script abaixo permite a visualização dos 4 tipos básicos de filtros:

a) Rejeita faixa – frequência central = 60Hz

b) Passa faixa – frequência central de 1000Hz

c) Passa baixa – frequência de corte de 100Hz

d) Passa altas – frequência de corte de 3800Hz

Execute o código verificando qual o valor do ganho no ponto de -3dB

para cada filtro sob investigação no próprio gráfico gerado, utilizando em

seguida as funções de teste para verificar o desempenho do filtro

%CONJUNTO DE REGRAS DE FIXAÇÃO POLO-ZERO E FUNÇÕES DE TESTE disp('passa baixa de 1a ordem')

clear all; close all;

Fs=8000; %amostragem

banda=100; %largura de banda = frequencia critica

if (banda/Fs) < 1/4 alfa=1-2*(banda/Fs)*pi; else alfa=-(1-pi+2*(banda/Fs)*pi); end k0=(1-alfa)/2 c=1:4000; f=c-1; for k=1:c(end) NUM_h(k)=abs(k0*(1+exp(-i*2*pi*k/Fs))); DEN_h(k)=abs((1-alfa*exp(-i*2*pi*k/Fs))); h(k)=NUM_h(k)/DEN_h(k); end plot(c,h) grid

title('PASSA BAIXAS – frequencia de corte = 100 Hz') xlabel('frequencia (Hz)')

ylabel('Ganho (pu)');

disp('parametros do filtro') b0=k0 b1=k0 a1=alfa disp('USO:') disp('y(n)=k0*(x(n)+x(n-1))+a1*y(n-1)') pause

%IMPLEMENTAÇÃO DE UM TESTE - GERAÇÂO DO SINAL DE TESTE c=1:4000; %gere um sinal de 1000 pontos

t=(c-1)/Fs; %tempo que suporta os pontos gerados %Geração do sinal de teste

(2)

title( '10+10*cos(2*pi*20*t)+10*sin(2*pi*60*t)-10*sin(2*pi*100*t)+10*sin(2*pi*150*t)'); grid xlabel('tempo (s)'); ylabel('x(t)'); pause

Ti=0;Tf=t(length(t));Fator=32; %Definindo os parâmetros do espectro de frequencias

[Y1,f]=Mfft(x,Ti,Tf,Fs,Fator); plot(f,Y1)

grid minor

title('Espectro de frequencias de x(t)'); ylabel('Módulo do conteúdo frequencial') xlabel('frequencia (Hz)');

pause

y(1)=0;%y(2)=z(2); N=c(end);

for k=1:N-1 %ative o filtro digital

y(k+1,:)=0.0393*x(k+1)+0.0393*x(k)+0.9215*y(k,:);

end

y=y'; plot(t,y)

[Y2,f]=Mfft(y,Ti,Tf,Fs,Fator); %faça a analise espectral da saída plot(f,Y2)

grid minor

title('Espectro de frequencias de x(t)'); ylabel('Módulo do conteúdo frequencial') xlabel('frequencia (Hz)');

pause

plot(f,Y1,f,Y2,'r') grid minor

title('Espectro de frequencias de x(t) e y(t)'); ylabel('Módulo do conteúdo frequencial')

xlabel('frequencia (Hz)'); pause

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% disp('passa altas de 1a ordem')

clear all; close all;

Fs=8000; %amostragem

Fcorte=3800; %largura de banda = frequencia critica

if (Fcorte/Fs) < 1/4 alfa=1-2*(Fcorte/Fs)*pi; else alfa=-(1-pi+2*(Fcorte/Fs)*pi); end k0=(1+alfa)/2 c=1:4000; f=c-1; for k=1:c(end) NUM_h(k)=abs(k0*(1-exp(-i*2*pi*k/Fs))); DEN_h(k)=abs((1-alfa*exp(-i*2*pi*k/Fs))); h(k)=NUM_h(k)/DEN_h(k); end plot(c,h) grid

title('PASSA ALTAS – frequencia de corte = 3800 Hz') xlabel('frequencia (Hz)')

ylabel('Ganho (pu)');

(3)

xlabel('frequencia (Hz)') ylabel('Ganho (pu)');

disp('parametros do filtro') b0=k0 b1=k0 a1=alfa disp('USO:') disp('y(n)=k0*(x(n)-x(n-1))+a1*y(n-1)') pause

%IMPLEMENTAÇÃO DE UM TESTE - GERAÇÂO DO SINAL DE TESTE c=1:8000; %gere um sinal de 1000 pontos

t=(c-1)/Fs; %tempo que suporta os pontos gerados %Geração do sinal de teste

x=10+10*cos(2*pi*1000*t)+10*sin(2*pi*2000*t)-10*sin(2*pi*3800*t)+10*sin(2*pi*5000*t); plot(t,x); title( '10+10*cos(2*pi*1000*t)+10*sin(2*pi*2000*t)-10*sin(2*pi*3800*t)+10*sin(2*pi*5000*t)'); grid xlabel('tempo (s)'); ylabel('x(t)'); pause

Ti=0;Tf=t(length(t));Fator=2; %Definindo os parâmetros do espectro de frequencias

[Y1,f]=Mfft(x,Ti,Tf,Fs,Fator); plot(f,Y1)

grid minor

title('Espectro de frequencias de x(t)'); ylabel('Módulo do conteúdo frequencial') xlabel('frequencia (Hz)');

pause

y(1)=0;%y(2)=z(2); N=c(end);

for k=1:N-1 %ative o filtro digital

y(k+1,:)=0.0785*x(k+1)-0.0785*x(k)-0.8429*y(k,:);

end

y=y'; plot(t,y)

[Y2,f]=Mfft(y,Ti,Tf,Fs,Fator); %faça a analise espectral da saída plot(f,Y2)

grid minor

title('Espectro de frequencias de x(t)'); ylabel('Módulo do conteúdo frequencial') xlabel('frequencia (Hz)');

pause

plot(f,Y1,f,Y2,'r') grid minor

title('Espectro de frequencias de x(t) e y(t)'); ylabel('Módulo do conteúdo frequencial')

xlabel('frequencia (Hz)'); pause

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% disp('passa faixa de 2a ordem')

clear all; close all;

Fs=8000; %amostragem

banda=200; %largura de banda F0=1000; %frequencia central alfa=1-banda/Fs*pi;

(4)

k01=(1-alfa)*sqrt(1-2*alfa*cos(2*theta)+alfa^2)/(2*sin(2*theta)); c=1:Fs/4; f=c-1; k0=1/32.3; for k=1:c(end) NUM_h(k)=abs(k0*(1-exp(-i*4*pi*k/Fs))); DEN_h(k)=abs((1-2*alfa*cos(theta)*exp(-i*2*pi*k/Fs)+alfa^2*exp(-i*4*pi*k/Fs))); h(k)=NUM_h(k)/DEN_h(k); end plot(c,h) grid

title('PASSA FAIXA – frequencia central = 1000Hz') xlabel('frequencia (Hz)')

ylabel('Ganho (pu)');

disp('parametros do filtro') b0=k0 b2=k0 a1=2*alfa*cos(theta) a2=-alfa^2 disp('USO:') disp('y(n)=x(n)-x(n-2)+a1*y(n-1)-a2*y(n-2)') kp=1000; NUM_h(kp)=abs(k0*(1-exp(-i*4*pi*kp/Fs))); DEN_h(kp)=abs((1-2*alfa*cos(theta)*exp(-i*2*pi*kp/Fs)+alfa^2*exp(-i*4*pi*kp/Fs))); h(kp)=NUM_h(kp)/DEN_h(kp); pause

%IMPLEMENTAÇÃO DE UM TESTE - GERAÇÂO DO SINAL DE TESTE c=1:8000; %gere um sinal de 1000 pontos

t=(c-1)/Fs; %tempo que suporta os pontos gerados %Geração do sinal de teste

x=10+10*cos(2*pi*500*t)+10*sin(2*pi*800*t)-10*sin(2*pi*1000*t)+10*sin(2*pi*1200*t); plot(t,x); title( 'x=10+10*cos(2*pi*500*t)+10*sin(2*pi*800*t)-10*sin(2*pi*1000*t)+10*sin(2*pi*1200*t)'); grid xlabel('tempo (s)'); ylabel('x(t)'); pause

Ti=0;Tf=t(length(t));Fator=4; %Definindo os parâmetros do espectro de frequencias

[Y1,f]=Mfft(x,Ti,Tf,Fs,Fator); plot(f,Y1)

grid minor

title('Espectro de frequencias de x(t)'); ylabel('Módulo do conteúdo frequencial') xlabel('frequencia (Hz)');

pause

y(1)=0;y(2)=0; N=c(end);

% y(1)=z(1);y(2)=z(2);

for k=1:N-2 %ative o filtro digital

y(k+2)=0.0755*x(k+2)-0.0755*x(k)+1.3031*y(k+1)-0.8491*y(k);

end

%y=y'; plot(t,y) pause

(5)

grid minor

title('Espectro de frequencias de y(t)'); ylabel('Módulo do conteúdo frequencial') xlabel('frequencia (Hz)');

pause

plot(f,Y1,f,Y2,'r') grid minor

title('Espectro de frequencias de x(t) e y(t)'); ylabel('Módulo do conteúdo frequencial')

xlabel('frequencia (Hz)'); pause

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% disp('rejeita faixa de 2a ordem')

clear all; close all; F0=1500; banda=200; Fs=8000; c=1:Fs/4; f=c-1; alfa=1-(banda/Fs)*pi; theta=(F0/Fs)*2*pi; k0=(1-2*alfa*cos(theta)+alfa^2)/(2-2*cos(theta)) for k=1:c(end) NUM_h(k)=abs(k0*(1-2*cos(theta)*exp(-i*2*pi*k/Fs)+exp(-i*4*pi*k/Fs))); DEN_h(k)=abs((1-2*alfa*cos(theta)*exp(-i*2*pi*k/Fs)+alfa^2*exp(-i*4*pi*k/Fs))); h(k)=NUM_h(k)/DEN_h(k); end plot(c,h)

title('REJEITA FAIXA – frequencia central = 1500Hz') grid

xlabel('frequencia (Hz)') ylabel('Ganho (pu)');

disp('parametros do filtro') b0=k0 b1=k0*(-2*cos(theta)) b2=k0 a1=2*alfa*cos(theta) a2=-alfa^2 disp('USO:') disp('y(n)=x(n)-b1*x(n-1)+x(n-2)+a1*y(n-1)-a2*y(n-2)') pause

%IMPLEMENTAÇÃO DE UM TESTE - GERAÇÂO DO SINAL DE TESTE c=1:8000; %gere um sinal de 1000 pontos

t=(c-1)/Fs; %tempo que suporta os pontos gerados %Geração do sinal de teste

x=10+10*cos(2*pi*500*t)+10*sin(2*pi*1000*t)-10*sin(2*pi*1500*t)+10*sin(2*pi*2000*t); plot(t,x); title( '10+10*cos(2*pi*500*t)+10*sin(2*pi*1000*t)-10*sin(2*pi*1500*t)+10*sin(2*pi*2000*t)'); grid xlabel('tempo (s)'); ylabel('x(t)'); pause

Ti=0;Tf=t(length(t));Fator=2; %Definindo os parâmetros do espectro de frequencias

(6)

plot(f,Y1) grid minor

title('Espectro de frequencias de x(t)'); ylabel('Módulo do conteúdo frequencial') xlabel('frequencia (Hz)');

pause

y(1)=0;y(2)=0; N=c(end);

% y(1)=z(1);y(2)=z(2);

for k=1:N-2 %ative o filtro digital

y(k+2)=0.9620*x(k+2)-0.7363*x(k+1)+0.9620*x(k)+0.7353*y(k+1)-0.9229*y(k); end %y=y'; plot(t,y) pause

[Y2,f]=Mfft(y,Ti,Tf,Fs,2); %faça a analise espectral da saída plot(f,Y2)

grid minor

title('Espectro de frequencias de y(t)'); ylabel('Módulo do conteúdo frequencial') xlabel('frequencia (Hz)');

pause

plot(f,Y1,f,Y2,'r') grid minor

title('Espectro de frequencias de x(t) e y(t)'); ylabel('Módulo do conteúdo frequencial')

Referências

Documentos relacionados

Investigar o mecanismo de ação do extrato de Sphaerospermopsis torques-reginae (antes chamada Anabaena spiroides) contendo Anatoxina-a(s) (ECATAS) sobre o sistema

1) PULSE EL BOTÓN DE FUNCIÓN (5) PARA SELECCIONAR EL MODO “CD”. 3) PONGA UN CD CON EL LADO IMPRESO HACIA ARRIBA EN EL INTERIOR DE LA BANDEJA Y CIERRE LA PUERTA DEL CD. 4) SE

O Projeto Formadores do Saber concederá 30 bolsas de extensão universitária no valor de R$ 750,90 (Setecentos e cinqüenta reais e noventa centavos), para cumprir a carga horária

Período Composto: Enunciado de sentido completo, que contém mais de uma ação verbal, ou seja, mais de uma oração, ou seja, o período é composto quando uma declaração/

• A WT passa o sinal no domínio do tempo por vários filtros passa alta e passa-baixa, que filtram as altas e baixa freqüência do sinal. • Este procedimento é repetido, cada

É possível frisar que as curvas mostradas na figura 01 são curvas de respostas ideais de cada tipo de filtro, onde o eixo das ordenadas (eixo y) representa o módulo da

Não foi possível comparar a variável tempo de jejum pós- operatório por não haver variação dentro dos grupos, ou seja, todos os indivíduos dentro de seu grupo foram submetidos ao

Na segunda parte, formada pelo segundo capítulo, “Ele ado- rava ler (1946-1964)”, Green fornece algumas informações sobre a família de Daniel, fala de seus primeiros anos de vida