Sie sind auf Seite 1von 8

Ferramenta para Sntese e Implementao de Filtros em DSPs

Joo Gonalves
1
, Libnia Marques
1
, Jos Salvado
1
, Leonel Sousa
2

1
Escola Superior de Tecnologia de Castelo Branco, Av. do Empresrio, 6000-767 Castelo Branco,
Portugal, {joo.santos,libgfc,jsalvado}@est.ipcb.pt
2
Instituto Superior Tcnico (DEEC) e Instituto de Engenharia de Sistemas e Computadores (SIPS),
R. Alves Redol, 9, 1000-029 Lisboa, Portugal, las@inesc-id.pt


Neste artigo apresenta-se uma ferramenta computacional para sntese automtica de filtros digitais, com
interface do tipo Windows, desenvolvida em MATLAB. Os filtros sintetizados podem ser posteriormente
implementados em DSPs da famlia TMS320 da Texas Instruments, nomeadamente, nos DSPs TMS320C50 e
TMS320C6201. Os filtros foram testados num sistema baseado no DSP C6201, recorrendo a sinais udio
digitais armazenados em ficheiro (*.wav) enquanto no sistema com o DSP C50 se efectua a filtragem de sinais
analgicos. Atravs da interface grfica, o utilizador define o tipo de filtro (FIR ou IIR) e as suas especificaes
(com base na resposta em frequncia), sendo a gerao do cdigo e a implementao realizadas de forma
totalmente automtica.


1. Introduo

Os processadores digitais vocacionados para o processamento de sinais (DSPs) tm registado um
nmero crescente de aplicaes nos ltimos anos. Este facto est ligado evoluo do desempenho
deste tipo de processadores e evoluo das ferramentas computacionais de apoio ao desenvolvimento
de sistemas de processamento de sinal. Entre os sistemas de processamento digital de sinais mais
comuns, inclui-se os sistemas de filtragem, que visam alterar as caractersticas dos sinais em funo da
frequncia.
A implementao prtica dos filtros digitais corresponde realizao de operaes numricas de
multiplicao e adio, envolvendo os coeficientes do filtro e amostras do sinal a processar. Estas
operaes tanto podem ser realizadas por hardware dedicado como por programao, baseando-se na
operao de multiplicao e acumulao (MAC). Porm, a alterao das caractersticas dos filtros
implica o projecto e a realizao de novos circuitos ou programas, com custos elevados de tempo de
desenvolvimento.
Visando sobretudo ultrapassar esta dificuldade, foi desenvolvida uma ferramenta computacional para
apoio sntese automtica de filtros digitais, com base nas especificaes dos filtros no domnio da
frequncia [1,2], e a subsequente implementao em processadores digitais de sinal, nomeadamente
nos DSPs TMS320C50 e TMS320C6201 da Texas Instruments' [3,4]. A aplicao foi desenvolvida
em ambiente MATLAB 6.0', dispondo de uma interface grfica com o utilizador (GUI), e explorando
o conjunto de funes especficas para o processamento de sinais disponveis no MATLAB [5,6].
Na fase de implementao dos filtros, estabelece-se a ligao entre o ambiente MATLAB e as
ferramentas de desenvolvimento da Texas Instruments [7]. Desde a fase de especificao fase de
implementao, no requerida qualquer interveno por parte do utilizador, pelo que este no
necessita de ter conhecimentos sobre os mtodos de sntese de filtros digitais, nem sobre linguagens de
programao ou sobre arquitectura dos DSPs.
Este artigo est organizado da seguinte forma. Na seco seguinte referem-se os aspectos
fundamentais relativamente aos filtros digitais. Na 3 seco apresentam-se as principais
caractersticas das arquitecturas dos DSPs C50 e C6201. Os mtodos usados para a sntese e
implementao de filtros, na aplicao desenvolvida, so referidos na seco 4, apresentando-se
alguns resultados experimentais na seco 5. Finalmente, na ltima seco apresentam-se as
concluses.
2. Filtros Digitais to Tipo FIR e IIR
Os filtros digitais so geralmente classificados como sistemas de resposta impulsiva finita (FIR) ou
infinita (IIR). Os filtros IIR correspondem sempre a sistemas recursivos, podendo ser sistemas
instveis. Os filtros FIR correspondem a sistemas no recursivos e so sempre estveis, podendo
apresentar caractersticas de fase linear. Porm, para as mesmas especificaes, os filtros FIR tem uma
ordem superior aos filtros IIR, requerendo, portanto, um maior nmero de operaes aritmticas. Por
outro lado, o efeito dos erros de quantificao , em geral, mais significativo nos filtros IIR do que nos
filtros FIR.
Os filtros IIR podem ser descritos pela sua equao s diferenas, ou atravs da sua funo de sistema
(aplicando a transformada Z):
0
0 1
1
[ ] [ ] [ ] ( )
1
M
k
k M N
k
k k N
k k k
k
k
a z
y n a x n k b y n k T z
b z

=
= =
=

= + =


(1)
O mesmo se aplica aos filtros FIR:
0 0
[ ] [ ] ( )
M M
k
k k
k k
y n b x n k T z a z

= =
= =


(2)
O comportamento de qualquer sistema contnuo, linear e invariante no tempo, pode ser aproximado
pela equao diferencial (no dominio do tempo):
N M
N i i
i i
k k
y t a y t b x t

= =
+ =

1
0 0
( ) ( ) ( ) (3)
A resposta no domnio da frequncia pode ser obtida calculando a transformada de Laplace e fazendo
s j = :
st
t
Y s
H s h t e dt
X s
+

=
= =

0
( )
( ) ( )
( )

(4)
A representao discreta do sistema contnuo, linear e invariante no tempo, origina um sistema
discreto linear e invariante, caracterizado pela equao s diferenas:
| | | | | |
1 0
N M
i i
i i
y n a y n i b x n i
= =
+ =


(5)
A funo de transferncia do sistema discreto apresenta uma relao com a funo de transferncia do
sistema contnuo atravs de:
(1/ ) ln
( ) ( )
d s T z
H z H s
=
= (6)
comum fazer-se a aproximao da expresso
( )
1
ln z
T
, donde resulta uma relao de transposio
do plano Z no plano S, designada por transformao bilinear, definida por:
2 1
1
z
s
T z

=
+
(7)
E a transposio do plano S no plano Z, definida pela equao:
( / 2) ( / 2)
( / 2) ( / 2)
2 1 ( 1) 2 (1/ 2)( ) 2
tan
( 1) (1/ 2)( ) 2
j j j
j j j
e j e e
T j e T e e T



= = =
+ +

(8)
Esta equao utiliza-se, normalmente, para compensar o desvio de frequncias existentes entre o plano
S e o plano Z (pre-warping).
Sntese de Filtros Digitais
A sntese de filtros digitais faz-se usando vrios mtodos, sendo estes diferentes para filtros IIR e FIR.
Os coeficientes dos filtros IIR podem ser obtidos atravs das caractersticas dos filtros analgicos
correspondentes segundo vrios mtodos, nomeadamente, a conservao da resposta impulsiva, a
transformao bilinear e pela localizao de plos e zeros da funo de transferncia. Porm, embora
simples, este ltimo mtodo no indicado para filtros mais complexos, devido aos efeitos dos erros
numricos na localizao de plos e zeros. O mtodo mais usual o mtodo da transformao bilinear.
Os filtros FIR no podem ser obtidos pelas aproximaes utilizadas nos sistemas contnuos, dado que
no existem sistemas analgicos com resposta impulsiva finita. A resposta impulsiva dos filtros FIR
definida em (2). Para a sntese de filtros FIR usam-se, geralmente, o mtodo dos minimos quadrados
(least squares) ou o mtodo das janelas (windows method), para truncatura da resposta impulsiva.

3. Arquitectura dos DSPs TMS320C50 e TMS320C6201

Os DSPs so microprocessadores com arquitectura especializada para o processamento de sinal. Os
algoritmos de processamento de sinal so computacionalmente intensivos, mas as operaes de base
so operaes aritmticas simples de adio e multiplicao. Assim, os DSPs possuem pelo menos um
multiplicador e um acumulador implementados em hardware, permitindo que num nico ciclo de
relgio se realizem em simultneo uma multiplicao e uma adio. Adoptam ainda, em geral,
arquitecturas do tipo Harvard modificadas, com barramentos separados para dados e programa, com
um funcionamento em cascata (pipelining). Arquitecturas mais avanadas, do tipo VLIW (Very Long
Instruction Word), permitem que cada instruo seja composta por vrias instrues, que por sua vez
so executadas por diferentes unidades funcionais.
O DSP TMS320C50 um processador em vrgula fixa, com arquitectura Harvard do tipo acumulador,
a funcionar a uma frequncia mxima de 40 MHz, com um multiplicador e uma ALU de 16 bits, sendo
as instrues quase todas executadas numa cascata com 4 andares. A taxa mxima de execuo de
instrues de 40 MIPS (milhes de instrues por segundo) [8].
O DSP TMS320C6201 baseia-se numa arquitectura de elevado desempenho do tipo VLIW,
denominada VelociTI [9], dispondo de 8 unidades de processamento agrupadas em dois blocos de
processamento independentes (cada um com 4 unidades), aos quais esto associados bancos de 16
registos de 32 bits. A cascata do DSP C6201 tem 11 andares, e na situao de mximo aproveitamento
dos recursos permite executar at 8 instrues num nico ciclo de relgio. Com frequncias de relgio
de 167 ou 200 MHz, este DSP permite taxas mximas de execuo de instrues de 1336 ou 1600
MIPS.

4. Sntese e Implementao de Filtros com Base na Aplicao DFDT

A ferramenta computacional para sntese e implementao de filtros em DSPs, DFDT (Digital Filter
Design Toolkit), foi desenvolvida de modo a realizar, automaticamente, a sntese e a implementao
de filtros com resposta impulsiva FIR e IIR em DSPs. Apresentam-se em seguida os mtodos usados
para a sntese dos filtros, as janelas para introduo das respectivas especificaes
Sntese de Filtros IIR

Com base na relao entre o plano S e o plano Z, utilizam-se os seguintes passos para sntese de filtros
digitais IIR:
Compensao das especificaes na frequncia do filtro digital, usando a equao (8);
Obteno do filtro passa-baixo equivalente;
Obteno da funo de transferncia no plano S, atravs de uma aproximao clssica para
filtros analgicos (Butterworth, Chebyshev, Inversa de Chebyshev e Elptica);
Desnormalizao e eventual transformao de frequncias para o filtro desejado;
Obteno a funo de transferncia no plano Z, atravs da equao (7).
Sntese de Filtros FIR
Para a sntese de filtros FIR usa-se o mtodo da truncatura da resposta impulsiva infinita, atravs de
janelas que definem a funo de truncatura:

( ), 0 1
( )
0, caso contrario
d
h n n N
h n

=

(10)
Em que a resposta impulsiva ideal ) (n h
d
obtida atravs da transformada de Fourier inversa ( )
D
H ,
definida por:

1
( ) ( )
2
jwn
d D
h n H e d


(11)
sendo ( ) h n geralmente representada como o produto entre a resposta impulsiva desejada e a janela
( ) w n de durao finita:
( ) ( ) ( )
d
h n h n w n = (12)
Nesta aplicao consideram-se a janela rectangular, de Hanning, de Hamming, de Blackman e de
Kaiser, como se mostra na figura 1, em que a janela de Kaiser varivel (no apresentada), cujos
valores aproximados de atenuao (para filtros passa-baixo) se apresentam na tabela 1.
Blackman
Rectangular
Hamming
Hanning
0
1
n
| | n
1
2
N 1 N

Figura 1. Janelas utilizadas para a truncatura da resposta impulsiva, nos filtros FIR.

Tabela 1. Valores aproximados de atenuao para filtros passa-baixo, para as diferentes janelas consideradas.
Tipo de Janela Atenuao no 1 lbulo (dB) Atenuao mn. na banda de atenuao (dB)
Rectangular
-13 21
Hanning
-31 44
Hamming
-41 53
Blackman
-57 74
Kaiser
-- 90

As especificaes dos filtros pretendidos so estabelecidas pelo utilizador, para os diferentes tipos de
filtros, atravs da interface apresentada nas figuras 2 e 3.


Figura 2. Aspecto da interface com o utilizador para especificao de filtros FIR.


Figura 3. Aspecto da interface com o utilizador para especificao de filtros IIR.
Para a implementao dos filtros usam-se os mdulos de avaliao da Texas Instruments, para cada
um dos DSPs considerados: o mdulo TMS320C6201 EVM (ver figura 4), com frequncia de relgio
167 MHz, e o mdulo C50 DSP Starter Kit (figura 5) a 40 MHz. O mdulo TMS320C6201 realizado
numa placa com barramento PCI para PC, que pode ser programado utilizando linguagens de alto
nvel, em C/C++ [10], ou em assembly [11], a partir das ferramentas de desenvolvimento da Texas
Instruments [12]. O mdulo C50 DSP Starter Kit um mdulo externo, que programado em
assembly.
Sendo a capacidade dos DSPs limitada ao nvel da preciso, torna-se necessrio representar o valor
dos coeficientes e das amostras em palavras de dimenso finita. Visando evitar os erros devido
quantificao, efectua-se o varrimento do sistema (representado por seces bi-quadrticas) de modo a
determinar o valor mximo, obtendo-se a notao Q mais adequada representao dos coeficientes e
das amostras, consoante o valor mximo seja positivo (eq. 13) ou negativo (eq. 14).

2
15 log max Q ( =

(13)

2
14 log max Q ( =
(
(14)


Figura 4. Aspecto do mdulo de avaliao TMS320C6201 EVM (frequncia de relgio 167 MHz).


Figura 5. Aspecto de uma aplicao de filtragem em tempo real com o mdulo TMS320C50 DSK.
Apresentam-se em seguida exemplos do cdigo gerado para implementao do filtros, cdigo C para a
implementao no DSP C6201 (ver fig. 6), e em assembly, para a implementao no DSP C50 (fig. 7).

for(j=0;j<M;j++) /*Ciclo relativo s seces */
{
for(i=0;i<DIM;i++){ /*Ciclo relativo ao clculo das amostras filtradas */
y0=1L << (Q-1);
if(i==0) /* Clculo da amostra do sinal de sada */
y0 = num[sec]*x[i];
else if(i==1)
y0 = num[sec]*x[i]+num[sec+1]*x[i-1]-den[sec+1]*y[i-1];
else
y0 = num[sec]*x[i]+num[sec+1]*x[i-1]+num[sec+2]*x[i-2]-
den[sec+1]*y[i-1]-den[sec+2]*y[i-2];

y0=y0<<(16-Q); /*Elimina bits redundantes de sinal */
y[i]=(short)(y0>>16); /*Cast do resultado para 16 bit */
}
if(j<M){ /*Caso no seja a ltima bi-quadrtca o sinal de sada de
uma seco passa a ser o sinal de entrada da seguinte */
for(i=0;i<DIM;i++)
x[i]=y[i];
}
sec+=3; /*Avana para os prximos coeficientes */
}
Figura 6. Exemplo de cdigo em C gerado atravs da aplicao DFDT, para filtros IIR no DSP C6201.
RX: setc INTM ;Desactiva interrupts
lamm DRR ;L amostra de entrada (ADC)
and #0FFFCh
ldp #XN ;Amostra do sinal de entrada reservada
sacl XN ;numa posio de memria
lar AR0,#YNLAST0 ;Carrega registo AR0 com o valor da sada
;anterior
zap ;Limpa acumulador e registo p
mar *,AR0 ;Coloca no acumulador valor do registo AR0
rpt #TAPS ;Repete instruo seguinte n de coef.-1
macd #hLAST,*- ;Multiplica, acumula e desloca para a
;prxima posio
apac ;Acumula resultado final (produto final)
ldp #0
sach OUTPUT,2 ;Elimina bits redundantes de sinal (16-Q)
lacc OUTPUT ;Resultado na varivel OUTPUT
and #0FFFCh
samm DXR ;Envia valor calculado para o DAC
clrc INTM ;Activa interrupts
rete ;Retorna ao programa principal

Figura 7. Exemplo de cdigo em Assembly gerado atravs da aplicao DFDT, para filtros FIR no DSP C50.

5. Resultados Experimentais

Nesta seco apresentam-se alguns resultados experimentais obtidos relativamente resposta em
frequncia dos filtros sintetizados. Na implementao no DSP C6201, os resultados obtidos podem ser
visualizados directamente, a partir da prpria aplicao, nomeadamente, os diagramas de amplitude e
de fase (ver figura 8), as respostas ideal (analtica) e real (prtica) e a localizao de plos e zeros (ver
figura 9). ainda possvel visualizar a resposta ao impluso unitrio e ao degrau unitrio, e o atraso de
grupo.
Na implementao no DSP C50, como este opera em tempo real, os resultados da resposta em
frequncia obtm-se atravs de medies externas, procedendo-se posteriormente comparao entre
a resposta ideal e real.

6. Concluses

Neste artigo apresentou-se uma aplicao desenvolvida em ambiente MATLAB, para a sntese e
implementao de filtros em DSPs. Atravs de uma interface grfica, o utilizador define o tipo de
filtro e especifica as caractersticas da resposta em frequncia, e o DSP a considerar para a
implementao. O processo realizado de forma totalmente automtica, sendo a sntese, a gerao do
cdigo e a implementao no DSP realizadas sem qualquer interveno do utilizador.
Os filtros IIR so sintetizados a partir das aproximaes clssicas para filtros analgicos (Butterworth,
Chebyshev, Inversa de Chebyshev e Elptica), utilizando a transformao bilinear. Na sntese dos
filtros FIR utiliza-se a truncatura da resposta impulsiva pelo mtodo das janelas, considerando a janela
rectangular, de Hanning, de Hamming, de Blackman e de Kaiser.
Relativamente aos filtros sintetizados, a aplicao desenvolvida permite visualizar, a resposta em
frequncia (amplitude e fase) e a estabilidade dos filtros, nomeadamente, pela localizao de plos e
zeros, e pela resposta ao degrau (apenas nos filtros IIR). O utilizador pode guardar os dados relativos
aos filtros sintetizados em ficheiro, sem quantificao, para posterior consulta, e/ou implementao
nos DSPs.
Para implementao no DSP C6201, usam-se ficheiros do tipo (*.wav), sendo possvel visualizar e
comparar o sinal original e o sinal filtrado. Na implementao no DSP C50, os sinais so filtrados em
tempo real.


Figura 8. Aspecto dos resultados obtidos para a resposta de filtros: amplitude (esq.) e fase (dir).

Figura 9. Aspecto dos resultados para anlise dos filtros implementados: estabilidade (esq.) e comparao (dir)..


Referncias


[1] A. Oppenheim, R. Schaffer, Digital Signal Processing, Prentice-Hall, 1975.
[2] L. Huelsman, Active and Passive Analog Filters Design, McGraw-Hill, 1992.
[3] TMS320C5x DSP Users Guide, Texas Instruments, SPRU056-C, 1997.
[4] TMS320C6000 Programmers Guide, Texas Instruments, SPRU198-C, 1999.
[5] Matlab: Signal Processing Toolbox, The MathWorks, 2000.
[6] Matlab: Creating Graphical User Interfaces, The MathWorks, 1999.
[7] Code Composer Studio Users Guide, Texas Instruments, SPRU328, 1999.
[8] E. Ifeachor, B. Jervis, Digital Signal Processing: A Practical Approach, Addison-Wesley, 1991.
[9] TMS320C6000 CPU and Instruction Set reference Guide, Texas Instruments, SPRU189, 1998.
[10] TMS320C6000 Optimizing C Compiler Users Guide, Texas Instruments, SPRU187, 1999.
[11] TMS320C6000 Assembly Language Tools Users Guide, Texas Instruments, SPRU186, 1999.
[12] TMS320C50 Applications Guide, Texas Instruments, BPRA063, 1997.

Das könnte Ihnen auch gefallen