Você está na página 1de 6

Universidade Federal de Viosa ELT 410 - Processamento digital de sinais Aula prtica: Filtros Digitais - Prof.

Leonardo Bonato Felix


RENATO MARKELE FERREIRA CNDIDO Matrcula-56217 26 de novembro de 2009

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

Projetar Filtros e utilizar o processo de filtragem em sinais que apresentam rudos.

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 -400

100

200

300

400 500 600 Frequency (Hz)

700

800

900

1000

0
Phase (degrees)

-200 -400 -600 -800

100

200

300

400 500 600 Frequency (Hz)

700

800

900

1000

Figura 2

A filtragem na qual se utilizou a resposta de fase original do filtro foi/

sinal filtrado usando filter 50 1


Magnitude (dB)

resposta em frequencia do FIR com n=30 wn=400/1000

0.8 0.6 0.4 0.2 0 -0.2 -0.4 -0.6 -0.8 -1

0 -50 -100 -150

100

200

300

400 500 600 Frequency (Hz)

700

800

900

1000

0
Phase (degrees)

-500 -1000 -1500 -2000

0.005

0.01

0.015

0.02 t

0.025

0.03

0.035

0.04

100

200

300

400 500 600 Frequency (Hz)

700

800

900

1000

Figura 3

Figura 5
sinal filtrado 1 0.8 0.6 0.4

Para a filtragem utilizando filtfilt obtivemos:


sinal filtrado usando filtfilt 1 0.8 0.6
0.2

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

-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

400 500 600 Frequency (Hz)

700

800

900

1000

0
Phase (degrees)

-500

-1000

-1500

100

200

300

400 500 600 Frequency (Hz)

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

Na figura a seguir est o contedo espectral do sinal antes da filtragem:


CONTEDO ESPECTRAL DE "1" 18000 16000 14000

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

12000 10000 8000 6000 4000 2000 0

0.5

1 1.5 Frequencia (Hz)

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

Aps a filtragem passa-baixa o contedo espectral do sinal ficou da seguinte forma:

CONTEDO ESPECTRAL DE "1" APOS FILTRO PASSABANDA 18000 16000

O contedo espectral do sinal antes da filtragem foi, ento, o seguinte:


CONTEDO ESPECTRAL DE "7" 7000 6000

14000 12000 10000 8000 6000 4000 2000 0

5000

4000

3000

2000

1000

0.5

1 1.5 Frequencia (Hz)

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 -100 -200 -300

0.5

1 Frequency (Hz)

1.5

2 x 10
4

Phase (degrees)

-200 -400 -600 -800

0.5

1 Frequency (Hz)

1.5

2 x 10
4

Figura 13

E, o contedo espectral do sinal aps a filtragem foi o seguinte:


CONTEDO ESPECTRAL DE "7" APOS FILTRO PASSABANDA 1400

1200

1000

800

600

400

200

0.5

1 1.5 Frequencia (Hz)

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

https://www2.cead.ufv.br/sistemas/pvanet/files/c onteudo/1223/filtros.pdf Notas de Aula Help do MatLab