4
Processamento Digital de Sinais – 2007.1 Aula Pr´ atica de Projetos de Filtros Digitais Prof a . Myl` ene Christine Queiroz de Farias 1 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˜aoemfra¸c˜ oes parciais da TZ racional; freqz - resposta em freq¨ encia racional; impz - inversa de uma TZ racional; filter - filtro 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 filtragem de um sinal aleat´ orio com um filtro 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 filtros FIR de fase linear. Exerc´ ıcio 1.3 Estude e execute o programa intro_3, que esbo¸cao gr´afico do ganho da resposta em magnitude de um filtro 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 z 1 =0, 21, z 2 =3, 14, z 3 = -0, 3+ j 0, 5, z 4 = -0, 3 - j 0, 5.Osp´oloss˜ao p 1 = -0, 45, p 2 =0, 67, p 3 =0, 81 + j 0, 72, p 4 =0, 81 - j 0, 72. Exerc´ ıcio 1.5 Utilizando o Program 6_3, determine aexpans˜aoem fra¸c˜ oes parciais da fun¸c˜ ao transferˆ encia do exerc´ ıcio anterior. 1

Aula Filtros Matlab

Embed Size (px)

Citation preview

Page 1: Aula Filtros Matlab

Processamento Digital de Sinais – 2007.1Aula Pratica de Projetos de Filtros Digitais

Profa. Mylene Christine Queiroz de Farias

1 Introducao ao Matlab para Processamento de Sinais

Nesta aula, estudaremos alguns exemplos da utilizacao do Matlab em Processamento de Sinaise, em especial, da Toolbox de Processamento de Sinais. Mais informacoes a respeito das funcoescontidas neste Toolbox podem ser obtidas utilizando o comando: help signal.

Seguem algumas funcoes que serao uteis nesta aula:

• fliplr - inverte a ordem das colunas em uma matriz;

• conv - realiza a convolucao 1-D de dois vetores;

• roots - calcula raızes de um polinomio;

• factorize - fatora um polinomio;

• zplane - esboca diagrama de polos e zeros;

• zp2tf - encontra a funcao transferencia a partir dos polos e zeros;

• residuez - expansao em fracoes parciais da TZ racional;

• freqz - resposta em frequencia racional;

• impz - inversa de uma TZ racional;

• filter - filtro unidimensional.

Utilize a funcao help para obter mais detalhes de cada funcao.

Exercıcio 1.1 Estude e execute o programa intro_1, que executa a filtragem de um sinalaleatorio com um filtro passa-baixas simples.

Exercıcio 1.2 Estude e execute o programa intro_2, que fornece a localizacao dos zeros paraexemplos de filtros FIR de fase linear.

Exercıcio 1.3 Estude e execute o programa intro_3, que esboca o grafico do ganho da respostaem magnitude de um filtro de media deslizante, utilizando a funcao gain.

Exercıcio 1.4 Utilizando o Program 6_2, determine a funcao transferencia de um sistema apartir da posicao dos seus polos e zeros. Os zeros sao z1 = 0, 21, z2 = 3, 14, z3 = −0, 3 + j0, 5,z4 = −0, 3− j0, 5. Os polos sao p1 = −0, 45, p2 = 0, 67, p3 = 0, 81 + j0, 72, p4 = 0, 81− j0, 72.

Exercıcio 1.5 Utilizando o Program 6_3, determine a expansao em fracoes parciais da funcaotransferencia do exercıcio anterior.

1

Page 2: Aula Filtros Matlab

2 Projeto Filtros FIR Utilizando o Matlab

O projeto de filtros FIR utilizando janelas segue os seguintes passos:

1. Estimacao da ordem do filtro FIR usando uma tabela ou formulas especıficas;

2. Determinacao da janela a ser utilizada de acordo com as especificacoes do filtro e ordemcalculada no item 1;

3. A resposta impulsiva do filtro e obtida multiplicando-se a resposta impulsiva do filtro idealpela janela obtida nos itens 1 e 2.

Figura 1: Tabela para comparacao dos ganhos para cada uma das janelas mais comuns.

A ordem dos filtros pode ser obtida da tabela na Figura 1, ou utilizando umas das seguintesformulas. A formula proposta por Kaiser e dada pela seguinte relacao:

N ∼= −20 log10

(√δpδs

)− 1314, 6 (ωs − ωp) /2π

.

O programa kaiord.m pode ser utilizado para estimar a ordem de um FIR utilizando a formulade Kaiser. A segunda formula, um pouco mais precisa, foi proposta por Hermann e e dada pelaseguinte relacao:

N ∼= D∞(δp, δs)− F (δp, δs) [(ωs − ωp)/2π]2

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

],

eF (δp, δs) = b1 + b2 [log10δp − log10δs]

coma1 = 0, 005309, a2 = 0, 07114, a3 = −0, 4761, a4 = 0, 00266,

a5 = 0, 5941, a6 = 0, 4287, b1 = 11, 01217, b2 = 0, 51244.

A funcao firpmord pode ser utilizada para estimar a ordem do filtro FIR pela formula deHermann.

A Toolbox de Processamento de Sinais do Matlab inclui as seguintes funcoes para geracaode janelas que sao utilizadas no projeto de filtros FIR:

2

Page 3: Aula Filtros Matlab

• w=hann(L);

• w=hamming(L);

• w=blackman(L);

• w=kaiser(L,beta).

Para gerar uma janela, bastar usar a funcao correspondente e o parametro apropriado.O projeto do filtro FIR consiste simplesmente da multiplicacao da janela projetada pela

resposta impulsiva do filtro ideal. Duas funcoes no Matlab pode ser utilizadas para gerar osfiltros FIR: fir1 e fir2. A funcao fir1 e utilizada para projetar filtros convecionais (passa-baixas, passa-altas, passa-faixa ou rejeita-faixa), equanto que fir2 pode ser utilizado paraprojetar filtros de resposta em magnitude com formas arbitrarias.

Exercıcio 2.1 Utilizando a funcao kaiord.m, calcule a ordem de um filtro FIR de fase linearcom as seguintes especificacoes: δp = 0, 0114469, δs = 0, 01778279, Fp = 1800, Fs = 2000 eFT = 12.000.

Exercıcio 2.2 Considere a determinacao dos coeficientes de uma janela de Kaiser que serautilizada para projetar um filtro passa-baixas FIR. O filtro tem as seguintes especificacoes:ωp = 0, 3π, ωs = 0, 4π e αs = 50dB. Utilizando o Program 10_4.m, esboce a janela obtida e oganho da sua magnitude em frequencia.

Exercıcio 2.3 Modifique o Program 10_4.m de forma a obter curvas de todas as janelas emum so grafico.

Exercıcio 2.4 Considerando as mesmas especificacoes dos exercıcios anteriores, utilize Program 10_5para projetar um passa-baixas utilizando a janela de Kaiser.

Exercıcio 2.5 Modifique o Program 10_5 para projetar um filtro FIR passa-altas.

3 Projetos de Filtros IIR Utilizando o Matlab

O projeto de filtros IIR segue os seguintes passos:

1. Conversao das especificacoes do filtro digital desejado GD(z) em especificacoes para umfiltro analogico HD(s) do mesmo tipo;

2. Projeto do filtro analogico passa-baixas HD(s);

3. Transformacao da funcao transferencia HD(s) em GD(z).

No item 2, uma das estapas do projeto consiste na determinacao da ordem e da frequencia decorte do filtro analogico. A toolbox de processamento de sinais do Matlab disponibiliza variasfuncoes que podem ser utilizadas com este objetivo:

• buttord para filtros Butterworth;

• cheb1ord para filtros Chebyschev tipo 1;

• cheb2ord para filtros Chebyschev tipo 2;

• ellipord para filtros Elıpticos.

3

Page 4: Aula Filtros Matlab

Para o projeto de filtros, as seguintes funcoes podem ser utilizadas:

• butter - para o projeto de filtros Butterworth;

• cheby1 - para o projeto de filtros Chebyschev tipo 1;

• cheby2 - para o projeto de filtros Chebyschev tipo 2;

• ellip - para o projeto de filtros elıpticos.

Os parametros destas funcoes incluem a ordem, a frequencia de corte, o tipo do filtro e, excetopara o Butterworth, a variacao de amplitude permitida nas faixas de passagem e/ou rejeicao.

A funcao bilinear converte uma funcao transferencia do domınio s para o domınio z. Asseguintes funcoes do Matlab realizam as transformacoes 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 funcao transferencia de filtro digital passa-altas Chebyschevtipo 2, operando a uma taxa de amostragem de 4kHz e com as seguintes especificacoes: Fp =1kHz, Fs = 600Hz, atenuacao de 1dB na banda de passagem e de 40dB na banda de rejeicao.

Exercıcio 3.2 Determine a funcao transferencia e esboce a resposta em ganho de um filtrodigital passa-baixas elıptico: Fp = 800Hz, Fs = 1000 Hz, FT = 4000 Hz. A atenuacao na bandade passagem e de 0,5dB e na banda de rejeicao e de 40dB. O programa Program 9_1 deve serusado para este exemplo.

Da mesma forma que no exemplo anterior para Chebyschev tipo 2, Program_9_2 e Program_9_3podem ser usados para o projeto de filtros Chebyschev tipo 1 e Butterworth, respectivamente.

Exercıcio 3.3 Projeto de um filtro passa-altas Chebyschev tipo 1 com as seguintes especi-ficacoes: ωp = 0, 7π, ωs = 0, 5π, αp = 1dB e αs = 32dB. Esboce a resposta impulsiva e o ganhodo filtro projetado.

Roteiro: Utilizando a transformada bilinear, obtemos

Ωp = tan (ωp/2) = 1, 962605

Ωs = tan (ωs/2) = 1, 0

A seguir, convertemos as especificacoes do domınio Ω do prototipo passa-baixas para o domınioΩ do passa-altas. Consideramos que o filtro prototipo e normalizado, ou seja, Ωp = 1. Logo,obtemos Ωs = 1, 962605 (apresente os calculos) realizando uma transformacao espectral.

A funcao cheb1ord e utilizada para estimar a ordem e a frequencia de passagem Wn = Ωp/πdo filtro passa-baixas. Entao, utiliza-se a funcao cheby1 para obter o filtro prototipo HLP (s).Converte-se a funcao transferencia de passa-baixas HLP (s) para passa-altas HHP (s), utilizando-se a mesma transformacao espectral. Finalmente, a funcao bilinear e utilizada para obter ofiltro IIR passa-altas HHP (z). Seguem as funcoes 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