trabalho pds - projeto de filtros fir usando o algoritmo de parks - mcclellan

11
Projeto Final de Disciplina Projeto de filtros FIR usando o algoritmo de Parks - McClellan Lucas Weyne Barros Ferreira 345731 18 de junho de 2014

Upload: lucas-weyne

Post on 01-Oct-2015

106 views

Category:

Documents


5 download

TRANSCRIPT

  • Projeto Final de Disciplina

    Projeto de filtros FIR usando o algoritmo de Parks - McClellan

    Lucas Weyne Barros Ferreira345731

    18 de junho de 2014

  • Resumo

    Filtros digitais FIR (resposta finita ao impulso) sao bastante eficientes em aplicacoes. Suas vantagens sobre osfiltros IIR (resposta infinita ao impulso) sao que, alem da ausencia de problemas de estabilidades e fase linear,sua implementacao pode ser feita inteiramente em domnio discreto bastando ajustar os seus coeficientes paraque o modulo da resposta em frequencia se aproxime do filtro ideal desejado no projeto. O algoritmo de Parks-McClellan e um algoritmo para projeto de filtros FIR que gera um filtro equiripple nas bandas de passagem erejeicao ajustando os coeficientes da resposta ao impulso utilizando o teorema da alternancia. O algoritmo deParks-McClellan e um dos mais eficientes para a aproximacao equiripple de filtros FIR sendo bastante usadoem projetos de filtros.

  • Fundamentacao Teorica

    Filtros FIR

    Um filtro FIR de ordem M pode ser caracterizado pela equacao de diferencas abaixo,

    y[n] =

    Mk=0

    akx[n k] (1.1)

    onde os coeficientes ak sao equivalentes em sua resposta impulsiva. Vemos que a resposta impulsiva do filtronao depende de valores passados de sua sada, apenas da entrada, caracterizando filtros FIR como filtros nao-recursivos. Tal caracterstica e aplicada a funcao sistema H(z) do filtro que nao sera uma funcao racional comoem outros sistemas LTI, ou seja, nao havera polos exceto em z = 0 e a funcao sera um polinomio em z1

    H(z) =

    Mk=0

    akzk (1.2)

    veja que pelas propriedades da Transformada Z os coeficientes ak permanencem na resposta do sistema, naforma fatorada temos

    H(z) =

    Mk=1

    (1 ckz1) (1.3)

    onde os coeficientes ck sao os zeros do filtro. Voltando ao domnio discreto temos a resposta impulsiva do filtro

    h[n] =

    Mk=0

    ak[n k] ={an, 0 n M0, caso contrario

    (1.4)

    Temos como resultado um conjunto finito de amostras para a resposta impulsiva h[n] gerado pelos M atrasosna entrada x[n] que sao somados formando a sada y[n] do sistema. Podemos representar a estrutura de umfiltro FIR em um diagrama fluxo como abaixo

    Figura 1.1: Diagrama de fluxo de um filtro FIR

    Tal representacao nessa estrutura basica serve como guia na implementacao em hardware podendo haveroutras estruturas que representem o mesmo sistema levando em conta quesitos de custo computacional e quan-tizacao de coeficientes.

    Quanto a simetria dos filtros FIR, temos quatro tipos, que sao os de simetria positiva e negativa agrupadosem um numero de coeficientes par ou mpar.

    Os de simetria positiva atendem a relacao:

    h[n] = h[M n] (1.5)Os de simetria negativa antendem a relacao:

    h[n] = h[M n] (1.6)O nosso foco aqui sera os de filtros FIR do Tipo I, filtros de simetria positiva com ordem M mpar.

    1

  • Especificacoes de um filtro digital

    Antes da ultilizacao de qualquer algoritmo para projeto de filtros seletivos em frequencia e necessario ter emmaos as especificacoes do que se deseja projetar. O essencial e a magnitude da resposta em frequencia do filtrodesejado H(ej), os quais incluem a banda de passagem p, a banda de rejeicao s e as larguras dos ripples (1e 2) da magnitude nas respectivas bandas do filtro, valores onde a magnitude do filtro permissivamente oscile.Generalizando para um filtro passa baixa temos:

    1 1 |H(ej)| 1 + 1 p|H(ej)| 2 s pi (1.7)

    Figura 1.2: Magnitude da resposta em frequencia de um filtro

    O algoritmo de Parks - McClellan

    O algoritmo proposto por Parks e McClellan utiliza-se do teorema da alternancia para encontrar a melhoraproximacao do filtro digital que se deseja projetar. A funcao que realiza essa aproximacao e a Funcao deAproximacao Ae(e

    j) e e dada por:

    Ae(ej) =

    Lk=0

    akcos(k) (1.8)

    os parametros L e ak sao reespectivamente o numero de oscilcoes do filtro (que influira na ordem do filtro) e oscoeficientes do mesmo (prsentes na resposta ao impulso). Estes parametros serao explicados com detalhes maisadiante.

    E por esta funcao que se deseja aproximar a magnitude ideal da resposta em frequencia Hd(ej), que no

    caso de um passa-baixas e:

    Hd(ej) =

    {1, p0, s pi

    (1.9)

    Quando existe a necessidade de individualizar os ripples 1 e 2 a nvel de aplicacao entra a Funcao Peso noprojeto, ela e dada por:

    W () =

    {Kp, pKs, s pi

    (1.10)

    onde 1 e 2 satisfazem a relacao 2/1 = Ks/Kp.Essas tres funcoes sao a base para o projeto usando o algoritmo de Parks-McClellan. Com elas e possvel

    obter a Funcao Erro de Aproximacao E() para fazer a analise e a melhor aproximacao possvel.

    E() = W ()[Hd(ej)Ae(ej)] (1.11)

    O parametro L na Eq.(1.8) e de tal forma que L = (M 1)/2 este valor e o numero de frequencias iescolhidas para serem pontos extremos das oscilacoes esperadas no filtro. Inicialmente supomos L frequenciasi denominadas frequencias extremais.

    2

  • O teorema da alternancia diz basicamente que deve ser determinada uma funcao de aproximacao que mini-mize o maximo erro (minimax) contido na expressao da Eq. (1.11). Para que isso aconteca devem haver L+2pontos extremos (frequencias extremais) em Ae(e

    j).No geral, o filtro Ae(e

    j) deve satisfazer a expressao

    W (i)[Hd(eji)Ae(eji)] = (1)i+1 (1.12)

    onde i = 1, 2, ..., (L+ 2) e e o erro de aproximacao. Podemos reescrever a expressao no sistema linear

    1 cos(1) cos(21) cos(L1) 1W (ej1)

    1 cos(2) cos(22) cos(L2) 1W (ej2)

    ......

    .... . .

    ......

    1 cos(L+2 cos(2L+2)) cos(LL+2) (1)L+2

    W (ej1)

    a0a1...aL

    Hd(e

    j1)Hd(e

    j2)...

    Hd(ejL)

    (1.13)

    Da resolucao desta equacao obtemos cada coeficiente ak do filtro de aproximacao (Eq.(1.8)) para cadafrequencia i candidata a ponto extremo (tanto de Ae(e

    j) como de E()). O formato esperado para o erro deaproximacao e equiripple, ou seja, ele deve oscilar entre e , tendo entao |E(i)| = . Porem em apenas umaiteracao isso provavelmente nao ira acontecer, nem mesmo as frequencias inicialmente supostas irao coincidircom os verdadeiros pontos extremos do erro de aproximacao. Para isso o algoritmo de Parks-McClellan, queadapta o algoritmo de Remez para o design de filtros FIR, realiza um numero finito de iteracoes ate que asfrequencias extremais se ajustem e sejam exatamente iguais aos verdadeiros pontos extremos de E(). Esteponto indica o final do algoritmo quando temos a melhor aproximacao possvel do filtro.

    O algoritmo de Parks-McClellan segue como o fluxograma abaixo. A apresentacao e descricao do metodoestao em Parks e McClellan (1972).

    Figura 1.3: Fluxograma representativo do algoritmo de Parks-McClellan

    3

  • Procedimento Pratico

    Agora utilizaremos o algoritmo de Parks - McClellan para projetar, analisar e resolver o exerccio 7.40,proposto no livro-texto da disciplina Processamento em Tempo Discreto, Alan V. Oppenheim, Ronald W.Schafer , 3 ed. com o auxlio do MATLAB na implementacao.

    Especificacoes do filtro

    Inicialmente para projetar temos as especificacoes do filtro que sao fornecidas pelo exerccio, sao elas:Banda de passagem: 0.45piBanda de rejeicao: 0.5piMagnitude na banda de passagem desejada: 1Magnitude na banda de rejeicao desejada: 0

    Propos-se tambem que a magnitude da funcao peso fosse 1 nas bandas de passagem e rejeicao. Como temosW () = 1 nao teremos distincao entre os ripples, ou seja, 1 = 2 = . O filtro Ae(e

    j) deve oscilar suamagnitude igualmente tanto na banda de passagem quanto na de rejeicao um valor , o erro de aproximacao,que sera obtido pelo algoritmo. Visualmente e possvel observar um ripple de aproximadamente 0.25. Contudotemos:

    1 |Ae(ej)| 1 + 0 || 0.45pi|Ae(ej)| 0.5pi || pi

    O filtro passa-baixa proposto pelo exerccio possui seis oscilacoes no intervalo aberto (0,pi), tres na bandade passagem e tres na banda de rejeicao. Devemos entao supor seis frequencias extremais e, pelo teorema daalternancia (L+2), incluir 0 e pi a esse conjunto de frequencias para minimizar o maximo erro existente emE(). O conjunto de frequencias extremais inicialmente supostas para o projeto foi:

    extremais =[0 0.2pi 0.4pi 0.5pi 0.6pi 0.7pi 0.8pi pi

    ]Finalmenete, temos para o projeto do filtro L = 6 que com o algoritmo de Parks-McClellan projetara um

    filtro FIR do Tipo I como ordem mpar M = 13.

    Iteracoes do algoritmo

    Temos definidas as funcoes peso W () (magnitude unitaria nas bandas de passagem e rejeicao) e o filtropassa-baixa ideal desejado Hd(e

    j) que e o mesmo ja definido pela Eq.(1.9). Seguindo o procedimento propostopor Parks e McClellan, o proximo passo e solucionar o sistema da Eq.(1.13) para obter os L+1 coeficientes akpara determinar o filtro Ae(e

    j) (substituindo os coeficientes na Eq.(1.8)) e o erro . Determinado Ae(ej),

    obtemos E() pela Eq(1.11) e podemos verificar as frequencias de entrada do algoritmo com os verdadeirospontos extremos de E().

    Se caso os pontos extremos de E() tenham mudado em relacao as frequencias extremais de entrada (inicial-mente supostas) troca-se o vetor de frequencia extremais de entrada pelos verdadeiros pontos extremos de E()e faz-se outra iteracao, quando os vetores coincidirem, temos a melhor aproximacao possvel. Abaixo temos osresultados das frequencias extremais retiradas de E() a cada iteracao:

    1a =[0 0.3400 0.9500 1.4100 1.5800 1.7700 2.1900 3.1416

    ]2a =

    [0 0.5400 1.1100 1.4100 1.5800 1.8600 2.4800 3.1416

    ]3a =

    [0 0.5600 1.0900 1.4100 1.5800 1.9100 2.5000 3.1416

    ]4a =

    [0 0.5600 1.0900 1.4100 1.5800 1.9100 2.4900 3.1416

    ]5a =

    [0 0.5600 1.0900 1.4100 1.5800 1.9100 2.4900 3.1416

    ]Pelo algoritmo temos que 1a e o conjunto de verdadeiras frequencias extremais retiradas da funcao de erro

    de aproximacao onde a entrada foi o conjunto extremais supostos inicialmente. Pelas trocas do algoritmo oconjunto 1a serve de entrada para 2a , que por seguinte serve de entrada para 3

    a e assim por diante. Aofinal foi necessario cinco iteracoes para que o conjuto de frequencias extremais de entrada coincidissem comos verdadeiros pontos extremos de E(). Essas cinco iteracoes foram necessarias para que a funcao erro fosseequiripple e representasse a melhor aproximacao possvel para o filtro.

    4

  • (a) 1a iteracao ( = 0.0719) (b) 2a iteracao ( = 0.2122)

    (c) 3a iteracao ( = 0.2494) (d) 4a iteracao ( = 0.2507)

    Figura 1.4: Erro de aproximacao a cada iteracao

    Podemos observar este ajuste para a condicao equiripple visualizando E() a cada iteracao juntamente como erro de aproximacao da iteracao (Fig.(1.4)).

    Lembrando que da quarta para a quinta iteracao a condicao de equidade das frequencias de entrada e reaise satisfeita, logo o resultado da 5a iteracao e o mesmo que na 4a. Obtemos entao que o erro de aproximacaofinal foi 0.2507 (W () = 1, 1 = 2) que se observarmos no filtro proposto pelo exerccio e exatamente o rippleno qual a resposta em frequencia do filtro Ae(e

    j) oscila.

    Resultados finais do projeto

    Ao final das cinco iteracoes, os coeficientes ak representam a melhor aproximacao possvel com o algoritmode Park-McClellan. Substituindo na Eq.(1.8) temos a resposta em frequencia do filtro Ae(e

    j) abaixo

    Figura 1.5: Resposta em frequencia do filtro Ae(ej)

    5

  • O filtro obtido possui as especificacoes propostas pelo exerccio . Como temos = 0.2507 podemos analisaras informacoes de ganho maximo nas bandas de passagem e rejeicao do filtro.

    Ganho maximo na banda de passagem = 20log(1.2507) = 4.4744 dB

    Ganho maximo na banda de rejeicao = 20log(0.2507) = -27.67 dB

    Como o filtro e FIR do Tipo I, podemos obter a resposta ao impulso fazendo a relacao h[n] = h[M n]usando os coeficientes ak, onde a0 = h[M/2] e ak = 2h[M/2 l] onde l = 1, 2, ..M/2. Como resultado temos aseguinte resposta ao impulso de ordem M = 13.

    Figura 1.6: Resposta impulsiva do filtro

    Como esperado temos uma resposta finita ao impulso caracterizando um filtro FIR com um valor maximode 13 amostras nao nulas.

    O exerccio propos tambem a obtencao de um novo filtro Be(ej) seguindo a relacao

    Be(ej) = k1Ae(e

    j)2 + k2 (1.14)

    onde k1 e k2 sao constantes. A escolha dessas constantes para o projeto do filtro Be(ej) foram k1 = 1 e

    k2 = 0.02 (escolha foi arbitraria ate a obtencao do filtro proposto pelo exerccio). Substituindo na Eq.(1.14)temos a resposta em frequencia do filtro Be(e

    j).

    Figura 1.7: Resposta em frequencia do filtro Be(ej)

    6

  • Observando a funcao de aproximacao de erro para este filtro (Fig.(1.8)) podemos observar seu comportamentoequiripple.

    Figura 1.8: Funcao aproximacao de erro do filtro Be(ej)

    Conclusivamente este filtro satisfaz o teorema da alternancia com as ondulacoes nas faixas de passagem erejeicao indicadas como no exerccio, tendo o ripple na banda de passagem bem maior que na banda de rejeicaocausado pelo fator de potencia que amplia o ganho maximo na faixa de passagem e atenua na banda de rejeicao(observe a Fig.(1.9)).

    Figura 1.9: Ganho em dB do filtro Be(ej)

    Analisando o ganho do novo filtro, o processo feito pela Eq.(1.14) ampliou o ganho maximo na faixa depassagem para aproximadamente 8.7 dB (mais ou menos o dobro que no filtro Ae(e

    j)) e atenuou na faixa derejeicao o ganho maximo para aproximadamente -63 dB.

    7

  • Conclusoes do procedimento

    Como solucao do exerccio pode-se concluir que o numero maximo possvel de valores nao nulos da respostaao impulso do filtro FIR e equivalente a ordem do mesmo que depende do numero de oscilacoes supostasinicialmente, obedecendo a relacao L = (M 1)/2 e o teorema da alternancia. Para o segundo item proposto,se analisarmos as funcoes das constantes k1 e k2 observa-se que k1 atua como um fator que e proporcional aotamanho do ripple na banda de passagem e rejeicao. A constante k2, se alterada e possvel observar um fatorde deslocamento no eixo vertical, ou seja, ao final efeitos de linearidade podem ser observados na concepcao dofiltro Be(e

    j). O algoritmo de Parks-McClelllan e bastante modelavel a nvel de implementacao podendo serusado para gerar outros tipos de filtros seletivos em frequencia sem a necessidade de grandes mudancas a nvelde algoritmo e de codigo.

    Para maior entendimento pratico e teorico sobre o projeto de filtros, todo o codigo em MATLAB foi feitosem a presenca de funcoes padrao da biblioteca do MATLAB para design de filtros FIR. Este codigo segue emanexo a este relatorio mas pode ser visto tambem pelo link http://pastebin.com/raw.php?i=KnDtmwWQ.

    8

  • Referencias Bibliograficas

    [1] Alan V. Oppenheim, Ronald W. Schafer , Discrete-Time Signal Processing, Prentice Hall, 2th Edition, 1998.

    [2] Monson H. Hayes, Schaums Outlines of Digital Signal Processing, McGraw-Hill, 1999.

    [3] Andre M. Barros, Projetos de Filtros FIR Atraves de Algoritmos Geneticos, UTFPR, 2006, http://files.dirppg.ct.utfpr.edu.br/cpgei/Ano_2006/dissertacoes/Dissertacao_400_2006.pdf.

    [4] I. Selesnick, The Remez Algorithm, http://eeweb.poly.edu/iselesni/EL713/remez/remez.pdf.

    9