• 沒有找到結果。

題目:雙記憶體之快速傅立葉轉換處理 器的設計與製作

N/A
N/A
Protected

Academic year: 2022

Share "題目:雙記憶體之快速傅立葉轉換處理 器的設計與製作 "

Copied!
57
0
0

加載中.... (立即查看全文)

全文

(1)

中 華 大 學 碩 士 論 文

題目:雙記憶體之快速傅立葉轉換處理 器的設計與製作

Design and Implementation of Dual-memory FFT Processor

系 所 別:電機工程研究所電子電路組 學號姓名:8701537 林 錦 俊

指導教授:宋 志 雲 博士

(2)

摘要

本文論述一個快速傅立葉轉換(Fast Fourier Transform 簡稱 FFT)器之設計與製作,此一轉換器共由 4 個乘法器、6 個加/減法器 組成運算單元。由於此一運算器對記憶體存取的頻率很高,為了提升 運算速度,因此規劃了內建記憶體,並劃分為 8 個區域,使得轉換器 對外的輸出/入與內部運算中的輸出/入能平行處理,以突破一般架構 在執行計算過程中遭遇到的資料讀取與儲存之瓶頸。

(3)

Abstract

This thesis presents a VLSI fast Fourier transform (FFT) processor dedicated to the computation of 1024 - point. The arithmetic unit of processor consists of four multipliers and six adders/subtractors. Due to increasing the computation speed, all of memory are embedded. It takes 103

µ

s to perform a 1024-point FFT, the processor is designed by 0.35

µ

m CMOS and operation clock is 50 MHz . In this paper, several methods for computing the FFT in hardware are reviewed. Parallel processing for I/O and computation conquers the bottleneck of data I/O within computation.

(4)

目錄

摘要……….….I Abstract……….II 誌謝………..III 目錄……….IV 圖目錄………..V

第一章 緒論………1

1.1 源起……….1

1.2 研究動機………1

1.3 研究目的………2

1.4 研究方法………2

1.5 困難及預期達成之效果………3

第二章 快速傅立葉轉換原理 ………4

2.1 分時 FFT 演算法………..5

2.2 位置取代計算……….13

2.3 反向傅立葉轉換……….15

第三章 FFT 處理器的系統設計……….16

3.1 FFT 的架構………16

3.2 FFT 處理器晶片介紹 ……….19

3.3 FFT 系統設計架構 ……….21

3.3.1 MAC_module 功能說明及設計……….. 22

3.3.2 FFT_module 功能說明及設計……… 24

3.3.3 IO_module 功能說明及設計 ……….27

3.3.4 內建記憶體 ………29

第四章 FFT 處理器硬體電路的實現 ………30

4.1 FFT 的硬體架構………30

4.2 乘法器……….32

4.3 加/法器………. 33

4.4 移位暫存器……….35

4.5 位址位元對調電路 ………37

4.6 多功器……….39

4.7 計數器……….41

4.8 蝶型處理器架構 ………..44

4.9 電路方塊圖及佈局圖 ………..46

第五章 結論 ……….49

(5)

圖目錄

圖 2.1 把 N 點 DFT 的計算分解成兩個 N/2 點的 DFT 的計算之分時分

解流程圖… … … 6

圖 2.2 把 N/2 點的 DFT 分解成 2 個 N/4 點的 DFT 的流程圖… … … .8

圖 2.3 把圖 2.2 代入圖 2.1 的結果… … … 9

圖 2.4二點 DFT 流程圖… … … .9

圖 2.5 8點 DFT計算之完全分解流程圖… … … ..10

圖 2.6 在圖 2.5 中之基本流程圖… … … .11

圖 2.7 化簡後的蝴蝶圖計算流程圖… … … 12

圖 2.8 利用圖 2.7 的蝴蝶圖計算之 8 點 DFT 流程圖… … … 12

圖 2.9 (2.13)式的流程圖… … … ..14

圖 3.1 Single-memory block diagram… … … ..16

圖 3.2 Pipeline architecture block diagram… … … ...… … ..17

圖 3.3 Dual-memory block diagram… … … ...… … ..17

圖 3.4 系統架構圖… … … . 21

圖 3.5 FFT 流程圖… … … . 25

圖 4.1 FFT 的硬體架構… … … 30

圖 4.2 FFT 的資料組態… … … .… . .31

圖 4.3乘法器的方塊圖及功能表… … … 32

圖 4.4 加/減法器的方塊圖及功能表… … … .33

圖 4.5 加/減法器電路圖...… … … .34

圖 4.6 移位暫存器電路圖… … … … ..… … … .… … … 36

圖 4.7 bit-reverse 方塊圖… … … .… … … … ...37

圖 4.8 位址位元對調電路圖… … … … … ....… … … .… 38

圖 4.9 多工器電路圖… … … 40

圖 4.10(a) 計數器電路圖… … .… … … . 42

圖 4.10(b) 計數器電路圖… … … .… … … . 43

圖 4.11 butterfly 流程圖… … … … ..… … … .. .45

圖 4.12 butterfly 以硬體實現方塊圖… … … ..… … … 45

圖 4.13 電路方塊圖… … … ..… … … .46

圖 4.14 電路佈局圖… … … .. .49

(6)

第一章 緒論

信號處理目前已廣泛的應用在各種領域,這些領域包括語音、數 據通訊、聲納、雷達、測量工具、消費電子等。因此信號處理在現今 可說是非常重要的,

複雜的信號處理演算法因 VLSI 技術的迅速發展,已普遍以硬體完 成存在很多系統中,從特殊的軍事用途到低價位的消費電子產品都 有,這些系統也都深深依賴信號處理的技術。

1.1 源起

1965 年,Cooly 和 Tukey 發表了著名的快速傅立葉轉換[1](Fast Fourier Transform,FFT);快速傅立葉轉換之所以倍受重視,就是因為 快速傅立葉轉換演算法降低了傅立葉轉換的計算時間,且快速傅立葉 轉換演算能應用於各種領域。

1.2 研究動機

快速傅立葉轉換(FFT)在信號分析上是非常重要的計算工具,目前 快速傅立葉轉換技術已廣泛應用於各個領域[2][3][4][5],為數位信 號處理技術中一個重要的部分。如語音處理、影像處理、頻譜分析、

(7)

濾波器等。 這些在應用上通長要在很短的時間內完成傅立葉轉換計 算,在資料眾多的情況下,由於所需的計算量非常大,一般的計算機 無法滿足速度的需求,因此特殊設計的傅立葉轉換器便運應而興。

1.3 研究目的

快速傅立葉轉換(FFT)是離散的傅立葉轉換(Discrete Fourier Transform 簡稱 DFT)的一種快速計算方法[6],它是由 Cooly 和 Tukey 所提出。FFT 使 N 點的離散傅立葉轉換的運算次數由

N

2

降為 N log

N2 ,因 此許多 FFT 架構就根據此演算法被提出[7][8][9][10]。

然而有些架構的工作效率並不理想,尤其當處理的點數增大時,

架構複雜度及每級之間的資料存取動作亦隨著增加,導致運算結果變 慢。針對上述的缺點,本文提出一種雙埠記憶體(dual port memory) 的 FFT 架構,此架構擁有較佳的運算速度,對於信號處理系統方面有 非常大的幫助。

1.4 研究方法

以 Cooly 和 Tukey 所提的快速傅立葉轉換為基礎,提出一較佳的 處理方式,並規劃硬體架構,然後以硬體描述語言(Verilog)將它實現。

最後完成一 FFT 單晶片處理器(FFT-processor)。

(8)

1.5 困難及預期達成的成果

FFT 處理器對於記憶體存取的頻率很高,因此如何有效管理記憶 體是一個很重要的課題。如果記憶體的管理出現了錯誤,則會造成整 個運算結果的錯誤。若要提升 FFT 處理器的工作效能,則要將其運算 單元切割成更小的管束,如此一來便能提升運作頻率,增進其效能。

(9)

第二章 快速傅立葉轉換的原理

1965 年,Cooly 和 Tukey 發表了一個計算離散傅立葉轉換演算法 後,大幅降低了計算量。在他們的演算法中,N 必須是二或是多個整 數的乘積。這個論文的發表,使的離散傅利葉轉換在信號處理上的應 用蓬勃發展,導致一大堆高效率計算的演算法的發現[11][12][13][14]

[15][16],這些演算法統稱為快速傅立葉轉換,簡稱 FFT。

FFT 演算法的基本原理是將長度為 N 的序列的離散傅利葉轉換的 計算分解成許多小的離散傅利葉轉換。這個原理的實現衍生了多種的 演算法,但他們在計算速度上的增進是一樣的。本論文將就分時 FFT 演算法(Decmiation in Time FFT Algorithms),以硬體實現之。

(10)

2.1 分時 FFT 演算法(Decmiation in time FFT algorithms)

當我們計算離散傅立葉轉換(DFT)時,可從分解計算成許多連續的 小 DFT 計算而得到,在這個過程,利用複數指數

W

Nkn

= e

j(2π/N)kn的對稱 性與週期性。而演算法的分解是基於把序列 x(n)分成許多小序列,故 稱之為分時演算法。

根據 Cooly 和 Tukey 所提的演算法,若 x(n)為 N 點序列,

n=0,1,2,… .,N-1 則其離散的傅立葉轉換公式如下:

nk N N

n

W n x n

x DFT k

X

=

=

=

1

0

) ( ))

( ( ]

[

k=0,1… .,N-1 (2.1)

其中 x(n)為時域函數,X[k]為經過轉換後的頻域函數,N 為取樣數量,

) / 2 sin(

) / 2

/

cos(

2

N j N

e

W

N

=

j π N

= ππ

稱為 twiddle factor。

若以 2 為基數來考慮,將(2.1)式中的 x(n)依 n 的奇數項和偶數項 分為兩組,即 n=2r 和 n=2r+1 分為兩組,則

=

+

=

+ +

=

( /2)1

0

) 1 2 ( 1

) 2 / (

0

) 2

(

( 2 1 )

) 2 ( ]

[

N

r

r k N N

r

r k

N

x r W

W r x k

X

=

∑ ∑

=

=

+ +

( /2) 1

0

2 / 1

) 2 / (

0

2

/

( 2 1 )

) 2 (

N

r

kr N k

N N

r

kr

N

W x r W

W r

x

(2.2) 令

(11)

=

=

( /2) 1

0

2

)

/

2 ( ]

[

N

r

kr

W

N

r x k

A

k=0,1,… .N-1 (2.3)

=

+

=

( /2)1

0

2

)

/

1 2 ( ]

[

N

r

kr

W

N

r x k

B

k=0,1,… .N-1 (2.4) 於是

X [ k ] = A [ k ] + W

Nk

B [ k ]

k=0,1,… .N-1 (2.5) (2.2)式的每一個和是一 N/2 點的 DFT,第一個和是原序列偶數點 之 N/2 點 DFT,第二個和是原序列奇數點之 N/2 點 DFT,A[k]和 B[k]

是 k 的週期函數,且週期為 N/2。根據(2.1)式組合出 N 點 DFT X[k],

圖 2.1 圖示出 N=8 的信號流程圖。

`

圖 2.1 把 N 點 DFT 的計算分解成兩個 N/2 點的 DFT 的計算之分時分解流程圖

X[0]

X[1]

X[2]

X[3]

X[4]

X[5]

X[6]

X[7]

X(0)

X(4)

X(2) X(6)

X(1) X(5)

X(3) X(7)

N/2 點 DFT

N/2 點 DFT

A[0]

A[1]

A[2]

A[3]

B[0]

B[1]

B[2]

B[3]

0

W

N

1

W

N 2

W

N

3

W

N

4

W

N 5

W

N

6

W

N 7

WN

(12)

在圖 2.1 中,二個 4 點的 DFT 被計算,其中 A[k]是偶數點的 4 點 DFT,而 B[k]是奇數點的 4 點 DFT,把 B[0]乘上

W

N0,然後加上 A[0],

則得到 X[0];把 B[1]乘上

W

N1,然後加上 A[1],則得到 X[1];雖然(2.5) 式中,把 B[4]乘上

W

N4,然後加上 A[4],則得到 X[4];不過,A[k]和 B[k]是 k 的週期函數,且週期為 4,故得 B[4]=B[0]且 A[4]=A[0],因此 把 B[0]乘上

W

N4,在加上 A[0],可得 X[4],至於 X[5]、X[6]和 X[7]的 值則同理可得,如圖 2.1 所示。

在依 r 的奇數項與偶數項將 A[k]與 B[k]進行分解,令(2.3)式中 r=2l 及 r=2l+1 則

=

+

=

+ +

=

( /4)1

0

) 1 2 (

2 / 1

) 4 / (

0

) 2 (

2

/

( 4 2 )

) 4 ( ]

[

N

l

l k N N

l

l k

N

x l W

W l x k

A

=

∑ ∑

=

=

+ +

( /4)1

0

4 / 2

1 ) 4 / (

0

4

/

( 4 2 )

) 4 (

N

l

kl N k

N N

l

kl

N

W x l W

W l

x

(2.6) 令

=

=

( /4) 1

0

4

)

/

4 ( ]

[

N

l

kl

W

N

l x k

C

(2.7)

=

+

=

( /4)1

0

4

)

/

2 4 ( ]

[

N

l

kl

W

N

l x k

D

(2.8) 則

] [ ]

[ ]

[ k C k W

2

D k

A = +

Nk (2.9) 同理

(13)

] [ ]

[ ]

[ k E k W

2

F k

B = +

Nk (2.10) 其中

=

+

=

( /4) 1

0

4

)

/

1 4 ( ]

[

N

l

kl

W

N

l x k

E

(2.11)

=

+

=

( /4)1

0

4

)

/

3 4 ( ]

[

N

l

kl

W

N

l x k

F

(2.12) 因此,把 N/2 點的 DFT 分解成 2 個 N/4 點的 DFT,可得到式(2.9)、(2.10)、

(2.11)、(2.12)。圖 2.2 為把 N/2 點的 DFT 分解成 2 個 N/4 點的 DFT 的 流程圖,把圖 2.2 插入圖 2.1 的信號流程圖中,我們可以得到圖 2.4 之 完整信號流程圖。在此圖中,我們不用

W

n/2的冪次方,而用

W

N的冪次 方來表示係數,這是使用

W

N/2

= W

N2的結果。

圖 2.2 把 N/2 點的 DFT 分解成 2 個 N/4 點的 DFT 的流程圖 N/4

DFT N/4 DFT

0 2 /

WN

2 2 /

WN

X(0)

X(4)

X(2)

X(6)

A[1]

A[2]

A[3]

A[0]

1 2 /

WN

3 2 /

WN

(14)

圖 2.3 把圖 2.2 代入圖 2.1 的結果

對於 8 點的 DFT 的計算,已被分解成 4 個 2 點的 DFT 計算,例 如:X[0]和 X[4]的兩點計算圖如圖 2.4 所示,把圖 2.4 插入圖 2.3 的流程 圖,我們得到一完整的 8 點 DFT 流程圖,如圖 2.5 所示。

圖 2.4 二點 DFT 流程圖

X[0]

X(4)

X(2) X(6)

X(1)

X(5)

X(3)

X(7)

N/4 N/4

N/4 N/4

X[1]

X[2]

X[3]

X[4]

X[5]

X[6]

X[7]

X(0) 0

WN

1

WN 2

WN

4

WN

6

WN

0

WN

2

WN

4

WN

6

WN

0

WN

2

WN

3

WN

4

WN

5

WN

6

WN

7

WN

X(0

X(4

2

1

/ 2

= W

NN

= − W

0=1 WN

(15)

圖 2.5 8點 DFT 計算之完全分解流程圖

對於一般的情形,N 依是 2 的冪次方,我們可以繼續把(2.9)式和 (2.10)式中的 N/4 點的 DFT 分解成 8 點的 DFT,直到 2 點的 DFT 為止,

這共要 v 級的計算,此處

v = log

N2 。從之前的討論,我們可以發現,從 N 點的轉換分解成 N/2 點的轉換時,複數乘法及加法的數目是

)

2

2 / ( 2 N

N +

,當 N/2 點的轉換解成 N/4 點的轉換時,因子

( N / 2 )

2則由

)

2

4 / ( 2 2

/ N

N +

所取代,故整個計算量變成

N + N + 4 N ( / 4 )

2個複數乘法和 加法。若

N = 2

v,則分解最多執行

v = log

2

N

次,當整個分解執行至最多 次時,所需的複數乘法和加法為

N log

2

N

由圖 9.5 的流程圖明白的顯示,經由計數每個分支上的傳導

W

Nr,我們

7

WN 4

WN

2

W

N

0

W

N

2

W

N

0

W

N

1

W

N

3

W

N 2

W

N

X[0]

X[1]

X[2]

X[3]

X[4]

X[5]

X[6]

X[7]

X(0)

X(4)

X(2)

X(6)

X(1)

X(5)

X(3)

X(7)

0

W

N

0

W

N

0

W

N

0

W

N

0

W

N

4

W

N

5

W

N

6

W

N 4

W

N

4

W

N

4

W

N

4

W

N

4

W

N 6

W

N

6

W

N

(16)

知道每級需要 N 個複數乘法和複數加法,這樣減少了很多的計算量。

舉例來說,

N = 2

10

= 1024

,則

N

2

= 2

20

= 1048576

,而

N = log

2

N = 10240

, 這個降低是很明顯的。

圖 2.5 中的流程圖的計算可進一步的利用係數

W

Nr的對稱性和週期 性來降低,首先,我們發現到在圖 9.5 中,從一級到下一級的基本計算 如圖 2.6 所示,由此流程圖的形狀,我們稱此基本計算為蝴蝶圖。因為

2

1

/ ) / 2 ( 2

/

=

j π N N

=

jπ

= −

N

N

e e

W

(2.11) 故 因子

W

Nr+N/2

= W

NN/2

W

Nr

= − W

Nr (2.12)

圖 2.6 在圖 9.8 中之基本流程圖

使用此觀察,圖 2.6 中的蝴蝶圖可化簡成圖 2.7,此圖只用一個複數乘 法,而不是兩個,現將圖代入圖 2.5 中,我們得到圖 2.8 的流程圖,值 得注意的,複數乘法的數目已經被降低 2 倍。

第m-1級 第m級

) 2 / (r N

W

N+

r

W

N

(17)

圖 2.7 化簡後的蝴蝶圖計算流程圖,它只須一個複數乘法

圖 2.8 利用圖 2.7 的蝴蝶圖計算之 8 點 DFT 流程圖

由流程圖可知,FFT 演算法僅需

( N / 2 ) log

2

N

的複數乘積,遠小於 DFT 的

N

2個複數乘積。當 N 夠大時執行效率明顯提升。

第m-1級 第m級

r

W

N

-1

2

W

N

0

W

N 2

WN

0

WN 1

W

N

3

W

N 2

W

N

X[0]

X[1]

X[2]

X[3]

X[4]

X[5]

X[6]

X[7]

X(0) X(4)

X(2) X(6)

X(1) X(5)

X(3) X(7)

0

WN

0

W

N

0

W

N

0

WN

0

W

N

-1

-1

-1

-1

-1 -1

-1 -1

-1

-1 -1 -1

(18)

2.2 位置取代計算(in-place computations)

圖 2.8 之流程圖是我們把原序列分成偶數點和奇數點的子序列而 推導得到,除了有效地計算傅立葉轉換外,亦可發現其提供一儲存原 序列及中間計算結果的有效方法。

根據圖 2.8,我們知道”每一級的計算是把 N 個複數,利用圖 2.7 的蝴蝶圖,把它轉換成另 N 個複數”,這個程序重覆

v = log

2

N

次,則可 計算出正確的傅立葉轉換。當我們用圖 2.8 來實現計算時,可以把它想 成兩個暫存器陣列的使用,一個用來儲存計算前的資料,另一個是用 來儲存計算後的資料,不過,圖 2.8 的正確性並沒有被輸入資料的儲存 順序所牽制,我們可以把順序依圖 2.8 的排列,讓第 m 級的複數序列 表示成

X

m

[l ]

,此處

l = 0 , 1 ,...., N − 1

,且 m=1,2,… .,v,在 m 級的計算中,

我們可把

X

m−1

[ l ]

想成是輸入陣列,而

X

m

[l ]

想成是輸出陣列,因此可得 到輸入與輸出的關係方程式為

) ( )

( )

( p X

1

p W X

1

q

X

m

=

m

+

Nr m (2.13a)

) ( )

( )

( q X

1

p W X

1

q

X

m

=

m

Nr m (2.13b) 其流程圖表示如圖 2.9。

(19)

圖 2.9 (2.13)式的流程圖

由圖 2.9 可看出,在計算第 m 個陣列的 p 和 q 位置時僅需用到第 m-1 個陣列的 p 和 q 的位置,因此,若

X

m

[ p ]

X

m

[q ]

X

m1

[ p ] , X

m1

[ q ]

儲存在相同的暫存器時,我們僅需要一個大小為 N 的複數陣列以實施 整個的計算。這種計算方式稱為位置取代計算(in-place computation)。

為了要執行上述的-位置取代計算,輸入序列的順序須被儲存成圖 2.8 所示的順序,這個輸入順序稱為位元位址對調(bit-reverse)。

所謂位元位址對調(bit-reverse),就是將輸入的值是依照 2 進制的 位置作鏡射而得到新的值。我們以 N=8 為例,我們可得

X[000]=x[000]

X[001]=x[100]

X[010]=x[010]

X[011]=x[110]

X[100]=x[001]

X[101]=x[101]

X[110]=x[011]

X[111]=x[111]

]

1

[ p X

m

]

1

[ q X

m−

r

W

N

] [ p X

m

] [q X

m

-1

(20)

( n

2

, n

1

, n

0

)

是序列 x[n]的註標的二進制表示法,則序列值

x [ n

2

, n

1

, n

0

]

被 存在陣列位置

X [ n

0

, n

1

, n

2

]

,也就是說

x [ n

2

, n

1

, n

0

]

在輸入陣列的位置是其註 標 n 的位元數的反向。

2.3 反向傅立葉轉換(IFFT)

FFT 的逆運算可經由 FFT 的適當的修改求得,把(2.1)式的 DFT 定義如 下:

=

=

1 0

/

)

2

( ]

[

N

n

N kn

e

j

n x k

X

π (2.31)

=

=

1

0

/

]

2

1 [ ) (

N

n

N kn

e

j

k N X

n

x

π (2.32) 將(2.32)式同乘上 N,並做共軛複數運算得:

=

=

×

1

0

/ 2

*

*

[ ]

N

n

N kn

e

j

k X x

N

π (2.33) 可將(2.31)式和(2.33)式比較,可看出(2.33)式的右端形式就是 FFT 運 算,因此,只要將

X

*

[ k ]

輸入到 FFT 運算,將結果除以 N,再取共軛複 數,即可得到所要的 IFFT,x(n)。

在 x(n)是實數的狀況下,求共軛複數運算是沒必要的,因為對實數數 而言,

x ( n ) = x

*

( n )

(21)

第三章 FFT 處理器的系統設計

根據上一章所推導的演算法,我們要將演算法以硬體來實現之。

因此,本論文參考以前所發表過的 FFT 架構,並分析其優缺點,而提 出較為完善的 FFT 架構。

3.1 FFT 的架構

近年來,快速傅立葉轉換的架構在文獻中發表的有很多種,其目 的有的在減少晶片面積,有的在講求速渡度,但總有為盡完善之處。

就現有的架構,大致上可分為下列幾種:

單記憶體(single memory)架構:單記憶體架構是最簡單的記憶體系 統架構,其架構如圖 3.1 所示[17]。其記憶體與處理器之間以資料匯流 排作為資料的傳輸,所以當處理完畢的資料寫入記意憶體之後,才能 讀取下一筆資料作處理。如此可減少晶片面積,但處理的速度慢,影 響了 FFT 的處理效率。

圖 3.1. Single-memory block diagram

Main

Memory

Proce

(22)

Pipeline 架構: Pipeline 架構是以一連串較小的資料緩衝區來取 代 N-word 記憶體,其架構如圖 3.2 所示。其處理速度較快,但資料緩 衝區與處理器相互交錯,處理的取樣數越大,所須的晶片面積和功率 消耗也就越大。

… … . 圖 3.2. Pipeline architecture block diagram

雙記憶體(Dual memory) 架構: 雙記憶體架構使用兩個相同的記 憶體,其架構如圖 3.3 所示[18]。兩個的記憶體分別以獨立的匯流排與 處理器連接。處理的方式是將第一個 memory 的資料經處理器運算後,

儲存至第二個 memory,當完成一階段運算後,則變成讀取第二個 memory 的資料,寫入資料至第一個 memory,如此重覆

log

rN次,才能 得到正確的運算結果。但未能有效的利用記憶體。

圖 3.3 Dual-memory block diagram

由上述的 FFT 架構,我們可以得知這些架構確有不完善之處,因

buff proc buff proc buff proc

Proce Main

Memo Main

Memo

(23)

此,針對這些結構的優缺點,我們提出一個以雙記憶體(dual memory) 為基礎的架構,以 radix-2 的運算模式及 in place 儲存等方式,作為 本論文 FFT 硬體的主要架構。下一節將就 FFT 的設計與功能加以說明。

(24)

3.2 傅立葉轉換晶片的介紹

本晶片最主要處理正向和反向的傅立葉轉換(Forward & Inverse Fourier Transformation)所處理的取樣數為 1024 個複數值

(complex),資料的位元寬度為 32bit。為了解決資料在各記憶體間傳 輸的瓶頸,本晶片採雙記憶體(dual memory)架構,內建兩組可儲存 1024 點複數的記憶空間,允許資料的輸入與輸出和傅立葉轉換同時進 行,增進資料連續執行傅立葉轉換執行效能。執行 1024 點的傅立葉轉 換運算功能只需要本晶片一顆即可,不需外加記憶緩衝區、正弦/餘弦 函數值及位址產生模組,如此可減少硬體設計的複雜度及系統應用上 的可靠度。

本加晶片採由 Cooly 和 Tukey 發展出的快速傅立葉轉換演算法。

該演算法延伸出許多不同的變型,本晶片採 DIT(Decimation in time)、位址位元調整輸入/正常順序輸出、radx-2 運算模式及 in place 儲存方式。

所謂 in place 是指在計算的每個階段,資料經過 radix-2 的 butterfly 乘法運算後,都存回原來的記憶位址,而不用額外的記憶 空間,採用 in place 方式,資料輸入或輸出的順序會與原來的順序

(25)

不同而需要調整,此種調整稱為位址位元對調(bit-reverse)調整。若 是資料輸入順序為正常順序,則資料輸出順序必須經過調整;反之,

若資料輸入順序經過調整 ,則資料輸出順序為正常順序。

本晶片輸入與輸出之資料皆以 32bit 表示,負數則採 2 的補數格 式。執行傅立葉轉換所使用的 radix-2 butterfly 乘法,包含 4 個 32bit

* 18bit 的乘法器,6 個 32bit 的加法/減法器及 4 個 32bit 的移位暫 存器,乘法器的結果有 50 bit,但只取 32 bit 當作加/減法器的輸入。

執行傅立葉轉換計算,首先將所需的資料載入內建記憶體緩衝 區,然後進行傅立葉計算,再將轉換過的資料由內建記憶體緩衝區輸 出。本晶片為了增進運算性能,在晶片進行傅立葉轉換的同時,也允 許使用者對另一記憶緩衝區進行資料的輸入與輸出動作。

(26)

3.3 FFT 系統設計架構

本傅立葉轉換晶片由 IO_module(輸出入模組)、FFT_module(傅立 葉運算模組)、MAC_module(記憶體存取控制模組)、乘法器、加/減法 器、、RAM、ROM 等所構成。如圖 3.4 所示:

圖 3.4 系統架構圖

ROM sin TOP

Design

IOC Module

MAC × 8 Module

ROM cos RAM

512×32 FFT

Module

× 4 Mult 32×32

× 6 Add/Sub 32×32

× 4 shifter 32×32

(27)

3.3.1 MAC_module 功能說明及設計

記憶體存取控制模組(MAC_module)主要做為記憶體存取的控制,

由於此傅立葉轉換晶片採”雙記憶體”架構,允許資料的輸入/輸出與傅 立葉轉換計算同時進行;此外;為了要對記憶體能同時讀和寫,所以 把記憶體位址區分為奇數位址區和偶數位址區。為了達到此的,所以。

記憶體讀寫控制模組必須針對輸入/輸出時記憶體的讀寫及運算時記 憶體的讀寫做協調管理。

在設計上,bank 為主要的控制信號,一開始晶片內部會偵測 bank 信號,以指定所使用的記憶體位置。當 bank=1 時,表示輸入/輸出使 用第 1 區,執行傅立葉轉換計算使用第 0 區的位置;當 bank=0 時,表 示輸入/輸出使用第 1 區,執行傅立葉轉換計算使用第 0 區的位置。所 以 IO_module 必須提供 receive 和 transform 兩個控制信號,以供下一 階段的切換之用。而 FFT_module 必須提 read and write 兩個控制信號,

以供下一階段的切換,指示是否進行讀寫。

另外,將記憶體位址區分為奇數位址區和偶數位址區,其目的就 是在讀取奇數位址區資料時,也同在寫入偶數位址區的資料;在讀取 偶數位址區資料時,也同在寫入奇數位址區的資料。因為一塊記憶體

(28)

無法同時提供讀與寫的需求,若將偶數位址的資料放在一塊記憶體,

奇數位址的資料放在另一塊記憶體,由於兩塊記憶體的控制信號互相 獨立,所以可以同時進行讀寫的工作。

(29)

3.3.2 FFT_module 功能說明及設計

本傅立葉轉換晶片,是採用 Cooly 和 Tulkey 發展出來的快速傅立 葉轉換演算法則,以 radix-2 的運算模式,推導出其硬體架構。由運算 的過程中,我們可以看出整個 FFT 演算過程需要相當多的乘法器、加 法器及減法器,取樣的點數越多,所需要的乘法器、加法器及減法器 也就越多。如果將其全部以硬體來完成,會浪費很多晶片的面積,而 且也不符合經濟效益。

因此,我們以內建記憶體的方式,將 FFT 每一階段的運算結果儲 存起來,以供下一階段運算之用。此種方式,只需要固定的幾個乘法 器、加法器及減法器,而且面積不會隨著取樣的點數增多而增加,只 需改變記憶體的容量即可。

採用內建記憶體的方式,需要一組位址產生電路,以產生適當的 位址來讀取記憶體內的資料,再將讀取的資料供運算單元作運算,然 後將運算完畢的資料存回原來的位址。圖 3.5 為 FFT 流程圖。

(30)

圖 3.4 系統架構圖

address generator

RAM Real

RAM Imag

ROM sin

ROM cos

32 32

32 32

b_r b_i c_r c_i

reg

32 32 32 32

reg reg

reg

+/- +/-

reg reg

reg reg

shift er

+/- +/-

+/- +/-

shift er shift er shift err RAM

Real

RAM Imag

a_i r_r a_r

32 32

reg reg

32 32

32 32

Write data to RAM

Controller

(31)

由圖 3.1 可得 Pipeline diagram,如表 3.1

state1 state2 state3 state4 Mem read mult Add/sub Mem write

A B W

B×W X=A+BW Y=A-BW

X Y

表 3.1 Pipeline diagram

由表 3.1 我們可推論,在第一個時間週期內,讀取 RAM 及 ROM 內的資料,並放置到暫存器一內,第二個時間週期內,將暫存器一內 的資料作乘法運然後在放置到暫存器二內,第三個時間週期內,將暫 存器二內的資料作加/減法運算然後在暫存器三內,第四個時間週期 內,將暫存器四內的資料依原來的位址寫入記憶體。因此,運算一批 資料從讀出到寫入要四個時間週期。本論文以 Pipeline 的方式完成 FFT 的硬體結構,以 16 點的 FFT 演算為例,若採用本結構,每一階段運 算所需時間為 11 個時間單位,而 16 點的 FFT 演算需 4 個階段才能完 成,因此,以本架構完成 16 點的 FFT 運算總共需 44 個時間單位。由 表 3.2 表示出 16 點 FFT 演算的第一階段處理過程。

time Read data × +/- Write data T1 D0,D8

T2 D1,D9 D0,D8

T3 D4,D12 D1,D9 D0,D8

T4 D5,D13 D4,D12 D1,D9 D0,D8 T5 D2,D10 D5,D13 D4,D12 D1,D9 T6 D3,D11 D2,D10 D5,D13 D4,D12 T7 D6,D14 D3,D11 D2,D10 D5,D13 T8 D7,D15 D6,D14 D3,D11 D2,D10 T9 D7,D15 D6,D14 D3,D11

T10 D7,D15 D6,D14

T11 D7,D15

(32)

3.3.3 IO_module 功能說明及設計

IO_module 最主要為與外界溝通,提出控制信號給

MAC_module,以決定資料是否輸入或輸出;當記憶體內無資料或資 料已被讀出,則允許資料輸入;當記憶體內資料已完成傅傅立葉轉換,

則允許資料被讀出。

在設計上,由於 FFT 在運算之前必須先處理資料的順序問題,根 據 FFT 的運算原理,便發展出位元位址對調的架構。位元位址對調有 兩種方式:一種是輸出資料位元位址對調,另一種是輸入資料位元位 址對調。如圖所示:

輸出資料位元位址對調

輸入資料位元位址對調

資料輸入順序:

0,1,2,3,4,5,6,7

FFT

資料輸出順序:

0,4,2,6,1,5,3,7

資料輸入順序:

0,4,2,6,1,5,3,7

FFT

資料輸出順序:

0,1,2,3,4,5,6,7

(33)

意即連續的資料寫入時,寫入的資料順序會被重新調整過,也就 是必先經過位元位址對調,然後經傅立葉轉換運算。輸出資料時,則 以正常順序輸出即可。亦可設計成寫入資料時順序為正常順序,輸出 時順序則須從新調整。

(34)

3.3.4 內建記憶體

RAM

本晶片擁有 8 個 512×32-bit 的 RAM,並將這 8 個 RAM 分為兩個部 分,分別為 bank 0 和 bank 1。因為資料分為偶數資料與奇數資料,所 以,bank 0 和 bank 1 的其中兩個記憶體儲存偶數資料的實數與虛數,

另外兩個儲存奇數資料的實數與虛數。當 bank 0 在做運算時,允許 bank1 作輸入/輸出的動作,因其分別有獨立的資料和位址匯流排及控 制電路,同樣的,當 bank 1 在做運算時,允許 bank0 作輸入/輸出的動 作。

ROM

本晶片用了兩個唯讀記憶體 ROM1 及 ROM2,ROM1 儲存 sin 的 函數值,ROM2 儲存 cos 的函數值。因為我們可以從 FFT 的信號流程 圖中觀察都必需乘係數

W

Nr;因此我們必須建一個表去查所有的值,有 鑑於此,我們要把計算好的 sin 和 cos 值先儲存至 ROM 內。若要取得 ROM 內的函數值,只要以一個位址產生器產生相對映的位址即可。

sin 值和 cos 值為 18 bit,其資料組態表示如下:

2 bit 16 bit 整數 小數

(35)

第 四章 FFT 處理器硬體電路的實現

4.1 FFT 的硬體架構

output input

mux

32 bit 9 bit

Data bus 32 bit

RAM 512×32 bit × 4

RAM 512×32 bit × 4 Address

generator

Address generator

32 32

Data bus 32×4bit

reg reg reg reg ROM

sin

ROM sin

reg

reg Mult 32×18

×4

ROM Address generator

reg reg reg reg reg reg

Add/Sub 32 bit

×2

Add/Sub 32 bit ×4

32 bit shifter

Data bus 32×4 bit

Memory Access Control module

IOC

module

(36)

由圖 4.1 FFT 硬體架構圖,說明了 FFT 大致上的執行流程,可看出 輸入/輸出皆為 32 bit,其資料組態如圖 4.2。

16 bit 16 bit 整數 小數 圖 4.2 FFT 的資料組態

輸入/輸出端各有一資料選擇器,用以選擇 RAM 的資料輸入/輸出;

資料輸入時其寫入 RAM 的位址會先經位元位址對調,並將資料寫入 新的位置。當輸入資料完畢則進行傅立葉轉換運算,首先,第一個時 間週期時,位址產生器產生位址將資料讀出且放進暫存器中,第二個 時間週期時,資料做傅立葉運算且放進暫存器中,第三個時間週期時,

資料做加/減法運算且放入移位暫存器中,移位暫存器會檢察是正向或 反向的傅立葉運算,並將資料做適當的調整,第四個時間週期時,將 資料依原位置寫入記憶體。

(37)

4.2 乘法器

本晶片採用 4 個 32 bit × 18 bit 乘法器,此乘法器可在一個時間週 期內完成一個 50 bit 乘法。因為本乘法器為有號的乘法器,所以兩個 數在做乘法時均視為 2 的補數,其結果也視為 50 bit 的 2 的補數。當 兩個數做相乘時,一個輸入放在 RAM 所對映的暫存器內,一個為 ROM 所對映的暫存器內。乘法器運算的結果為 50 bit,但我們只取 32 bit 作 為下一階段運算之用。圖 4.3 為乘法器的方塊圖及功能表

Pin Name Size(bit) type Function A 32 input Multiplier B 18 input Multiplicand Tc 1 input 2’s complement control Product 50 output Product A×B

Tc A B Product

0 A(unsigned) B(unsigned) A×B(unsigned) 1 A(2’s complement) B(2’s complement) A×B(2’scomplement) 圖 4.3 乘法器的方塊圖及功能表

A Tc × Product

B

(38)

4.3 加/減法器

本晶片採用 6 個 32 bit 加/減法器,此加/減法器有一個控制位元,

當控制位元為 0 時,表示作加法的動作,當控制位元為 1 時,表示作 減法的動作。此控制位元由輸入信號 F/I 控制,F/I 是決定 FFT 為正向 或反向的運算。加/減法器為乘法器的下一級,其流乘可由圖的 FFT 流 程圖得知。圖 4.4 為加/減法器的方塊圖、功能表及電路圖

Pin name Size(bit) type Function A 32 input Input data B 32 input Input data Ci 1 input Carry/borrow in Add_Sub 1 input Addition(Add_Sub=0)

Subtraction(Add_Sub=1) Sum 32 output Sum/Difference

Co 1 output Carry/Borrow Add_Sub A B Ci Sum Co

0 A B 0 A+B Carry_out 0 A B 1 A+B+1 Carry_out 1 A B 0 A-B Carry_out 1 A B 1 A-B-1 Carry_out 圖 4.4 加/減法器的方塊圖及功能表

Add/Sub ci A

+/- sum B co

(39)

圖 4.4.1 加/減法器電路圖

(40)

4.4 移位暫存器

移位暫存器最主要做為數值調之用,因本晶片可做正/反向的傅立 葉轉換,當輸入腳 F/R=0 表是做正向傅立葉轉換,shifter 並不作任何 移位,當輸入腳 F/R=1 表示做反向傅立葉轉換時,shifter 向右移位 10 位元,因為做反向傅立葉轉換時,每一個運算結果需除以 1024,因此 運算結果需右移 10 位元,才能得到正確的值。

(41)

圖 4.4.2 移位暫存器電路圖

(42)

4.5 位址位元對調電路

本傅立葉轉換晶片輸入採位元位址對調的方式,輸出則採正常順 序輸出,因此外面的資料要寫入記憶體時,輸出/輸入端的位址產生器 就必須驅動位元位址對調電路,以產生相對應的記憶體位址,使得資 料能正確的寫入記憶體中。

圖 4.5 bit-reverse 方塊圖

X[000]=x[000]

X[001]=x[100]

X[010]=x[010]

X[011]=x[110]

X[100]=x[001]

X[101]=x[101]

X[110]=x[011]

X[111]=x[111]

Bit_reverse

N-bit input N-bit output

Input N point FFT

(43)

圖 4.5.1 位址位元對調電路圖

(44)

4.6 多功器(Multiplexer)

本晶片的輸入端及輸出端各擁有一個 8 to 1 的多功器

(Multiplexer),以選擇那一個 RAM 的資料輸出或輸入。因為我們用雙 記憶體的架構,每個記憶體分為偶數部分和奇數部分,偶數部分和奇 數部分又分別分成實數區和複數區。所以本晶片的記憶體共有 8 個部 分,因此要 8 to 1 的多功器決定那一個 RAM 的資料輸出或輸入。

(45)

圖 4.6 多工器電路圖

(46)

4.7 計數器(counter)

本晶片內擁有多個計數器,分別用來作為程式的計數,或是判別 是否執行下一階段的運算。計數器在若位址產生器內,則作為計數資 料用,並計數的結果提供位址產生器,以產生相對應的位址。

(47)

圖 4.6.1(a) 計數器電路圖

(48)

圖 4.6.1(b) 計數器電路圖

(49)

4.8 蝶型處理器的架構

蝶型處理器在 FFT 中是相當重要的元件,它由乘法器、加法器和 減法器所構成。我們將蝶型處理器處理資料的過程分為兩個階段,第 一階段將資料作乘法的動作,第二階段將資料作加/減法的動作;由於 本晶片擁有 4 個乘法器,所以一次可同時處理 4 筆資料。圖 4.6、圖 4.7 說明了蝶型處理器的流程圖以硬體來實現。其中

所以,用兩個暫存器將 sin 和 cos 函數值儲存起,然後與 B_r 和 B_i 相 乘,出來的結果,實數與實數相加/減,複數與複數相加/減,最後在與 A_r 和 A_i 做相加/減,完成整個運算過程。

) / 2 sin(

) / 2

/

cos(

2

N j N

e

W

N

=

j π N

= ππ

(50)

圖 4.7 butterfly 流程圖

圖 4.8 butterfly 以硬體實現方塊圖

B_r B_i

A_r A_i cos sin

X X X X

reg reg

reg reg

+/- +/-

reg reg

+/- +/-

+/- +/-

r

A _A _i B _r B _i

r

W

N

- A_r+Ai

B_r+B_i

i A r A′_ + ′_

i B r B′_ + ′_

(51)

4.10 電路方塊圖及佈局圖

圖 4.9 電路方塊圖

表 4.2 腳位配置圖

腳位 I/O 腳位信號 腳位 I/O 腳位信號 腳位 I/O 腳位信號 腳位 I/O 腳位信號

1 I CLK 26 I I18 51 P_VSS 76 O O17

2 I RESET 27 I I19 52 P_VDD 77 O O18

3 I WR 28 I I20 53 O O4 78 O O19

4 I RD 29 I I21 54 O O5 79 P_VSS

5 I F/I 30 I I22 55 O O6 80 P_VDD

6 I I0 31 I I23 56 P_VSS 81 O O20

7 I I1 32 I I24 57 P_VDD 82 O O21

8 I I2 33 I I25 58 O O7 83 O O22

9 I I3 34 I I26 59 O O8 84 O O23

10 I I4 35 I I27 60 O O9 85 P_VSS

11 I I5 36 I I28 61 P_VSS 86 P_VDD

12 C_VDD 37 C_VDD 62 C_VDD 87 C_VDD

13 C_VSS 38 C_VSS 63 C_VSS 88 C_VSS

14 I I6 39 I I29 64 P_VDD 89 O O24

15 I I7 40 I I30 65 O O10 90 O O25

16 I I8 41 I I31 66 O O11 91 O O26

17 I I9 42 P_VDD 67 O O12 92 O O27

18 I I10 43 O W_ready 68 P_VSS 93 P_VSS 19 I I11 44 O R_ready 69 P_VDD 94 P_VDD

20 I I12 45 O O0 70 O O13 95 O O28

21 I I13 46 P_VSS 71 O O14 96 O O29

22 I I14 47 P_VDD 72 O O15 97 O O30

23 I I15 48 O O1 73 P_VSS 98 O O31

24 I I16 49 O O2 74 P_VDD 99 P_VSS

25 I I17 50 O O3 75 O O16 100

………. ……….

clk reset F/R

WR RD R_ready R_ready

Input 32-bit

Output 32-bit

(52)

接腳信號說明:

Clk:

系統時脈。

Reset:

重置驅動信號,為一高電位動作信號,用來重置系統或開機後起始系 統的邏輯單元。平時為低電位,當系統重置或按下 Reset 信號時才變 為高電位動作。

WR:

寫入記憶體的信號,為一低電位動作的信號。用以指示記憶體將資料 匯流排上的資料儲存起來。

RD:

讀取記憶體的信號,為一低電位動作的信號。表示正從記憶體將資料 讀出。

F/I:

正/反向傅立葉轉換信號,F/I=0,表示正向傅立葉轉換,F/I=1,表示 反向傅立葉轉換。

W_ready:

資料寫入備妥信號,為一低電位動作的信號。表示記憶體資料已被讀 出,允許外界的資料可寫入記憶體。

R_ready:

資料讀出備妥信號,為一低電位動作的信號。表示記憶體資料已處理 完畢,資料允許從記憶體被讀出。

31 0

~ I

I

資料寫入匯流排,做為資料輸入用。

31

0

~ O

O

資料輸出匯流排,做為資料輸出用。

表 4.1 為晶片完成後規格表

表 4.1 規格表

Pin number 100 Gate count 27822

Area 4860x7883

mm

2

(53)
(54)

第五章 結論

本快速傅立葉轉換晶片的架構其特色有:

一、 內建記憶體:提升系統的可靠性。

二、 雙記憶體架構:允許輸入/輸出與傅立葉轉換同時進行。

三、 In place 的儲存方式:資料經運算後,都存回原來的記憶體位址,

因此只需一個記憶體就能完成快速傅立葉轉換;而另一個記憶體 可同時進行輸入/輸出用。

四、 交錯讀寫:將記憶體分為奇數位址區和偶數位位址區,則可以 讀取奇數位址資料時,寫入偶數位址資料;在讀取偶數位址資料

時,寫入奇數位址資料。因此造成可同時讀寫的現象。

本傅立葉轉換晶片的處理採用管線式的架構,其架構具有一定的 規則性,所以當要更改其處理的點數時,其架構不須太多的修改,只 需加入一組參考信號即可,減少了許多硬體設計上的麻煩。

本晶片由硬體描述語言(Verilog)來描述設計,採用 TSMC

0 . 35 µ

的 製程,CIC 所提供的元件庫,設計完成模擬的結果為:以 50Mz 的速度 進行模擬,處理完 1024 點的複數值的傅立葉轉換須

103 µ s

。由表 5.1 的 比較可看出,本文所提出之 FFT 架構,較以前架構在速度的提升上,

(55)

明顯提高了很多,更適用於快速的運算處理。

表 5.1 架構的比較

快速傅立葉轉換不僅應用在一維的空間上,應用在二維的空間上 更是廣泛,尤其是影像處理方面。而二維的空間的應用,必須採用浮 點格式,因此若採本架構為設計基礎,只要將資料浮點格式作調整與 正歸化處理後就能執行運算。

由以上的分析,本論文所提 FFT 架構是非常簡單的架構,易於 VLSI 的製作,是相當好的一種架構。

未來研究方向:

我們可將本文固定資料的 FFT processor(1024 點)更改為可變資 料點數的 FFT processor,只要將輸入部分加 4 支腳作為處理點數的 選擇,再以本架構為基礎,可使 FFT 處理器之運算的範圍成為:2~1024 點。

架構 1024-pt ExecTime

)

( s µ

Clock Freq (MHz)

TMS320C30[17] 3750 16.6 PCGM[18] 173.6 50

本文架構 103 50

(56)

REFERENCES

[1] J. W. Cooley and J. W. Tukey. An algorithm for the machine caculation of complex Fourier series .Math. Comput., 19:297-301, April 1965.

[2] G. Thomas. “Application of Motion Colloquium to Video

Processing in the TV Studio”, IEE Colloquium on Processing in he TV Studio, 1991, vol. 148, pp 5/1-5/4.

[3] A. G Constantinides, ”Spectral Transformation for Digital Filters”, Proc. of IEEE. vol. 117 No. 8, pp. 1585-1580, Aug 1970.

[4] M. N. S. Swamy and K. S. Thyagarajar , ”Frequency

Transformation of Digital Filters, ” Proc. IEEE vol. 65. Jan. p. 165, Jan. 1977.

[5] S. M. Kay and Marple . S. L. , ”Spectrum analysis-A modem perspective, ”Proc. IEEE vol. 69, pp. 1380-1419, Nov. 1981 [6] A. Oppenheim and R. Schafer. Discrete-Time Signal Processing,

Prentice-Hall International Inc, 1989.

[7] E. Bidet, D. Castelain, C. Joanblanq, and P. Senn.”A Fast

Single-Chip Implementation of 8192 Complex Point FFT”, IEEE JOURNALMOF SOLID-STATE CIRCUITS, VOL. 30, NO. 3, pp.

300-305, MARCH 1995.

[8] R. C. Singleton,”A methd for computing the fast Fourier Transform with auxiliary memory and limited high-speed storage”, IEEE Trans.

Audio Electroacoust., vol. AU-15, pp. 91-98, June 1967.

[9] B. Gold and T. Bially. “Parallelism in Fast Transform Hardware”, IEEE Transactions on Audio and Electroacoustics, 1973,vol. 21,No.

1, pp 5-16.

[10] V. Szwarc and L. Desormeaux. ”A Chip Set for Pipeline and Parallel Pipeline FFT Architectures”,Joural of VLSI Signal Processing, 1994, vol. 8, pp 253-256.

[11] M. Wosnitza, M. Thaler, and G. Troster, ”A hight precision

1024-point FFT processor for 2D convolution, ” in Proc. IEEEE Int.

Solid-State Circuit Conf., 1998, vol. 41, pp. 118-119, 424.

[12] A. M. Despain, “Very fast transform algorithms for hardware

implementation, ”IEEE Trans. Comput., vol C-28, pp. 333-341, May 1979.

[13] R. C. Agrawal and J. W. Cooly, “New algorithms for digital

convolution, ”IEEE Trans. Acoust., Speech, Signal Processing, vol.

ASSP-25,no. 5, pp. 392-410, Oct. 1977.

[14] S. Winograd, “On computing the discrete Fourier transform, ”in Proc.

(57)

1974.

[16] ERLING H. WOLD and ALVIN M.DESPAIN,” Pipeline and Parallel-Pipeline FFT Proceline for VLSI Implementations, ” IEEE Trans. Comput., vol. c-33, pp. 414-425, May 1984.

[17] K. S. Lin, Ed. Digital Signal Processing Applications with the TMS320 Family. Prentice-Hall, Englewood Cliffs, New Jersey, 1987.

[18] 中華大學碩士論文”平行固幾何快速傅立葉轉換之超大型積體電 路架構”, 高嘉人, 1996 年 6 月。

參考文獻

相關文件

下列關於 CPU 的敘述,何者正確?(A)暫存器是 CPU 內部的記憶體(B)CPU 內部快取記憶體使 用 Flash Memory(C)具有 32 條控制匯流排排線的 CPU,最大定址空間為

One, the response speed of stock return for the companies with high revenue growth rate is leading to the response speed of stock return the companies with

As we shall see in Section 30.2, if we choose “complex roots of unity” as the evaluation points, we can produce a point-value representation by taking the discrete Fourier transform

Finally, making the equivalent circuits and filter prototypes matched, six step impedance filters could be designed, and simulated each filter with Series IV and Sonnet program

首先考慮針對 14m 長之單樁的檢測反應。如圖 3.14 所示為其速 度反應歷時曲線。將其訊號以快速傅立葉轉換送至頻率域再將如圖

Park, “A miniature UWB planar monopole antenna with 5-GHz band-rejection filter and the time-domain characteristics,” IEEE Trans. Antennas

Iwai , “A self-aligned emitter base NiSi electrode technology for advanced high-speed bipolar LSIs” , in IEEE Bipolar/BiCMOS Circuits and Technology Meeting , pp..

Kwong, “Metal nanocrystal memory with high-k tunneling barrier for improved data retention, ” IEEE Trans. Electron