Você está na página 1de 31

IMPLEMENTAO DE FILTROS DIGITAIS EM LINGUAGEM DE DESCRIO DE HARDWARE

RELATRIO FINAL DE PROJETO DE INICIAO CIENTFICA (PIBIC/CNPq/INPE)

Emanoel Raimundo Queiroz Chaves Junior (UFRN, Bolsista PIBIC/CNPq) E-mail: emchavesjr@gmail.com Manoel Joseane Mafra de Carvalho (CRN/INPE, Orientador) E-mail: manoel@crn.inpe.br

COLABORADORES Dr. Jos Alberto Nicolau de Oliveira (DEE/UFRN) Sr. Joo Carlos Pcala Rae (CRN/INPE) Julho de 2011

ii

AGRADECIMENTOS

O bolsista Emanoel Raimundo Queiroz Chaves Junior particularmente grato pela orientao recebida por Manoel Jozeane, Joo Carlos Pcala Rae e Jos Alberto Nicolau de Oliveira ao longo do projeto Transponder ITASAT. O bolsista agradece tambm aos alunos de graduao Carlyle Cmara Santos Junior e Carlos Antnio Mendes da Costa Junior e aos alunos de mestrado Tiago Costa de Arajo, Hlio Sousa Peres e Jefferson Dantas Marinho pelas sugestes, aps a leitura deste artigo. E, finalmente, a Vinicius Arajo Cavalcanti e a Filipe Emanuel Vieira Taveiros pela ajuda na elaborao do cdigo VHDL, orientao de manuseamento do FPGA e com os testes em laboratrio.

iii

iv

RESUMO Este documento tem como objetivo descrever amplamente o projeto de filtros FIR em linguagem de descrio de hardware que ser utilizado no bloco de processamento digital do transponder que est sendo desenvolvido pelo INPE CRN e que ser embarcado no satlite universitrio ITASAT, um projeto que envolve os rgos INPE, ITA e AEB. Esta descrio parte desde a base terica de sinais discretos at a estratgia de projeto e descrio em VHDL.

vi

ABSTRACT This document has the goal to describe the project of FIR filters in hardware description language that will be used on the digital processing block of the transponder that is being developed by INPE CRN and will be embedded on the universitary satellite ITASAT, an INPE, ITA and AEB project. This description ranges from the theory of discrete signals till the strategy of project and description in VHDL.

vii

viii

LISTA DE FIGURAS

1. Resposta ideal do filtro passa-baixa 2.a. Resposta do filtro FIR entrada impulso 2.b. Resposta com o atraso 3. Resposta ideal do filtro passa-alta 4. Resposta ideal do filtro passa-faixa 5. Resposta ideal do filtro rejeita-baixa 6. Estrutura do filtro FIR 7. Fluxograma da descrio em HDL do filtro FIR

Pg. 4 5 5 6 7 7 10 12

ix

LISTA DE TABELAS

1. Expresses matemticas dos coeficientes para cada tipo de filtro. 2. Expresses matemticas dos multiplicadores de cada tipo de mtodo de janela. 3a. Numerao binria no sinalizada (unsigned). 3b. Numerao binria sinalizada (signed).

Pg. 8 9 10 11

xi

LISTA DE ABREVIAES

HDL HARDWARE DESCRIPTION LANGUAGE VHDL VERY HIGH SPEED DESCRIPTION LANGUAGE INTEGRATED CIRCUIT HARDWARE

FPGA FIELD PROGRAMABLE GATE ARRAY FIR FINITE IMPULSE RESPONSE FFT FAST FOURIER TRANSFORM LPF LOW PASS FILTER HPF HIGH PASS FILTER BPF BAND PASS FILTER RBF REJECT BAND FILTER

xii

xiii

SUMRIO

1. INTRODUO 2. FERRAMENTAS MATEMTICAS Equaes diferena Convoluo discreta 3. OBTENO DOS COEFICIENTES DO FILTRO FIR Introduo Filtro passa-baixa Filtro passa-alta Filtro passa-faixa Filtro rejeita-faixa Mtodos de janela 4. IMPLEMENTAO DO FILTRO FIR Estrutura Converso dos coeficientes o sistema binrio Fluxograma 5. CONCLUSO 6. REFERNCIAS BIBLIOGRFICAS APNDICE JAVA FIR Filter

Pg. 1 3

10

13 14 15

xiv

xv

1. INTRODUO A tecnologia digital surgiu e vem sendo largamente utilizada pela sociedade desde meados do sculo XX. Durante esse perodo, vrios eventos serviram de motivao para se investir neste advento. Como por exemplo, a guerra fria, a corrida do homem ao espao, o surgimento da informtica, a necessidade de novas tecnologias de comunicao, automao e monitoramento, etc. Neste cenrio, foram desenvolvidos os filtros digitais FIR (Finite Impulse Response) e IIR (Inifinite Impulse Response) que so largamente utilizados em processamento digital de sinais ou tratamento digital. O CRN-INPE props a construo do Transponder PCD para o satlite universitrio ITASAT que abrange determinados blocos de projeto, sendo um deles, o de processamento digital que contm dois filtros FIR. O software tem a finalidade de obter os coeficientes do filtro, adequ-los a um mtodo de janela que melhor convenha escolha do projetista; e converter os resultados representao binria para serem utilizados no projeto em FPGA da construo do bloco. O grupo responsvel pelo projeto do bloco de processamento digital atualmente se encontra na fase de realizao de testes com o FPGA em laboratrio.

2. FERRAMENTAS MATEMTICAS Equaes diferena A equao diferena uma relao entre dois ou mais termos em sucesso. Como exemplo no exemplo abaixo: [ ] [ ] [ ] [ ]

Se considerarmos o sinal u[k] como sendo o sinal de entrada de um sistema qualquer e y[k] como sendo a sua respectiva sada, podemos interpretar a equao acima da seguinte forma: a sada do sistema no instante atual igual a duas vezes a sada do instante anterior mais a sada de dois instantes anteriores ao atual mais o sinal de entrada atual. Convoluo discreta A convoluo discreta entre dois sinais pode ser enunciada abaixo (Eq. L): [ ] [ ] [ ] [ ]

possvel obter a sada de um sistema atravs da convoluo da respectiva entrada com a sada desse sistema entrada impulso. De acordo como a definio da convoluo discreta, considerando u[n] como sendo o sinal de entrada e h[n] como sendo a sada ao impulso, a equao da sada qualquer entrada do filtro FIR :

[ ]

[ ] [

3. OBTENO DOS COEFICIENTES DO FILTRO FIR 3.1 Introduo O projeto de filtros FIR inicia-se pelo clculo da expresso dos coeficientes do filtro observando a resposta que se deseja no domnio frequncia. Essa obteno realizada atravs da Transformada Inversa de Fourier no tempo discreto que tem como definio a expresso abaixo (Eq. 1):

[ ]

{ [ ]}

[ ]

Na expresso acima, a frequncia angular discreta a razo entre a frequncia angular do sinal e a taxa de amostragem (Eq. 2):

3.2 Filtro passa-baixa Para um filtro passa-baixa, temos como regio de banda passante, a faixa anterior frequncia de corte do filtro e com ganho unitrio. E a regio alm da frequncia de corte, a banda de rejeio, com ganho nulo, como mostra a figura a seguir (Figura 1):

Figura 1. Resposta ideal do filtro passa-baixa

Calculando a Transformada Inversa de Fourier do sinal da Figura 1 obteremos a expresso abaixo (Eq. 3): [ ] { [ ]} | ( )

Segundo a Identidade de Euler (Eq. 4), podemos representar a expresso acima como mostrada na equao 5:
4

( [ ]

Fazendo um artifcio matemtico, multiplicando o numerador e o denominador da expresso anterior por c teremos (eq. 6): [ ] Para se conseguir a resposta ideal mostrada na Figura 1, a quantidade de coeficientes do filtro ou termos h[k] dever ser infinita o que impossvel. O projetista precisa ter noo de que quo maior a quantidade de coeficientes utilizada, a resposta ser mais prxima da ideal, porm o esforo computacional ser grande. Como o intervalo de integrao da Transformada Inversa de Fourier utilizada para a deduo da equao 6 simtrico origem, ento a expresso vlida para instantes simtricos a origem, que vo de sendo N a quantidade de coeficientes do filtro. a como mostrada na Figura 2a,

Figura 2a. Resposta do filtro FIR entrada impulso

Figura 2b. Resposta com o atraso

Torna-se necessrio realizar um deslocamento no tempo M (Eq. 7) por que o sistema na condio atual depende de instantes anteriores a zero o que algo impossvel em sistemas no fsicos.

O sistema com o deslocamento no tempo passa a seu um sistema causal e est mostrado na Figura 2b. Reescrevendo a equao 6 com o deslocamento M, obtemos a expresso dos coeficientes do filtro passa baixa causal (eq. 8). [ ] [ ]

3.3 Filtro passa-alta Para um filtro passa-alta, temos como regio de banda passante, a faixa aps a frequncia de corte do filtro como mostra a figura a seguir (Figura 3):

Figura 3 Resposta ideal do filtro passa-alta

Repetindo o mesmo processo realizado para calcular os coeficientes do filtro passabaixa. A Transformada de Fourier Inversa da resposta em frequncia na Figura 3 (eq. 9):

[ ]

[ ( (

] ) )

Considerando o atraso M para que o sistema seja causal, a equao Y passa a ser a expresso abaixo (Eq. 10): [ ] [ ] [ ]

3.4 Filtro passa-banda Para o filtro passa-banda, a regio de banda passante compreende a faixa entre a frequncia de corte inferior e a frequncia de corte superior.

Figura 4. Resposta ideal do filtro passa-faixa

Realiza-se a Transformada Inversa de Fourier do sinal mostrado na Figura 4 para obter os coeficientes do filtro (eq. 11). [ ] [ ] | |

( [ ] [

) ]

Com o atraso M a equao acima passa a ser (eq. 12): [ ] { [ ] [ ]}

3.5 Filtro rejeita-banda Para o filtro rejeita-banda, a regio de banda de rejeio que compreende a faixa entre a frequncia de corte inferior e a frequncia de corte superior, a regio de banda passante encontra-se fora desta faixa.

Figura 5. Resposta ideal do filtro rejeita-faixa 7

Transformada Inversa de Fourier do sinal mostrado na Figura 5:

[ ]

( ( [ ) ]

Com o atraso M a equao 13 acima passa a ser (Eq. 14): [ ] [ ] { [ ] [ ]} (14) Organizando as expresses dos coeficientes para cada uma dos quatro tipos de filtro, temos a tabela abaixo (Tabela 1): Tipos de filtros Passa-baixa Passa-alta Passa-faixa Rejeita-Faixa [ ] [ ] [ ] [ ] { [ [ [ ] { [ ] ] [ Expresso matemtica dos coeficientes ] [ [ ] ] ]} [ ]}

Tabela 4. Expresses matemticas dos coeficientes para cada tipo de filtro

3.6 Mtodos De Janela Como j foi falado anteriormente, no contexto do projeto, para que um filtro FIR seja ideal, a quantidade de coeficientes do filtro dever ser infinita, o que uma coisa impossvel de se conseguir.

Os mtodos ou tcnicas de janela so multiplicadores (Eq. 15) que manipulam os coeficientes do filtro a fim de proporcionar uma melhor distribuio de energia e assim obter um melhor desempenho. Os mtodos de janela mais comuns so: retangular, triangular ou Bartlett, Hanning, Hamming e Blackman. [ ] Mtodo de janela Retangular Triangular (Bartlett) Hanning Hamming Blackman [ [ [ [ [ ] ] ] ] ] ( ( ( ) ) ) ( ) [ ] [ ] Expresso matemtica

Tabela 5. Expresses matemticas dos multiplicadores de cada tipo de mtodo de janela

4. IMPLEMENTAO DO FILTRO FIR 4.1 Estrutura Uma vez obtido os coeficientes da resposta ao impulso do filtro FIR desejado, possvel obter a sada deste sistema a qualquer entrada utilizando a convoluo discreta entre os coeficientes do filtro e o sinal a ser filtrado como est definido na equao K. Se expandirmos esta equao, obteremos a seguinte equao diferena (Eq. 16):

[ ]

[ ] [

[ ] [ ]

[ ] [

[ ] [

Podemos representar a equao anterior como um sistema de blocos (Figura 6):

Figura 6. Estrutura do filtro FIR

4.2 Converso dos coeficientes para o sistema binrio Analisando as tabelas 3a e 3b abaixo referentes aos sistemas binrios nosinalizados (unsigned) e sinalizados (signed) de 3 bits respectivamente como exemplo, observa-se que a quantidade de nmeros em ambas as representao binrias limitada pela quantidade de bits do sistema. Na numerao no-sinalizada, o conjunto formado de nmeros entre 0 a , sendo N a quantidade de bits. Na numerao sinalizada, o conjunto tambm composto de nmeros, porm entre a
.

N decimal 0 1 2 3

N binrio 000 001 010 011

N decimal 4 5 6 7

N binrio 100 101 110 111

Tabela 6a. Numerao binria no-sinalizada (unsigned) 10

N decimal -4 -3 -2 -1

N binrio 100 101 110 111

N decimal 0 1 2 3

N binrio 000 001 010 011

Tabela 3b. Numerao binria sinalizada (signed)

Para implementao do filtro FIR em VHDL, necessrio a converso dos coeficientes para a notao binria por que esta a notao numrica reconhecida pelo hardware. Os coeficientes do filtro so nmero do sistema real, em sua maioria, fracionrios. Esta caracterstica tornaria a converso binria dos coeficientes, um processo bastante complicado de ser realizado. Para conseguir reverter esta situao e tornar a converso dos coeficientes para o sistema binrio mais fcil, realiza-se uma normalizao dos coeficientes usando o maior valor entre eles atravs do seguinte raciocnio: Visto que os coeficientes do filtro podem ser nmeros fracionrios, positivos ou negativos, usaremos a representao binria sinalizada. Sabendo que o maior nmero dessa representao , realiza-se a normalizao utilizando a seguinte expresso (eq.) na qual a funo round() significa substituir o valor pelo prximo nmero inteiro na sequncia (Eq. 17): ( [ ] [ ] )

Sabendo que os coeficientes normalizados pela expresso acima sero todos nmeros inteiros, basta utilizar qualquer mtodo para converter um nmero inteiro em nmero complexo. Por exemplo, na linguagem JAVA existe um mtodo chamado toBinaryString() que recebe um valor inteiro e retorna a respectiva representao binria sinalizada como String. No apndice deste artigo h uma apresentao sobre um software que desenvolvemos usando a linguagem JAVA que muito til em projeto de filtros FIR. Este software fornece os coeficientes j na notao binria tendo o usurio informado apenas os dados fundamentais do filtro e o nmero de bits para a representao. 4.3 Fluxograma A implementao do filtro feita atravs da sua descrio em HDL seguido pela programao da mesma em um FPGA. Na figura abaixo (Figura 8) est o fluxograma da descrio do filtro FIR em que N o tamanho do filtro, h[n] so os N coeficientes, u[n] o sinal de entrada e y[n] o sinal de sada.

11

INCIO

LEIA

LEIA []

AGUARDAR BORDA DE SUBIDA DE CLOCK

NO

SUBIDA DE CLOCK? SIM LEIA []

[]

[ ]

< SIM

NO

[]

[ ]

12 7. Fluxograma da descrio em HDL Figura do filtro FIR.

5. CONCLUSO O objetivo do grupo responsvel pelo bloco de processamento digital conseguir programar o VHDL do filtro FIR no FPGA da Actel, por este ser mais apropriado para utilizao em espao. Porm este modelo no dispe de um conversor Analogic-toDigital nem de um conversor Digital-to-Analogic integrados placa. Para realizao dos primeiros testes, utilizamos outro FPGA, o modelo Cyclone II DSP da Altera que j dispe dos dispositivos citados integrados. J conseguimos bons resultados realizando testes em laboratrio. O sinal na sada do FPGA encontrou-se dentro da banda de passagem, apresentou pouca atenuao e desvio de fase, como j era esperado. Necessitamos realizar mais testes, principalmente para as situaes que se espera que o satlite encontre no espao. Finalizados os testes com o FPGA Altera, daremos incio implementao de uma interface que possibilite conectar os conversores Analogic-to-Digital e Digital-toAnalogic placa Actel e, em seguida, repetir os testes realizados com o FPGA da Altera no FPGA da Actel.

13

6. REFERNCIAS BIBLIOGRFICAS

THEDE, LES. Pratical Analog and Digital Filter Design. Arthec House, Inc. 2004. TAN, LI. Digital Signal Processing: Fundamentals and Aplications. Elsevier. 2008. HAYKIN, SIMON. VEEN, BARRY VAN. Sinais e Sistemas. Bookman. 2006. MEYER-BAESE, UWE. Digital Signal Processing with Field Programmable Gate Arrays. Springer. 2004. SHENOI, B. A. Introduction to Digital Signal Processing and Filter Design. John Wiley & Sons. 2006. IAN GROUT . Digital Systems Design with FPGAs and CPLDs. Elsevier. 2008. INSTITUTO NACIONAL DE PESQUISAS ESPACIAIS. Manual para elaborao, formatao e submisso de teses, dissertaes e outras publicaes do INPE. 2011.

14

APNDICE JAVA FIR Filter O projeto de filtros FIR demanda uma grande quantidade de clculos a serem feitos. Esta quantidade proporcional ao tamanho do filtro e consequentemente, como visto, qualidade da resposta do mesmo. A fim de tornar o projeto mais prtico, desenvolvemos um software na linguagem JAVA que capaz de realizar os clculos necessrios para obteno dos coeficientes do filtro, converter esses coeficientes para a notao binria desejada e podendo copiar o resultado para a memria do computador do usurio para j ser inserido no cdigo em HDL. Abaixo est uma figura da janela inicial do JAVA FIR Filter (Figura A1):

Figura A1. Janela inicial do JAVA FIR Filter

Demonstraremos o funcionamento do software atravs do exemplo: Deseja-se projetar um filtro FIR passa-baixa de tamanho 21 e frequncia de corte 3.5 kHz . A frequncia de amostragem dever ser 20 kHz na janela de Hamming e os coeficientes devem ser representados com 12 bits. Clicando no boto Result aps ter preenchido os campos acima do mesmo, os coeficientes do filtro desejado aparecero no quadro superior direito. Em seguida o campe abaixo Binary word size o boto abaixo Convert ficaram disponveis para uso. Preenchendo o campo com 12 e clicando no boto citado, os coeficientes representados na notao binria aparecero no quadro inferior direito.
15

Abaixo est a figura com o resultado do exemplo (Figura A2):

Figura A2. Resultado do exemplo

Aps a obteno dos coeficientes na representao binria, possvel exportar os resultados para a memria clipboard clicando no boto Copy to clipboard, podendo ser exportada j na estrutura do projeto em VHDL. Veja a tabela a seguir que mostra o resultado em ambas as possibilidades Opo Copy in format to VHDL Opo Copy in format to VHDL Project Project desmarcada marcada
111111110010 111111111000 000000010110 000001000111 000000100101 111101110010 111011010010 111110110000 001010110000 011001010110 100000000000 011001010110 001010110000 111110110000 111011010010 111101110010 000000100101 000001000111 000000010110 111111111000 111111110010 "111111110010", "111111111000", "000000010110", "000001000111", "000000100101", "111101110010", "111011010010", "111110110000", "001010110000", "011001010110", "100000000000", "011001010110", "001010110000", "111110110000", "111011010010", "111101110010", "000000100101", "000001000111", "000000010110" "111111111000", "111111110010";

Tabela 7. Formas de exportar os coeficientes 16

Você também pode gostar