Escolar Documentos
Profissional Documentos
Cultura Documentos
1)
Objetivos 3) Exerccios
Exerccio 1- Filtro Passa-baixa 400Hz: Nesse exerccio iremos aplicar um filtro passabaixa a um sinal senoidal ruidoso a fim de remover os rudos. O cdigo a seguir, foi utilizado para filtrarmos o sinal senoidal ruidoso, sendo que dois mtodos de filtragem foram utilizados sendo que um dos mtodos utilizado a resposta de fase original do filtro e no outro mtodo foi utilizada uma filtragem que apresenta fase zero o que elimina distores em funo da fase no-linear do filtro.
%criando a senoide ruidosa fs = 2000; %Define frequencia de amostragem t = 0:1/fs:5; %gera vetor de tempo s = sin(2*pi*262.62*t); %cria sinal senoidal puro n = 0.1*randn(size(s)); %cria ruido sn = s + n; %cria sinal senoide ruidosa figure(1) plot(t,sn);axis([0 0.04 -1.1 1.1]);title('senoide ruidosa') xlabel('t'); soundsc(sn,fs) % O comando buttord, utilizado a seguir,Retorna a menor ordem N e a frequencia de corte normalizada Wn para um filtro Butterworth passabaixa de menor ordem que atenue, pelo menos, 35 dB na banda de corte e que atenue, no mximo, 1 dB na banda de passagem alm de ter banda de transio entre 400 a 600 Hz: [N, Wn] = buttord(400/(fs/2), 600/(fs/2), 1, 35); [B,A] = butter(N,Wn,'low');%Retorna os zeros B e os polos A do filtro butterworth passabaixa de ordem N e com
2)
Introduo
De uma maneira geral, pode-se definir filtro como um sistema linear invariante no tempo. Quando se obtm uma sada y[n] atravs de uma dada entrada x[n], a sada nada mais do que a filtragem do sinal de entrada. O filtro pode ser digital ou analgico. Filtros analgicos quando comparados aos digitais, so em geral baratos, rpidos e tem uma grande faixa dinmica de amplitude e frequncia. Porm, em comparao, filtros digitais so vastamente superior em desempenho. Dentre as funes de um filtro, pode-se destacar sua utilizao na separao de sinais e na recuperao de sinais. A Filtragem de sinais possibilita-nos alterar o espectro de frequncia de um sinal, sendo assim, torna-se possvel a remoo de rudos atravs de um filtro que elimine altas frequncias, O Filtro Passabaixa, por exemplo, alm de varias outras aplicaes. Os Filtros FIR, filtros digitais com resposta ao impulso finita, so obtidos truncando-se a resposta ao impulso do filtro (ideal) pretendido. As vantagens dos filtros FIR so: Fase Linear; Sempre so estveis; Podem ser implementados facilmente em hardware. J os Filtros IIR, resposta ao impulso infinita, apresentam a vantagem de que esses filtros alcanam as especificaes do projeto com ordem bem menor que os Filtros FIR. A fase desses filtros no-linear mas o processamento de sinais permite que o processo de filtragem seja realizado off-line e assim possvel uma filtragem no casual e que apresente fase zero e, ento elimina distores de fase do filtro.
frequencoa de corte normalizada igual a Wn figure(2) freqz(B,A,1024,fs) %plota a reposta em frequencia do filtro , magnitude e fase title('resposta em frequencia do filtro IIR Butterworth') y = filter(B,A,sn); %filtra o sinal sn(senoide ruidosa)sendo que o filtro descrito pelo numerador definido pelo vetor B e o denominador definido pelo vetor A figure(3);plot(t,y);axis([0 0.04 -1.1 1.1]);title('sinal filtrado usando filter') xlabel('t'); soundsc(y,fs) y = filtfilt(B,A,sn); figure(4);plot(t,y);axis([0 0.04 -1.1 1.1]);title('sinal filtrado usando filtfilt') xlabel('t'); soundsc(y,fs) B = fir1(30,400/1000); %implementa o FIR digital de ordem n=30 e frequencia de corte normalizada wn=400/1000 e retorna os n+1 coeficientes de um FIR digital de ordem n figure(5) freqz(B,1,1024,2000);title('resposta em frequencia do FIR com n=30 wn=400/1000') y = filtfilt(B,1,sn); figure(6);plot(t,y); axis([0 0.04 -1.1 1.1]);title('sinal filtrado') xlabel('t'); soundsc(y,fs) fcuts = [400 600]; mags = [1 0]; devs = [0.891 1.788e-2]; [n,Wn,beta,ftype]=kaiserord(fcuts,mags, devs,fs);%Retorna a ordem n do FIR e beta para serem utilizados como paramentros para o janelamento kaiser B = fir1(n,Wn,ftype,kaiser(n+1,beta)); figure(7) freqz(B,1,1024,2000);title('resposta em frequencia do FIR com parametros otimizados') y = filtfilt(B,1,sn);
figure(8);plot(t,y); axis([0 0.04 -1.1 1.1]);title('sinal filtrado com parametros do filtro otimizados') xlabel('t'); soundsc(y,fs)
Os resultados encontrados se encontram nas figures de 1 a 8. O sinal ruidoso gerado foi o ilustrado na figura 1.
senoide ruidosa 1 0.8 0.6 0.4 0.2 0 -0.2 -0.4 -0.6 -0.8 -1 0 0.005 0.01 0.015 0.02 t 0.025 0.03 0.035 0.04
Figura 1
A resposta em frequncia do filtro butterworth passa-baixa utilizado para as primeiras filtragens foi:
resposta em frequencia do filtro IIR Butterworth 0
Magnitude (dB)
100
200
300
700
800
900
1000
0
Phase (degrees)
100
200
300
700
800
900
1000
Figura 2
100
200
300
700
800
900
1000
0
Phase (degrees)
0.005
0.01
0.015
0.02 t
0.025
0.03
0.035
0.04
100
200
300
700
800
900
1000
Figura 3
Figura 5
sinal filtrado 1 0.8 0.6 0.4
0.4
0
0.2
-0.2
0
-0.4
-0.2
-0.6
-0.4
-0.8
-0.6 -0.8 -1 0 0.005 0.01 0.015 0.02 t 0.025 0.03 0.035 0.04
Figura 6
Figura 4
Magnitude (dB)
Observa-se que para o sinal filtrado utilizando o comand filtfilt o qual evita distores devido caracterstica no-linear do filtro no houve a distoro nos que pode se observar na figura 3 logo nos valores iniciais do eixo x. Utilizando o um filtro FIR de ordem 30 e freqncia de corte igual a 400Hz cuja resposta em freqncia encontra-se na figura 5 obtivemos o sinal filtrado da figura 6.
A fim de otimizar a filtragem utilizamos um comando que pode ser observado no cdigo j mostrado anteriormente o qual nos d os parmetros otimizados do filtro FIR. Sendo assim o filtro projetado apresentou a resposta em freqncia observado na figura 7 e o sinal filtrado por esse sistema est na figura 8.
resposta em frequencia do FIR com parametros otimizados 50
-50
-100
100
200
300
700
800
900
1000
0
Phase (degrees)
-500
-1000
-1500
100
200
300
700
800
900
1000
Figura 7
sinal filtrado com parametros do filtro otimizados 1 0.8 0.6 0.4 0.2 0 -0.2 -0.4 -0.6 -0.8 -1 0 0.005 0.01 0.015 0.02 t 0.025 0.03 0.035 0.04
title('RESPOSTA EM FREQUENCIA DO FILTRO PASSABAIXA Wp = [0.2e4/(fs/2)') x1 = filtfilt(B,A,y1); soundsc(x1,fs) X1 = abs(fft(x1)); %calcula a transformada do sinal y1 F=linspace(0,fs/2,round(length(x1)/2)); %gera o vetor de frequncias figure(3);plot(F,X1(1:round(length(x1)/ 2))) ;title('CONTEDO ESPECTRAL DE "1" APOS FILTRO PASSABANDA') xlabel('Frequencia (Hz)')
Figura 8
Observa-se que o filtro com parmetros otimizados apresenta menos distores na resposta em freqncia. Exerccio 2- Limpeza de udio: Nesse exerccios temos dois sinais de udio contaminados por rudos e, atravs de filtragens pretende-se eliminar esse rudos. Devido a algumas dificuldades os rudos foram apenas parcialmente eliminados e no totalmente. No sinal de udio 1 a filtragem era mais fcil pois o que se pretendia retirar eram rudos com freqncias muito diferentes do som pretendido. J no sinal de udio 7 houve uma maior dificuldade j que as freqncias que deveriam ser retiradas eram relativas a vozes o que se confundia as vezes com a msica pois as freqncias eram muito parecidas. Para o primeiro sinal de udio o cdigo utilizado foi:
fs=882001/20; y1=wavread('1'); Y1 = abs(fft(y1)); %calcula a transformada do sinal y1 F=linspace(0,fs/2,round(length(y1)/2)); %gera o vetor de frequncias figure(1) ;plot(F,Y1(1:round(length(y1)/2))); title('CONTEDO ESPECTRAL DE "1"') xlabel('Frequencia (Hz)') [N, Wn] = buttord(0.2e4/(fs/2), 0.5e4/(fs/2), 1, 35); [B,A] = butter(N,Wn,'low');%Retorna os zeros B e os polos A do filtro butterworth passabaixa de ordem N e com frequencoa de corte normalizada igual a Wn figure(2) freqz(B,A,1024,fs) %plota a reposta em frequencia do filtro , magnitude e fase
0.5
2.5 x 10
4
Figura 9
O filtro utilizado para a filtragem desse sinal tem a seguinte resposta em frequencia:
RESPOSTA EM FREQUENCIA DO FILTRO PASSABAIXA Wp = [0.2e4/(fs/2) 200
Magnitude (dB)
-200
-400
0.5
1 Frequency (Hz)
1.5
2 x 10
4
0
Phase (degrees)
-200
-400
-600
0.5
1 Frequency (Hz)
1.5
2 x 10
4
Figura 10
5000
4000
3000
2000
1000
0.5
2.5 x 10
4
Figura 12
0 0.5 1 1.5 Frequencia (Hz) 2 2.5 x 10
4
Figura 11
O filtro utilizado foi um passa-banda e sua resposta em freqncia encontra-se na figura 13.
RESPOSTA EM FREQUENCIA DO FILTRO PASSABANDA Wp = [0.07e4 0.2e4]/(fs/2) 100
Pode-se observar que os rudos para as freqncias mais altas foram removidos mas para as freqncias onde se encontram as partes que no devem ser removidas o rudo tambm permaneceu. O resultado ao se ouvir foi um sinal claramente mais limpo apesar de ainda permanecer tais rudos. O cdigo utilizado para a filtragem do sinal 7 foi o seguinte:
fs=882001/20; y2=wavread('7'); Y2 = abs(fft(y2)); F=linspace(0,fs/2,round(length(y2)/2)); %gera o vetor de frequncias figure(1);plot(F,Y2(1:round(length(y2)/ 2))) ; title('CONTEDO ESPECTRAL DE "7"') xlabel('Frequencia (Hz)') Wp = [0.07e4 0.2e4]/(fs/2); Ws = [0.01e4 1e4]/(fs/2); Rp = 3; Rs = 40; [n,Wn] = buttord(Wp,Ws,Rp,Rs); [B,A] = butter(n,Wn); figure(2) freqz(B,A,1024,fs); title('RESPOSTA EM FREQUENCIA DO FILTRO PASSABANDA Wp = [0.07e4 0.2e4]/(fs/2)') x2 = filtfilt(B,A,y2); soundsc(x2,fs) X2 = abs(fft(x2)); %calcula a transformada do sinal y1 % X2 = abs(fft(x2)); F=linspace(0,fs/2,round(length(x2)/2)); %gera o vetor de frequncias figure(3);plot(F,X2(1:round(length(x2)/ 2))) ; title('CONTEDO ESPECTRAL DE "7" APOS FILTRO PASSABANDA') xlabel('Frequencia (Hz)')
Magnitude (dB)
0.5
1 Frequency (Hz)
1.5
2 x 10
4
Phase (degrees)
0.5
1 Frequency (Hz)
1.5
2 x 10
4
Figura 13
1200
1000
800
600
400
200
0.5
2.5 x 10
4
Figura 14
Para esse sinal, como j foi mencionado antes, h uma maior dificuldade na filtragem uma vez que o rudo apresenta uma faixa de freqncia bastante prxima das freqncias com maior magnitude correspondente do sinal. Mas, como no primeiro sinal, ao se ouvir o sinal estava claramente mais limpo.
4)
Concluses
Observamos a grande utilidade dos filtros no processamento de sinais e a grande importncia de obtermos os parmetros timos do filtro requisitado pelo projeto para obtermos uma melhor resposta.
5)
Bibliografia