Anda di halaman 1dari 8

Desenvolvimento de um filtro de resposta ao impulso finito em VHDL

Erik Farias da Silva, Kesia Cristiane dos Santos Farias, Evandson Claude Seabra Dantas, Johannes Warwick da Costa Farias4
1 2

Mestre em Eng. Eltrica - IFPB. e-mail: erik@ifpb.edu.br Mestre em Eng. Eltrica - IFPB. e-mail: kesia.farias@ifpb.edu.br 3 Graduante do curso Sup. e Tecn. em Sistemas de Telecomunicaes - IFPB. Bolsista do PIBIC. e-mail: evandson@live.com 4 Graduante do curso Sup. e Tecn. em Sistemas de Telecomunicaes - IFPB. e-mail: johanneswarwick@live.com

Resumo: A utilizao de FPGAs (Field Programmable Gate Arrays) na rea de processamento digital de sinais uma soluo distinta da clssica abordagem utilizando DSPs (Digital Signal Processors). O uso de FPGA no processamento digital de sinais um tema que deve ser abordado desde a graduao em diversas disciplinas dos cursos de engenharia eltrica e tecnologia em sistemas de telecomunicaes. Este trabalho aborda o desenvolvimento de um filtro digital do tipo FIR (Finite Impulse Response) na linguagem de descrio de hardware VHDL. Este trabalho uma etapa do desenvolvimento de uma biblioteca pblica de experimentos na rea de processamento digital de sinais utilizando FPGA. Palavras-Chave: Filtro digital, FPGA, VHDL. 1. INTRODUO Sistemas de comunicaes modernos so baseados no processamento de sinais digitais. O domnio do conhecimento dos processos relacionados digitalizao e tratamento de sinais fundamental qualificao profissional de alunos dos cursos de engenharia e tecnologia. Experimentos prticos relacionados ao tema podem enriquecer o ensino de disciplinas como processamento digital de sinais, comunicaes digitais, entre outras. O desenvolvimento de uma biblioteca pblica de experimentos na rea de processamento digital de sinais possibilita uma padronizao do ensino, permitindo uma maior interatividade nas pesquisas realizadas em diferentes Institutos Federais. A utilizao de filtros digitais fundamental para um bom funcionamento dos sistemas de recepo de dados digitais. Alm de tratar rudos indesejveis ao sistema, os filtros tambm possibilitam a diviso do canal de dados em vrias partes distintas, otimizando o sistema para trabalhar com vrios fluxos de dados no mesmo canal (DINIZ, SILVA e NETTO, 2004). Os filtros so divididos em duas categorias principais, FIR e IIR (Infinity Impulse Response). A diferena fundamental entre esses filtros que o primeiro no possui uma realimentao de dados, o que reduz o nmero de operaes de soma e multiplicao necessrias, tornando sua realizao mais simples quando comparado com um IIR de mesma ordem. Outra caracterstica dos filtros FIR sua estabilidade de fase, neste ela sempre estvel, enquanto nos IIR pode ocorrer instabilidade na fase. Para filtros de mesma ordem, os IIR apresentam uma maior seletividade em frequncia. A ausncia de realimentao ocasiona uma menor seletividade nos FIR, sendo necessrio elevar a ordem do filtro para compensar a reduo da seletividade. Com uma ordem maior, o nmero de coeficientes e iteraes aumenta, elevando assim o custo de hardware (HAYKIN e VEEN, 2001). A utilizao de dispositivos reconfigurveis para a realizao do processamento digital de sinais possibilita uma maior integrao de funcionalidades em um mesmo dispositivo, o que desejvel em sistemas embarcados. Tipicamente o processamento digital de sinais realizado por microcontroladores conhecidos como DSP. Os DSPs no so dispositivos reconfigurveis, no sendo possvel reformular sua arquitetura para adequar seu funcionamento a uma aplicao especfica. H uma tendncia de que diversas solues, atualmente implementadas em DSP, migrem para dispositivos reconfigurveis, a exemplo do FPGA. O fato de ser uma soluo de hardware

ISBN 978-85-62830-10-5 VII CONNEPI2012

dedicado torna o uso do FPGA mais atrativo devido ao seu maior desempenho, quando comparado ao DSP. Quando descrita, a arquitetura do FPGA deixa de ser genrica, e somente os recursos de hardware necessrios so utilizados (MEYER-BAESE, 2001). O FPGA um dispositivo do tipo VHSIC (Very High Speed Integrated Circuit), e para esse tipo de dispositivo foi desenvolvida a linguagem VHDL (VHSIC Hardware Description Language). A linguagem define o circuito que ser criado em nvel de hardware (D'AMORE, 2010). Para fins educacionais, os FPGAs tambm so vendidos em kits completos (nesse ponto ele torna-se um equipamento didtico), em que possvel realizar um controle por meio de suas chaves e visualizar o que est acontecendo pelos seus indicadores. No ambiente dos Institutos Federais, interessante ressaltar que um laboratrio com diversos kits de FPGA pode servir a diversas disciplinas, como processamento digital de sinais, circuitos lgicos, sistemas digitais, comunicaes digitais, codificao, entre outras. A criao de uma biblioteca pblica de funes pode enriquecer o ensino de disciplinas como PDS. Neste trabalho foi desenvolvido um filtro FIR que ser parte integrante da biblioteca de experimentos. O filtro desenvolvido permite que seus parmetros como frequncia de corte e ordem do filtro sejam atribudos pelo usurio. 2. FILTRO DIGITAL Os filtros digitais so importantes elementos presentes nos sistemas de comunicaes, possuindo a funo de modificar ou alterar atributos de um sinal de tempo discreto, no domnio da frequncia ou do tempo. (MEYER-BAESE, 2001). As diversas vantagens do processamento digital de sinais (PDS) aliadas acessibilidade dos circuitos integrados, tornaram o uso de filtros digitais mais comuns que os analgicos. Algumas caractersticas de destaque so: Alterao de parmetros realizados por software. Versatilidade, processando sinais digitais de qualquer tipo. Replicabilidade, pode ser facilmente duplicado em outro sistema (HAYKIN e VEEN, 2001). As duas principais categorias de filtros digitais so os filtros FIR (Finite Impulse Response) e filtros IIR (Infinite Impulse Response). O filtro FIR apresenta uma resposta ao impulso de durao finita, simplificando a soma de convoluo. Por sua vez, o filtro IIR apresenta uma resposta ao impulso de durao infinita, devido sua natureza recursiva (MEYER-BAESE, 2001). Neste artigo optou-se pela criao de um filtro FIR. Uma de suas propriedades inerentes apresentar uma reposta em frequncia de fase linear, que corresponde a um retardo constante. Desse modo, o projeto de filtros FIR simplificado, buscando uma aproximao da resposta em amplitude desejada (HAYKIN e VEEN, 2001). Com relao sua seletividade em frequncia, os filtros podem ser de 6 tipos: Passabaixa, passa-alta, passa-faixa, rejeita-faixa, passa tudo e rejeita tudo. Em geral, as equaes do filtro passa-baixa so utilizadas para criar os demais tipos de filtros como mostrado na . Sendo essas operaes realizadas no domnio da frequncia, necessrio fazer uma transformada inversa de Fourier para obter a resposta no domnio no tempo.

Figura 1 - Confeco de filtro passa faixa usando filtros passa baixa.

O janelamento uma tcnica que se utiliza de uma forma de onda quadrada para definir a faixa de operao ou largura de banda de um sistema. A multiplicao da janela por outro sinal no domnio da frequncia apresenta-se no domnio do tempo como uma convoluo. Existem vrias equaes de janelamento, softwares como o LabView e o MATLAB, possuem funes pr-definidas que implementam diversas dessas equaes, a citar: Retangular, Hanning, Hamming, Blackman, Kaiser-Bessel, entre outras. (ANDRADE e SOARES) A janela de Kaiser-Bessel pode ter sua forma modificada pelo ajuste de um parmetro . Dessa maneira, modifica-se a forma da janela para controlar a sua perda espectral. A Frmula 1 define uma janela Kaiser-Bessel com N amostras,

(1)

onde representa a primeira ordem da janela, um nmero arbitrrio real que determina a forma da janela (relao entre nmero de lbulos e seletividade de frequncia) e M o nmero de amostras do sinal (HAYKIN e VEEN, 2001). Aps o clculo da janela, so obtidos os coeficientes do filtro que so representados por h[n]. O prximo passo a realizao da soma de convoluo da janela com o sinal de entrada, o que representa sua multiplicao no domnio da frequncia. O sinal resultante da convoluo descrito pela Frmula 2, (2) em que M representa a ordem da janela calculada e n o nmero de elementos. A Figura 2 ilustra o processo de convoluo realizado no FPGA. Na etapa de inicializao, so carregados os coeficientes do filtro. Aps o carregamento, para cada dado de entrada x[n], realizada uma multiplicao dos coeficientes pelos dados de entrada armazenados. O resultado dessas multiplicaes somado e em seguida o sinal de entrada deslocado.

Figura 2 - Fluxograma da convoluo em VHDL

3. IMPLEMENTAO EM VHDL A descrio de hardware difere em diversos aspectos da programao em linguagens convencionais, a programao em VHDL apresenta diversas particularidades relativas arquitetura de hardware desejada o que vai alm do alcance do desenvolvimento de um software. O desenvolvimento em VHDL concorrente, ou seja, realiza instrues de forma paralela como ilustrado na Figura 3. No atentar para essa particularidade pode gerar erros que no permitem a compilao do cdigo, o mais comum a atribuio de dois valores a uma mesma varivel em pontos diferentes do cdigo. Essa prtica comum em linguagens de programao leva a um erro em VHDL, o erro ocorre devido ao paralelismo das instrues do cdigo, o que leva definio de dois valores concorrentes mesma varivel. Para realizar uma sequncia lgica no concorrente so criados processos, nos quais as instrues so executadas de maneira sequencial. Para evitar conflitos e respeitar as dependncias existentes entre blocos concorrentes, foram utilizadas flags de controle para realizar transferncia de dados entre processos.

Figura 3 - Fluxograma comparativo entre a linguagem C e VHDL

A estrutura bsica da linguagem pode ser dividida em duas partes, conforme ilustrado na Figura 4. A entidade a responsvel pela interface do equipamento com o ambiente exterior controlando as entradas e sadas de dados. A arquitetura o circuito propriamente dito, que faz operaes com as portas de entrada gerando sinais nas portas de sada (D'AMORE, 2010).

Figura 4 - Exemplo de entidade de projeto (DAMORE, 2010)

Para realizar o filtro, inicialmente foi definida a entidade, nela so criadas as portas do sistema, bem como as constantes globais. Aps a criao da entidade, a arquitetura foi definida por trs processos: adequao da entrada de dados, convoluo e sada de dados. Na prtica, um sinal analgico digitalizado por um conversor A/D e posteriormente entregue ao processador de sinais. O processo de adequao do sinal de entrada de dados realiza a formatao do sinal e o preenchimento de um buffer de entrada com nmero de bits coerente com a caracterstica do filtro realizado. O processo de convoluo realiza a convoluo entre o sinal do buffer de entrada e os coeficientes do filtro. No processo de sada o resultado da convoluo armazenado e entregue porta de sada. Esse processo ainda realiza um deslocamento de ndices no buffer preparando assim a prxima iterao. Os coeficientes do filtro podem ser calculados utilizando o MatLab que dispe de uma ferramenta chamada de fdatool para projetar filtros digitais. 4. RESULTADOS E DISCUSSO A simulao foi realizada no software ModelSim e seus resultados exportados para o MatLab onde foram gerados os grficos apresentados neste artigo. Foi realizado um filtro FIR passa baixas de 20 ordem com frequncia de corte em 3 kHz, frequncia de amostragem de 8 kHz usando a janela Kaiser com igual a 0,5. Os coeficientes desse filtro foram calculados utilizando a ferramenta fdatool do MatLab. Como entrada foi utilizado um sinal de voz com frequncia de amostragem de 8 kHz. A Figura 5 ilustra o sinal de voz de entrada no domnio do tempo e da frequncia. Ao analisar o espectro da voz verifica-se que a maior concentrao de informao deve-se s componentes de baixa frequncia, que representam a parte grave da voz. Ao remover a componente de alta frequncia, cria-se o efeito de abafamento do sinal.

Figura 5 - Sinal de voz no domnio do tempo e da frequncia.

A simulao foi realizada utlizado o ModelSim e a linguagem utilizada foi a VHDL. Inicialmente dois arquivos binrios contendo, respectivamente, os dados relativos ao sinal de udio de entrada e os coeficientes do filtro so carregados na memria. O buffer de entrada, inicialmente zerado, preenchido gradativamente com os dados provenientes do arquivo binrio j armazenado, enquanto a varivel coeficientes preenchida pelos dados do arquivo de coeficientes. Esse processo de carregamento ilustrado pela Figura 6.

Figura 6 Exemplo de processamento e anlise do sinal de voz no ModelSim.

O sinal resultante da filtragem foi salvo em um arquivo binrio, este por sua vez foi utilizado no MatLab para a gerao dos grficos apresentados na Figura 7. Os grficos representam o sinal filtrado nos domnios do tempo e frequncia. No domnio da frequncia pode-se verificar a reduo na amplitude dos sinais com frequncias acima de 3 kHz, o que sinaliza o correto funcionamento do filtro.

Figura 7 - Sinal de voz filtrado no ModelSim.

Para obter a execuo desejada do arquivo de udio importante conhecer a frequncia de amostragem do sinal. Ao executar o arquivo antes e aps a filtragem do sinal, foi possvel perceber a reduo no nvel do rudo de altas frequncias no arquivo filtrado. Entretanto a filtragem gera certa perda de qualidade tornando o som mais abafado. CONCLUSES A liberdade de criao de hardware proporcionado pelo FPGA somado a uma ferramenta de simulao gera um ambiente interessante de pesquisa, estimulando o desenvolvimento de estudos na rea de processamento digital de sinais. A possibilidade de adequar o sinal antes de envi-lo etapa de processamento uma vantagem associada ao uso do FPGA para processamento digital de sinais. Em um sistema que utiliza DSP, necessrio o uso de um dispositivo de interface capaz de adequar o nmero de bits do A/D ao nmero de bits dos registradores do DSP, ou escolher o conversor A/D compatvel com o DSP. Como no FPGA possvel definir o tamanho dos registradores, tambm possvel integrar no mesmo dispositivo a etapa de adequao, permitindo que o processador se adapte a diferentes sistemas. O estudo da linguagem VHDL e o uso de FPGA nos institutos federais uma forma de estimular os estudantes integrando diversas reas do conhecimento na produo de solues para problemas abordados no curso. Por exemplo, um estudante da rea de telecomunicaes pode integrar, em um s dispositivo, projetos desenvolvidos em disciplinas de comunicaes digitais, codificao, processamento digital de sinais e circuitos lgicos. O resultado uma viso mais ampla e ao mesmo tempo detalhada do funcionamento de sistemas de telecomunicaes. O prximo passo da pesquisa a integrao do sistema simulado em um kit de desenvolvimento de FPGA. Para tal ser desenvolvida a interface de comunicao entre o FPGA e um computador. A criao de uma biblioteca pblica de funes em VHDL, voltadas ao processamento digital de sinais, uma etapa importante para a integrao de diferentes institutos federais, sendo esse um dos desdobramentos futuros deste trabalho.

REFERNCIAS D'AMORE, R. VHDL - Descrio e sntese de circuitos digitais. 2. ed. [S.l.]: LTC, v. I, 2010. DINIZ, P. S. R.; SILVA, E. A. B. D.; NETTO, S. L. Processamento digital de sinais: projeto e anlise de sistemas. nica. ed. [S.l.]: Bookman, 2004. ANDRADE, A. O.; SOARES A. B. Tcnicas de Janelamento de Sinais. III Seminrio dos Estudantes de Engenharia Eltrica da UFU, Uberlndia-MG, 2000. HAYKIN, S. S.; VEEN, B. V. Sinais e Sistemas. 1. ed. [S.l.]: Bookman, 2001. 688 p. MELLO, C. A. Processamento Digital de Sinais. Recife: UFPE, 2011. MEYER-BAESE, U. Digital Signal Processing. 3. ed. Tallahassee: Springer, 2001. OPPENHEIM, A. V.; SCHAFER, R. W. Discrete-Time Signal Processing. 3. ed. [S.l.]: Prentice Hall, 2009. 1120 p.

Anda mungkin juga menyukai