chapter 7 discrete and fast fourier transformbmsp.chonbuk.ac.kr/lect/2009_2/digital signal...

25
Chapter 7 Discrete and Fast Fourier Transform

Upload: others

Post on 30-Aug-2019

17 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Chapter 7 Discrete and Fast Fourier Transformbmsp.chonbuk.ac.kr/lect/2009_2/Digital signal processing/SignalProcessing_07.pdf · 고속 푸리에 변환 나비와 회전 요소를

Chapter 7

Discrete and Fast Fourier Transform

Page 2: Chapter 7 Discrete and Fast Fourier Transformbmsp.chonbuk.ac.kr/lect/2009_2/Digital signal processing/SignalProcessing_07.pdf · 고속 푸리에 변환 나비와 회전 요소를

1. 이산

푸리에

변환의

기초

이론

2. 푸리에의

여러

형태와의

관계

3. 이산

푸리에

변환의

구현시

계산상

문제

4. 다양한

고속

푸리에

변환

알고리즘

이산

푸리에

변환

(DFT)

고속

푸리에

변환

(FFT)

디지털

신호를주파수

영역에서

분석

Introduction

Page 3: Chapter 7 Discrete and Fast Fourier Transformbmsp.chonbuk.ac.kr/lect/2009_2/Digital signal processing/SignalProcessing_07.pdf · 고속 푸리에 변환 나비와 회전 요소를

이산

푸리에

급수 이산

푸리에

변환

1. 주기

신호에

응용

2. 스펙트럼

선의

고조파

형태

3. 스펙트럼

계수

ak

1. 비주기

신호에

응용

2. 선형

시불변

시스템에

적용3. Ω에

대한

연속함수

10)/2(exp −≤≤−= NkNjWN π

( )

∑−

=

=

=

−=

1

0

1

0

][

/2exp][][

N

n

knN

N

n

Wnx

NknjnxkX π이산

푸리에

변환

이산

푸리에

역변환 ∑−

=

−=1

0][1][

N

k

knNWkX

Nnx 10 −≤≤ Nn

이산

푸리에

변환은

비주기적인

신호

x[n]을

주기

신호로

고려

이산

푸리에

급수와

이산

푸리에

변환의

차이

Page 4: Chapter 7 Discrete and Fast Fourier Transformbmsp.chonbuk.ac.kr/lect/2009_2/Digital signal processing/SignalProcessing_07.pdf · 고속 푸리에 변환 나비와 회전 요소를

비주기

신호와

푸리에

변환

스펙트럼

주기

신호와

이산

푸리에

급수

한 주기

이산

푸리에

변환

/ 푸리에

변환

/ 이산

푸리에

급수

Page 5: Chapter 7 Discrete and Fast Fourier Transformbmsp.chonbuk.ac.kr/lect/2009_2/Digital signal processing/SignalProcessing_07.pdf · 고속 푸리에 변환 나비와 회전 요소를

선형성

시간이동

컨벌루션

변조

][][][][][][][][

2121

2211

kBXkAXnBxnAxkXnxkXnx

+↔+↔↔

이면

및만일

( ) 0][/2exp][][

][][

00kn

nWkXNknjkXnnx

kXnx

=−↔−

π이면

만일

][][][][

][][][][

21

1

021

2211

kXkXnmxnx

kXnxkXnxN

m↔−

↔↔

∑−

=

이면

및만일

∑−

=

−↔

↔↔1

02121

2211

][][1][][

][][][][N

mmkXmX

Nnxnx

kXnxkXnx

이면

및만일

( )

( ) ( ){ }∑

∑−

=

=

−=

−==

1

0

1

0

/2sin/2cos][

/2exp,][][

N

n

N

nN

knN

NknjNknnx

NjWWnxkX

ππ

π여기서

이산

푸리에

변환의

특성

Page 6: Chapter 7 Discrete and Fast Fourier Transformbmsp.chonbuk.ac.kr/lect/2009_2/Digital signal processing/SignalProcessing_07.pdf · 고속 푸리에 변환 나비와 회전 요소를

x[n]이

실수이면

X[k]의

실수부: 우함수

X[k]의

허수부: 기함수

대칭성

: 절반의

계수로

표현

x[n]이

복소수이면, 대칭성이

존재하지

않음

-

이산

푸리에

변환

정의

모든

계수

필요

x[n]이

실수이고

우함수이면

(x[n]=x[-n])

=> 스펙트럼은

허수부가

모두

0인

cosine 항만

존재

x[n]이

실수이고

기함수이면

=> 스펙트럼은

실수부가

모두

0인

sine 항만

존재

x[n] X[k] ℜ ℑ ℜ ℑ 우수 0 우수 0 기수 0 0 기수 0 우수 0 우수 0 기수 기수 0

이산

푸리에

변환의

특성

Page 7: Chapter 7 Discrete and Fast Fourier Transformbmsp.chonbuk.ac.kr/lect/2009_2/Digital signal processing/SignalProcessing_07.pdf · 고속 푸리에 변환 나비와 회전 요소를

계산

속도

: 알고리즘과

프로그램을

작성할

때뿐만

아니라

하드웨어에

의해서도

정해짐

곱셈

: 많은

계산시간

소모, 특별한

목적의

디지털

신호처리

하드웨어

설계

필요

이산

푸리에

변환

이산

푸리에

역변환

( )

( ) ( ){ }∑

∑−

=

=

−=

−=

1

0

1

0

/2sin/2cos][

/2exp][][

N

n

N

n

NknjNknnx

NknjnxkX

ππ

π

( )

( ){ }∑

∑−

=

=

+=

=

1

0

1

0

/2sin)/2cos(][1

/2exp][1][

N

k

N

k

NknjjNknjkXN

NknjkXN

nx

ππ

π

x[n]이

실수인

경우

• 진폭과

위상

• 실수부

:

• 허수부

:

( ) ( ){ } 2/122 ][][][ kXkXkX ℑ+ℜ=( )( )][

][arctankXkX

k ℜℑ

( ) ( )∑−

=

=ℜ1

0/2cos][][

N

nNknjnxkX π

( ) ( )∑−

=

−=ℑ1

0

/2sin][][N

n

NknjnxkX π

각각

2N2 만큼의

실수

곱셈

계산

필요

이산

푸리에

변환

계산

Page 8: Chapter 7 Discrete and Fast Fourier Transformbmsp.chonbuk.ac.kr/lect/2009_2/Digital signal processing/SignalProcessing_07.pdf · 고속 푸리에 변환 나비와 회전 요소를

x[n]이

복소수인

경우

(계산이

더욱

복잡해

짐)

실수부

:

허수부

:

( ) ( ) ( ){ }∑−

=

Ω−Ω+=1

000 sincos][][][

N

nknjknnjinrkX

( ) )sin(][)cos(][][ 0

1

00 Ω+Ω=ℜ ∑

=

knniknnrkXN

n

( ) )sin(][)cos(][][ 00

1

0Ω−Ω=ℑ ∑

=

knnrknnikXN

n

곱셈이

존재하기

때문

계산

속도

느림

(계산시간

: N2 에

비례)

(예)

2048개

또는

4096개

샘플

경우

: 수

각각

4N2 만큼의실수

곱셈

계산

필요

• 해결점

: 이산

푸리에

변환과

역이산

푸리에

변환의

주기성으로

인한

=> k와

n이

변함에

따라

같은

값의

곱셈이

반복

계산

• 대책

1. 고속

푸리에

변환

알고리즘

2. 코사인과

사인값을

메모리에

저장하였다

이용

이산

푸리에

변환

계산

Page 9: Chapter 7 Discrete and Fast Fourier Transformbmsp.chonbuk.ac.kr/lect/2009_2/Digital signal processing/SignalProcessing_07.pdf · 고속 푸리에 변환 나비와 회전 요소를

( ) ∑=∑ −=−

=

=

1

0

1

0][/2exp][][

N

n

knN

N

nWnxNknjnxkX π

WN = exp(-j2π/N)

WNkn

: 주기함수, 같은

계산

값이

반복

10 −≤≤ Nk

N = 8인

경우

WNkn의

주기성

-

k와 n이 각각 0에서 7 사이

- 총 64개

-

8개의

WNkn

-

4개의

고정

21,

21,,1 jjj −

±+

±±±

812 knj

eπ−

4πj

e−

25πj

e−

고속

푸리에

변환

(FFT)

Page 10: Chapter 7 Discrete and Fast Fourier Transformbmsp.chonbuk.ac.kr/lect/2009_2/Digital signal processing/SignalProcessing_07.pdf · 고속 푸리에 변환 나비와 회전 요소를

1. 전통적인

분해

방법

-

데이터

N이

2의

승수

( )인

경우

적용

-

시분할형

(decimation-in-time)

-

x[n]을

각각

N/2 샘플인

두개의

신호로

분리

2. 인덱스

접근

방법

-

데이터

N의

개수가

임의의

수에

적용

n2

고속

푸리에

변환

접근방법

Page 11: Chapter 7 Discrete and Fast Fourier Transformbmsp.chonbuk.ac.kr/lect/2009_2/Digital signal processing/SignalProcessing_07.pdf · 고속 푸리에 변환 나비와 회전 요소를

2/2

12/

0

212/

0

2

12/

0

)12(212/

0

1

0

)/22exp( 그리고

)](12[)](2[

)신호 기수번째()신호 우수번째(

)1(0,][][

NN

N

r

rkN

kN

N

r

rkN

N

r

krN

rkN

N

r

N

n

knN

WNjW

WrxWWrx

WW

NkWnxkX

=−=

++=

+=

−≤≤=

∑∑

∑∑

=

=

=

+−

=

=

π

[ ] [ ]kHWkG

WrxWWrxkX

kN

N

r

rkN

kN

N

r

rkN

+=

++= ∑∑−

=

=

12/

02/

12/

02/ ]12[]2[][

N = 8인

경우

n = { 0, 1, 2, 3, 4, 5, 6, 7 }

n = { 0, 2, 4, 6 } n = { 1, 3, 5, 7 }

n = { 0, 4 } n = { 2, 6 } n = { 1, 5

} n = { 3, 7 }

-

2점

푸리에

변환이

때까지

계속

분할

기수

2 (radix-2)

시분할형

FFT 알고리즘

rn 2=12 += rn

2=nk

Nnkjnk

N eWπ2

−=

Nj

N eWπ2

−=

Nj

N eWπ22

2

⋅−=

전통적인

분해

방법

Page 12: Chapter 7 Discrete and Fast Fourier Transformbmsp.chonbuk.ac.kr/lect/2009_2/Digital signal processing/SignalProcessing_07.pdf · 고속 푸리에 변환 나비와 회전 요소를

-

DFT의

길이를

N = N1

N2

같이

수의

곱으로

표현

n = ( M1 n1

+ M2 n2

) N where n1

= 0, 1, 2 …

(N1 - 1)

n2

= 0, 1, 2 …

(N2 -

1)

M1

, M2 : 상수

N : modulo

k = ( J1 k1

+ J2 k2

) N

DFT의

시간축

인덱스

10 −≤≤ Nn

n1

과 n2

값이

특정

범위에서

변하면

n값은

범위에서

변한다

DFT의

주파수축

인덱스

: 4점

푸리에

변환을

2점

푸리에

변환으로

분할

N1

= N2

= 2 이면

N = N1

N2

= 4

M1

= 2, M2

= 1, J1

= 1, J2

= 2 이면

n = 2n1

+ n2

n1

, n2

= 0 또는

1

k = k1

+ 2k2

k1

, k2

= 0 또는

1

∑=∑==

=

3

04

1

0][][][

n

knN

n

knN WnxWnxkX

N = 4 일

때의

푸리에

변환식

인덱스

접근

방법

Page 13: Chapter 7 Discrete and Fast Fourier Transformbmsp.chonbuk.ac.kr/lect/2009_2/Digital signal processing/SignalProcessing_07.pdf · 고속 푸리에 변환 나비와 회전 요소를

∑∑=

+

=

=1

0

)2(421

1

0 1

21

2

],[][n

nnk

n

WnnxkX

∑∑∑∑====

==1

0

24

1

04

1

04

24

1

0 1

1

2

2

1

21

2 n

kn

n

kn

n

knkn

n

WxWWWxX

∑∑==

=∴1

0

24

1

04

1

1

2

2

n

kn

n

kn WxWX

∑∑==

+=1

0

244

1

0

24

1

1

1

11n

knk

n

kn WxWWxX

두개의

N/2점

이산

푸리에

변환

∑=∑==

=

3

04

1

0][][][

n

knN

n

knN WnxWnxkX

N = 4 일

때의

푸리에

변환

{ } { }kkk WxxWWxxX 244

24 ]3[]1[]2[]0[ +++=

{ } { }{ } { }{ } { }{ } { }2

43

42

4

04

24

04

24

14

24

04

04

04

]3[]1[]2[]0[]3[

]3[]1[]2[]0[]2[

]3[]1[]2[]0[]1[

]3[]1[]2[]0[]0[

WxxWWxxX

WxxWWxxX

WxxWWxxX

WxxWWxxX

+++=

+++=

+++=

+++=

4점

변환방정식

kkk WWW 440

4 1 +=+⋅

02 =n 12 =n01 =n 01 =n11 =n 11 =n

인덱스

접근

방법

Page 14: Chapter 7 Discrete and Fast Fourier Transformbmsp.chonbuk.ac.kr/lect/2009_2/Digital signal processing/SignalProcessing_07.pdf · 고속 푸리에 변환 나비와 회전 요소를

04W

24W

14W

34W

신호

흐름도

(signal flow graph)

Page 15: Chapter 7 Discrete and Fast Fourier Transformbmsp.chonbuk.ac.kr/lect/2009_2/Digital signal processing/SignalProcessing_07.pdf · 고속 푸리에 변환 나비와 회전 요소를

( )( )

jWWW

jWW

jjW

==

−===

−=−=

24

14

34

2214

24

14

1

4/2exp π

W40 = 1 = W2

0 ; W42 = W2

1 = -1 ; W43 = W4

2 W41 = W2

1 W41

∑∑==

=1

0

24

1

04

1

1

2

2

n

kn

n

kn WxWX

∑∑

∑∑

∑∑

==

==

=

+

=

+

=

=

=

1

02

1

024

1

0

44

24

1

0

244

1

0

)2(24

1

0

)2(4

1

11

2

2221

1

1211

2

2221

1

121

2

221

n

nk

n

nknk

n

nknk

n

nknk

n

nkk

n

nkk

xWWW

WxWWW

xWWX

104

44

12 == WW nk12

24 WW =

신호

흐름도

(signal flow graph)

Page 16: Chapter 7 Discrete and Fast Fourier Transformbmsp.chonbuk.ac.kr/lect/2009_2/Digital signal processing/SignalProcessing_07.pdf · 고속 푸리에 변환 나비와 회전 요소를

한 개의 덧셈과 한 개의 뺄셈

나비와

회전요소가

결합

고속

푸리에

변환

나비

(FFT butterfly)

Page 17: Chapter 7 Discrete and Fast Fourier Transformbmsp.chonbuk.ac.kr/lect/2009_2/Digital signal processing/SignalProcessing_07.pdf · 고속 푸리에 변환 나비와 회전 요소를

8점, 기수

2인

시분할

고속

푸리에

변환은

0과

1인

6개의

독립

변수를

가진

인덱스

표로

정의

n = 4n1

+ 2n2

+ n3

및 k = k1

+ 2k2

+ 4k3 (7.41)

(a) n과

k의

인덱스

표를

만들고, 출력이

원래

순서로

나올

순서가

바뀐

입력

순서를

표현

(b) 가중치가

W8

승수로

표현되는

고속

푸리에

변환의

신호

흐름도를

작성

(c) 2점

고속

푸리에

변환

나비와

회전

요소를

고려하여

신호

흐름도를

재구성하고

FFT의

경우

필요한

복소수

곱셈

계산의

수를

계산

풀이

(a)

순서가

바뀐

입력

순서 원래

순서의

출력

예제

7.1

Page 18: Chapter 7 Discrete and Fast Fourier Transformbmsp.chonbuk.ac.kr/lect/2009_2/Digital signal processing/SignalProcessing_07.pdf · 고속 푸리에 변환 나비와 회전 요소를

(b)

∑∑∑

∑ ∑ ∑

===

= = =

++

=

=

1

0

48

1

0

28

1

08

1

0

1

0

1

0

)24(8

1

1

2

2

3

3

3 2 1

321

n

kn

n

kn

n

kn

n n n

nnnk

xWWW

xWX

예제

7.1

(c)

-

W84 = -1이므로

W86 = W84 W82 = (-1) W82

-

-1이

기본

나비

안에

결합

- W82는 회전 요소

Page 19: Chapter 7 Discrete and Fast Fourier Transformbmsp.chonbuk.ac.kr/lect/2009_2/Digital signal processing/SignalProcessing_07.pdf · 고속 푸리에 변환 나비와 회전 요소를

입력

순서를

바꾸었으나, 만약

출력

순서를

바꾼다면

입력

순서를

바꾸지

않아도

된다

입력

출력

순서의

변환

Page 20: Chapter 7 Discrete and Fast Fourier Transformbmsp.chonbuk.ac.kr/lect/2009_2/Digital signal processing/SignalProcessing_07.pdf · 고속 푸리에 변환 나비와 회전 요소를

-

시분할과

반대

-

주파수

영역에서

시분할

방법에

대한

이원적(opposite or dual)쌍

-

입력값

대신

출력값이

분할

∑∑

∑∑

∑ ∑

==

==

= =

+

=

+=

=

=

=

1

04

24

1

04

1

04

1

0

24

1

0

1

0

)2(421

3

04

1

1

1

1

1

1

2

2

2 1

21

1

],[

][][

n

knk

n

kn

n

kn

n

kn

n n

nnk

n

kn

xWWxW

xWWX

Wnnx

WnxkX

n = n1 + 2n2 , k = 2k1 + k2 , X = X[n1 , n2 ]

주파수

분할

(DIF, decimation in frequency) FFT

Page 21: Chapter 7 Discrete and Fast Fourier Transformbmsp.chonbuk.ac.kr/lect/2009_2/Digital signal processing/SignalProcessing_07.pdf · 고속 푸리에 변환 나비와 회전 요소를

{ } { }kkk WxxWWxxX 42

44 ]3[]2[]1[]0[ +++=

주파수

분할

(DIF, decimation in frequency) FFT

{ } Fmmm

mmm

TqXpXqXqXpXpX

)()()()()()(

1

1

−=+=

+

+

Page 22: Chapter 7 Discrete and Fast Fourier Transformbmsp.chonbuk.ac.kr/lect/2009_2/Digital signal processing/SignalProcessing_07.pdf · 고속 푸리에 변환 나비와 회전 요소를

주파수

분할

고속

푸리에

변환에서

8점, 기수

2, 조건을

갖는

인덱스

대응식은

n = n1

+ 2n2

+ 4n3

및 k = 4k1

+ 2k2

+ k3

-

FFT에

대한

신호

흐름도를

그리고

W8

승수로

모든

가지의

가중치를

나타내시오

-

기본적인

2점

FFT의

나비선도와

회전

요소를

이용해서

다른

형태의

신호

흐름도를

그리시오

(데이터의

순서

바뀜은

출력에만

존재한다고

가정)

풀이

∑∑∑

∑∑∑

===

=

++

==

=

=

1

08

1

0

28

1

0

48

1

0

)421(8

1

0

1

0

1

1

2

2

3

3

1

32

23

n

kn

n

kn

n

kn

n

nnnk

nn

xWWW

xWX

예제

7.2

Page 23: Chapter 7 Discrete and Fast Fourier Transformbmsp.chonbuk.ac.kr/lect/2009_2/Digital signal processing/SignalProcessing_07.pdf · 고속 푸리에 변환 나비와 회전 요소를

- W87

= W84

W83

= (-1) W83

예제

7.2

Page 24: Chapter 7 Discrete and Fast Fourier Transformbmsp.chonbuk.ac.kr/lect/2009_2/Digital signal processing/SignalProcessing_07.pdf · 고속 푸리에 변환 나비와 회전 요소를

-

16점

고속

푸리에

변환

경우

N = 16, N1

= N2

= 4

인덱스

대응식

: n = 4n1

+ n2

k = k1

+4k2

입력

순서

0, 4, 8, 12, 1, 5, 9, 13, 2, 6, 10, 14, 3, 7, 11, 15

Page 25: Chapter 7 Discrete and Fast Fourier Transformbmsp.chonbuk.ac.kr/lect/2009_2/Digital signal processing/SignalProcessing_07.pdf · 고속 푸리에 변환 나비와 회전 요소를

DFT 특성