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]**. ๋ฐ๋ผ์ ๊ธฐ์กด ์ฐ๊ตฌ์๋ค์ ๋ค์๊ณผ ๊ฐ์ ๊ฐ์ ์ ์ธ ๋ฐฉ๋ฒ์ ์ฌ์ฉํฉ๋๋ค.
- ์์ ํฌ๊ธฐ์ DFT ํ๋ ฌ๊ณผ ํฐ ํฌ๊ธฐ์ DFT ํ๋ ฌ ์ฌ์ด์ ์ํ์ ๊ด๊ณ[15]
- ํ๋ ฌ ํจ์ ์ฌ๊ท์[62]
- ํ๋ ฌ ๋ถํด[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 ํ๋ ฌ์ ์๊ฐ ๊ธ์ฆํ์ฌ ๊ณฑ์ โ์๋ ์ ๊ทผ๋ฒ์ ํจ์จ์ด ๋จ์ด์ง๋๋ค.
์ฃผ์ ๊ธฐ์ฌ
- PFA ๊ธฐ๋ฐ์ ์์ ๊ณฑ์
โ์๋ DFT ๊ทผ์ฌ ์ค๊ณ
- ํ๋ ฌ ์์๋ฅผ {0,โฏยฑ1,โฏยฑยฝ} ๋ก ์ ํํ๊ณ , ์ค์ผ์ผ๋ง ์์๋ ๋ ๋ฒ ์ดํ์ ๋ง์ ์ผ๋ก ํํ.
- ์์ ์ธ์ ๋ถํด๋ฅผ ์ด์ฉํ ์ค์ผ์ผ๋ฌ๋ธ ๊ตฌ์กฐ
- ์ค๊ตญ ๋๋จธ์ง ์ ๋ฆฌ์ ๊ธฐ๋ฐํ GoodโThomas ๋งคํ์ ํ์ฉํด ์์์ ์๋ก์ ์ธ์ ์กฐํฉ์ ๋ํด ์ ์ฉ ๊ฐ๋ฅ.
- ํ์ด๋ธ๋ฆฌ๋ ์ ๋ต
- ground transformation(์: 2โ๊ฑฐ๋ญ์ ๊ณฑ ์ธ์) ์ ๊ธฐ์กด radixโ2 FFT๋ก ์ฒ๋ฆฌํ๊ณ , ์์ ์ธ์ ๋ถ๋ถ๋ง PFAโ๊ธฐ๋ฐ ๊ณฑ์ โ์๋ ๊ทผ์ฌ๋ก ๊ตฌํ.
- 1023โ์ DFT ๊ทผ์ฌ์ ๊ตฌ์ฒด์ ๊ตฌํ ๋ฐ ํ๊ฐ
- 3โ์ , 11โ์ , 31โ์ DFT ๊ทผ์ฌ๋ฅผ ๊ฐ๊ฐ ์ต์ ํํ๊ณ , ์ด๋ฅผ ์กฐํฉํด 1023โ์ ๊ทผ์ฌ๋ฅผ ์์ฑ.
- ์ฐ์ฐ ๋ณต์ก๋์ ์ ํ๋ ๋ถ์
- ์ด ์ค๋ฅ ์๋์ง, 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 ๋ฅผ ์์ฐจ์ ์ผ๋ก ์ํํฉ๋๋ค. ๊ตฌ์ฒด์ ์ธ ์ ์ฐจ๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
- (N_1, N_2) ๋ฅผ ๊ตฌํ๋ค ((\gcd(N_1,N_2)=1)).
- 1โD ์ ๋ ฅ (\mathbf{x}) ๋ฅผ (N_1 \times N_2) ๋ธ๋ก์ผ๋ก ์ฌ๋ฐฐ์ดํ๋ค.
- ๊ฐ ์ด(column) ์ ๋ํด (N_2)-point DFT ๋ฅผ ์ํํ๋ค.
- ๊ฐ ํ(row) ์ ๋ํด (N_1)-point DFT ๋ฅผ ์ํํ๋ค.
- ๊ฒฐ๊ณผ ๋ธ๋ก์ ๋ค์ 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. ์ค๋ฅ ํจ์
-
์ด ์ค๋ฅ ์๋์ง
(\displaystyle E_{\text{tot}} = |\mathbf{F}_N^{*} - \mathbf{F}_N|_F^2) -
MAPE
(\displaystyle \text{MAPE}= \frac{1}{N^2}\sum_{m,n}\frac{|f^{*}{m,n}-f{m,n}|}{|f_{m,n}|}) -
์ง๊ต์ฑ ํธ์ฐจ
(\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โ์ ๋ณํ์ ๋ค์๊ณผ ๊ฐ์ ๋จ๊ณ๋ก ์ํ๋ฉ๋๋ค.
- ์ ๋ ฅ ์ฌ๋ฐฐ์ด (GoodโThomas ๋งคํ) โ O(N)
- 33โpoint DFT ๊ทผ์ฌ (3โ์ ยท11โ์ ์กฐํฉ) โ ๋ง์ ๋ง
- 31โ์ DFT ๊ทผ์ฌ โ ๋ง์ ๋ง
- ์ค์ผ์ผ๋ง ๋๊ฐ ํ๋ ฌ ์ ์ฉ โ ๋ ๋ฒ ์ดํ์ ๋ง์ (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์ ์ด์์ ํ๊ธ ํ ์คํธ๋ก ๊ตฌ์ฑ๋์์ต๋๋ค.