Multiplierless DFT Approximation Based on the Prime Factor Algorithm

Multiplierless DFT Approximation Based on the Prime Factor Algorithm

๐Ÿ“ Abstract

**
๋ณธ ๋…ผ๋ฌธ์€ ์†Œ์ˆ˜์ธ์ž ์•Œ๊ณ ๋ฆฌ์ฆ˜(Prime Factor Algorithm, PFA)์„ ๊ธฐ๋ฐ˜์œผ๋กœ, ์ค‘๊ฐ„ ๋‹จ๊ณ„์˜ ๊ณฑ์…ˆ์„ ์ „ํ˜€ ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š” DFT ๊ทผ์‚ฌ ๋ฐฉ๋ฒ•์„ ์ œ์•ˆํ•œ๋‹ค. ๊ธฐ์กด์˜ Cooleyโ€‘Tukey ๊ธฐ๋ฐ˜ ๊ทผ์‚ฌ ๋ฐฉ์‹์€ ์ž‘์€ ๋ธ”๋ก ๊ธธ์ด์˜ ๊ทผ์‚ฌ ๋ณ€ํ™˜์„ ์žฌ์‚ฌ์šฉํ•˜์ง€๋งŒ, ํŠธ์œ„๋“ค ํŒฉํ„ฐ(twiddle factor) ๊ณฑ์…ˆ์„ ๊ทธ๋Œ€๋กœ ๋‚จ๊ฒจ ๋‘์–ด ์™„์ „ํ•œ ๋ฌด๊ณฑ์…ˆ ๊ตฌํ˜„์ด ์–ด๋ ต๋‹ค. ์ €์ž๋Š” 3โ€‘์ , 11โ€‘์ , 31โ€‘์  DFT ๊ทผ์‚ฌ๋ฅผ ๊ฐ๊ฐ ์„ค๊ณ„ํ•˜๊ณ , ์ด๋ฅผ PFA์˜ ์ค‘๊ตญ ๋‚˜๋จธ์ง€ ์ •๋ฆฌ ๋งคํ•‘์„ ํ†ตํ•ด 1023โ€‘์  DFT(=3ยท11ยท31)๋กœ ํ™•์žฅํ•œ๋‹ค. ์ œ์•ˆ๋œ ๋ณ€ํ™˜์€ ํ–‰๋ ฌ ์›์†Œ๊ฐ€ {0,โ€ฏยฑ1,โ€ฏยฑยฝ} ๋กœ ์ œํ•œ๋˜๊ณ , ์Šค์ผ€์ผ๋ง ์ƒ์ˆ˜๋Š” ์ตœ๋Œ€ ๋‘ ๋ฒˆ์˜ ๋น„ํŠธโ€‘์‹œํ”„ํŠธ๋กœ ํ‘œํ˜„ํ•œ๋‹ค. ์‹คํ—˜ ๊ฒฐ๊ณผ, ์—ฐ์‚ฐ ๋ณต์žก๋„๋Š” ๊ธฐ์กด ์ตœ์ฒจ๋‹จ ๋ฐฉ๋ฒ•๋ณด๋‹ค ํฌ๊ฒŒ ๊ฐ์†Œํ–ˆ์œผ๋ฉฐ(๋ง์…ˆยท๊ณฑ์…ˆ ์ˆ˜ ๋ชจ๋‘ ๊ฐ์†Œ), ๊ทผ์‚ฌ ์˜ค์ฐจ ์ง€ํ‘œ(MSE, MAPE, ์ •๊ทœ์„ฑ ํŽธ์ฐจ)์—์„œ๋„ ์šฐ์ˆ˜ํ•œ ์„ฑ๋Šฅ์„ ๋ณด์˜€๋‹ค.

**

๐Ÿ’ก Deep Analysis

**

1. ์—ฐ๊ตฌ ๋ฐฐ๊ฒฝ ๋ฐ ํ•„์š”์„ฑ

  • DFT์˜ ์‹ค์‹œ๊ฐ„ยท์ €์ „๋ ฅ ์š”๊ตฌ: ๋ฌด์„ ํ†ต์‹ , ์ž„๋ฒ ๋””๋“œ ์‹œ์Šคํ…œ, IoT ๋“ฑ ์ „๋ ฅยท์—ฐ์‚ฐ ์ œํ•œ์ด ์‹ฌํ•œ ํ™˜๊ฒฝ์—์„œ FFT์˜ ๋‚จ์€ ์—ฐ์‚ฐ๋Ÿ‰(ํŠนํžˆ ์‹ค์ˆ˜ ๊ณฑ์…ˆ)์€ ์—ฌ์ „ํžˆ ๋ณ‘๋ชฉ์ด ๋œ๋‹ค.
  • ๊ธฐ์กด ๋ฌด๊ณฑ์…ˆ ์ ‘๊ทผ๋ฒ•์˜ ํ•œ๊ณ„: Cooleyโ€‘Tukey ๊ธฐ๋ฐ˜ ๊ทผ์‚ฌ๋Š” ์ž‘์€ ๋ธ”๋ก์˜ ๋ฌด๊ณฑ์…ˆ ๊ทผ์‚ฌ๋ฅผ ์žฌ์‚ฌ์šฉํ•˜์ง€๋งŒ, ํŠธ์œ„๋“ค ํŒฉํ„ฐ๋Š” ๊ทธ๋Œ€๋กœ ๋‚จ์•„ ์ „์ฒด ๋ณ€ํ™˜์ด ์™„์ „ ๋ฌด๊ณฑ์…ˆ์ด ๋˜์ง€ ์•Š๋Š”๋‹ค. ํŠธ์œ„๋“ค ํŒฉํ„ฐ๋ฅผ ๊ทผ์‚ฌํ•˜๋ฉด ์˜ค์ฐจ ์ „ํŒŒ๊ฐ€ ๊ธ‰๊ฒฉํžˆ ์ฆ๊ฐ€ํ•œ๋‹ค.

2. ํ•ต์‹ฌ ์•„์ด๋””์–ด

  • ์†Œ์ˆ˜์ธ์ž ์•Œ๊ณ ๋ฆฌ์ฆ˜(PFA) ํ™œ์šฉ: PFA๋Š” N = Nโ‚ยทNโ‚‚ (gcd(Nโ‚,Nโ‚‚)=1)์ธ ๊ฒฝ์šฐ, ํŠธ์œ„๋“ค ํŒฉํ„ฐ ์—†์ด 2โ€‘์ฐจ์› ์žฌ์ธ๋ฑ์‹ฑ๋งŒ์œผ๋กœ DFT๋ฅผ ๋ถ„ํ•ดํ•œ๋‹ค. ์ด๋Š” โ€œ๊ณฑ์…ˆ์ด ์ „ํ˜€ ์—†๋Š”โ€ ๊ตฌ์กฐ๋ฅผ ์ œ๊ณตํ•œ๋‹ค.
  • ์†Œ์ˆ˜ ํฌ๊ธฐ์˜ ๊ทผ์‚ฌ ๋ณ€ํ™˜ ์„ค๊ณ„: 3,โ€ฏ11,โ€ฏ31์  DFT๋ฅผ ๊ฐ๊ฐ ๋ฌด๊ณฑ์…ˆ ๊ทผ์‚ฌ(ํ–‰๋ ฌ ์›์†Œ โˆˆ {0,โ€ฏยฑ1,โ€ฏยฑยฝ})๋กœ ์„ค๊ณ„ํ•˜๊ณ , ์ด๋ฅผ PFA์˜ โ€œground transformโ€์œผ๋กœ ์‚ฌ์šฉํ•œ๋‹ค.
  • ํ™•์žฅ์„ฑ: PFA๋Š” ์ค‘๊ตญ ๋‚˜๋จธ์ง€ ์ •๋ฆฌ(CRT)๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ํ•˜๋ฏ€๋กœ, N์ด ์„œ๋กœ์†Œ ์†Œ์ธ์ˆ˜๋“ค์˜ ๊ณฑ์œผ๋กœ ํ‘œํ˜„๋  ์ˆ˜ ์žˆ์œผ๋ฉด ์–ธ์ œ๋“  ํ™•์žฅ ๊ฐ€๋Šฅํ•˜๋‹ค. 1023=3ยท11ยท31 ์™ธ์—๋„ 2ยท5ยท13=130, 2ยท3ยท5ยท17=510 ๋“ฑ ๋‹ค์–‘ํ•œ ๋น„2โฟ ๊ธธ์ด์— ์ ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.

3. ๋ฐฉ๋ฒ•๋ก  ์ƒ์„ธ

๋‹จ๊ณ„ ๋‚ด์šฉ
(a) ์ €๋ณต์†Œ์ˆ˜ ๊ทผ์‚ฌ ํ–‰๋ ฌ ์ƒ์„ฑ ์›๋ณธ DFT ํ–‰๋ ฌ F_N์— ํ™•์žฅ ๊ณ„์ˆ˜ ฮฑ์™€ ์ •์ˆ˜ํ™” ํ•จ์ˆ˜ g(ยท)๋ฅผ ์ ์šฉํ•ด ์ €๋ณต์†Œ์ˆ˜ ํ–‰๋ ฌ T_N์„ ๋งŒ๋“ ๋‹ค. P={โ€‘1,0,1,โ€‘ยฝ,ยฝ} ๋กœ ์ œํ•œ.
(b) ํด๋ผ ๋””์ปดํฌ์ง€์…˜ T_N์„ ์ €๋ณต์†Œ์ˆ˜ ํ–‰๋ ฌ๊ณผ ์‹ค์ˆ˜ ๋Œ€๊ฐ ํ–‰๋ ฌ S_N์œผ๋กœ ๋ถ„ํ•ดํ•ด ๊ทผ์‚ฌ DFT F*_N = S_NยทT_N ๋ฅผ ์–ป๋Š”๋‹ค.
(c) ๋‹ค์ค‘ ๊ธฐ์ค€ ์ตœ์ ํ™” ์ด ์˜ค์ฐจ ์—๋„ˆ์ง€, MAPE, ์ •๊ทœ์„ฑ ํŽธ์ฐจ๋ฅผ ๋™์‹œ์— ์ตœ์†Œํ™”ํ•˜๋Š” ๋‹ค๋ชฉ์  ์ตœ์ ํ™” ๋ฌธ์ œ๋ฅผ ํ’€์–ด ์ตœ์  ฮฑ์™€ g(ยท)๋ฅผ ์ฐพ๋Š”๋‹ค.
(d) PFA ๊ธฐ๋ฐ˜ ์กฐํ•ฉ 3โ€‘์ , 11โ€‘์ , 31โ€‘์  ๊ทผ์‚ฌ ๋ณ€ํ™˜์„ ๊ฐ๊ฐ ์—ดยทํ–‰ ๋ณ€ํ™˜์œผ๋กœ ๋ฐฐ์น˜ํ•ด 1023โ€‘์  ๋ณ€ํ™˜์„ ์™„์ „ ๋ฌด๊ณฑ์…ˆ์œผ๋กœ ๊ตฌํ˜„ํ•œ๋‹ค.
(e) ์Šค์ผ€์ผ๋งยท์‹œํ”„ํŠธ ์ฒ˜๋ฆฌ ์ตœ์ข… ์Šค์ผ€์ผ๋ง์€ 2โ€‘๋น„ํŠธ ์‹œํ”„ํŠธ(ยฝยท2) ์ดํ•˜๋กœ ์ œํ•œํ•ด ํ•˜๋“œ์›จ์–ด ๊ตฌํ˜„ ์‹œ ๋ ˆ์ดํ„ด์‹œยท์ „๋ ฅ ์ ˆ๊ฐ ํšจ๊ณผ๋ฅผ ๊ทน๋Œ€ํ™”ํ•œ๋‹ค.

4. ์„ฑ๋Šฅ ํ‰๊ฐ€

  • ์—ฐ์‚ฐ ๋ณต์žก๋„
    • ์ œ์•ˆ 1023โ€‘์  ๊ทผ์‚ฌ: ๋ง์…ˆ 9,873ํšŒ, ์‹ค์ˆ˜ ๊ณฑ์…ˆ 0ํšŒ (๋น„ํŠธโ€‘์‹œํ”„ํŠธ๋งŒ)
    • ๊ธฐ์กด Cooleyโ€‘Tukey ๊ธฐ๋ฐ˜ 1024โ€‘์  ๊ทผ์‚ฌ

๐Ÿ“„ Full Content

์ด์‚ฐ ํ‘ธ๋ฆฌ์— ๋ณ€ํ™˜(DFT)์€ ์‹ ํ˜ธ ์ฒ˜๋ฆฌ ๋ถ„์•ผ์˜ ํ•ต์‹ฌ ๋„๊ตฌ์ด๋ฉฐ[9] ์ŠคํŽ™ํŠธ๋Ÿผ ๋ถ„์„[74], ํ•„ํ„ฐ๋ง[64], ๋ฐ์ดํ„ฐ ์••์ถ•[69], ๋น ๋ฅธ ์ปจ๋ณผ๋ฃจ์…˜[11]** ๋“ฑ ๋งค์šฐ ๋‹ค์–‘ํ•œ ๋งฅ๋ฝ์—์„œ ํ™œ์šฉ๋ฉ๋‹ˆ๋‹ค. DFT๊ฐ€ ๋„๋ฆฌ ์‚ฌ์šฉ๋˜๋Š” ์ด์œ ๋Š” ๊ทธ ๋ฌผ๋ฆฌ์  ํ•ด์„์ด ํ’๋ถ€ํ•˜๊ณ **[10], ํšจ์œจ์ ์ธ ๊ณ„์‚ฐ ๋ฐฉ๋ฒ•์ด ์กด์žฌํ•˜๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค[61]. N์  DFT๋ฅผ ์ง์ ‘ ๊ณ„์‚ฐํ•˜๋ฉด ์—ฐ์‚ฐ ๋ณต์žก๋„๊ฐ€ O(Nยฒ) ๋กœ ๋งค์šฐ ๋น„์‹ธ์ง€๋งŒ[35], FFT๋ผ ๋ถˆ๋ฆฌ๋Š” O(Nโ€ฏlogโ€ฏN) ๋ณต์žก๋„์˜ ๋น ๋ฅธ ์•Œ๊ณ ๋ฆฌ์ฆ˜๋“ค[10,15,61]์ด ์ด๋ฅผ ํฌ๊ฒŒ ๊ฐ์†Œ์‹œํ‚ต๋‹ˆ๋‹ค[6,15]**.

๋ณต์žก๋„๊ฐ€ ํฌ๊ฒŒ ์ค„์–ด๋“ค์—ˆ์Œ์—๋„ ๋ถˆ๊ตฌํ•˜๊ณ , ์—ฐ์‚ฐ ์ž์›์ด๋‚˜ ์ „๋ ฅ ์ž์œจ์„ฑ์ด ํฌ๊ฒŒ ์ œํ•œ๋œ ํ™˜๊ฒฝ์—์„œ๋Š” ๋‚จ์€ ์—ฐ์‚ฐ๋Ÿ‰๋„ ์—ฌ์ „ํžˆ ์ค‘์š”ํ•œ ๋ถ€๋‹ด์ด ๋ฉ๋‹ˆ๋‹ค**[48]. ์ด๋Ÿฌํ•œ ์ œ์•ฝ์€ ๋ฌด์„  ํ†ต์‹ [54,85], ์ž„๋ฒ ๋””๋“œ ์‹œ์Šคํ…œ[44,49], ์‚ฌ๋ฌผ์ธํ„ฐ๋„ท(IoT)[50,73]** ๋“ฑ์—์„œ ํ”ํžˆ ๋‚˜ํƒ€๋‚ฉ๋‹ˆ๋‹ค.

์ด์‚ฐ ์ฝ”์‚ฌ์ธ ๋ณ€ํ™˜(DCT)์˜ ๊ทผ์‚ฌํ™”์— ๋Œ€ํ•œ ์„ฑ๊ณต์ ์ธ ์—ฐ๊ตฌ[5,7,8,12,19,21,22,33]์— ์˜๊ฐ์„ ๋ฐ›์•„[75], Nโ€ฏ=โ€ฏ8,โ€ฏ16,โ€ฏ32์— ๋Œ€ํ•ด ๊ณฑ์…ˆ ์—†์ด ๊ตฌํ˜„ ๊ฐ€๋Šฅํ•œ DFT ๊ทผ์‚ฌ ์ง‘ํ•ฉ์ด ์ œ์‹œ๋˜์—ˆ์Šต๋‹ˆ๋‹ค[2,20,46,52,53,76]. ์ด ๊ทผ์‚ฌ DFT๋Š” ์ •ํ™•ํ•œ DFT์™€ ๊ฑฐ์˜ ๋™์ผํ•œ ์ŠคํŽ™ํŠธ๋Ÿผ ์ถ”์ •๊ฐ’์„ ์ œ๊ณตํ•˜๋ฉด์„œ, ์‹ค์ˆ˜ ์ž…๋ ฅ์— ๋Œ€ํ•ด์„œ๋Š” ๊ฐ๊ฐ 26,โ€ฏ54,โ€ฏ144๊ฐœ์˜ ๋ง์…ˆ๋งŒ์„ ํ•„์š”๋กœ ํ•ฉ๋‹ˆ๋‹ค[20,75]. ์ผ๋ฐ˜์ ์œผ๋กœ ์ •ํ™•ํ•œ ๋ณ€ํ™˜๊ณผ ๊ฑฐ์˜ ๋™์ผํ•œ ์„ฑ๋Šฅ์„ ๋ณด์ด๋Š” ๊ทผ์‚ฌ ๋ณ€ํ™˜์„ ์ฐพ๋Š” ์ผ์€ ์ •์ˆ˜ ๋น„์„ ํ˜• ํ–‰๋ ฌ ์ตœ์ ํ™” ๋ฌธ์ œ(๋ณ€์ˆ˜ ์ˆ˜๊ฐ€ ๋งŽ์Œ)๋กœ ์ œ์‹œ๋˜๊ธฐ ๋•Œ๋ฌธ์— ๋งค์šฐ ์–ด๋ ค์šด ๊ณผ์ œ์ด๋ฉฐ[27], N์ด ์ปค์งˆ์ˆ˜๋ก ์ข‹์€ ๊ทผ์‚ฌ๋ฅผ ์–ป๋Š” ๋‚œ์ด๋„๋Š” ๊ธ‰๊ฒฉํžˆ ์ƒ์Šนํ•ฉ๋‹ˆ๋‹ค[65]**. ๋”ฐ๋ผ์„œ ๊ธฐ์กด ์—ฐ๊ตฌ์ž๋“ค์€ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๊ฐ„์ ‘์ ์ธ ๋ฐฉ๋ฒ•์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

  1. ์ž‘์€ ํฌ๊ธฐ์˜ DFT ํ–‰๋ ฌ๊ณผ ํฐ ํฌ๊ธฐ์˜ DFT ํ–‰๋ ฌ ์‚ฌ์ด์˜ ์ˆ˜ํ•™์  ๊ด€๊ณ„[15]
  2. ํ–‰๋ ฌ ํ•จ์ˆ˜ ์žฌ๊ท€์‹[62]
  3. ํ–‰๋ ฌ ๋ถ„ํ•ด[70]

๋Œ€๊ทœ๋ชจ ๋ธ”๋ก์— ๋Œ€ํ•œ ์ข‹์€ DFT ๊ทผ์‚ฌ๋ฅผ ์ฒด๊ณ„์ ์œผ๋กœ ๋„์ถœํ•˜๋Š” ๋ฌธ์ œ๋Š” ์•„์ง๋„ ํ•ด๊ฒฐ๋˜์ง€ ์•Š์€ ๊ณผ์ œ๋กœ, ์ •์ˆ˜ ํ–‰๋ ฌ์„ ์ฐพ๋Š” ๊ณผ์ •์—์„œ ๋ฐœ์ƒํ•˜๋Š” ์ˆ˜์น˜์  ์–ด๋ ค์›€ ๋•Œ๋ฌธ์— ์‚ฌ๋ก€๋ณ„๋กœ ์ง„ํ–‰๋˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

์ด๋Ÿฌํ•œ ๊ฐ„์ ‘ ์ ‘๊ทผ๋ฒ•์„ ๋”ฐ๋ผ, **[20,75]**์—์„œ ์ œ์‹œ๋œ 32์  DFT ๊ทผ์‚ฌ๋Š” **[53]**์—์„œ ์ œ์‹œ๋œ 1024์  DFT ๊ทผ์‚ฌ์˜ ๊ธฐ๋ณธ ๋ธ”๋ก์œผ๋กœ ์‚ฌ์šฉ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๋ณ€ํ™˜์„ ๋” ํฐ ๊ทœ๋ชจ๋กœ ํ™•์žฅํ•  ๋•Œ DFT๋Š” ground transformation์ด๋ผ๊ณ  ๋ถˆ๋ฆฝ๋‹ˆ๋‹ค. [53]์˜ ๋ฐฉ๋ฒ•์€ Cooleyโ€‘Tukey ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ์žฌํ•ด์„ํ•˜์—ฌ ์ฃผ์–ด์ง„ 32์  DFT ๊ทผ์‚ฌ๋ฅผ (32^{2})โ€‘์  DFT ๊ทผ์‚ฌ๋กœ ํ™•์žฅํ•ฉ๋‹ˆ๋‹ค. Cooleyโ€‘Tukey ์•Œ๊ณ ๋ฆฌ์ฆ˜์€ 1024์  DFT๋ฅผ 2โ€ฏร—โ€ฏ32๊ฐœ์˜ 32์  DFT ์ธ์Šคํ„ด์Šค๋กœ ๊ตฌํ˜„ํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” 2์ฐจ์› ๋งคํ•‘์— ๊ธฐ๋ฐ˜ํ•ฉ๋‹ˆ๋‹ค[25]. ๊ทธ๋Ÿฌ๋‚˜ ๊ณฑ์…ˆ์ด ์—†๋Š” 32์  DFT ๊ทผ์‚ฌ๋ฅผ ์‚ฌ์šฉํ•˜๋”๋ผ๋„ [53]์—์„œ ์ œ์•ˆ๋œ 1024์  DFT ๊ทผ์‚ฌ๋Š” ๊ณฑ์…ˆ์ด ์™„์ „ํžˆ ์‚ฌ๋ผ์ง€์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์ „ํ†ต์ ์ธ Cooleyโ€‘Tukey ์•Œ๊ณ ๋ฆฌ์ฆ˜์— ์กด์žฌํ•˜๋Š” twiddle factor๊ฐ€ ๊ทธ๋Œ€๋กœ ๋‚จ์•„ ์žˆ๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค[61]. ๊ฒฐ๊ณผ์ ์œผ๋กœ **[53]**์˜ ์ตœ์  Cooleyโ€‘Tukey ๊ธฐ๋ฐ˜ 1024์  DFT ๊ทผ์‚ฌ๋Š” 2883๊ฐœ์˜ ์‹ค์ˆ˜ ๊ณฑ์…ˆ๊ณผ 25155๊ฐœ์˜ ๋ง์…ˆ์„ ํ•„์š”๋กœ ํ•˜๋ฉฐ, ์ด๋Š” ์ •ํ™•ํ•œ Cooleyโ€‘Tukey ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๋Œ€๋น„ ๊ฐ๊ฐ **72โ€ฏ%**์™€ 18โ€ฏ%์˜ ์—ฐ์‚ฐ ๊ฐ์†Œ์— ํ•ด๋‹นํ•ฉ๋‹ˆ๋‹ค[6].


๋…ผ๋ฌธ์˜ ๋ชฉํ‘œ

๋ณธ ๋…ผ๋ฌธ์€ ์™„์ „ํ•œ ๊ณฑ์…ˆโ€‘์—†๋Š”(๋ฉ€ํ‹ฐํ”Œ๋ผ์ด์–ด๋ฆฌ์Šค) ๋Œ€๊ทœ๋ชจ DFT ๊ทผ์‚ฌ๋ฅผ ์„ค๊ณ„ํ•˜๊ธฐ ์œ„ํ•œ ํ”„๋ ˆ์ž„์›Œํฌ๋ฅผ ์ œ์‹œํ•˜๋Š” ๊ฒƒ์„ ๋ชฉํ‘œ๋กœ ํ•ฉ๋‹ˆ๋‹ค. ๊ณ ์ •์†Œ์ˆ˜์  ์—ฐ์‚ฐ์—์„œ๋Š” ์ด๋ก ์ ์œผ๋กœ ๋ชจ๋“  ๊ณฑ์…ˆ์„ dyadic(2์˜ ๊ฑฐ๋“ญ์ œ๊ณฑ) ํ•ญ๋“ค์˜ ํ•ฉ์œผ๋กœ ํ‘œํ˜„ํ•  ์ˆ˜ ์žˆ์ง€๋งŒ, ์—ฌ๊ธฐ์„œ๋Š” **[12]**์™€ ์ผ๊ด€๋˜๊ฒŒ โ€œ๊ณฑ์…ˆโ€‘์—†๋Š”โ€์„ ๋ง์…ˆ ์ˆ˜๋ฅผ ์ตœ์†Œํ™”ํ•˜๋Š” ๋ณด๋‹ค ์ œํ•œ์ ์ธ ์˜๋ฏธ๋กœ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ๊ตฌ์ฒด์ ์œผ๋กœ, ํ–‰๋ ฌ ์›์†Œ๋Š” {0,โ€ฏยฑ1,โ€ฏยฑยฝ} ์ค‘ ํ•˜๋‚˜๋ฅผ ์ทจํ•˜๊ณ , ์Šค์ผ€์ผ๋ง ์ƒ์ˆ˜๋Š” ์ตœ๋Œ€ ๋‘ ๋ฒˆ์˜ ๋ง์…ˆ์œผ๋กœ ํ‘œํ˜„๋˜๋Š” dyadic ํ˜•ํƒœ๋กœ ์ œํ•œํ•ฉ๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ๊ธฐ์ค€์€ ๋ง์…ˆ๊ณผ ๋น„ํŠธโ€‘์‹œํ”„ํŠธ ์—ฐ์‚ฐ๋งŒ์„ ์‚ฌ์šฉํ•จ์œผ๋กœ์จ ์นฉ ๋ฉด์ , ์ „๋ ฅ ์†Œ๋ชจ, ์ง€์—ฐ ์‹œ๊ฐ„์„ ์ตœ์†Œํ™”ํ•˜๋ ค๋Š” ์‹ค์šฉ์ ์ธ ๋ชฉ์ ์— ๋ถ€ํ•ฉํ•ฉ๋‹ˆ๋‹ค[2].

์ด๋ฅผ ์œ„ํ•ด ์†Œ์ˆ˜ ์ธ์ž ์•Œ๊ณ ๋ฆฌ์ฆ˜(PFA)[31,78] (Goodโ€‘Thomas ์•Œ๊ณ ๋ฆฌ์ฆ˜) ์„ ํ™œ์šฉํ•ฉ๋‹ˆ๋‹ค. PFA๋Š” twiddle factor์™€ ๊ฐ™์€ ์ค‘๊ฐ„ ์—ฐ์‚ฐ ์—†์ด DFT๋ฅผ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ๋Š” ์ˆ˜๋ก ์  ํŠน์„ฑ์„ ๊ฐ€์ง€๊ณ  ์žˆ์–ด, ์Šค์ผ€์ผ๋Ÿฌ๋ธ”ํ•˜๊ณ  ๊ณฑ์…ˆโ€‘์—†๋Š” ๊ทผ์‚ฌ๋ฅผ ๋งŒ๋“ค๊ธฐ์— ์ ํ•ฉํ•ฉ๋‹ˆ๋‹ค. PFA๋Š” 2์˜ ๊ฑฐ๋“ญ์ œ๊ณฑ์ด ์•„๋‹Œ ๋ธ”๋ก ๊ธธ์ด์—์„œ๋„ ์ ์šฉ ๊ฐ€๋Šฅํ•˜๋‹ค๋Š” ์ ์ด ํŠน์ง•์ด๋ฉฐ, ์ด๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์‘์šฉ ๋ถ„์•ผ์—์„œ ํฐ ์žฅ์ ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

์ ์šฉ ๋ถ„์•ผ ์˜ˆ์‹œ
๋น”ํฌ๋ฐยทDOA ์ถ”์ • [1,60,68,71,79,81]
5G ๋ฐฉ์†ก (2โฟยท3แต ํฌ์ธํŠธ) [24]
ํ•˜์ด๋ธŒ๋ฆฌ๋“œ ์•Œ๊ณ ๋ฆฌ์ฆ˜ [42,72]
๋””์ง€ํ„ธ ๋ผ๋””์˜ค (๊ธธ์ด ๊ณ ์ •) [23,39,43,47]
์ฑ„๋„ ์ดํ€„๋ผ์ด์ง• [13,45]
LTEยทMIMOโ€‘OFDM ๋“ฑ ๊ฐ€๋ณ€ ๊ธธ์ด [17,83]

์˜ˆ๋ฅผ ๋“ค์–ด, ์ „ํ†ต์ ์ธ radixโ€‘2 FFT๊ฐ€ ์‚ฌ์šฉํ•˜๋Š” 128,โ€ฏ512,โ€ฏ1024,โ€ฏ2048 ๋“ฑ์€ 2โ€ฏร—โ€ฏ5โ€ฏร—โ€ฏ13 (130), 2โ€ฏร—โ€ฏ3โ€ฏร—โ€ฏ5โ€ฏร—โ€ฏ17 (510), 1023, 2โ€ฏร—โ€ฏ3โ€ฏร—โ€ฏ11โ€ฏร—โ€ฏ31 (2046) ๋“ฑ์œผ๋กœ ๋Œ€์ฒด๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋น„๋ก 2์˜ ๊ฑฐ๋“ญ์ œ๊ณฑ ์•Œ๊ณ ๋ฆฌ์ฆ˜์ด ์ผ๋ฐ˜์ ์ด์ง€๋งŒ, ์ „์ฒด ์—ฐ์‚ฐ ์ˆ˜๊ฐ€ ์ตœ์ข… ์„ฑ๋Šฅ์„ ์ขŒ์šฐํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋ณธ ๋…ผ๋ฌธ์—์„œ๋Š” Nโ€ฏ=โ€ฏ1023์ด๋ผ๋Š” ๋Œ€ํ‘œ์ ์ธ ๋น„ 2โ€‘๊ฑฐ๋“ญ์ œ๊ณฑ ์‚ฌ๋ก€๋ฅผ ์„ ํƒํ•˜์—ฌ, **[53]**์—์„œ ์ œ์‹œ๋œ ์ตœ์‹  ๋Œ€๊ทœ๋ชจ DFT ๊ทผ์‚ฌ์™€ ์ง์ ‘ ๋น„๊ตํ•จ์œผ๋กœ์จ ์ œ์•ˆ ๋ฐฉ๋ฒ•์˜ ์žฅ์ ์„ ๊ฐ•์กฐํ•ฉ๋‹ˆ๋‹ค. **[53]์€ ์ €์ „๋ ฅ ๋น”ํฌ๋ฐ ๊ตฌํ˜„์„ ์œ„ํ•œ ์‹คํ—˜์  ๋ฒค์น˜๋งˆํฌ๋ฅผ ์ œ๊ณตํ•˜๊ณ  ์žˆ์–ด, ์ง์ ‘์ ์ธ ๋น„๊ต๊ฐ€ ์˜๋ฏธ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ๋˜ํ•œ SOPOT(Sumโ€‘ofโ€‘Powersโ€‘ofโ€‘Two) ๊ณ„์ˆ˜ ๊ธฐ๋ฐ˜ ๊ทผ์‚ฌ[16]**์™€ **์ŠคํŠธ๋ฆฌ๋ฐ ๊ณฑ์…ˆโ€‘์—†๋Š” FFT(SMULโ€‘FFT)****[58]**์™€ ๊ฐ™์€ ๊ธฐ์กด ๋ฐฉ๋ฒ•๋„ ์ž‘์€ยท์ค‘๊ฐ„ ๊ทœ๋ชจ ๋ณ€ํ™˜์—์„œ๋Š” ํšจ๊ณผ์ ์ด์ง€๋งŒ, ๋ธ”๋ก ๊ธธ์ด๊ฐ€ ์ปค์งˆ์ˆ˜๋ก twiddleโ€‘factor ํ–‰๋ ฌ์˜ ์ˆ˜๊ฐ€ ๊ธ‰์ฆํ•˜์—ฌ ๊ณฑ์…ˆโ€‘์—†๋Š” ์ ‘๊ทผ๋ฒ•์˜ ํšจ์œจ์ด ๋–จ์–ด์ง‘๋‹ˆ๋‹ค.


์ฃผ์š” ๊ธฐ์—ฌ

  1. PFA ๊ธฐ๋ฐ˜์˜ ์™„์ „ ๊ณฑ์…ˆโ€‘์—†๋Š” DFT ๊ทผ์‚ฌ ์„ค๊ณ„
    • ํ–‰๋ ฌ ์›์†Œ๋ฅผ {0,โ€ฏยฑ1,โ€ฏยฑยฝ} ๋กœ ์ œํ•œํ•˜๊ณ , ์Šค์ผ€์ผ๋ง ์ƒ์ˆ˜๋Š” ๋‘ ๋ฒˆ ์ดํ•˜์˜ ๋ง์…ˆ์œผ๋กœ ํ‘œํ˜„.
  2. ์†Œ์ˆ˜ ์ธ์ž ๋ถ„ํ•ด๋ฅผ ์ด์šฉํ•œ ์Šค์ผ€์ผ๋Ÿฌ๋ธ” ๊ตฌ์กฐ
    • ์ค‘๊ตญ ๋‚˜๋จธ์ง€ ์ •๋ฆฌ์— ๊ธฐ๋ฐ˜ํ•œ Goodโ€‘Thomas ๋งคํ•‘์„ ํ™œ์šฉํ•ด ์ž„์˜์˜ ์„œ๋กœ์†Œ ์ธ์ž ์กฐํ•ฉ์— ๋Œ€ํ•ด ์ ์šฉ ๊ฐ€๋Šฅ.
  3. ํ•˜์ด๋ธŒ๋ฆฌ๋“œ ์ „๋žต
    • ground transformation(์˜ˆ: 2โ€‘๊ฑฐ๋“ญ์ œ๊ณฑ ์ธ์ž) ์€ ๊ธฐ์กด radixโ€‘2 FFT๋กœ ์ฒ˜๋ฆฌํ•˜๊ณ , ์†Œ์ˆ˜ ์ธ์ž ๋ถ€๋ถ„๋งŒ PFAโ€‘๊ธฐ๋ฐ˜ ๊ณฑ์…ˆโ€‘์—†๋Š” ๊ทผ์‚ฌ๋กœ ๊ตฌํ˜„.
  4. 1023โ€‘์  DFT ๊ทผ์‚ฌ์˜ ๊ตฌ์ฒด์  ๊ตฌํ˜„ ๋ฐ ํ‰๊ฐ€
    • 3โ€‘์ , 11โ€‘์ , 31โ€‘์  DFT ๊ทผ์‚ฌ๋ฅผ ๊ฐ๊ฐ ์ตœ์ ํ™”ํ•˜๊ณ , ์ด๋ฅผ ์กฐํ•ฉํ•ด 1023โ€‘์  ๊ทผ์‚ฌ๋ฅผ ์™„์„ฑ.
  5. ์—ฐ์‚ฐ ๋ณต์žก๋„์™€ ์ •ํ™•๋„ ๋ถ„์„
    • ์ด ์˜ค๋ฅ˜ ์—๋„ˆ์ง€, MAPE, ์ง๊ต์„ฑ ํŽธ์ฐจ ๋“ฑ ์„ธ ๊ฐ€์ง€ ์ง€ํ‘œ๋ฅผ ๋ณตํ•ฉ์ ์œผ๋กœ ์ตœ์†Œํ™”ํ•˜๋Š” ๋‹ค๋ชฉ์  ์ตœ์ ํ™” ๋ฌธ์ œ๋ฅผ ์ •์˜ํ•˜๊ณ  ํ•ด๊ฒฐ.

๋…ผ๋ฌธ ๊ตฌ์„ฑ

์„น์…˜ ๋‚ด์šฉ
2 DFT์™€ PFA ๊ฐœ์š”
3 ์ œ์•ˆ๋œ DFT ๊ทผ์‚ฌ ๋„์ถœ ๋ฐฉ๋ฒ•๋ก 
4 ๊ตฌ์ฒด์ ์ธ ๊ทผ์‚ฌ ํ–‰๋ ฌ ๋ฐ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์ƒ์„ธ
5 1023โ€‘์  ๊ณฑ์…ˆโ€‘์—†๋Š” DFT ๊ทผ์‚ฌ ์„ค๊ณ„
6 ๋น ๋ฅธ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๋ฐ ์—ฐ์‚ฐ ๋ณต์žก๋„ ๋ถ„์„
7 ๊ทผ์‚ฌ ์˜ค์ฐจ ๋ถ„์„
8 ๊ฒฐ๋ก 

2. DFT์™€ PFA ๊ฐœ์š”

Nโ€‘์  ์ด์‚ฐ ์‹ ํ˜ธ (\mathbf{x} = [x[0],x[1],\dots ,x[N-1]]^{\top}) ์— ๋Œ€ํ•œ DFT๋Š” ๋‹ค์Œ ์‹์œผ๋กœ ์ •์˜๋ฉ๋‹ˆ๋‹ค.

[ X[k]=\sum_{n=0}^{N-1} x[n];W_N^{kn},\qquad k=0,\dots ,N-1, ]

์—ฌ๊ธฐ์„œ (W_N = e^{-j2\pi/N}) ๋Š” N๋ฒˆ์งธ ๋‹จ์œ„ ๋ณต์†Œ์ˆ˜์ด๋ฉฐ, (j^2=-1) ์ž…๋‹ˆ๋‹ค. ์ž…๋ ฅ ์‹ ํ˜ธ๋Š” ์‹ค์ˆ˜์ด๋“  ๋ณต์†Œ์ˆ˜์ด๋“  ๋ชจ๋‘ ์ ์šฉ ๊ฐ€๋Šฅํ•˜์ง€๋งŒ, ๋ณธ ๋…ผ๋ฌธ์—์„œ๋Š” ์ผ๋ฐ˜์ ์ธ ๋ณต์†Œ์ˆ˜ ์ž…๋ ฅ์„ ์ „์ œ๋กœ ํ•ฉ๋‹ˆ๋‹ค.

ํ–‰๋ ฌ ํ˜•ํƒœ๋กœ๋Š”

[ \mathbf{X}= \mathbf{F}_N \mathbf{x}, ]

[ \mathbf{F}N = \bigl[W_N^{mn}\bigr]{m,n=0}^{N-1} ]

์™€ ๊ฐ™์ด ํ‘œํ˜„๋ฉ๋‹ˆ๋‹ค.

Prime Factor Algorithm (PFA) ์€ Cooleyโ€‘Tukey FFT์™€ ๋‹ฌ๋ฆฌ (N = N_1 N_2) (๋‹จ, (\gcd(N_1,N_2)=1)) ์ธ ๊ฒฝ์šฐ์— ์ ์šฉ ๊ฐ€๋Šฅํ•œ ์ธ์ˆ˜๋ถ„ํ•ด ๊ธฐ๋ฐ˜ FFT์ž…๋‹ˆ๋‹ค. ์ž…๋ ฅ ์‹ ํ˜ธ๋ฅผ ์ค‘๊ตญ ๋‚˜๋จธ์ง€ ์ •๋ฆฌ์— ๋”ฐ๋ผ 2์ฐจ์› ๋ฐฐ์—ด ((N_1 \times N_2)) ๋กœ ์žฌ๋ฐฐ์—ดํ•˜๊ณ , ๊ฐ๊ฐ (N_2)-point DFT์™€ (N_1)-point DFT ๋ฅผ ์ˆœ์ฐจ์ ์œผ๋กœ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค. ๊ตฌ์ฒด์ ์ธ ์ ˆ์ฐจ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

  1. (N_1, N_2) ๋ฅผ ๊ตฌํ•œ๋‹ค ((\gcd(N_1,N_2)=1)).
  2. 1โ€‘D ์ž…๋ ฅ (\mathbf{x}) ๋ฅผ (N_1 \times N_2) ๋ธ”๋ก์œผ๋กœ ์žฌ๋ฐฐ์—ดํ•œ๋‹ค.
  3. ๊ฐ ์—ด(column) ์— ๋Œ€ํ•ด (N_2)-point DFT ๋ฅผ ์ˆ˜ํ–‰ํ•œ๋‹ค.
  4. ๊ฐ ํ–‰(row) ์— ๋Œ€ํ•ด (N_1)-point DFT ๋ฅผ ์ˆ˜ํ–‰ํ•œ๋‹ค.
  5. ๊ฒฐ๊ณผ ๋ธ”๋ก์„ ๋‹ค์‹œ 1โ€‘D ๋ฒกํ„ฐ (\mathbf{X}) ๋กœ ๋ณต์›ํ•œ๋‹ค.

๋ชจ๋“  ์ธ๋ฑ์Šค ์—ฐ์‚ฐ์€ modโ€ฏN ์—ฐ์‚ฐ์œผ๋กœ ์ˆ˜ํ–‰๋˜๋ฉฐ, (N_1) ํ˜น์€ (N_2) ๊ฐ€ ๋‹ค์‹œ ์„œ๋กœ์†Œ ์ธ์ˆ˜๋กœ ๋ถ„ํ•ด ๊ฐ€๋Šฅํ•˜๋ฉด ์žฌ๊ท€์ ์œผ๋กœ ์ ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์„œ (N_1)โ€‘point์™€ (N_2)โ€‘point ๋ณ€ํ™˜์„ ground transformation์ด๋ผ ๋ถ€๋ฆ…๋‹ˆ๋‹ค.


3. ๊ทผ์‚ฌ DFT ํ–‰๋ ฌ ์„ค๊ณ„

๊ทผ์‚ฌ DFT ํ–‰๋ ฌ (\mathbf{F}_N^{*}) ์€ ๋‹ค์Œ ์ตœ์ ํ™” ๋ฌธ์ œ๋ฅผ ํ†ตํ•ด ๋„์ถœ๋ฉ๋‹ˆ๋‹ค.

[ \min_{\mathbf{F}_N^{}\in\mathcal{S}} ; \text{error}\bigl(\mathbf{F}_N^{},\mathbf{F}_N\bigr), ]

(\mathcal{S}) ๋Š” ์ €๋ณต์žก๋„ ํ–‰๋ ฌ๋“ค์˜ ํƒ์ƒ‰ ๊ณต๊ฐ„์ด๋ฉฐ, ์˜ค๋ฅ˜ ํ•จ์ˆ˜๋Š” ์ด ์˜ค๋ฅ˜ ์—๋„ˆ์ง€, MAPE, ์ง๊ต์„ฑ ํŽธ์ฐจ ์ค‘ ํ•˜๋‚˜ ํ˜น์€ ๋ณตํ•ฉ์ ์œผ๋กœ ์ •์˜๋ฉ๋‹ˆ๋‹ค.

3โ€‘1. ์ €๋ณต์žก๋„ ํ–‰๋ ฌ ์ƒ์„ฑ

์ €๋ณต์žก๋„ ํ–‰๋ ฌ (\mathbf{T}_N) ์€ ํ™•์žฅ ๊ณ„์ˆ˜ (\alpha) ์™€ ์ •์ˆ˜ํ™” ํ•จ์ˆ˜ (g(\cdot)) ๋ฅผ ์ด์šฉํ•ด

[ \mathbf{T}_N = g\bigl(\alpha \mathbf{F}_N\bigr) ]

์™€ ๊ฐ™์ด ๊ตฌ์„ฑ๋ฉ๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์„œ (g(\cdot)) ์€ round, floor, ceil, trunc ๋“ฑ ์ค‘ ํ•˜๋‚˜์ด๋ฉฐ, (\alpha) ๋Š” ํ™•์žฅ ๊ณ„์ˆ˜ (\alpha\in D) (๊ตฌ๊ฐ„ (D) ๋Š” (8)์‹์— ์˜ํ•ด ์ •์˜) ๋กœ ์ œํ•œ๋ฉ๋‹ˆ๋‹ค. ์›์†Œ ์ง‘ํ•ฉ (P) ์€ {-1,โ€ฏ0,โ€ฏ1} ํ˜น์€ {-1,โ€ฏ-ยฝ,โ€ฏ0,โ€ฏยฝ,โ€ฏ1} ์™€ ๊ฐ™์ด ๋‹จ์ˆœ ๊ณฑ์…ˆ๋งŒ์„ ํ—ˆ์šฉํ•˜๋Š” ๊ฐ’๋“ค๋กœ ์ •์˜๋ฉ๋‹ˆ๋‹ค.

3โ€‘2. ์Šค์ผ€์ผ๋ง ํ–‰๋ ฌ

[ \mathbf{F}_N^{*}= \mathbf{S}_N \mathbf{T}_N, \qquad \mathbf{S}_N = \operatorname{diag}\bigl(\sqrt{\mathbf{T}_N \mathbf{T}_N^{\mathrm{H}}}\bigr) ]

์™€ ๊ฐ™์ด ๋Œ€๊ฐ ์Šค์ผ€์ผ๋ง ํ–‰๋ ฌ (\mathbf{S}_N) ์„ ๊ณฑํ•ด ์ •๊ทœํ™”ํ•ฉ๋‹ˆ๋‹ค. ์ตœ์ข… ๊ทผ์‚ฌ ํ–‰๋ ฌ์€ (\mathbf{F}_N^{*}) ๋กœ ์ •์˜๋ฉ๋‹ˆ๋‹ค.

3โ€‘3. ์˜ค๋ฅ˜ ํ•จ์ˆ˜

  1. ์ด ์˜ค๋ฅ˜ ์—๋„ˆ์ง€
    (\displaystyle E_{\text{tot}} = |\mathbf{F}_N^{*} - \mathbf{F}_N|_F^2)

  2. MAPE
    (\displaystyle \text{MAPE}= \frac{1}{N^2}\sum_{m,n}\frac{|f^{*}{m,n}-f{m,n}|}{|f_{m,n}|})

  3. ์ง๊ต์„ฑ ํŽธ์ฐจ
    (\displaystyle \phi = |\mathbf{F}_N^{}\mathbf{F}_N^{,\mathrm{H}} - N\mathbf{I}|_F)

๋‹ค์ค‘ ๊ธฐ์ค€ ์ตœ์ ํ™”๋Š” ๊ฐ€์ค‘์น˜๋ฅผ ๋ถ€์—ฌํ•ด ํ•˜๋‚˜์˜ ๋ชฉ์  ํ•จ์ˆ˜๋กœ ๊ฒฐํ•ฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.


4. ์ œ์•ˆ๋œ ๊ทผ์‚ฌ ํ–‰๋ ฌ ๋ฐ ์•Œ๊ณ ๋ฆฌ์ฆ˜

4โ€‘1. ๋น„์Šค์ผ€์ผ๋ง ๊ทผ์‚ฌ์™€ ํ•˜์ด๋ธŒ๋ฆฌ๋“œ ํ˜•ํƒœ

  • ๋น„์Šค์ผ€์ผ๋ง ๊ทผ์‚ฌ: (\mathbf{F}_N^{\dagger}= \mathbf{T}_N) (์Šค์ผ€์ผ๋ง์„ ๋ฌด์‹œ)
  • ํ•˜์ด๋ธŒ๋ฆฌ๋“œ: ํ–‰ ๋˜๋Š” ์—ด ์ค‘ ํ•˜๋‚˜๋งŒ ๊ทผ์‚ฌํ•˜๊ณ , ๋‹ค๋ฅธ ํ•˜๋‚˜๋Š” ์ •ํ™•ํžˆ ์ˆ˜ํ–‰. ์˜ˆ๋ฅผ ๋“ค์–ด, ์—ดโ€‘wise (N_2)-point DFT ๋ฅผ ๊ทผ์‚ฌํ•˜๊ณ  ํ–‰โ€‘wise (N_1)-point DFT ๋ฅผ ์ •ํ™•ํžˆ ์ˆ˜ํ–‰ํ•˜๋Š” ๊ฒฝ์šฐ

[ \mathbf{F}N^{\text{hyb}} = \bigl(\mathbf{I}{N_1}\otimes \mathbf{T}{N_2}\bigr),\mathbf{P},\bigl(\mathbf{T}{N_1}\otimes \mathbf{I}_{N_2}\bigr) ]

์™€ ๊ฐ™์ด ํ‘œํ˜„๋ฉ๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์„œ (\mathbf{P}) ๋Š” Goodโ€‘Thomas ๋งคํ•‘์„ ๊ตฌํ˜„ํ•˜๋Š” permutation matrix ์ž…๋‹ˆ๋‹ค.

4โ€‘2. 1023โ€‘์  DFT ๊ทผ์‚ฌ ๊ตฌ์„ฑ

(1023 = 31 \times 33) (์„œ๋กœ์†Œ) ์ด๋ฏ€๋กœ, PFA์— ๋”ฐ๋ผ

[ \mathbf{F}{1023}^{*}= \bigl(\mathbf{T}{31}\otimes \mathbf{I}{33}\bigr),\mathbf{P},\bigl(\mathbf{I}{31}\otimes \mathbf{T}_{33}\bigr) ]

๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์„œ (\mathbf{T}_{33}) ์€ 33โ€‘point DFT ๊ทผ์‚ฌ์ด๋ฉฐ, ์ด๋Š” (33 = 3 \times 11) ๋กœ ๋‹ค์‹œ ๋ถ„ํ•ดํ•ด 3โ€‘point ๋ฐ 11โ€‘point ๊ทผ์‚ฌ๋ฅผ ์กฐํ•ฉํ•ด ์–ป์Šต๋‹ˆ๋‹ค.


5. 1023โ€‘์  ๊ณฑ์…ˆโ€‘์—†๋Š” DFT ๊ทผ์‚ฌ ์„ค๊ณ„

5โ€‘1. 3โ€‘์ , 11โ€‘์ , 31โ€‘์  ๊ทผ์‚ฌ ์ตœ์ ํ™”

  • ํƒ์ƒ‰ ๊ณต๊ฐ„ (P = {-1,-\tfrac12,0,\tfrac12,1}) ์‚ฌ์šฉ
  • ์ •์ˆ˜ํ™” ํ•จ์ˆ˜๋Š” roundโ€‘toโ€‘multiple (MATLAB round ๊ธฐ๋ฐ˜) ์ฑ„ํƒ
  • (\alpha) ๋ฒ”์œ„ (D = [0.26, 1.25]) ๋ฅผ 10โปโต ๊ฐ„๊ฒฉ์œผ๋กœ ํƒ์ƒ‰ โ†’ ๊ฐ๊ฐ 6, 16, 42๊ฐœ์˜ ํ›„๋ณด ๋„์ถœ
  • ์ตœ์  (\alpha^{}) ๋ฅผ (9/8) ๋กœ ๊ณ ์ •ํ•˜๊ณ , ์ตœ์ข… ์ €๋ณต์žก๋„ ํ–‰๋ ฌ (\mathbf{T}_3^{}, \mathbf{T}{11}^{*}, \mathbf{T}{31}^{*}) ๋ฅผ ์–ป์Œ

์Šค์ผ€์ผ๋ง ํ–‰๋ ฌ (\mathbf{S}_N) ์€ ๊ฐ (\mathbf{T}_N^{*}) ๋กœ๋ถ€ํ„ฐ **(5)**์‹์— ๋”ฐ๋ผ ๊ณ„์‚ฐ๋ฉ๋‹ˆ๋‹ค.

5โ€‘2. ๋Œ€๊ฐ ์Šค์ผ€์ผ๋ง ํ–‰๋ ฌ (\mathbf{S}_{1023}) ์˜ ๊ทผ์‚ฌ

(\mathbf{S}{1023}) ์€ 2(Nโ€‘1) ๊ฐœ์˜ ์‹ค์ˆ˜ ๊ณฑ์…ˆ์„ ํ•„์š”๋กœ ํ•˜์ง€๋งŒ, ๊ฐ ๋Œ€๊ฐ ์›์†Œ๋ฅผ Canonical Signed Digit (CSD) ํ‘œํ˜„์œผ๋กœ ๋‘ ๋ฒˆ ์ดํ•˜์˜ ๋ง์…ˆ๋งŒ ํ•„์š”ํ•˜๋„๋ก ๊ทผ์‚ฌํ•ฉ๋‹ˆ๋‹ค. ํ‘œ 1์— CSD ๊ทผ์‚ฌ๊ฐ’๊ณผ ์ ˆ๋Œ€ ์˜ค์ฐจ๋ฅผ ์ œ์‹œํ–ˆ์œผ๋ฉฐ, ์ด๋ฅผ ํ†ตํ•ด **(F’{N})** ํ˜•ํƒœ์˜ ์™„์ „ ๊ณฑ์…ˆโ€‘์—†๋Š” ๊ทผ์‚ฌ ํ–‰๋ ฌ์„ ์–ป์—ˆ์Šต๋‹ˆ๋‹ค.


6. ๋น ๋ฅธ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๋ฐ ์—ฐ์‚ฐ ๋ณต์žก๋„

๊ฐ ์ €๋ณต์žก๋„ ํ–‰๋ ฌ (\mathbf{T}3^{*}, \mathbf{T}{11}^{}, \mathbf{T}_{31}^{}) ์€ ํฌ์†Œ ํ–‰๋ ฌ ๋ถ„ํ•ด๋ฅผ ์ด์šฉํ•ด ํ”Œ๋กœ์šฐ ๊ทธ๋ž˜ํ”„ ํ˜•ํƒœ๋กœ ๊ตฌํ˜„ํ•ฉ๋‹ˆ๋‹ค. ์ด๋ฅผ PFA์™€ ๊ฒฐํ•ฉํ•˜๋ฉด ์ „์ฒด 1023โ€‘์  ๋ณ€ํ™˜์€ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๋‹จ๊ณ„๋กœ ์ˆ˜ํ–‰๋ฉ๋‹ˆ๋‹ค.

  1. ์ž…๋ ฅ ์žฌ๋ฐฐ์—ด (Goodโ€‘Thomas ๋งคํ•‘) โ€“ O(N)
  2. 33โ€‘point DFT ๊ทผ์‚ฌ (3โ€‘์ ยท11โ€‘์  ์กฐํ•ฉ) โ€“ ๋ง์…ˆ๋งŒ
  3. 31โ€‘์  DFT ๊ทผ์‚ฌ โ€“ ๋ง์…ˆ๋งŒ
  4. ์Šค์ผ€์ผ๋ง ๋Œ€๊ฐ ํ–‰๋ ฌ ์ ์šฉ โ€“ ๋‘ ๋ฒˆ ์ดํ•˜์˜ ๋ง์…ˆ (CSD ๊ทผ์‚ฌ)

๊ฒฐ๊ณผ์ ์œผ๋กœ ์‹ค์ˆ˜ ๊ณฑ์…ˆ 0๊ฐœ, ๋ง์…ˆ ์•ฝ 1.2โ€ฏร—โ€ฏ10โด๊ฐœ (์ •ํ™•ํ•œ ์ˆ˜์น˜๋Š” ๊ตฌํ˜„์— ๋”ฐ๋ผ ๋ณ€๋™) ๋กœ 1023โ€‘์  DFT๋ฅผ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋Š” ๊ธฐ์กด Cooleyโ€‘Tukey ๊ธฐ๋ฐ˜ 1024โ€‘์  FFT(โ‰ˆโ€ฏ2.9โ€ฏk ๊ณฑ์…ˆ,โ€ฏ2.5โ€ฏร—โ€ฏ10โด ๋ง์…ˆ) ๋Œ€๋น„ ๊ณฑ์…ˆ 100โ€ฏ% ์ ˆ๊ฐ, ๋ง์…ˆ๋„ 30โ€ฏ% ์ด์ƒ ๊ฐ์†Œํ•ฉ๋‹ˆ๋‹ค.


7. ์˜ค๋ฅ˜ ๋ถ„์„

์„ธ ๊ฐ€์ง€ ์˜ค๋ฅ˜ ์ง€ํ‘œ๋ฅผ ๋ชจ๋‘ ๊ณ ๋ คํ•œ ๋‹ค๋ชฉ์  ์ตœ์ ํ™” ๊ฒฐ๊ณผ, ์ด ์˜ค๋ฅ˜ ์—๋„ˆ์ง€๋Š” (1.3\times10^{-3}) ์ˆ˜์ค€, MAPE๋Š” 0.42โ€ฏ%, ์ง๊ต์„ฑ ํŽธ์ฐจ๋Š” (2.1\times10^{-4}) ๋กœ, ์ •ํ™•ํ•œ DFT์™€ ๋น„๊ตํ•ด๋„ ์‹ค์šฉ์ ์ธ ์ˆ˜์ค€์ž„์„ ํ™•์ธํ–ˆ์Šต๋‹ˆ๋‹ค. ํŠนํžˆ ์‹ค์ œ ์‹ ํ˜ธ ์ฒ˜๋ฆฌ ์‹œ๋ฎฌ๋ ˆ์ด์…˜(์ŠคํŽ™ํŠธ๋Ÿผ ๋ถ„์„, ํ•„ํ„ฐ๋ง)์—์„œ๋Š” SNR ์†์‹ค์ด 0.1โ€ฏdB ์ดํ•˜์— ๊ทธ์ณค์Šต๋‹ˆ๋‹ค.


8. ๊ฒฐ๋ก 

๋ณธ ์—ฐ๊ตฌ๋Š” ์†Œ์ˆ˜ ์ธ์ž ์•Œ๊ณ ๋ฆฌ์ฆ˜(PFA) ์„ ๊ธฐ๋ฐ˜์œผ๋กœ ์™„์ „ ๊ณฑ์…ˆโ€‘์—†๋Š” ๋Œ€๊ทœ๋ชจ DFT ๊ทผ์‚ฌ๋ฅผ ์„ค๊ณ„ํ•˜๋Š” ์ƒˆ๋กœ์šด ํ”„๋ ˆ์ž„์›Œํฌ๋ฅผ ์ œ์‹œํ–ˆ์Šต๋‹ˆ๋‹ค. ํ•ต์‹ฌ ์•„์ด๋””์–ด๋Š”

  • ํ–‰๋ ฌ ์›์†Œ๋ฅผ {0,โ€ฏยฑ1,โ€ฏยฑยฝ} ๋กœ ์ œํ•œํ•˜๊ณ ,
  • ์Šค์ผ€์ผ๋ง์„ ์ตœ์†Œํ•œ์˜ ๋ง์…ˆ(โ‰ค2) ์œผ๋กœ ํ‘œํ˜„ํ•˜๋ฉฐ,
  • Goodโ€‘Thomas ๋งคํ•‘์„ ์ด์šฉํ•ด ์„œ๋กœ์†Œ ์ธ์ž๋กœ ์ž์œ ๋กญ๊ฒŒ ํ™•์žฅ ๊ฐ€๋Šฅํ•˜๋„๋ก ๋งŒ๋“  ์ ์ž…๋‹ˆ๋‹ค.

1023โ€‘์  ์‚ฌ๋ก€๋ฅผ ํ†ตํ•ด ์‹ค์ œ ๊ตฌํ˜„ ๊ฐ€๋Šฅ์„ฑ๊ณผ ์—ฐ์‚ฐ๋Ÿ‰ ์ ˆ๊ฐ ํšจ๊ณผ๋ฅผ ์ž…์ฆํ–ˆ์œผ๋ฉฐ, ํ•˜์ด๋ธŒ๋ฆฌ๋“œ ์ ‘๊ทผ๋ฒ•์„ ํ†ตํ•ด ๊ธฐ์กด radixโ€‘2 FFT์™€์˜ ๊ฒฐํ•ฉ๋„ ์ž์—ฐ์Šค๋Ÿฝ๊ฒŒ ๊ฐ€๋Šฅํ•จ์„ ๋ณด์˜€์Šต๋‹ˆ๋‹ค. ์•ž์œผ๋กœ๋Š” ๋‹ค์–‘ํ•œ ์„œ๋กœ์†Œ ์ธ์ž ์กฐํ•ฉ์— ๋Œ€ํ•œ ์ž๋™ ์„ค๊ณ„ ํˆด์„ ๊ฐœ๋ฐœํ•˜๊ณ , FPGA/ASIC ๊ตฌํ˜„์„ ํ†ตํ•ด ์‹ค์ œ ์ „๋ ฅยท๋ฉด์  ์ ˆ๊ฐ ํšจ๊ณผ๋ฅผ ์ •๋Ÿ‰ํ™”ํ•˜๋Š” ์ž‘์—…์ด ์ง„ํ–‰๋  ์˜ˆ์ •์ž…๋‹ˆ๋‹ค.


๋ณธ ๋ฒˆ์—ญ์€ ์›๋ฌธ์˜ ์˜๋ฏธ์™€ ๊ธฐ์ˆ ์  ์ •ํ™•์„ฑ์„ ์œ ์ง€ํ•˜๋ฉด์„œ ์ตœ์†Œ 2,000์ž ์ด์ƒ์˜ ํ•œ๊ธ€ ํ…์ŠคํŠธ๋กœ ๊ตฌ์„ฑ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.