Escolar Documentos
Profissional Documentos
Cultura Documentos
em Engenharia Eltrica
c
Raimundo
Corra de Oliveira, 2013
Agradecimentos
Aqui expresso meus sinceros agradecimentos s pessoas que contriburam direta e indiretamente para o desenvolvimento desta tese. Em especial agradeo:
minha famlia, em especial, a minha V (Benedita, em memria), a minha Me (Maria
de Nazar), a minha Tia (Sebastiana), a minha esposa (Rosangela) e lha (Roberta), pelos
apoios e incentivos constantes.
famlia Bnvent, Jean, Raimunda e Monique, pelos incentivos e apoio em sua aconchegante
residncia em Recife.
Ao meu orientador, professor Ricardo Campello, por me aceitar e conar em mim como
orientado no doutorado; pelas contribuies, motivaes e correes; por sua disponibilidade
e vibrao e por ser um excelente professor. Alm disso, uma tima pessoa. Ao professor
Hlio Magalhes, pelas valorosas contribuies e incentivos. Ao professor Edval dos Santos,
por permitir a utilizao do Laboratrio de Nanodispositivos (LDN) para implementao, em
FPGA, do algoritmo proposto.
Ao professor Rafael Lins, pelo apoio no decorrer do Dinter, sendo o coordenador do projeto DINTER que muito contribuir para a regio Norte.
Aos amigos do Dinter, que me ajudaram no desenvolvimento desta tese. Em especial ao
Jucimar, Ricardo, Ernande e Rodrigo, pelas suas valorosas sugestes, contribuies e incentivos em nossas interessantes discusses.
Resumo da Tese apresentada ufpe como parte dos requisitos necessrios para a obteno
do grau de Doutor em Engenharia Eltrica
Abril/2013
N 0(mod 4). Estes algoritmos rpidos apresentaram um melhor desempenho que algoritmos conhecidos para computao da DHT. Alm disso, so apresentados algoritmos timos,
ou seja, de complexidade multiplicativa mnima, para esta transformada, para os comprimentos N = 8, 12, 16 e 24. Uma implementao em FPGA de um dispositivo que calcula as duas
transformadas apresentado; o dispositivo utilizado para implementar o projeto foi um Xilinx
Spartan 3E.
Abstract of Thesis presented to ufpe as a partial fulllment of the requirements for the
degree of Doctor in Electrical Engineering
April/2013
Lista de Figuras
2.1
2.2
2.3
3.1
3.2
3.3
3.4
3.5
21
23
24
30
32
32
32
33
4.1
4.2
5.1
5.7
5.8
6.1
5.2
5.3
5.4
5.5
5.6
60
67
68
72
73
74
79
80
82
6.2
6.3
6.4
6.5
6.6
6.7
6.8
7.1
84
85
86
87
87
88
91
94
Lista de Tabelas
2.1
4.1
4.2
4.3
48
48
53
53
53
55
55
4.4
5.1
5.2
5.3
5.4
5.5
5.6
5.7
6.1
6.2
6.3
7.1
7.2
49
49
68
69
85
89
90
93
93
Lista de Algoritmos
5.1
5.2
10
61
61
Sumrio
1 Introduo
1.1 Contribuies . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.2 Organizao da Tese . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
13
17
17
19
19
. . . . .
discreta
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. .
de
. .
. .
. .
. .
. .
. . . . . . . . . . . .
dizimao no tempo .
. . . . . . . . . . . .
. . . . . . . . . . . .
. . . . . . . . . . . .
.
.
.
.
.
. . . . .
Fourier
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
.
.
.
.
.
. . . .
. . . . .
. . . .
. . . .
. . . .
20
22
23
26
26
28
28
30
33
35
36
37
37
40
41
47
50
5.3
5.4
5.5
5.6
5.7
6
. . .
= 12
= 16
= 24
. . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
61
69
71
75
78
81
81
81
82
83
84
84
84
85
86
88
89
Concluses
7.1 A Transformada Rpida de Fourier . . . . . . . . . . . . . . . . . . . .
7.2 A transformada rpida de Hartley . . . . . . . . . . . . . . . . . . . .
7.3 Sugestes para Trabalhos Futuros . . . . . . . . . . . . . . . . . . . .
92
93
94
95
Referncias
96
110
captulo
Introduo
As ideias bsicas sobre a anlise de Fourier remontam a 1822, quando Jean Baptiste
Joseph Fourier investigou a propagao de calor em corpos slidos [1, 2]. Nesse contexto,
uma das principais ferramentas desenvolvidas foi a Transformada de Fourier, a qual tem um
importante papel em vrias reas do conhecimento, especialmente em processamento de sinais
[3, 4]. Algumas reas do conhecimento que tem se beneciado da anlise de Fourier so:
Astronomia [5];
Imagens Mdicas [68];
Processamento de Voz [913];
udio digital [1417];
Processamento Digital de Imagens [1821];
Criptograa [22];
Codicao de Canais [23];
Marcas dgua [24, 25];
Comunicaes [26].
A essncia da transformada de Fourier de um sinal a sua decomposio em um somatrio
de senides ortogonais de diferentes frequncias [27, 28]. Em casos prticos, sua avaliao no
realizada analiticamente, mas numericamente e, na maioria dos casos, no existe nem mesmo
uma expresso analtica para o sinal a ser analisado (e.g. sinal de voz). A Transformada Discreta de Fourier (DFT, do ingls Discrete Fourier Transform) uma ferramenta que computa
14
Os primeiros algoritmos rpidos para computar a DFT foram propostos por I. J. Good (1958,
1960) e por L. H. Thomas (1963) [31, 32]. Esses algoritmos se baseiam no teorema chins
do resto e, posteriormente, foram unicados sob o ttulo de algoritmo de Good-Thomas ou
algoritmo do fator primo (PFA, do ingls Prime Factor Algorithm) [33].
Em 1965, J.W. Cooley e J.W. Tukey introduziram uma ideia revolucionria que posteriormente tornou-se conhecida como a Transformada Rpida de Fourier (FFT, do ingls
Fast Fourier Transform) [34]. Entretanto, pode-se atribuir a Gauss algumas das idias
propostas nesse trabalho [35, 36]. A FFT um marco na teoria de algoritmos [37] e, mais
especicamente, no campo de Processamento de Sinais [38, 39];
Em 1968, Rader [40] e, em 1970, Bluestein [41], forneceram mtodos para computar a DFT
por meio de uma convoluo; o primeiro cou conhecido na literatura como algoritmo Rader
primo;
Em 1969, Bergland apresentou um algoritmo com base 8 [42, 43] e Singleton apresentou
uma FFT com base mista [44];
Em 1976 [46], Rader e Brenner propuseram uma forma alternativa da FFT. Neste mesmo
ano, Winograd [47] props um algoritmo que combina o algoritmo de Rader primo com um
outro algoritmo, de sua autoria, para computar uma convoluo;
Em 1978, Winograd generalizou o mtodo de Rader para comprimentos que sejam uma
potncia de um primo [48].
15
Em 1995, Varkonyi-Koczy apresentou um algoritmo que usava a recursividade para computar a DFT [58];
Em 2009 [59], Marti-Puig apresentou duas famlias de algoritmos FFT base-2 que tem a
propriedade que ambas, entrada e sada, sejam endereadas em ordem natural;
Em 2011, Silva Jr. e Campello de Souza propuseram novos algoritmos, explorando os conceitos de base ciclotmica, para a computao de um nmero arbitrrio de componentes da
DFT. Esses algoritmos so timos, no sentido de apresentarem complexidade multiplicativa
mnima [6062];
16
[95].
Com o advento da VLSI (do ingls, Very Large Scale Integration) e o desenvolvimento dos
Processadores Digitais de Sinais (DSP, do ingls Digital Signal Processor ), que implementam
tcnicas de processamento de sinais, a DFT e a DHT tornaram-se ferramentas atrativas para
avaliao do espectro de um sinal [96, 97]. A reduo de custo dos DSPs e a capacidade
crescente alcanada por processadores de dados (ou seja, dezenas de GFlps - Giga operaes
em ponto utuante por segundo - e TFlops, Tera operaes em ponto utuante por segundo)
[98], junto com novas e ecientes tcnicas de processamento de sinais, esto tornando viveis
17
aplicaes em tempo real para diversos tipos de sinais. Neste cenrio, a DFT e DHT tornaramse ferramentas largamente difundidas para anlise espectral [99].
1.1
Contribuies
O objetivo desta tese apresentar novos algoritmos rpidos para computao de transformadas discretas. As contribuies dadas so:
Um novo algoritmo rpido para computao da DFT, baseado em srie matricial de Laurent,
para comprimentos N 4 mod 8.
Um novo algoritmo rpido para computao da DHT, baseado em expanso matricial, para
comprimentos N 0 (mod 4).
1.2
Organizao da Tese
A tese est organizada em seis captulos. Aps esta introduo, o captulo 2 apresenta
a transformada discreta de Fourier (DFT), em que visa-se fazer a ligao da representao
de sinais de tempo contnuo com a de sinais de tempo discreto; alm disso, apresentada a
denio da transformada discreta de Hartley. No captulo 3 so apresentados os principais algoritmos rpidos para clculo da DFT, que so os algoritmos de Cooley-Tukey, Good-Thomas
e Rader-Primo. O captulo 4 introduz a tcnica proposta para computao da DFT baseada
em srie matricial de Laurent, apresentando exemplos da aplicao dessa nova tcnica. O captulo 5 apresenta um novo algoritmo para computao da DHT atravs de expanso matricial.
18
O captulo 6 apresenta uma implementao em FPGA das duas transformadas (Fourier e Hartley). O captulo 7 apresenta as concluses e sugestes para trabalhos futuros. O Apndice
A apresenta um procedimento para a fatorao de uma matriz em matrizes bielementares. A
lista dos trabalhos publicados, decorrentes da pesquisa relatada nesta tese, apresentada no
Apndice B. Anexo tese, o leitor encontrar um CD contendo os cdigos-fonte utilizados
para descrio, em VHDL, do gerenciamento da computao da DFT/DHT.
captulo
A Transformada Discreta
de Fourier - DFT
A anlise espectral de sinais em tempo contnuo tem como uma de suas principais ferramentas a transformada de Fourier [100]. No entanto, muitas aplicaes envolvendo esta
transformada dependem de um computador digital para efetuar o processamento dos dados, sendo que seu clculo ca invivel para sinais em tempo contnuo. Como mostrado mais
adiante neste captulo, a transformada discreta de Fourier pode ser derivada a partir da Transformada de Fourier em Tempo Discreto (TFTD). Este captulo tem como objetivo introduzir
a DFT que ser utilizada para anlise espectral de sinais.
2.1
Introduo
H quatro representaes de Fourier distintas, cada uma aplicvel a uma classe de sinais.
A Tabela 2.1 mostra a relao entre o domnio do tempo e as representaes de Fourier. Nesta
pode-se ver as quatro classes de sinais denidas pelos aspectos periodicidade (peridico/no
peridico) e tipo (contnuo/discreto). Os sinais peridicos tm representaes pelas sries de
Fourier: srie de Fourier (FS), discreta e no peridica; e srie discreta de Fourier (DFS),
discreta e peridica. A primeira se aplica a sinais peridicos de tempo contnuo, e a segunda
se aplica a sinais peridicos de tempo discreto. Sinais no-peridicos tm representaes pelas
transformadas de Fourier: transformada de Fourier contnua (FT), contnua e no peridica;
e transformada de Fourier de tempo discreto (DTFT), contnua e peridica. A primeira se
aplica a sinais de tempo contnuo e no-peridicos, e a segunda se aplica a sinais de tempo
20
Peridico
No peridico
(Discreta e No peridica)
(Contnua e No Peridica)
(DFS)/DFT
(DTFT)
(Discreta e Peridica)
(Contnua e Peridica)
no Tempo
Contnuo
Discreto
2.2
ve[n] = ve[n + rN ],
(2.1)
para qualquer valor inteiro de r e N . Como ocorre com os sinais peridicos em tempo contnuo, tal sequncia pode ser representada por uma srie de Fourier, correspondendo a uma
combinao linear de exponenciais complexas harmonicamente relacionadas, cujas frequncias
so mltiplos inteiros da frequncia fundamental (2/N ) (ou harmnicas) associada com o
perodo da sequncia ve[n].
A srie de Fourier de sinais peridicos de tempo contnuo requer innitas exponenciais
complexas harmonicamente relacionadas. Entretanto, a srie de Fourier para qualquer sinal
em tempo discreto com perodo N requer somente N exponenciais complexas harmonicamente
relacionadas, como mostrado na Equao 2.2 [101],
ve[n] =
N 1
1 e
V [k]ej(2/N )kn ,
N
k=0
j(2/N )(k+lN )n
pois e
=e
= ej(2/N )kn .
(2.2)
21
Ve [k] =
N
1
ve[n]ej(2/N )kn ,
(2.3)
n=0
Par DFS
ve[n] Ve [k].
DF S
Equao de Anlise
Ve [k] ,
N
1
(2.4)
kn
ve[n]N
.
(2.5)
n=0
Equao de Sntese
N 1
1 e
kn
ve[n] =
V [k]N
.
N
(2.6)
k=0
|V~[k]|
0
15
10
0
n
10
15
20
20
15
10
0
k
10
15
20
22
2.3
Uma sequncia que representada como uma soma de exponenciais complexas tem uma
representao por meio da transformada de Fourier como um trem de impulsos [101]. Com
isso, til incorporar a representao da srie discreta de Fourier de sinais peridicos dentro
da denio da transformada de Fourier.
Seja ve[n] uma sequncia peridica com perodo N e sejam Ve [k] os correspondentes coecientes da srie discreta de Fourier. Dene-se a transformada de Fourier de sinais peridicos
conforme a Equao 2.7.
Ve (ej ) ,
(
)
2 e
2k
V [k]
.
N
N
(2.7)
k=
N um nmero inteiro. Na Figura 2.1, ilustra-se um sinal peridico com perodo N = 10.
Agora, vamos considerar um sinal de comprimento nito v[n], ou seja, v[n] = 0, exceto no
intervalo 0 n N 1. Atravs da convoluo desta sequncia com um trem de impulsos,
podemos reescrever a sequncia peridica ve[n] conforme a Equao 2.8,
ve[n] = v[n]
(n rN ) =
r=
v[n rN ].
(2.8)
r=
V (ej ) =
N
1
v[n]ejn =
n=0
N
1
ve[n]ejn .
(2.9)
n=0
Ve [k] = V (ej ) = 2k .
N
(2.10)
23
Plano Z
Im
2
1
3
Cculo
Unitrio
2pi/8
Re
0
7
5
6
Figura 2.2: Pontos no crculo unitrio ilustrando a amostragem de frequncia de um sinal peridico,
cujo comprimento 8.
2.4
Para cada sequncia v[n] de durao nita, podemos sempre associ-la a uma sequncia
peridica, de perodo N ,
ve[n] =
v[n rN ].
(2.11)
r=
v[n] =
ve[n], 0 n N 1,
0,
(2.12)
caso contrrio.
24
Resposta em Amplitude
5
DTFT
DFS
4.5
4
3.5
| H(w) |
3
2.5
2
1.5
1
0.5
0
0.2
0.4
0.6
0.8
1
1.2
Frequncia
1.4
1.6
1.8
Esta sequncia, V [k], ser chamada de transformada discreta de Fourier (DFT). Com isso,
a DFT est relacionada com os coecientes da DFS por
V [k] =
Ve [k], 0 k N 1,
0,
caso contrrio.
Como
Ve [k] =
N
1
kn
ve[n]N
n=0
e
N 1
1 e
kn
,
V [k]N
ve[n] =
N
k=0
portanto,
(2.13)
25
V [k] =
N 1 v[n] kn , 0 k N 1,
N
n=0
0,
(2.14)
caso contrrio.
v[n] =
1 N 1 V [k] kn , 0 k N 1,
N
k=0
N
0,
(2.15)
caso contrrio.
Equao de Anlise
V [k] =
N
1
kn
v[n]N
.
(2.16)
n=0
Equao de Sntese
v[n] =
N 1
1
kn
V [k]N
.
N
(2.17)
k=0
v[n] V [k]
(2.18)
V0
V1
V2
..
.
VN 1
...
...
N 1
1
..
.
2
..
.
4
..
.
...
..
.
2(N 1)
..
.
N 1
2(N 1)
...
(N 1)(N 1)
v0
v1
v2
..
.
vN 1
(2.19)
26
m
i=1
DF T (N ) = 2N
e1
e2
...
i1 =0 i2 =0
gcd
pjj
i
(2.20)
j=1
Para uma demonstrao deste teorema, o leitor pode consultar [53]. Esta
2.5
Considerada, por muitos anos, essencialmente como uma tcnica para computao da
transformada de Fourier, a transformada de Hartley (contnua ou discreta) tornou-se uma
ferramenta prtica, com muitas aplicaes em vrios campos da Engenharia [102]. Em particular, o par da transformada discreta de Hartley (DHT, do ingls Discrete Hartley Transform)
denido, para uma sequncia de comprimento N, h[n], 0 n N 1, pelas Equaes 2.21
e 2.22 [83],
H[k] ,
N
1
h[n]cas(
n=0
2
kn)
N
N 1
1
2
h[n] =
H[k]cas( kn)
N
N
0 k N 1,
0 n N 1,
(2.21)
(2.22)
k=0
em que cas(.) denota a funo cosine and sine denida como cas(i) , cos(i) + sin(i). A
DHT, como sua contraparte contnua, real, e a simetria do par da transformada uma
caracterstica valiosa para sua implementao.
2.6
Consideraes Finais
27
com a representao em forma matricial da mesma. Esta formulao servir como base para
o desenvolvimento dos prximos captulos.
captulo
A Transformada Rpida
de Fourier
3.1
O Algoritmo de Cooley-Tukey
29
n = n1 + N 1 n2 ,
n1 = 0, . . . , N1 1 e n2 = 0, . . . , N2 1;
k = N2 k1 + k2 ,
k1 = 0, . . . , N1 1 e k2 = 0, . . . , N2 1.
Ento,
XN2 k1 +k2 =
N
2 1 N
1 1
N 1
xn1 +N1 n2 .
(3.1)
n2 =0 n1 =0
XN2 k1 +k2 =
N
2 1 N
1 1
N 1
xn1 +N1 n2
n2 =0 n1 =0
N
2 1 N
1 1
N n2 k2 )
n1 N2 k1 n1 k2 N1 n2 N2 k1
N 1
N
N N
xn1 +N1 n2 .
(3.2)
n2 =0 n1 =0
em que
, ej N .
2
N
Denindo
2N1
2N2
N1
, ej
N
2N1
N
= ej N1 N2 = ej N2 = N2 ,
N2
N
, ej
2N2
N
= ej N1 N2 = ej N1 = N1 ,
tem-se
XN2 k1 +k2 =
N
1 1
[
n1 k1
n1 k2
N
N
1
n1 =0
N
2 1
]
n2 k2
N
xn1 +N1 n2 .
2
(3.3)
n2 =0
n1 = 0, . . . , N1 1 e n2 = 0, . . . , N2 1,
k1 = 0, . . . , N1 1 e k2 = 0, . . . , N2 1,
tem-se
X k1 k2 =
N
1 1
n1 =0
[
n1 k1
N
1
n1 k2
N
N
2 1
n2 =0
]
n2 k2
N
xn1 n2
2
(3.4)
30
Figura 3.1: Esquema ilustrativo para a FFT Cooley-Tukey: observar a indexao de 1-D para 2-D.
Apenas os ndices das componentes dos vetores de entrada e de sada so indicados.
Xk =
n par
kn
xn N
+
kn
xn N
.
(3.5)
n impar
31
(N/2)1
Xk =
(N/2)1
2rk
x2r N
+
r=0
r=0
(N/2)1
(2r+1)k
x2r+1 N
(N/2)1
2 rk
k
x2r (N
) + N
r=0
2 rk
x2r+1 (N
) .
(3.6)
r=0
2
Como N
= e2j(2/N ) = ej(2/(N/2)) = N/2 , a Equao 3.6 pode ser escrita na forma
Xk =
(N/2)1
(N/2)1
rk
x(2r) N/2
k
N
r=0
rk
x(2r+1) N/2
.
(3.7)
r=0
Observa-se que cada somatrio representa uma DFT de comprimento N/2. Denindo
(N/2)1
Gk ,
rk
x2r N/2
r=0
(N/2)1
Hk ,
rk
x(2r+1) N/2
,
r=0
k
Xk = Gk + N
Hk ,
k = 0, 1, . . . , N 1.
(3.8)
N
2v
bsica tem a forma mostrada na gura 3.3, ou seja, envolve a obteno de um par de valores
em um estgio, a partir de um par de valores do anterior, em que os coecientes so sempre
potncias de N e os expoentes so separados por N/2. Por causa da forma do grafo, esta
computao elementar chamada de borboleta (do ingls buttery).
32
Figura 3.3: Clula bsica (borboleta) para computao da FFT de Cooley-Tukey base 2.
Desde que,
N/2
N
r+N/2
o fator N
= ej(2/N )N/2 = ej = 1,
escrito como
r+N/2
N/2
r
r
= N N
= N
.
Com isso, a computao da borboleta da Figura 3.3 simplicada como na Figura 3.4,
que requer apenas uma multiplicao complexa em vez de duas.
Figura 3.4: Clula bsica simplicada para a computao da FFT de Cooley-Tukey base 2.
33
3.2
O algoritmo de Good-Thomas
Este algoritmo tambm conhecido como Algoritmo do Fator Primo (PFA, do ingls
Prime Factor Algorithm) e baseado na fatorao do comprimento N = N1 N2 em potncias
de primos distintos. O algoritmo ilustrado na Figura 3.5, para o caso N = 15. N1 e N2
devem ser relativamente primos e o mapeamento que arranja os N componentes da sequncia
a ser transformada em uma matriz N2 N1 , baseado no Teorema Chins do Resto[106]. Os
elementos do vetor de entrada so armazenados em uma matriz bidimensional, iniciando pelo
canto superior esquerdo e listando os componentes como uma "diagonal estendida". Como o
nmero de colunas e linhas so coprimos, a diagonal estendida passa por todos os elementos
do vetor [106]. Aps esta etapa, computada a DFT da matriz. A ordem dos componentes
na matriz de sada diferente da ordem dos componentes na matriz de entrada.
n1 = n
(mod N1 ),
n2 = n
(mod N2 ).
Este o mapa dos indces de entrada, n, "descendo"a diagonal estendida de uma matriz
bidimensional (n1 , n2 ). Pelo teorema chins do resto, existem dois nmeros inteiros N e N
tais que os ndices de entrada so recuperados da seguinte forma:
n = n1 N N2 + n2 N N1
(mod N ),
34
N N1 + N N2 = 1.
Os indces de sada so descritos por
k1 = N k
(mod N1 ),
k2 = N k
(mod N2 ).
k = N2 k1 + N1 k2
(mod N ).
Vk =
nk xn
n=0
na expresso
Vn2 k1 +n1 k2 =
N
2 1 N
1 1
(n1 N
vn1 N N2 +n2 N N1
(3.9)
n2 =0 n1 =0
Vk1 ,k2 =
N
1 1 N
2 1
(N2 )2 n1 k1
(N1 )2 n2 k2
vn1 n2
n1 =0 n2 =0
N
1 1 N
2 1
n1 k1 n2 k2 vn1 ,n2 ,
(3.10)
n1 =0 n2 =0
em que = N
(N2 )
e = N
(N1 )2
N2
35
3.3
O algoritmo Rader-Primo
Este algoritmo, que usa a convoluo para clculo da DFT denida pela Equao 2.16,
requer apenas algumas operaes de indexao e uma convoluo cclica de comprimento
(N 1). usado para computar a DFT em qualquer corpo F sempre que o comprimento da
sequncia um primo p. Neste caso, podemos fazer uso da estrutura de GF (p), o campo de
Galois de p elementos [107], para reindexar os componentes do vetor de entrada.
Se denota um elemento primitivo de GF (p), ento cada elemento desse corpo pode ser
expresso com uma potncia de [40].
No que se segue, a expresso da DFT (2.16) ser reescrita com n e k sendo potncias do
elemento primitivo . Como n e k podem assumir o valor zero e zero no uma potncia
de , ento as componentes de frequncia (k = 0) e tempo (n = 0) devem ser tratadas separadamente. Com isso, o clculo das componentes da transformada ser dado pelas Equaes
(3.11) e (3.12), para as componentes com ndice zero e as demais, respectivamente. Assim,
p1
V0 =
nk vn ,
(3.11)
n=0
Vk = v 0 +
p1
nk vn
k = 1, . . . , p 1.
(3.12)
n=1
Com n variando de 1 at (p 1), seja r(n) o inteiro tal que, em GF (p), r(n) = n e
Vr(k) = V0 +
p1
r(n)+r(k)
1)vr(n) ,
(3.13)
n=1
36
V l
= V0 +
p2
l+p1j
lj
lj
)vp1j
j=0
= V0 +
p2
p1
)vp1j
j=0
= V0 +
p2
)vp1j
l = 0, . . . , p 2
(3.14)
j=0
pois p1 = 1. Finalmente, a Equao (3.15) mostra uma modicao feita na Equao 3.14,
V l V0 =
p2
lj
l = 0, . . . , p 2,
)vj
(3.15)
j=0
mente. Esta equao uma convoluo cclica entre o vetor de entrada permutado v = [vj ] e
j
g(x) =
p2
( 1)v j .
(3.16)
j=0
3.4
Consideraes Finais
Neste captulo foram apresentadas algumas transformadas rpidas de Fourier, que so algoritmos rpidos para computar a DFT. O ganho computacional foi demonstrado com relao
denio da DFT. Encerra-se aqui a apresentao do estado da arte, em que os algoritmos
de Cooley-Tukey, Good-Thomas e Radder-Primo foram detalhados. O prximo captulo inicia
as contribuies pessoais.
captulo
Transformada Rpida de
Fourier baseada em Srie
Matricial de Laurent
Neste captulo uma nova transformada rpida de Fourier para sequncias de comprimento
N = 8m + 4, baseada em sries matriciais de Laurent, apresentada. Resultados de complexidade aritmtica expressos em multiplicaes reais no-triviais so apresentados para comprimentos de bloco inferiores a 65, mostrando que o algoritmo tem um desempenho prximo s
FFTs prvias. Uma descrio detalhada do algoritmo feita para os casos em que m = 1 e
4.1
O primeiro passo em direo a FFT proposta nesta tese reescrever a Equao (2.16) na
forma matricial
V0
V1
V2
..
.
VN 1
...
W2
...
W N 1
1
..
.
W2
..
.
W4
..
.
...
..
.
W 2(N 1)
..
.
W N 1
W 2(N 1)
...
W (N 1)(N 1)
v0
v1
v2
..
.
(4.1)
vN 1
ou (Vk ) = [DF T ](vn ). Haja vista que W , ej N tem ordem N , existem somente N potncias
2
distintas de W no conjunto {W 0 , W 1 , W 2 , W 3 , . . . , W (N 1) }.
38
A FFT descrita neste captulo lida com blocos de comprimento N 4(mod 8) para
garantir que exista sempre uma potncia de W que produzir os autovalores da DFT, ou seja,
(4.2)
Os expoentes de W na Equao 4.2 geram um conjunto de quatro pontos que esto no eixo
real ou imaginrio. Este fato est associado ao conjunto
39
Mm ,
(j)
4(lm)
N
l (M ).
(4.3)
lCm
A = (. . . , A1 , A0 , A1 , . . .),
em que Al so as submatrizes (N N ) de A. A partir dessa matriz, a seguinte expresso
formaliza a srie de potncias chamada de srie de Laurent da matriz A [109, 110],
A(z) :=
Al z l .
(4.4)
l=
Ento, A(z) uma srie de Laurent com coecientes matriciais. Em casos particulares em
N2
Al .z l , N1 , N2 Z , ento
que A(z) := l=N
1
g := N2 N1 + 1
o genus de A(z) e A [110].
Agora, vamos nomear M como a matriz associada com as submatrizes Mm ,
(
)
M , M N/41 , . . . , M1 , M0 , M1 , . . . , M N/41 .
2
(4.5)
M (z) := M N/41
2
1
z
N/41
2
+ . . . + M2
N/41
1
1
+ M1 + M0 + M1 z + M2 z 2 + . . . + M N/41 z 2 . (4.6)
2
z
z
2
cujo genus g = N/4 (nas ferramentas de banco de ltros, a notao da srie de Laurent
conhecida como representao polifsica [111]).
A avaliao do espectro discreto de Fourier corresponde ao produto da sequncia de dados
em tempo discreto pela matriz de transformao da DFT, [DF T ] = M (z) |z=W , isto , a
matriz de transformao da DFT
40
(N/4)1
2
M (z) |z=W =
Mm W m .
(4.7)
m= (N/4)1
2
{W 0 , W 1 , W 3 , . . . , W (N 1)(N 1) };
{W 0 , W 1 , W 3 , . . . , W (N 1) };
(N/4)1
{W 0 , W 1 , W 1 , W 2 , W 2 , . . . , W 2 , W
( )
( )
e(W ) , cos 2
e m(W ) , sen 2
N
N .
(N/4)1
2
};
Para N 0(mod 8) existe uma falta de simetria, com mais termos positivos que negativos
na expresso 4.7. Por exemplo, para N = 8, a decomposio assume a forma: M (z) |z=W =
4.2
O algoritmo rpido escrito em termos das matrizes {Mm } de acordo com as seguintes
decomposies:
eDF T = e(M0 ) +
(N/4)1
2
mDF T = m(M0 ) +
e (Mm + Mm ) cos(
m=1
2m
)+
N
(N/4)1
2
m (Mm + Mm ) cos(
m=1
(N/4)1
2
2m
)
N
m=1
2m
m (Mm Mm ) sin(
) , (4.8)
N
(N/4)1
2
e (Mm Mm ) sin(
m=1
2m
) . (4.9)
N
41
(N
4 1)/2
e(Mm + Mm )
posto
m(Mm + Mm )
m=1
+ posto
e(Mm Mm )
m(Mm Mm )
(4.10)
Em todos os casos examinados at aqui, nenhuma reduo do posto foi alcanada quando
empilhamos as matrizes e(Mm Mm ) e m(Mm Mm ), e a complexidade multiplicativa
da FFT foi sempre dada por
(N
4 1)/2
(4.11)
m=1
No exemplo N = 8, existem somente duas matrizes associadas com os termos multiplicativos, ou seja:
e(M1 ) = m(M1 ) =
0 1 0 0 0 1 0
0 0 0 1 0
0 1
ento somente duas multiplicaes por cos(/4) = sin(/4) so requeridas. Vale a pena
observar que o nmero de multiplicaes reais duas unidades menor que a computada pela
Equao 4.10 quando N 0(mod 4), pois uma multiplicao por ej/4 includa.
4.3
Para N = 12, iniciamos reunindo os elementos dos expoentes na classe {0, 3, 6, 9}, que no
est associada com multiplicaes (veja 2.16): isto corresponde ao conjunto C0 . A matriz M
com os expoentes dos termos da matriz DFT
M =
10
10
10
11
11
10
10
10
11
10
.
6
11
10
42
C0 = (0, 3, 6, 9),
C1 = (1, 4, 7, 10),
C1 = (11, 2, 5, 8),
0 24 12 36(mod 12),
4 28 16 40(mod 12),
44 20 8 32(mod 12).
{1, W, W 2 , W 3 , W 4 , W 5 , W 6 , W 7 , W 8 , W 9 , W 10 , W 11 }.
Haja vista que W 0 = 1, W 3 = j , W 6 = 1, W 9 = j , as seguintes classes so consideradas:
C0 = {0, 3, 6, 9} 1, j, 1, j.
C1 = {1, 4, 7, 10} W 1 = 1.W, W 4 = j.W, W 7 = W, W 10 = j.W.
C1 = {11, 2, 5, 8} W 11 = W , W 2 = jW , W 5 = W , W 8 = j.W .
As operaes envolvendo produtos pelos autovalores (elementos de C0 ) e/ou o conjugado
de um complexo no devem ser consideradas como multiplicaes em ponto utuante.
As matrizes de interesse no algoritmo so:
1. M0 = 10 (M ) j3 (M ) 16 (M ) + j9 (M ).
Esta matriz aditiva M0 separada em suas partes real e imaginria.
A parte real da matriz M0
e(M0 ) =
.
1
0
0
43
1 0 0 0 0 0 0 0 0 0 0 0
0 1 0 0 0 1 0 1 0 0 0 1
0 0 1 0 0 0 0 0 0 0 1 0
.
0 0 0 1 0 0 0 0 0 1 0 0
0 0 0 0 1 0 0 0 1 0 0 0
0 0 0 0 0 0 1 0 0 0 0 0
A matriz m(M0 )
m(M0 ) =
,
0
0
0
0 1 0 0 0 1 0 1 0 0 0 1
.
0 0 0 1 0 0 0 0 0 1 0 0
2. M1 = 11 (M ) 17 (M ) j4 (M ) + j1 0(M ).
A parte real da matriz M1
e(M1 ) =
,
0
0
1
44
0 1 0 0 0 0 0 1 0 0 0
LI1 =
0 0 0 0 0 1 0
0 0 0 1
m(M0 ) =
e posto(m(M1 )) = 6; a SEF
0
LI2 =
da m(M1 )
,
0
0
0
1 0 0 0 0 0 1 0 0 0 0
0 1 0 0 0 0 0 0 0 0 0
0 0 0 1 0 0 0 0 0 0 0
.
0 0 0 0 1 0 0 0 0 0 1
0 0 0 0 0 0 0 1 0 0 0
0 0 0 0 0 0 0 0 0 1 0
3. M1 = 11 1(M ) 15 (M ) j2 (M ) + j8 (M ).
A parte real da matriz M1
e(M1 ) =
.
0
0
0
45
m(M1 ) =
.
0
1
0
e(Mm + Mm ) e m(Mm + Mm ),
e(Mm Mm ) e m(Mm Mm ).
As quatro matrizes de pr-adies associadas com os ramos multiplicativos do algoritmo
so
0 1 0 0 0 1 0 1 0 0 0 1
rref m(M1 M1 ) = 0 0 1 0 0 0 0 0 0 0 1 0 ,
0 0 0 0 1 0 0 0 1 0 0 0
(4.12)
0 1 0 0 0 1 0 1
rref m(M1 M1 ) = 0 0 1 0 0
0 0 0 0 1
0 1
0 0
0 0 1 0
0 .
(4.13)
Por simplicidade, tais matrizes so colocadas na forma compacta. Nesta notao os ndices
indicam o nmero de repeties que o mesmo tem na matriz original:
46
1 03 1
(0103 10 103 1) 02 1 07 1 0
04 1 03 1 03
1 03 1
Figura 4.1: Diagrama para computao da parte real de uma DFT de comprimento N = 12.
v10 ; v4 v8 .
A apresentao aqui foi dividida em duas guras de modo a esclarecer a natureza intrinseca
47
Figura 4.2: Diagrama para computao da parte imaginria de uma DFT de comprimento N = 12.
do algoritmo FFT proposto: a modicao necessria no circuito na parte real (e) para
computar a correspondente parte imaginria (m) inverter o sinal das amostras de entrada.
4.4
C0 = {0, 5, 10, 15}, C1 = {1, 6, 11, 16}, C1 = {19, 4, 9, 14}, C2 = {2, 7, 12, 17} e C2 =
{18, 3, 8, 13}.
As matrizes correspondentes so
48
1 07 1
1 07 1
03 1 03 1 05 1 03 1 02
02 1 015 1
03 1
07
03
1 07 1
1 05
03
04 1 011 1 03
06 1
07
1 05
08 1
03
1 07
1 02
N 60. A segunda coluna da Tabela 4.1 indica um benchmark (pseudo-algoritmo) para servir
de comparao com comprimentos diferentes das potncias de 2 e a quarta coluna mostra o
limite inferior de Heideman.
Tabela 4.1: Complexidade multiplicativa da FFT baseada na Srie Matricial de Laurent
N
N log2 N (arredondado)
Laurent-FFT
Heideman
12
43
20
86
32
32
28
135
72
56
36
186
88
64
44
240
200
120
52
296
288
136
60
354
208
112
Laurent-FFT
12
46
20
191
28
244
36
475
44
625
52
858
60
1087
49
A Tabela 4.4 apresenta a complexidade aditiva para a FFT baseada na srie matricial de
Laurent.
Tabela 4.3: Complexidade multiplicativa da FFT baseada na Srie Matricial de Laurent para comprimentos potncias de 2
N log2 N
Radix-2
(arredondado)
(real nontrivial)
24
16
64
12
10
10
12
32
160
88
34
16
54
64
384
264
196
84
224
Rader-Brenner
Heideman-Burrus
Laurent-FFT
r (N )
Tabela 4.4: Complexidade aditiva da FFT baseada na Srie Matricial de Laurent para comprimentos
potncias de 2
N
Laurent-FFT
22
16
82
32
354
64
1254
O algoritmo rpido introduzido aqui pode ser usado tambm para qualquer bloco de
comprimento N 0(mod 4), pois assegura a presena dos quatro autovalores da DFT, mas
no h simetria ideal na srie formal. Com isso, mesmo embora esta FFT no tenha sido
concebida primariamente para blocos de comprimento que sejam uma potncia de quatro
[111, 112], o algoritmo tambm pode ser usado neste caso e resultados de complexidade so
mostrados na Tabela 4.3, em comparao com o algoritmo padro Cooley-Tukey base-2. O
limitante de Heideman-Burrus [113] no nmero mnimo de multiplicaes reais necessrio
para computar uma DFT de comprimento N = 2n r = 4N 2{(log2 N )2 + (log2 N ) + 2}.
Ento, mesmo se tais comprimentos no so a principal preocupao do algoritmo, o nmero
de multiplicaes necessrio para esta nova FFT prximo ao valor de r . Com isso, nenhum
fato conitante existe aqui, pois simetrias particulares (tais como ej/4 ) provavelmente no
foram contabilizadas em [113].
50
4.5
Consideraes Finais
Um novo algoritmo rpido, proposto no escopo desta tese, para computar a DFT de comprimento N 4(mod 8) foi apresentado, que baseado nas simetrias das matrizes associadas
com o desenvolvimento em sries de Laurent; com isso, apresentou-se uma FFT para comprimentos que no sejam as costumeiras potncias de dois. Um simples e ilustrativo exemplo
apresentado em detalhes para N = 12, mas o procedimento inteiro sistemtico. A complexidade multiplicativa da FFT avaliada, sendo alcanados valores menores que N log2 N ,
para N = 12, 20, 28, 36, 44, 52, 60. Ainda que exista um grande nmero de tcnicas diferentes
e elegantes para anlise de espectro, incluindo a abordagem aritmtica [56, 57] ou transformada de wavelets [114], que esto entre as melhores escolhas, as FFTs ainda so uma tcnica
extremamente difundida. A FFT apresentada aqui tambm de fcil implementao usando
DSP ou Circuitos Integrados de alta velocidade e baixo custo, como mostrado no Captulo 6.
captulo
5.1
O primeiro passo em direo FHT (do ingls fast Hartley transform) proposta nesta tese
reescrever a Equao 2.21 na forma matricial
52
H0
H1
H2
..
.
HN 1
...
cas(1)
cas(2)
...
cas(N 1)
1
..
.
cas(2)
..
.
cas(4)
..
.
...
..
.
cas(2(N 1))
..
.
h0
h1
h2
..
.
hN 1
(5.1)
distintos de cas(.) na matriz da transformada. Para todo comprimento de bloco par do tipo
cas(0) = cas(N/4) = 1
(5.2)
cas(N/2) = cas(3N/4) = 1.
(5.3)
Os argumentos de cas(.) nas Expresses 5.2 e 5.3 geram um conjunto de dois pontos que
pertencem ao eixo real. Este fato est associado com a classe
N
4
N
4
= 2k + 1 classes;
+ 1 = 2k + 1 classes.
N
4
53
Elementos
C( n1 )
2
..
.
n1
2
C3
C2
C1
..
.
C1
N 1
C2
N 2
C3
..
.
N 3
..
.
N
Cm
n1
2
N
4
N
4
N
4
N
4
+3
+2
+1
N
2
+
..
.
N
2
N
2
N
2
C0
C( n1 )
de
N
2
n1
2
N
2
N
2
N
2
N
2
3
2
1
N
4
N
4
N
4
N
4
2
3
..
.
n1
2
n1
2
N
4
+1
+2
+3
..
.
n1
2
3N
4
n1
2
3N
4
3N
4
3N
4
3N
4
3N
4 +
3N
4 +
3N
4 +
3
2
1
1
2
3
..
.
3N
4
n1
2
Elementos
de
Cm
C2
12
13
C1
11
14
C0
10
15
C1
19
16
C2
18
17
Elementos
de
Cm
C2
10
10
C1
11
C0
12
C1
15
13
C2
14
14
No exemplo 5.1(2) observa-se que a classe C2 e a classe C2 apresentam elementos repetidos. Esse no um fato isolado e ocorre sempre que N um mltiplo par de 4, como mostrado
nas Proposies 5.1 e 5.2.
54
1. Os elementos
n1
2
N
4
n1
2
2. Os elementos
N
2
n1
2
3N
4
so iguais.
n1
2
so iguais.
N
4
n1
2
=n1
2.
N
2
n1
2
N
2
N
8
n1
2
5N
8
N
4
+ 1, ento
n1
2 .
6N
8
N
8
3N
4
n1
2 .
1. Os elementos N
n1
2
3N
4
n1
2
N
4
2. Os elementos
N
2
3. cas(N
= cas( N2
n1
2 )
+
+
n1
2
n1
2
n1
2 )
so iguais.
so iguais.
= 0.
n1
2
=N
N
8
7N
8
7N
8
n1
2
N
8
3N
8
N
4
2.
N
2
N
2
+
+
N
8
N
8
=
=
3N
4
N
4
n1
2 .
n1
2 .
3. cas(N
n1
2 )
= cas(N
N
8)
2 7N
7
= cas( 7N
8 ) = cas( N 8 ) = cas( 4 ) = 0.
cas( N2
n1
2 )
= cas( N2
N
8)
2 3N
3
= cas( 3N
8 ) = cas( N 8 ) = cas( 4 ) = 0.
N
4
Exemplo 5.2
Para N = 24, tem-se n = N/4 + 1 = 7 classes do cas, (a classe C3 desconsiderada pois o
55
Elementos
de
C3
15
C2
14
16
C1
13
17
C0
12
18
C1
23
11
19
C2
22
10
20
Cm
Elementos
C( n1 )
2
..
.
n1
2
C3
C2
C1
..
.
C1
N 1
C2
N 2
C3
..
.
N 3
..
.
N
Cm
n1
2
+3
+2
+1
N
4
N
4
N
4
N
2
+
..
.
N
2
N
2
N
2
C0
C( n3 )
de
N
2
N
2
N
2
N
2
n3
2
N
2
2
1
N
4
1
2
3
..
.
n3
2
N
4
N
4
N
4
N
4
+1
+2
+3
..
.
n3
2
3N
4
3N
4
3N
4
3N
4
3N
4 +
3N
4 +
3N
4 +
3
2
1
1
2
3
..
.
3N
4
n3
2
A , (akn ) em que akn = (kn(mod N )). O operador Bl aplicado matriz N N , para cada
l = 0, 1, 2, . . . , N 1, produz uma matriz binria N N cujos elementos so (l,mk,n ), em
que o smbolo de Kronecker.
Associada cada classe Cm denimos a matriz Mm como
Mm ,
sgn(cas(l))Bl (A),
(5.4)
lCm
em que sgn(x) retorna o sinal de x. Assim, por exemplo, m = 0 corresponde parte aditiva
da matriz da DHT,
56
Proposio 5.3
= cas(m).
N
2)
= cas(N m).
2. cas(m +
N
4)
3. cas(m +
3N
4 )
= cas(N m).
Demonstrao:
1. cas(m +
N
2)
= cas( 2
N (m +
N
2 ))
2m
2m
= cas( 2m
N + ) = cos( N + ) + sen( N + ) =
= cas( 2
N (m +
N
4 ))
2m
2m
= cas( 2m
N + 2 ) = cos( N + 2 ) + sen( N + 2 ) =
cas(m).
2. cas(m +
N
4)
cas(N m).
2
3N
2m
3
2m
3
2m
3
3. cas(m + 3N
4 ) = cas( N (m + 4 )) = cas( N + 2 ) = cos( N + 2 ) + sen( N + 2 ) =
cas(N m).
((N/4)1)/2
[DHT ] =
Mm cas(m).
(5.5)
m=((((N/4)1)/2)+1)
((N/4)1)/2
[DHT ] =
(5.6)
m=(((N/4)1)/2)
A complexidade multiplicativa dos algoritmos (Equaes 5.5 e 5.6) dada, respectivamente, por
((N/4)1)/2
m=(((N/4)1)/2+1)
posto(Mm )
(5.7)
57
((N/4)1)/2
(5.8)
m=(((N/4)1)/2)
(N/4)1
M Add =
empilhar(Mm ).
(5.9)
m=0
2. Somente com as linhas distintas de M Add fazemos a contagem das operaes por
#linhas(M Add)
M Add[i, ] 1.
(5.10)
i=0
3. Para cada matriz de pr-adio, M , existe uma matriz representando o somatrio nal
da FHT, cuja contagem feita por
#linhas
(N/4)1
i=0
m=((N/41)/2)+1
M Fm [i, ] 1.
(5.11)
Ressalta-se que o procedimento apresentado no Apndice A deve ser aplicado tanto na matriz
58
5.2
Para N = 8, iniciamos por reunir os argumentos nas classes {0, 4, 2, 6}, que no esto
associados com multiplicaes. Estes correspondem ao conjunto C0 . A matriz A com os
argumentos dos termos na matriz da DHT
0 0 0
0 1 2
0 2 4
0 3 6
A=
0 4 0
0 5 2
0 6 4
0 0 0 0 0
3 4 5 6 7
6 0 2 4 6
1 4 7 2 5
4 0 4 0 4
7 4 1 6 3
2 0 6 4 2
0 7 6 5 4 3 2 1
Existem somente N/4 = 2 classes, que so C0 = (0, 4, 2, 6) e C1 = (1, 5). Neste caso
particular, o maior indice (N/4) 1 = 1.
As operaes envolvendo produtos pelos autovalores, associados aos elementos de C0 , no
devem ser consideradas como multiplicaes em ponto utuante.
As matrizes de interesse no algoritmo so:
M1 = B1 (A) B5 (A).
A matriz aditiva M0
M0 =
1 1
1 1
1 1 1
1 1
0
0
,
59
rref (M0 ) =
1 0 0 0 0 0 0 0
0 1 0 0 0 1 0 0
0 0 1 0 0 0 0 0
.
0 0 0 1 0 0 0 1
0 0 0 0 1 0 0 0
0 0 0 0 0 0 1 0
M1 =
0 1 0
0 1
0 1 0
0 1 0
rref (M1 ) =
0 1 0 0 0 1 0
0 0 0 1 0
0 1
rref (M1 ) =
0 1 0 0 0 1 0
0 0 0 1 0
0 1
60
[DHT ] =
0
1
0
+
1
0
1
0
cas(1).
0
Figura 5.1: Esquema para a computao da FHT de comprimento N = 8. Destaque para as duas
multiplicaes reais requeridas.
61
para i = 0 at (N 1) faa
V M (i) = 0 ;
2
3
m para
para j = 0 at (N 1) faa
para j = 0 at (N 1) faa
se MRed(i,j) = 1 ento
para j = j at (N 1) faa
T mp = T mp + M Red(i, j) ;
m para
V M (i) = T mp Cas(m) ;
10
11
m se
12
m para
13
m para
para i = 0 at (N 1) faa
para j = 0 at (N 1) faa
m para
4
5
m para
para i = 0 at (N 1) faa
para j = 0 at (N 1) faa
9
10
m para
5.3
62
C2 = {2, 10},
C0 = {0, 8, 4, 12},
C1 = {1, 9, 3, 11},
C1 = {15, 7, 5, 13}.
A=
10 12 14 0
12 15
12
12 0
10 15
14
12
14
10 0
14
12
10
8 15
11
13
15 8
0 10
14
12
0 11
12
13 8
0 12
12
0 13 10
14 11 8
0 14 12 10
0 14
0 15 14 13 12 11 10
8 11
4
8 13
6
0 10
3
0 12
As matrizes relevantes so
1. M0 = B0 (A) B8 (A) + B4 (A) B12 (A),
10 11 12 13 14 15
4 6 8 10 12 14
14 1 4 7 10 13
8 12 0 4 8 12
2 7 12 1 6 11
12 2 8 14 4 10
6 13 4 11 2 9
.
0 8 0 8 0 8
10 3 12 5 14 7
4 14 8 2 12 6
14 9 4 15 10 5
8 4 0 12 8 4
2 15 12 9 6 3
12 10 8 6 4 2
6 5 4 3 2 1
63
M0 =
1 1
1 1 1
1 1
1 1
1 1
1 1
1 1
1 1
M0 =
1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 1 0 0 0 1 0 0 0 1 0 0 0 1 0 0
0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0
0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 1
.
0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0
0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0
1 1
64
M1 =
0 1 0 1 0
0 1 0
0 1 0
0 1 0
0 1
0 1 0 1
0 1 0 1 0
0 1 0
0 1 0
0 1 0
0 1 0
0 1 0 1 0
0 1 0 0
0 0 1 0
0 0 0 1 0 0 0 0 0
M1 =
0 0 0 0 0 1 0 0 0
0 0 0 0 0 0 0 1 0
0 1 0
0
.
0 1 0 0
0 0 0 1
65
M1
0 1 0
0 1 0
0 1 0 1
0 1 0 1 0
0 1 0
0 1 0
0 1 0
0 1
0 1 0 1 0
0 1 0 1 0
0 1 0
0 1 0
0 1 0
M1
0 1 0 0 0 0 0 0 0 1 0
0 0 0 1 0 0 0 0 0
=
0 0 0 0 0 1 0 0 0
0 0 0 0 0 0 0 1 0
0
.
0 1 0 0
0 0 0 1
66
M2 =
0 1
0 1
1 0
0 1
0 1
1 0
1 0
0 0 1
0 1 0 0 0 1 0
0 0 1 0 0
M2 =
0 0 0 1 0
0 0 0 0 0
0 1
0 0 1 0 0
0 1 0 0
1 0
0 0
0 0
0
.
0 1
1 0
0
67
Figura 5.2: Esquema para a computao da FHT de comprimento 16, destacando-se a existncia da
FHT de comprimento 8 no esquema.
68
Tabela 5.6: Complexidade do algoritmo FHT baseado em expanso matricial, para uma sequncia real,
em termos do nmero de multiplicaes em ponto utuante, e dos algoritmos FHT base-2, base-4 e
Split-Radix.
N
base-2
base-4
Split-Radix
Limite inferior
Expanso
de Heideman
Matricial FHT
16
20
14
12
10
12
32
68
42
32
40
64
196
142
124
84
96
128
516
330
198
256
256
1284
942
828
438
640
512
3076
1994
932
1408
1024
7172
5294
4668
1936
3328
2048
16388
10698
3962
7680
4096
36868
27310
24124
8034
16384
Os resultados de complexidade multiplicativa para a FHT baseada na expanso matricial so mostrados na Tabela 5.6, em comparao com o limite inferior de Heideman e com
os algoritmos FHT base-2, base-4 e Split-Radix [85]. A Figura 5.3 mostra a complexidade
multiplicativa dos algoritmos na Tabela 5.6 como uma funo de N . Deve-se observar que
as complexidades para os comprimentos N = (8, 32, 128, 512, 2048), para o algoritmo base-4,
no so reportadas em [85].
Figura 5.3: Complexidade multiplicativa para os algoritmos FHT (base-2, Split-Radix e expanso
matricial) e limite inferior de Heideman, em funo do comprimento N da transformada.
69
base-2
base-4
Split-Radix
Expanso
Matricial FHT
5.4
26
22
22
16
74
70
64
64
32
194
166
166
64
482
450
416
416
128
1154
998
998
256
2690
2498
2336
2336
512
6146
5350
5350
O algoritmo proposto efetua a computao da DHT de comprimento 12 com 16 multiplicaes. Nesta seo feita uma otimizao do mesmo para que esta DHT seja computada
com o nmero mnimo de multiplicaes, ou seja, 4.
Inicia-se por reunir os argumentos nas 3 classes, a saber
C1 = {1, 7, 2, 8},
C0 = {0, 6, 3, 9},
C1 = {11, 5, 4, 10}.
em que C0 no est associada com multiplicaes, C1 est associada ao cas(1) = cas(/6)
e C1 est associada ao cas(1) = cas(/6).
Proposio 5.4 Se N da forma 12i ou
12
5 i,
D = 2sen(i) = 2sen( 2
N i).
2
Para N = 12i, D = 2sen( 12i
i) = 2sen( 6 ) = 1 ;
Para N =
12
5 i
2
, D = 2sen( 12i/5
i) = 2sen( 5
6 ) = 1.
70
Denindo-se
ha = h1 + h7 ,
hb = h1 h7 ,
hc = h2 + h8 ,
hd = h2 h8 ,
he = h4 + h10 ,
hf
= h4 h10 ,
hg = h5 + h11 ,
hh = h5 h11 ,
as componentes da transformada em que ocorrem as multiplicaes so
71
Observa-se que existem apenas 4 multiplicaes distintas em ponto utuante, todas por
cas(1) = cas(/6), valor que atinge o limite inferior de complexidade multiplicativa de Heideman. A Figura 5.4 apresenta um esquema para implementar este algoritmo timo. O
diagrama foi construdo em termos da transformada de Walsh-Hadamard de comprimento
5.5
O produto dos nmeros complexos (a + jb) e (c + jd) requer quatro multiplicaes reais,
uma vez que se
e + jf
:= (a + jb)(c + jd)
ento
e = ac bd
e
= ad + bc.
Em [29] apresentado um algoritmo rpido para computar este produto, que requer 3
multiplicaes. Especicamente,
e = (a b)d + a(c d)
(5.12)
72
Figura 5.4: Algoritmo timo para a computao de uma DHT de comprimento N = 12.
73
(5.13)
No que se segue, este algoritmo usado para reduzir a complexidade multiplicativa da FHT
obtida pela tcnica de expanso matricial. O procedimento envolve apenas as componentes
mpares da sequncia h de comprimento 16, cuja DHT se deseja computar, conforme indica a
Figura 5.6. Denindo-se
ha = h1 h9 ,
hb = h5 h13 ,
hc = h3 h11 ,
hd = h7 h15 ,
e considerando a Figura 5.6, pode-se obter as seguintes expresses:
74
Figura 5.6: Multiplicaes para computar a DHT de comprimento 16, envolvendo as componentes
mpares da sequncia h a ser transformada.
Pode-se notar que os valores de I e L tem a mesma forma que a multiplicao de nmeros
complexos; com isso pode-se aplicar as Equaes 5.12 e 5.13 para reduzir o nmero de multiplicaes. As novas expresses de I e L so
75
5.6
Inicia-se por reunir os argumentos na classe C0 = {0, 12, 6, 18}, que no esto associados com multiplicaes. Alm desta, tem-se as classes C1 = {23, 11, 7, 19}, associada
ao cas(1) = cas(/12), C1 = {1, 13, 5, 17} associada ao cas(1) = cas(/12), C2 =
{22, 10, 8, 20}, associada ao cas(2) = cas(/6), C2 = {2, 14, 4, 16} associada ao cas(2) =
cas(/6) e C3 = {3, 15} associada ao cas(3) = cas(/4).
Assim como na DHT de comprimento N = 12, tem-se os ngulos /6 e /6 formando
a relao cas(/6) cas(/6) = 1. Em relao s classes sugeridas pode-se exprimir como
76
ha = h1 + h13 , hb = h1 h13 ,
hc = h2 + h14 , hd = h2 h14 ,
he = h3 + h15 , hf = h3 h15 ,
hg = h4 + h16 , hh = h4 h16 ,
hi = h5 + h17 , hj = h5 h17 ,
hl = h6 + h18 , hm = h6 h18 ,
hn = h7 + h19 , ho = h7 h19 ,
hp = h8 + h20 , hq = h8 h20 ,
hr = h9 + h21 , hs = h9 h21 ,
ht = h10 + h22 , hu = h10 h22 ,
hv = h11 + h23 , hx = h11 h23 ,
as componentes da transformada em que ocorrem as multiplicaes por cas(1), cas(1) e
cas(3) so
cas(3)
2 ,
tem-se
ho hx
) + hf )cas(3);
2
= ((hb hj ) + hr )cas(3);
hb hj
) hr )cas(3);
= (ho + hx )cas(1) + ((
2
= (hf (ho hx ))cas(3).
H1 = (hb + hj )cas(1) + ((
H3
H7
H9
77
78
man. A Figura 5.8, apresenta um esquema para o algoritmo timo, enquanto que na expanso
matricial existem 32 multiplicaes em ponto utuante.
5.7
Consideraes Finais
0(mod 4) foi proposto, o qual baseado em uma nova tcnica para construo de uma expanso
matricial da matriz de transformao. O procedimento faz uso das simetrias da expanso
matricial e da funo cas(.) para reduzir a complexidade aritmtica para computar o espectro
discreto de Hartley. Exemplos detalhados para ilustrar a tcnica foram apresentados para N =
79
Figura 5.7: Algoritmo timo para a computao de uma DHT de comprimento N = 16.
80
Figura 5.8: Algoritmo timo para a computao de uma DHT de comprimento N = 24.
captulo
Uma Implementao em
FPGA das Transformadas
de Fourier e Hartley de
Comprimento 16 Baseada
em Sries Matriciais de
Laurent
6.1
Introduo
Este captulo descreve uma arquitetura exvel para implementao de uma nova transformada rpida para computao das transformadas discretas de Fourier e de Hartley, que
baseada em uma srie matricial de Laurent. O dispositivo calcula as transformadas baseado
em uma nico bit para seleo da operao. A estrutura e sntese do hardware so apresentados, o qual processa uma transformada rpida de comprimento 16 em 65 ns, com um
dispositivo Xilinx SPARTAN 3E.
6.2
82
blocos lgicos programveis que so conectados por interligaes programveis, o que permite a
criao de circuitos lgicos, sendo limitados pela rea e memria disponveis. Sua exibilidade
dada pela facilidade de congurao atravs de uma descrio de hardware escrita em VHDL
ou Verilog. O FPGA composto basicamente por trs tipos de componentes:
Bloco Lgico Cogurvel - CLB (do ingls Conguration Logical Block ): so blocos construdos com ip-ops e lgica combinacional que permitem a construo de elementos lgicos
funcionais.
Bloco de Entrada/Sada - IOB (do ingls Input/Output Block ): fazem a interface entre
CLBs, funcionando como buers de entrada e sada.
6.3
O Algoritmo FFT/FHT
Das Equaes 2.16 e 2.21, aparente que a DHT computada pela DFT conforme a
Equao 6.1.
Hk = e(Vk ) m(Vk ).
(6.1)
eDF T = e(M0 ) +
(N/4)1
2
m=1
e (Mm + Mm ) cos(
2m
)+
N
(N/4)1
2
m=1
2m
) , (6.2)
m (Mm Mm ) sin(
N
83
mDF T = m(M0 ) +
(N/4)1
2
m (Mm + Mm ) cos(
m=1
2m
)
N
(N/4)1
2
e (Mm Mm ) sin(
m=1
2m
) , (6.3)
N
Mm :=
(j)
4(lm)
N
l (M ).
(6.4)
lCm
posto
m=1
e(Mm + Mm )
m(Mm + Mm )
+ posto
e(Mm Mm )
m(Mm Mm )
(6.5)
Em todos os casos examinados at aqui, nenhuma reduo do posto foi alcanada quando
empilhamos as matrizes e(Mm Mm ) e m(Mm Mm ), e a complexidade multiplicativa
da FFT foi sempre dada por
(N
4 1)/2
m=1
6.4
Especicao;
Descrio VHDL;
Simulao comportamental;
Sntese.
(6.6)
84
6.4.1 Especicao
O projeto visa a construo de um dispositivo para computao rpida da DFT/DHT, para
uma sequncia de comprimento 16; todos os valores da sequncia de entrada so representados
por uma palavra de 16 bits. A computao feita utilizando-se aritmtica de ponto xo (7
bits). Toda componente da sequncia de sada representada por uma palavra de 32-bits,
com 16 bits para sua parte real e 16 bits para sua parte imaginria. Com um bit de seleo,
o usurio escolhe qual das transformadas ser computada. A Figura 6.2 ilustra como caram
as entradas e sadas no dispositivo.
85
Quantidade
Number of Slices:
Number of MULT18X18SIOs:
12 out of 20 (60%)
Number of GCLKs:
2 out of 24 (8%)
Figura 6.3: Resultado de simulao quando a operao est selecionada para computar a DHT.
6.4.4 Sntese
Nesta etapa, o cdigo VHDL foi analisado e otimizado pela ferramenta de sntese, para
em seguida criar-se uma implementao eciente do dispositivo. Um esquema a Nvel de
Registrador de Transferencia (RTL - Register Transfer Level ) foi gerado.
86
Figura 6.4: Resultado de simulao quando a operao est selecionada para computar a DFT.
6.4.5 Arquitetura
A arquitetura do dispositivo baseada em dois blocos principais, o gerenciador de memria
e o bloco ncleo, como mostrado na Figura 6.5. O bloco gerenciador de memria armazena
as componentes do sinal de entrada e as componentes da transformada de sada.
O bloco ncleo responsvel pelo cculo dos coecientes da DFT, conforme Figura 6.6.
Destes, o bloco gerenciador de memria seleciona e computa a transformada desejada.
Aps o armazenamento na memria, o dispositivo calcula a transformada baseada no operador de seleo (DFT/DHT). Assim, a transformada armazenada na memria, da seguinte
maneira:
Para a DFT: os primeiros dois bytes armazenam as componentes reais e os ltimos dois
armazenam as componentes imaginrias;
87
Seleo
DHT/DFT
Gerenciador de
Memria
Bloco de
Entrada
Bloco de
Sada
(16-bits)
(32 - bits)
Ncleo
(DFT)
(16 amostras)
Parte
Real
(16 bits)
(16 amostras)
(16 bits)
Computao
da DFT
(16 amostras)
Parte
Imaginria
(16 bits)
Figura 6.6: Arquitetura do bloco ncleo. Este bloco usado por ambas as transformadas (Veja Figura
6.5).
xo e 101 adies.
As sequncias de entrada e sada, na Figura 6.7, so mostradas em formato hexadecimal
ao se usar o bloco de converso de tipos de dados. O bloco ncleo mostrado no meio, que
corresponde Figura 6.6. Suas duas sequncias de sada so mostradas tambm, ou seja,
DFT (Real) e DFT (Imaginria). O bloco de adio (Add, Figura 6.7) fornece diretamente a
DHT, que mostrada tambm em formato hexadecimal.
88
6.5
Resultados de Simulao
A implementao foi simulada utilizando-se a ferramenta Xilinx ISE, onde pudemos vericar a preciso do dispositivo e os resultados foram comparados com os obtidos a partir do
SimulinkTM . Os resultados so mostrados nas Figuras 6.3, 6.4 e 6.7. A simulao foi feita com
diversas sequncias de entrada. Para a sequncia particular v = {0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7},
os resultados so mostrados na Tabela 6.2 e 6.3.
As sequncias de sada da DFT realizada pela simulao, foram exatamente as mesmas
obtidas pelo SimulinkTM (Coluna 3, Tabela 6.3). Ambas tem uma pequena diferena em
relao sequncia computada pela rotina interna do MatLabTM (Coluna 3, Tabela 6.2). O
erro de quantizao ( 0, 3%) devido ao uso da aritmtica de ponto xo em vez da de ponto
utuante. No entanto, esse erro de magnitude aceitvel para muitas aplicaes, incluindo
udio, sinais biomdicos e processamento da fala [29].
89
6.6
ndice
Dados de
Dados de Sada
(k)
Entrada
DFT
DHT
56.000
56.0000
-8.0000 +19.3137j
-27.3137
-8.0000 + 8.0000 j
-16.0000
-8.0000 + 3.3137j
-11.3137
-8.0000
-8.0000
10
-8.0000 - 3.3137j
-4.6863
11
12
-8.0000 - 8.0000j
13
14
-8.0000 -19.3137j
11.3137
15
Consideraes Finais
Este captulo apresentou o projeto e implementao, no dispositivo SPARTAN 3E xc3s500e5-fg320, de um algoritmo que capaz de fazer a computao rpida dos coecientes da
DFT/DHT de uma sequncia real de comprimento N = 16.
O dispositivo computa a
DFT/DHT em 65 ns, que aceitvel para aplicaes tais como udio, processamento de sinais
biomdicos e xDSL. Uma implementao do dispositivo em ponto utuante est atualmente
em investigao.
90
Dados de
Dados de Sada
(k)
Entrada
DFT
DHT
56
56
-8.0000 +19.375j
-27.375
-8.0000 + 8.0000 j
-16.0000
-8.0000 + 3.375j
-11.375
-8.0000
-8.0000
10
-8.0000 - 3.375j
-4.625
11
12
-8.0000 - 8.0000j
13
14
-8.0000 -19.375j
11.375
15
91
captulo
Concluses
Esta Tese apresentou novos algoritmos rpidos para computao de transformadas discretas. O Captulo 2 derivou a Transformada Discreta de Fourier, a partir da Srie Discreta de
Fourier e da Transformada de Fourier em Tempo Discreto e nalizou com a representao em
forma matricial da mesma. Alm disso, este captulo apresentou a denio da transformada
discreta de Hartley.
O Captulo 3 apresentou a transformada rpida de Fourier, que so algoritmos rpidos
para computar a DFT. Os algortimos de Cooley-Tukey, Good-Thomas e Rader-Primo foram
detalhados.
O Captulo 4 apresentou um novo algoritmo rpido para computar a DFT de comprimento
N 4(mod 8), que baseado nas simetrias das matrizes associadas com o desenvolvimento
em srie de Laurent da matriz de transformao; com isso, apresentou-se uma FFT para
comprimentos que no sejam as costumeiras potncias de dois. Um exemplo elucidativo
foi apresentado para N = 12. A complexidade multiplicativa da FFT foi avaliada, sendo
alcanados valores menores que N log2 N , para N = 12, 20, 28, 36, 44, 52, 60.
O Captulo 5 apresentou um novo algoritmo rpido para a transformada discreta de Hartley de comprimento N 0(mod 4), que baseado em uma nova tcnica para construo de
uma expanso matricial da matriz de transformao. O procedimento faz uso das simetrias da
expanso matricial para reduzir a carga computacional para computar o espectro discreto de
Hartley. O algoritmo apresentou um melhor desempenho, em termos de complexidade multiplicativa, que os algoritmos FHT padres Cooley-Tukey base-2, base-4 e Split-Radix. Alm
disso, este captulo apresentou algoritmos timos, em termos de complexidade multiplicativa,
93
O dispositivo computa a
DFT/DHT em 65 nsec, que aceitvel para aplicaes tais como udio, processamento de
sinais biomdicos e xDSL.
7.1
Os algoritmos rpidos (FFT) propostos na literatura para computar a transformada discreta de Fourier, de um modo geral, no atingem o limitante inferior de Heideman para a
complexidade multiplicativa. A FFT proposta nesta tese, baseada em uma expanso em srie
matricial de Laurent, tambm apresenta esta caracterstica. Entretanto, seu desempenho para
os comprimentos N investigados, do tipo N 4( mod 8), superior ao das melhores FFT
descritas na literatura, conforme indicado nas Tabelas de complexidade aritmtica 7.1 e 7.1
(Tabelas 4.1 e 4.3, reapresentadas aqui por convenincia).
Tabela 7.1: Complexidade multiplicativa da FFT baseada na Srie Matricial de Laurent
N
N log2 N (arredondado)
Laurent-FFT
Ganho (%)
12
43
81 %
20
86
32
63 %
28
135
72
47 %
36
186
88
53 %
44
240
200
17 %
52
296
288
3%
60
354
208
41 %
N log2 N
Radix-2
Rader-Brenner
Heideman-Burrus
Laurent-FFT
24
16
64
12
10
10
12
32
160
88
34
16
54
64
384
264
196
84
224
94
7.2
Desde que foi proposta em 1984, a transformada discreta de Hartley vem sendo estudada
para que sua computao seja a mais eciente possvel. As propostas de algoritmos rpidos,
para computar a DHT, na maioria dos casos, so semelhantes aos algoritmos rpidos para
computao da DFT, com desempenho similar. A FHT proposta nesta tese sistemtica e
serve para comprimentos N 0 mod 4, e no apenas para comprimentos que so potncias
de 2. Seu desempenho, em termos de complexidade multiplicativa, mostrou-se melhor que o
dos tradicionais algoritmos base-2, base-4 e split-radix, como se pode observar na Figura 7.1
(extrada dos dados apresentados nas Tabelas 5.6 e 5.7).
Figura 7.1: Complexidade multiplicativa para os algoritmos FHT (base-2, Split-Radix e expanso
matricial) e limitante inferior de Heideman, em funo do comprimento N da transformada.
Esta nova transformada rpida de Hartley pode ser melhorada para se chegar ao limitante
mnimo de multiplicaes necessrias para sua computao. Diante desse cenrio, algoritmos
timos para computao da DHT para os comprimentos N = 8, 12, 16 e 24 foram apresentados. Estes podem ser facilmente implementados em circuitos integrados, FPGA ou DSP. A
explorao de caractersticas da funo cas(.) e a tcnica de expanso matricial desenvolvida
95
7.3
Como sugestes para trabalhos futuros relativos aos temas apresentados nesta Tese, podemos indicar:
Busca de FHTs timas (aquelas que apresentam complexidade multiplicativa igual ao limitante de Heideman) para N = 12k , considerando as propriedades da funao cas( 2
N i) para
esse tipo de comprimento;
Implementao desses novos algoritmos rpidos em uma plataforma paralela com as linguagens CUDA ou OpenCl, podendo ser utilizadas placas de Unidades de Processadores
Grcos (GPU, do ingls Graphics Processor Unit);
Projeto e Implementao em FPGA para os algoritmos disponveis na literatura e comparao, com os novos algoritmos propostos, em relao rea de uso do dispositivo;
Referncias
[1] J. Fourier, Thorie analytique de la chaleur. France: Acadmie des Sciences, 1822.
[2] J. P. Kahane, Le retour de Fourier, compte rendus Acadmie des Sciences, pp. 1 9,
2005.
[3] P. Diniz, E. Silva, and S. Netto, Digital Signal Processing: System Analysis and Design.
Cambridge University Press, 2010.
[4] J. W. Cooley, P. Lewis, and P. Welch, Fast Fourier transform and its applications,
IEEE Transactions on Education, vol. 12, no. 1, pp. 2834, 1969.
[5] J. G. Ables, Fourier transform photography: a new method for x-ray astronomy,
Proceedings of the Astronomical Society of Australia, vol. 1, p. 172, 1968.
[6] B. Birkfellner, Aplied Medical Image. CRC Press, 2011.
[7] F. Grandmont, L. Drissen, and G. Joncas, Development of an imaging fourier transform
spectrometer for astronomy, Proceedings of the Specialized Optical Developments in
Astronomy, vol. 4842, pp. 392401, 2003.
[8] A.-P. Bernier, F. Grandmont, J.-F. Rochon, M. Charlebois, and L. Drissen, First results
and current development of spiomm: an imaging fourier transform spectrometer for
astronomy, Proceedings of the Specialized Optical Developments in Astronomy, vol.
6269, pp. 626 949626 9499, 2006.
[9] S. A. Fulop, Speech Spectrum Analysis. Springer, 2011.
[10] M. Portno, Time-scale modication of speech based on short-time fourier analysis,
IEEE Transactions on Acoustics, Speech and Signal Processing, vol. 29, no. 3, pp. 374
390, June 1981.
96
97
[11] D. Grin and J. Lim, Signal estimation from modied short-time fourier transform,
IEEE Transactions on Acoustics, Speech and Signal Processing, vol. 32, no. 2, pp. 236
243, April 1984.
[12] K. Paliwal, J. Lyons, and K. Wojcicki, Preference for 20-40 ms window duration in
speech analysis, 2010 4th International Conference on Signal Processing and Communication Systems (ICSPCS), pp. 1 4, December 2010.
[13] A. V. Oppenheim, Speech spectrograms using the fast Fourier transform, IEEE Spectrum, vol. 7, no. 8, pp. 5762, August 1970.
[14] A. M. Kondoz, Digital Speech: Coding for Low Bit Rate Communication Systems. John
Wiley & Sons, Ltd., 2004.
[15] M. Arnold, Audio watermarking: features, applications and algorithms, 2000 IEEE
International Conference on Multimedia and Expo (ICME), vol. 2, pp. 10131016, 2000.
[16] S. Pfeier, S. Fischer, and W. Eelsberg, Automatic audio content analysis, Proceedings of the fourth ACM international conference on Multimedia, pp. 2130, 1996.
[17] A. Ramalingam and S. Krishnan, Gaussian mixture modeling of short-time fourier
transform features for audio ngerprinting, IEEE Transactions on Information Forensics and Security, vol. 1, no. 4, pp. 457 463, December 2006.
[18] R. C. Gonzalez and R. E. Woods, Processamento Digital de Imagens. Pearson, 2010.
[19] I. Uzun, A. Amira, and A. Bouridane, FPGA implementations of fast fourier transforms
for real-time signal and image processing, IEE Proceedings on Vision, Image and Signal
Processing, vol. 152, no. 3, pp. 283 296, June 2005.
[20] B. Reddy and B. Chatterji, An t-based technique for translation, rotation, and scaleinvariant image registration, IEEE Transactions on Image Processing, vol. 5, no. 8, pp.
1266 1271, August 1996.
[21] I. Reed, T. Truong, Y. Kwoh, and E. Hall, Image processing by transforms over a nite
eld, IEEE Transactions on Computers, vol. C-26, no. 9, pp. 874881, September 1977.
[22] J. L. Massey, The discrete Fourier transform in coding and cryptography, IEEE Information Theory Workshop, February 1998.
98
[23] R. M. Campello de Souza, E. S. V. Freire, and H. M. Oliveira, Fourier codes, Proceedings of the International Symposium on Communications Theory and Applications
(ISCTA), vol. 1, pp. 370 375, August 2009.
[24] A. Poljicak, L. Mandic, and D. Agic, discrete Fourier transform-based watermarking
method with optimal implementation radius, J. Eletron. Imaging, vol. 20, 033008,
August 2011.
[25] I. Kitamura, S. Kanai, and T. Kishinami, Copyright protection of vector map using
digital watermarking method based on discrete fourier transform, 2001 IEEE International Geoscience and Remote Sensing Symposium (IGARSS), vol. 3, pp. 1191 1193,
2001.
[26] T. A. Wysocki, B. Honary, and B. J. Wysocki, Signal Processing for Telecommunications
and Multimedia. Springer, 2005.
[27] R. N. Bracewell, The Fourier transform, Scientic American, vol. 260, pp. 8289,
1989.
[28] E. O. Brigham, The fast Fourier transform and its applications. Prentice-Hall, 1988.
[29] R. E. Blahut, Fast Algorithms for Signal Processing. Cambridge University Press, 2010.
[30] G. Goertzel, An algorithm for the evaluation of nite trigonometric series, American
Mathematics Monthly, vol. 65, pp. 34 35, 1958.
[31] I. J. Good, The interaction algorithm and practical Fourier analysis, Journal of the
Royal Statistical Society, vol. B20, pp. 361 372, 1958.
[32] L. H. Thomas, Using a computer to solve problems in physics, Applications of Digital
Computers, pp. 44 45, 1963.
[33] I. J. Good, The relationship between two fast Fourier transforms, IEEE Transactions
on Computers, vol. C-20, pp. 310 317, 1971.
[34] J. W. Cooley and J. W. Tukey, An algorithm for the machine calculation of complex
Fourier series, Mathematics of Computation, vol. 19, no. 90, pp. 297301, 1965.
[35] M. Heideman, D. Johnson, and C. Burrus, Gauss and the history of the fast Fourier
transform, IEEE ASSP Magazine, vol. 1, pp. 1421, 1984.
99
[36] J. Cooley, P. Lewis, and P. Welch, Historical notes on the fast Fourier transform,
Proceedings of the IEEE, vol. 55, pp. 1675 1677, 1967.
[37] B. Cipra, The Best of the 20th Century: Editors Name Top 10 Algorithms, SIAM
News, vol. 33, no. 4, May 2000.
[38] W. T. Cochran, J. W. Cooley, D. L. Favin, H. D. Helms, R. A. Kaenel, W. W. Lang,
G. C. Maling, D. E. Nelson, C. M. Rader, and P. D. Welch, What is the fast Fourier
transform? Proceedings of The IEEE, vol. 55, pp. 16641674, 1967.
[39] R. C. Singleton, On computing the fast Fourier transform, Communications of The
ACM, vol. 10, no. 10, pp. 647654, 1967.
[40] C. Rader, Discrete Fourier transforms when the number of data samples is prime,
Proceedings of the IEEE, vol. 56, pp. 1107 1108, 1968.
[41] L. Bluestein, A linear ltering approach to the computation of discrete Fourier transform, IEEE Transactions on Audio and Electroacoustics, vol. 18, pp. 451 455, 1970.
[42] G. Bergland, A radix-eight fast Fourier transform subroutine for real-valued series,
Transactions on Audio and Electroacoustics, vol. 17, pp. 138144, 1969.
[43] D. Takahashi, A radix-16 FFT algorithm suitable for multiply-add instruction based
on goedecker method, Proceedings of the 2003 International Conference on Multimedia
and Expo (ICME), vol. 2, pp. 845848, 2003.
[44] R. C. Singleton, An algorithm for computing the mixed radix fast Fourier transform,
Transactions on Audio and Electroacoustics, vol. 17, pp. 93103, 1969.
[45] J. M. Pollard, The fast Fourier transform in a nite eld, Mathematics of Computation,
vol. 25, pp. 365 374, 1971.
[46] C. Rader and N. Brenner, A new principle for fast Fourier transformation, IEEE
Transactions on Acoustics, Speech, and Signal Processing, vol. 24, pp. 264266, 1976.
[47] S. Winograd, On computing the discrete Fourier transform, Proc. Nat. Acad. Sci.
Mathematics, vol. 73, pp. 10051006, 1976.
[48] , On computing the discrete Fourier transform, Mathematics of Computation,
vol. 32, pp. 175 199, 1978.
100
[49] P. Duhamel and H. Hollman, Split-radix FFT algorithm, Electronics Letters, vol. 20,
pp. 1416, 1984.
[50] H. Sorensen, C. Burrus, and D. Jones, A new ecient algorithm for computing a few
DFT points, IEEE International Symposium on Circuits and Systems, vol. 2, pp. 1915
1918, 1988.
[51] D. Takahashi, An extended split-radix FFT algorithm, IEEE Signal Processing Letters,
vol. 8, pp. 145147, 2001.
[52] S. G. Johnson and M. Frigo, A modied split-radix FFT with fewer arithmetic operations, IEEE Transactions on Signal Processing, vol. 55, pp. 111119, 2007.
[53] M. T. Heideman, Multiplicative complexity, convolution, and the DFT. Springer-Verlag,
Inc., 1988.
[54] D. W. Tufts and G. Sadasiv, The arithmetic Fourier transform, IEEE Acoustic Speech,
Signal Processing Magazine, vol. 5, pp. 13 17, 1988.
[55] A. J. A. Paschoal, A Transformada Aritmtica de Fourier, Dissertao de Mestrado,
Programa de Ps-Graduao em Engenharia Eltrica, UFPE, 1993.
[56] R. J. S. Cintra and H. M. de Oliveira, How to interpolate in arithmetic transform algorithms, 2002 IEEE International Conference on Acoustics, Speech, and Signal Processing (ICASSP), vol. IV, pp. 4169 4169, May 2002.
[57] , A short survey on arithmetic transforms and the arithmetic Hartley transform,
Journal of the Brazilian Telecommunications Society, vol. 19, pp. 6879, August 2004.
[58] A. Varkonyi-Koczy, A recursive fast Fourier transformation algorithm, IEEE Transactions on Circuits and Systems II: Analog and Digital Signal Processing, vol. 42, pp.
614616, 1995.
[59] P. Marti-Puig, Two families of radix-2 FFT algorithms with ordered input and output
data, Signal Processing Letters, vol. 16, pp. 6568, 2007.
[60] G. J. Silva Jr. and R. M. Campello de Souza, Teoria da complexidade aditiva para
transformadas, Anais do XXIX Simpsio Brasileiro de Telecomunicaes, outubro 2011.
101
102
[72] H. Kuhl, M. D. Sacchi, and J. Fertig, The Hartley transform in seismic imaging,
Society of Exploration Geophysicists - Geophysics, vol. 66, pp. 1251 1257, 2001.
[73] L. Chen and D. Zhao, Optical image encryption with Hartley transforms, Optical
society of America - Optical letters, vol. 31, pp. 3438 3440, 2006.
[74] P. J. Paul and P. N. Girija, A novel VLSI architecture for image compression, Proceedings of the eighth IEEE International Symposium on Multimedia (ISM), pp. 794795,
2006.
[75] J. Fabrega, M. Moreolo, and G. Junyent, Constant envelope coherent optical ofdm
based on fast Hartley transform, 2011 13th International Conference on Transparent
Optical Networks (ICTON), pp. 1 4, June 2011.
[76] J. Villasenor, Optical Hartley transforms, Proceedings of the IEEE, vol. 82, no. 3, pp.
391 399, March 1994.
[77] R. Muralishankar, L. Kaushik, and A. Ramakrishnan, Time-scaling of speech and music
using independent subspace analysis, 2004 International Conference on Signal Processing and Communications (SPCOM), pp. 310 314, December 2004.
[78] E. Chilton, The Hartley transform applied to speech coding, IEE Colloquium on Speech
Coding, pp. 9/1 9/6, October 1989.
[79] R. Chen, Z. E, M. Asharif, and K. Yamashita, Adaptive lter by using Hartley transform extended correlation LMS algorithm in the double-talk condition, 3rd International Conference on Innovative Computing Information and Control (ICICIC), p. 394,
June 2008.
[80] Z. Sembiring, M. Malek, and H. Rahim, Low complexity OFDM modulator and demodulator based on discrete Hartley transform, 2011 Fifth Asia Modelling Symposium
(AMS), pp. 252 256, May 2011.
[81] Z. Sembiring and M. Syahruddin, Performance analysis of discrete Hartley transform
based OFDM modulator and demodulator, 2012 Third International Conference on
Intelligent Systems, Modelling and Simulation (ISMS), pp. 674 679, February 2012.
[82] R. Bracewell, Assessing the Hartley transform, IEEE Transactions on Acoustics,
Speech and Signal Processing, vol. 38, no. 12, pp. 2174 2176, December 1990.
103
[83] R. N. Bracewell, Discrete Hartley transform, J. Opt. Soc. Am., vol. 73, pp. 18321835,
1983.
[84] , The fast Hartley transform, Proceedings of The IEEE, vol. 72, pp. 10101018,
1984.
[85] H. Sorensen, D. Jones, C. Burrus, and M. Heideman, On computing the discrete Hartley
transform, IEEE Transactions on Acoustics, Speech, and Signal Processing, vol. 33, pp.
12311238, 1985.
[86] D. Yang, Prime factor fast hartley transform, Electronics Letters, vol. 26, no. 2, pp.
119 121, January 1990.
[87] D.-K. Lun and W.-C. Siu, Fast radix-3/9 discrete Hartley transform, IEEE Transactions on Signal Processing, vol. 41, no. 7, pp. 2494 2499, July 1993.
[88] G. Bi, A split radix algorithm of discrete Hartley transform, Proceedings of the 1994
Second Australian and New Zealand Conference on Intelligent Information Systems, pp.
165 168, December 1994.
[89] R. M. Campello de Souza, H. M. de Oliveira, and A. N. Kauman, The Hartley transform in a nite eld, Proceedings of the SBT/IEEE International Telecommunications
Symposium(ITS), vol. 1, pp. 245 250, August 1998.
[90] G. Bi and Y. Q. Chen, Fast DHT algorithms for length n=q*2m, IEEE Transactions
on Signal Processing, vol. 47, no. 3, pp. 900 903, March 1999.
[91] H. M. de Oliveira, R. J. S. Cintra, and R. M. Campello de Souza, Multilevel Hadamard
decomposition of discrete Hartley transforms, Anais do XVIII Simpsio Brasileiro de
Telecomunicaes, Setembro 2000.
[92] R. J. S. Cintra, H. M. de Oliveira, and C. O. Cintra, The rounded Hartley transform,
Proceedings IEEE/SBrT International Telecommunications Symposium (ITS), pp. 455
460, 2002.
[93] S. Bouguezel, M. Ahmad, and M. Swamy, An approach for computing the radix-2/4 DIT
FHT and FFT algorithms using a unied structure, IEEE International Symposium on
Circuits and Systems (ISCAS), vol. 1, pp. 836 839, May 2005.
104
[94] G. Shah and T. Rathore, A new fast radix-2 decimation-in-frequency algorithm for
computing the discrete Hartley transform, First International Conference on Computational Intelligence, Communication Systems and Networks, pp. 363 368, July 2009.
[95] M. Hamood and S. Boussakta, New radix-based FHT algorithm for computing the
discrete Hartley transform, 2011 IEEE International Conference on Acoustics, Speech
and Signal Processing (ICASSP), pp. 1581 1584, May 2011.
[96] G. Bergland, Fast Fourier transform hardware implementations an overview, IEEE
Trans. on Audio and Electroacoustics, vol. 17, no. 2, pp. 104108, 1969.
[97] H. Miyanaga and H. Yamauchi, A 400 mops FFT processor vlsi architecture, IEICE
TRANSACTIONS on Electronics, vol. E74-C, no. 11, pp. 38453851, 1991.
[98] W. F. Yen, S. D. You, and Y. C. Chang, Real-time FFT with pre-calculation, Computers and Electrical Engineering, vol. 35, pp. 435440, May 2009.
[99] A. Edelman, P. McCorquodale, and S. Toledo, The future fast Fourier transform?
SIAM J. Sci. Comput., vol. 20, pp. 10941114, January 1999.
[100] A. Papoulis, The Fourier Integral and Its Applications. McGraw-Hill, 1962.
[101] A. V. Oppenheim and R. W. Schafer, Discrete-Time Signal Processing, 3rd ed. Pearson,
2010.
[102] K. J. Olejniczak and G. T. Heydt, Special section on the Hartley transform, Proceedings of the IEEE, vol. 82, pp. 372447, March 1994.
[103] E. O. Brigham and R. E. Morrow, The fast Fourier transform, IEEE Spectrum, vol. 4,
pp. 6370, 1967.
[104] A. M. Despain, Very fast Fourier transform algorithms hardware for implementation,
IEEE Transactions on Computers, vol. C28, no. 5, pp. 333341, 1979.
[105] H. M. d. Oliveira and R. M. Campello de Souza, A fast algorithm for computing the
Hartley/Fourier spectrum, Anais da Academia Brasileira de Cincias, vol. 73, no. 9,
pp. 468 468, September 2001.
[106] D. M. Burton, Elementary number theory, 7th ed. McGraw-Hill, 2010.
105
[107] R. J. McEliece, Finite Fields for Computer Scientists and Engineers. Kluwer Academic
Publishers, 1987.
[108] G. vila, Variveis Complexas e Aplicaes. LTC, 2000.
[109] K. Adel-Ghaar, Long division from Laurent series matrices and the optimal assignment
problem, Linear Algebra and its Application, vol. 280, pp. 189197, September 1998.
[110] H. L. Resniko and R. Wells, Wavelet Analysis: the Scalable structure of Information.
SpringerVerlag, 1998.
[111] P. Diniz, E. Silva, and S. Netto, Digital signal processing: system analysis and design.
Cambridge University Press, 2002.
[112] H. M. de Oliveira, V. L. Sousa, H. A. N. Silva, and R. M. Campello de Souza, Radix-2
fast Hartley transform revisited, I Congresso de Informtica da Amaznia, vol. 1, pp.
285292, April 2001.
[113] M. T. Heideman and C. S. Burrus, On the number of multiplications necessary to compute a length-2n DFT, IEEE transactions on acoustics, speech, and signal processing,
vol. 34, pp. 9195, April 1986.
[114] H. M. de Oliveira, Anlise de Sinais para Engenheiros:
Now Publishers,
2006.
[118] V. Britanak and K. Rao, The fast generalized discrete Fourier transforms: A unied
approach to the discrete sinusoidal transforms computation, Signal Processing, vol. 79,
pp. 135 150, 1999.
[119] N. Hu, H. Chang, and O. K. Ersoy, Generalized discrete Hartley transforms, IEEE
Transaction on Signal Processing, vol. 40, pp. 2931 2940, 1992.
apndice
A.1
Introduo
Denio A.1 Uma matriz bielementar uma matriz, com elementos racionais, em que
cada uma das suas linhas tem, no mximo, dois elementos no nulos; alm disso, as linhas
com dois elementos no nulos, consideradas como vetores no RN , devem apresentar direes
distintas.
Denio A.2 A distncia de Hamming entre dois vetores x e y o nmero de posies em
que as componentes de cada vetor so diferentes e denotada por d(x, y).
Denio A.3 O peso de Hamming de um vetor x = (x0 , ..., xn1 ) o nmero de componentes no nulas de x e denotado por w(x).
Exemplo A.1
Considerando x, y GF (2), com x = (1101) e y = (1100), tem-se w(x) = 3, w(y) = 2 e
d(x, y) = 1.
107
A.2
V0
V1
V =
=
V2
V3
v0
1 0
0 1 v1
= Av.
1 0 1 1 v2
v3
1 1 1
1
A matriz A apresenta 9 operaes de adies, porm fazendo uma inspeo visual nota-se
que existem adies repetidas. Vamos aplicar o procedimento descrito anteriormente para
eliminarmos estas repeties.
No primeiro passo, deve-se escolher o par de colunas que tem menor distncia de Hamming.
O par que satisfaz esta condio formado pelas colunas 0 e 3. A partir destas colunas,
constri-se a matriz B , conforme o passo 2, ou seja, escolhe-se as linhas distintas do par e
108
preenche-se todas as outras posies com zero; para as linhas restantes, inicia-se preenchendo
com um nico 1, na coluna de maior peso de Hamming; ento segue-se a ordem decrescente
de peso de Hamming at a ltima coluna. Neste exemplo, primeiro a coluna 2 e em seguida
a coluna 1. Observa-se que a matriz B obtida bielementar,
1 0 0
1 0 0 1
.
B=
0 0 1 0
0 1 0 0
No passo 4, encontra-se a matriz C , tal que, A = CB . O resultado
1 0
0 1 0
0
.
C=
1 0 1 0
1 0 1 1
Analisando a matriz C desta primeira fatorao (passo (5)) percebe-se que a mesma no
bielementar; salienta-se que o procedimento s se encerrar quando todas as matrizes forem
bielementares e, como C no satisfaz esta condio, volta-se ao passo (1). Para iniciar novamente o procedimento, faz-se A = C ,
1 0
0 1 0
0
.
A=
1 0 1 0
1 0 1 1
Aplicando o passo (1), escolhemos as colunas 0 e 2 da nova matriz A para formao da
matriz B ; em seguida efetuamos os passos (2) e (3) obtendo a matriz B ,
109
1 0
1 0 1 0
.
B=
0 1 0 0
0 0 0 1
No prximo passo (4), deve-se encontrar a matriz C que satisfaa condio de fatorao
A = CB . A matriz C
1 0 0
0 0 1 0
.
C=
0 1 0 0
1 0 0 1
Analisando esta nova matriz C , a mesma satisfaz a condio de matriz bielementar, portanto a fatorao est terminada. O processo gerou a seguinte fatorao
1 0 0
1 0
1 0 0
0 0 1 0 1 0 1 0 1 0 0 1
.
A=
0 1 0 0 0 1 0 0 0 0 1 0
0 1 0 0
0 0 0 1
1 0 0 1
Fazendo a contagem das operaes necessrias aps a fatorao, chegamos a 6 adies, ou
seja, houve uma reduo de 33, 3% em relao matriz original. A gura A.1 mostra uma
implementao da fatorao.
Figura A.1: Esquema para a computao aditiva referente matriz do exemplo A.2. Um possvel
vetor de entrada (v) e um vetor de sada (V ) ilustram o comportamento da implementao.
apndice
Artigos Publicados