Anda di halaman 1dari 4

Processamento Digital de Sinais 2007.

1
Aula Pr atica de Projetos de Filtros Digitais Profa . Myl` ene Christine Queiroz de Farias

Introdu c ao ao Matlab para Processamento de Sinais

Nesta aula, estudaremos alguns exemplos da utiliza c ao do Matlab em Processamento de Sinais e, em especial, da Toolbox de Processamento de Sinais. Mais informa c oes a respeito das fun c oes contidas neste Toolbox podem ser obtidas utilizando o comando: help signal. Seguem algumas fun c oes que ser ao ut eis nesta aula: fliplr - inverte a ordem das colunas em uma matriz; conv - realiza a convolu c ao 1-D de dois vetores; roots - calcula ra zes de um polin omio; factorize - fatora um polin omio; zplane - esbo ca diagrama de p olos e zeros; zp2tf - encontra a fun c ao transfer encia a partir dos p olos e zeros; residuez - expans ao em fra c oes parciais da TZ racional; freqz - resposta em freq u encia racional; impz - inversa de uma TZ racional; filter - ltro unidimensional. Utilize a fun c ao help para obter mais detalhes de cada fun c ao. Exerc cio 1.1 Estude e execute o programa intro_1, que executa a ltragem de um sinal aleat orio com um ltro passa-baixas simples. Exerc cio 1.2 Estude e execute o programa intro_2, que fornece a localiza c ao dos zeros para exemplos de ltros FIR de fase linear. Exerc cio 1.3 Estude e execute o programa intro_3, que esbo ca o gr aco do ganho da resposta em magnitude de um ltro de m edia deslizante, utilizando a fun c ao gain. Exerc cio 1.4 Utilizando o Program 6_2, determine a fun c ao transfer encia de um sistema a partir da posi c ao dos seus p olos e zeros. Os zeros s ao z1 = 0, 21, z2 = 3, 14, z3 = 0, 3 + j 0, 5, z4 = 0, 3 j 0, 5. Os p olos s ao p1 = 0, 45, p2 = 0, 67, p3 = 0, 81 + j 0, 72, p4 = 0, 81 j 0, 72. Exerc cio 1.5 Utilizando o Program 6_3, determine a expans ao em fra c oes parciais da fun c ao transfer encia do exerc cio anterior.

Projeto Filtros FIR Utilizando o Matlab

O projeto de ltros FIR utilizando janelas segue os seguintes passos: 1. Estima c ao da ordem do ltro FIR usando uma tabela ou f ormulas espec cas; 2. Determina c ao da janela a ser utilizada de acordo com as especica c oes do ltro e ordem calculada no item 1; 3. A resposta impulsiva do ltro e obtida multiplicando-se a resposta impulsiva do ltro ideal pela janela obtida nos itens 1 e 2.

Figura 1: Tabela para compara c ao dos ganhos para cada uma das janelas mais comuns. A ordem dos ltros pode ser obtida da tabela na Figura 1, ou utilizando umas das seguintes f ormulas. A f ormula proposta por Kaiser e dada pela seguinte rela c ao: p s 13 20 log10 . N = 14, 6 (s p ) /2 O programa kaiord.m pode ser utilizado para estimar a ordem de um FIR utilizando a f ormula de Kaiser. A segunda f ormula, um pouco mais precisa, foi proposta por Hermann e e dada pela seguinte rela c ao: D (p , s ) F (p , s ) [(s p )/2 ]2 N . = 14, 6 (s p ) /2 no qual D (p , s ) = a1 (log10 p )2 + a2 (log10 p ) + a3 log10 s a4 (log10 p )2 + a5 (log10 p ) + a6 , e F (p , s ) = b1 + b2 [log10 p log10 s ] com a1 = 0, 005309, a2 = 0, 07114, a3 = 0, 4761, a4 = 0, 00266, a5 = 0, 5941, a6 = 0, 4287, b1 = 11, 01217, b2 = 0, 51244. A fun c ao firpmord pode ser utilizada para estimar a ordem do ltro FIR pela f ormula de Hermann. A Toolbox de Processamento de Sinais do Matlab inclui as seguintes fun c oes para gera c ao de janelas que s ao utilizadas no projeto de ltros FIR: 2

w=hann(L); w=hamming(L); w=blackman(L); w=kaiser(L,beta). Para gerar uma janela, bastar usar a fun c ao correspondente e o par ametro apropriado. O projeto do ltro FIR consiste simplesmente da multiplica c ao da janela projetada pela resposta impulsiva do ltro ideal. Duas fun c oes no Matlab pode ser utilizadas para gerar os ltros FIR: fir1 e fir2. A fun c ao fir1 e utilizada para projetar ltros convecionais (passabaixas, passa-altas, passa-faixa ou rejeita-faixa), equanto que fir2 pode ser utilizado para projetar ltros de resposta em magnitude com formas arbitr arias. Exerc cio 2.1 Utilizando a fun c ao kaiord.m, calcule a ordem de um ltro FIR de fase linear com as seguintes especica c oes: p = 0, 0114469, s = 0, 01778279, Fp = 1800, Fs = 2000 e FT = 12.000. Exerc cio 2.2 Considere a determina c ao dos coecientes de uma janela de Kaiser que ser a utilizada para projetar um ltro passa-baixas FIR. O ltro tem as seguintes especica c oes: p = 0, 3 , s = 0, 4 e s = 50dB. Utilizando o Program 10_4.m, esboce a janela obtida e o ganho da sua magnitude em freq u encia. Exerc cio 2.3 Modique o Program 10_4.m de forma a obter curvas de todas as janelas em um s o gr aco. Exerc cio 2.4 Considerando as mesmas especica c oes dos exerc cios anteriores, utilize Program 10_5 para projetar um passa-baixas utilizando a janela de Kaiser. Exerc cio 2.5 Modique o Program 10_5 para projetar um ltro FIR passa-altas.

Projetos de Filtros IIR Utilizando o Matlab

O projeto de ltros IIR segue os seguintes passos: 1. Convers ao das especica c oes do ltro digital desejado GD (z ) em especica c oes para um ltro anal ogico HD (s) do mesmo tipo; 2. Projeto do ltro anal ogico passa-baixas HD (s); 3. Transforma c ao da fun c ao transfer encia HD (s) em GD (z ). No item 2, uma das estapas do projeto consiste na determina c ao da ordem e da freq u encia de corte do ltro anal ogico. A toolbox de processamento de sinais do Matlab disponibiliza v arias fun c oes que podem ser utilizadas com este objetivo: buttord para ltros Butterworth; cheb1ord para ltros Chebyschev tipo 1; cheb2ord para ltros Chebyschev tipo 2; pticos. ellipord para ltros El 3

Para o projeto de ltros, as seguintes fun c oes podem ser utilizadas: butter - para o projeto de ltros Butterworth; cheby1 - para o projeto de ltros Chebyschev tipo 1; cheby2 - para o projeto de ltros Chebyschev tipo 2; ellip - para o projeto de ltros el pticos. Os par ametros destas fun c oes incluem a ordem, a freq u encia de corte, o tipo do ltro e, exceto para o Butterworth, a varia c ao de amplitude permitida nas faixas de passagem e/ou rejei c ao. A fun c ao bilinear converte uma fun c ao transfer encia do dom nio s para o dom nio z. As seguintes fun c oes do Matlab realizam as transforma c oes espectrais: lp2lp - de um passa-baixas para um passa-baixas lp2hp - de um passa-baixas para um passa-altas lp2bp - de um passa-baixas para um passa-faixa lp2bs - de um passa-baixas para um rejeita-faixa Exerc cio 3.1 Determine a ordem da fun c ao transfer encia de ltro digital passa-altas Chebyschev tipo 2, operando a uma taxa de amostragem de 4kHz e com as seguintes especica c oes: Fp = 1kHz, Fs = 600Hz, atenua c ao de 1dB na banda de passagem e de 40dB na banda de rejei c ao. Exerc cio 3.2 Determine a fun c ao transfer encia e esboce a resposta em ganho de um ltro digital passa-baixas el ptico: Fp = 800Hz, Fs = 1000 Hz, FT = 4000 Hz. A atenua c ao na banda de passagem e de 0,5dB e na banda de rejei c ao e de 40dB. O programa Program 9_1 deve ser usado para este exemplo. Da mesma forma que no exemplo anterior para Chebyschev tipo 2, Program_9_2 e Program_9_3 podem ser usados para o projeto de ltros Chebyschev tipo 1 e Butterworth, respectivamente. Exerc cio 3.3 Projeto de um ltro passa-altas Chebyschev tipo 1 com as seguintes especica c oes: p = 0, 7 , s = 0, 5 , p = 1dB e s = 32dB. Esboce a resposta impulsiva e o ganho do ltro projetado. Roteiro: Utilizando a transformada bilinear, obtemos p = tan (p /2) = 1, 962605 s = tan (s /2) = 1, 0 do prot A seguir, convertemos as especica c oes do dom nio otipo passa-baixas para o dom nio do passa-altas. Consideramos que o ltro prot otipo e normalizado, ou seja, p = 1. Logo, obtemos s = 1, 962605 (apresente os c alculos) realizando uma transforma c ao espectral. A fun c ao cheb1ord e utilizada para estimar a ordem e a freq u encia de passagem Wn = p / do ltro passa-baixas. Ent ao, utiliza-se a fun c ao cheby1 para obter o ltro prot otipo HLP (s). Converte-se a fun c ao transfer encia de passa-baixas HLP (s) para passa-altas HHP (s), utilizandose a mesma transforma c ao espectral. Finalmente, a fun c ao bilinear e utilizada para obter o ltro IIR passa-altas HHP (z ). Seguem as fun c oes a serem utilizadas neste exerc cio: [N,Wn] = cheb1ord(1,1.9626105, 1, 32,s); [B,A] =cheby1(N,1,Wn,s); [BT,AT] = lp2hp(B,A,1.9626105); [num,den] = bilinear(BT,AT,0.5); 4

Anda mungkin juga menyukai