KR100617248B1 - 고속 푸리에 변환 장치 및 방법 - Google Patents
고속 푸리에 변환 장치 및 방법 Download PDFInfo
- Publication number
- KR100617248B1 KR100617248B1 KR1020050041407A KR20050041407A KR100617248B1 KR 100617248 B1 KR100617248 B1 KR 100617248B1 KR 1020050041407 A KR1020050041407 A KR 1020050041407A KR 20050041407 A KR20050041407 A KR 20050041407A KR 100617248 B1 KR100617248 B1 KR 100617248B1
- Authority
- KR
- South Korea
- Prior art keywords
- signal
- signals
- output
- input
- butterfly operation
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F17/00—Digital computing or data processing equipment or methods, specially adapted for specific functions
- G06F17/10—Complex mathematical operations
- G06F17/14—Fourier, Walsh or analogous domain transformations, e.g. Laplace, Hilbert, Karhunen-Loeve, transforms
- G06F17/141—Discrete Fourier transforms
- G06F17/142—Fast Fourier transforms, e.g. using a Cooley-Tukey type algorithm
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L27/00—Modulated-carrier systems
- H04L27/10—Frequency-modulated carrier systems, i.e. using frequency-shift keying
- H04L27/12—Modulator circuits; Transmitter circuits
Landscapes
- Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computational Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- Mathematical Analysis (AREA)
- Theoretical Computer Science (AREA)
- Discrete Mathematics (AREA)
- Databases & Information Systems (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Algebra (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Complex Calculations (AREA)
Abstract
본 발명에 따른 고속 푸리에변환 장치 및 방법에 의하면, 직렬구조와 병렬구조를 적절히 혼합하여 고속으로 신호처리를 할 수 있게 된다. 그리고, 구조를 단순히 할 수 있어 하드웨어의 복잡성을 줄일 수 있게 된다.
본 발명은 직렬로 입력되는 복수의 신호를 소정 개수의 부집합으로 그룹화하여 출력하기 위한 제1 신호처리부, 상기 제1 신호처리부로부터 출력되는 부집합 각각에 대하여 레딕스 알고리듬에 따라 제 1 버터플라이 연산을 병렬 수행하는 복수의 변환처리부, 상기 복수의 변환처리부로부터 출력되는 신호 각각에 대하여 제 2 버터플라이 연산을 수행하는 스위칭부, 상기 스위칭부로부터 병렬로 출력되는 신호를 직렬로 변환하는 제 2 신호처리부 및 상기 제1 신호처리부, 상기 복수의 변환처리부, 상기 스위칭부 및 상기 제2 신호 처리부를 제어하는 제어신호를 생성하는 제어신호 생성부를 포함하는 고속 푸리에 변환장치를 제공하는 것이다.
OFDM, 푸리에, 변환, 버터플라이
Description
도 1은 트위들 팩터를 나타내는 그래프이다.
도 2는 포인트 N이 8일 때, FFT 연산에 따른 흐름도를 나타내는 흐름도이다.
도 3은 포인트 N=16 인 경우 Radix 2 SDF FFT의 구조를 나타내는 구조도이다.
도 4는 도 3에 채용된 Radix 2 SDF의 구조를 나타내는 구조도이다.
도 5는 본 발명에 따른 고속 푸리에 변환 장치의 구조를 나타내는 구조도이다.
도 6은 도 5에 채용된 FFT의 제 1 실시예인 64 포인트 R2 MDC의 구조를 나타낸다.
도 7은 도 5에 채용된 제 1 신호처리부의 제 1 실시예를 나타내는 구조도이다.
도 8은 도 5에 채용된 제 2 신호처리부의 제 1 실시예를 나타내는 구조도이다.
도 9는 도 5에 채용된 스위칭부의 동작을 나타내는 흐름도이다.
도 10은 도 5에 채용된 FFT의 제 2 실시예인 8 포인트 R2 MDC의 구조를 나타 낸다.
도 11은 도 5에 채용된 FFT의 제 3 실시예인 64 포인트 R4 MDC의 구조를 나타낸다.
도 12는 도 5에 채용된 FFT의 제 4 실시예인 64 포인트 R4 SDF의 구조를 나타낸다.
도 13은 도 5에 채용된 FFT의 제 5 실시예인 256 포인트 R4SDC의 구조를 나타낸다.
도 14는 도 5에 채용된 FFT의 제 6 실시예인 64 포인트 R4MDC의 구조를 나타낸다.
***도면의 주요부분에 대한 부호 설명***
100: FFT 200: 제 1 신호처리부
300: 스위칭부 400: 제 2 신호처리부
500: 제 2 신호처리부 BF: 버터플라이
본 발명은 고속 푸리에 변환 장치에 관한 것으로, 더욱 상세히 설명하면, 병렬과 직렬을 혼합한 구조를 갖도록 하여 효율적인 메모리 사용과 고속처리가 가능하도록 하는 고속 푸리에 변환 장치에 관한 것이다.
고속 푸리에 변환(FAST FOURIER TRANSFORM: 이하 "FFT"라 칭한다)과 역고속 푸리에 변환(INVERSE FAST FOURIER TRANSFORM: 이하 "IFFT"라 칭한다)은 디지털 신호처리에 있어서 매우 중요한 역할을 수행한다. OFDM(Orthogonal Frequency Division Multiplexing) 시스템이 점차적으로 각광받고 있으며, 이에 기인하여 다양한 분야에서 빠른 연산속도와 저전력을 소비하는 FFT가 요구되어 진다.
FFT는 DIT(Decimation In Time)과 DIF(Decimation In Frequency)의 두가지 방법으로 이루어진다. DIT는 시간 영역의 데이터들이 사용된 레딕스(Radix)에 따라 쪼개지는 반면 DIF는 주파수성분이 레딕스에 따라 쪼개지게 되며 하드웨어 구현 시 입력데이터가 연속적으로 들어오게 되어, FFT는 DIF를 더 많이 사용하게 된다.
DIF FFT의 수식을 살펴보면 하기의 수학식 1과 같다.
그리고, 입력수열 x(n)을 n의 순서대로 상부와 하부의 절반으로 분리하여 표현하면, 하기의 수학식 2에 해당하는 수식을 얻게 된다.
X(k)를 k 가 짝수인 항과 홀수인 항으로 분리하면 하기의 수학식 3과 같이 된다.
즉, 짝수신호와 홀수신호로 나누어지며, 짝수신호는 먼저 입력되는 신호와 나중에 입력되는 신호의 덧셈으로 이루어지고 홀수 신호는 먼저 입력되는 신호와 나중에 입력되는 신호의 뺄셈과 도 1에 도시된 트위들 팩터(Twiddle Factor)와의 곱셈이 이루어진다. 도 1에 도시된 트위들 팩터는 8 포인트 트위들 팩터를 나타내며 주기적인 요소이다.
도 2는 포인트 N이 8일 때, FFT 연산에 따른 흐름을 나타내는 흐름도이다. 도 2를 참조하여 설명하면, 포인트가 8 인 경우 3 스텝의 버터플라이 연산이 이루어지며, 매 스텝 별로 상부는 덧셈연산을 수행하고 하부는 뺄셈 및 곱셈연산을 수행하여 상기 수학식 3에 해당하는 수식을 만족시킨다.
도 3은 포인트 N=16 인 경우 Radix 2 SDF FFT의 구조를 나타내는 구조도이고, 도 4는 도 3에 채용된 Radix 2 버터플라이의 구조를 나타내는 구조도이다. 도 3 및 도 4를 참조하여 설명하면, 포인트 N= 16인 경우 16은 24이므로 4 개의 스 텝으로 연산이 이루어진다. 따라서, 하나의 스텝은 Radix 2 버터플라이(이하 R2BF 라 칭한다)(10), 램(20), 롬(30) 및 곱셈기(40)를 이용하여 연산을 수행하며 동일한 구성을 하는 각 스텝이 순차적으로 진행된다. 그리고, R2BF(10), 램(20), 롬(30) 및 곱셈기(40)를 제어하는 제어신호를 출력하는 제어신호생성부(50)를 포함한다.
R2BF(10)는 도 4에 도시된 것과 같이 연산부(11), 제 1 먹스(12) 및 제 2 먹스(13)를 포함하며, 제 1 및 제 2 먹스(12,13)는 제어신호생성부(50)에서 출력된 버터플라이제어신호에 의해 동작한다. 그리고, R2BF(10)는 입력단자(In)와 딜레이단자(Do)를 통해 신호를 전달받고 출력단자(Out)와 피드백단자(Pi)를 통해 신호를 출력한다. 그리고, 입력단자(In)를 통해 입력되는 신호와 딜레이단자(Do)를 통해 입력되는 신호는 각각 2 개의 경로를 통해 제 1 및 제 2 먹스(12,13)에 전달된다. 하나의 경로는 연산부(11)를 통해 제 1 및 제 2 먹스(12,13) 각각에 입력되는 경로이고 나머지 하나의 경로는 곧바로 각각 제 1 및 제 2 먹스(12,13)에 입력되는 경로이다. 그리고, 제 1 먹스(12)에서 출력된 신호는 출력단자(Out)를 통해 출력되고 제 2 먹스(13)에서 출력되는 신호는 피드백 단자(Pi)를 통해 출력된다.
제 1 및 제 2 먹스(12,13)는 연산부(11)를 통해 입력되는 신호 또는 입력단자(In)와 딜레이단자(Do)에서 입력되는 신호를 버터플라이제어신호에 의해 선택하여 출력한다. 그리고, 입력단자(In)를 통해 입력되는 신호와 딜레이단자(Do)를 통해 입력되는 신호는 연산부(11)를 통해 연산되어 출력되거나 연산부(11)를 통하지 않고 출력되도록 하여 연산을 수행하도록 한다.
제 1 R2BF(10a)는 첫번째 스텝을 수행하며 8비트의 램(20a)과 연결되어 입력되는 신호가 8 비트의 램(20a)에 저장될 때까지 연산을 수행하지 않게 되어 여덟째 신호가 입력될때까지 연산이 지연된 후 아홉번째 신호가 입력될 때 첫번째 신호와 아홉번째 신호의 연산을 수행한다. 그리고, 계속해서 연산을 수행하여 여덟번째 신호와 열여섯번째 신호를 연산한다. 이때 연산은 덧셈연산을 수행한다. 그리고, 연산이 수행되는 동안 아홉번째 신호부터 열여섯번째 신호가 램(20a)에 입력된다. 또한, 아홉번째 신호부터 열여섯번째 신호가 순차적으로 제 1 R2 BF(10a)에 입력되고 첫번째 신호부터 여덟번째 신호와 다시 연산을 수행한다. 이때 연산은 뺄셈연산을 수행한다. 그리고, 뺄셈 연산이 수행된 후 곱셈연산을 수행한다. 곱셈연산은 롬(30a)에 기록되어 있는 데이터를 이용하여 곱셈기(40a)에서 수행한다.
제 2 R2BF(10b)는 두번째 스텝을 수행하며 4비트의 램(20b)과 연결되어 입력되는 신호가 4 비트의 램(20b)에 저장될 때까지 연산을 수행하지 않게 되어 네번째 신호가 입력될때까지 연산이 지연된 후 다섯번째 신호가 입력될 때 첫번째 신호와 다섯번째 신호의 연산을 수행한다. 그리고, 계속해서 연산을 수행하여 네번째 신호와 여덟번째 신호까지 연산한다. 이때, 연산은 덧셈연산을 수행한다. 그리고, 연산이 수행되는 동안 다섯번째 신호부터 여덟번째 신호가 램(20b)에 입력된다. 그리고, 다섯번째 신호부터 여덟번째 신호가 순차적으로 제 2 R2BF(10b)에 입력되고 첫번째 신호부터 네번째 신호와 다시 연산을 수행한다. 이때 연산은 뺄셈연산을 수행한다. 그리고, 뺄셈 연산이 수행된 후 곱셈연산을 수행한다. 곱셈연산은 롬(30b)에 기록되어 있는 데이터를 이용하여 곱셈기(40b)에서 수행한다. 상기와 같은 연산을 한번 더 수행하여 총 두 번 수행한다.
상기와 같은 방식으로 제 3 R2BF(10c)와 제 4 R2BF(10d)에서 세번째 스텝과 네번째 스텝을 각각 수행하여 FFT 연산을 수행한다. 이때, 제 3 R2BF(10c)는 총 4번의 연산을 수행하고 제 4 R2BF(10d)는 총 8번의 연산을 수행한다. 그리고, 제 4 R2BF(10d)에서 뺄셈연산을 수행한 후 곱셈연산을 수행하여야 하지만 이때 1을 곱하는 것이므로 곱셈연산을 수행하지 않게 된다.
제어신호 생성부(50)는 R2BF(10), 램(20), 롬(30) 및 곱셈기(40)의 동작을 제어하여 버터플라이 연산이 이루어지도록 한다.
하지만, 상기와 같이 구성되는 R2SDF 파이프 라인 구조는 입력되는 데이터를 직렬로 처리하여 출력하여 연산처리를 하게 되므로, 빠른 연산속도를 갖지 못하게 된다. 특히, 점차적으로 다량의 정보가 전송되고 많은 연산을 필요로 하는 경우에 더욱 부적합하게 된다. 또한, 연산속도를 높이기 위해 데이터를 병렬로 처리하여 위해서는 많은 수의 연산소자들을 필요로 하게 되어 하드웨어의 구현이 어려운 문제점이 있다.
따라서, 본 발명은 상기 종래 기술의 문제점을 해결하기 위하여 창출된 것으로, 본 발명의 목적은, 직렬연산 방식과 병렬연산방식을 혼합하여 고속 푸리에 변환을 수행하며 하드웨어가 간단히 구성되는 고속 푸리에 변환을 수행하는 장치에 관한 것이다.
상기 목적을 달성하기 위하여 본 발명의 제 1 측면은, 직렬로 입력되는 복수의 신호를 소정 개수의 부집합으로 그룹화하여 출력하기 위한 제1 신호처리부, 상기 제1 신호처리부로부터 출력되는 부집합 각각에 대하여 레딕스 알고리듬에 따라 제 1 버터플라이 연산을 병렬 수행하는 복수의 변환처리부, 상기 복수의 변환처리부로부터 출력되는 신호 각각에 대하여 제 2 버터플라이 연산을 수행하는 스위칭부, 상기 스위칭부로부터 병렬로 출력되는 신호를 직렬로 변환하는 제 2 신호처리부 및 상기 제1 신호처리부, 상기 복수의 변환처리부, 상기 스위칭부 및 상기 제2 신호 처리부를 제어하는 제어신호를 생성하는 제어신호 생성부를 포함하는 고속 푸리에 변환장치를 제공하는 것이다.
상기 목적을 달성하기 위하여 본 발명의 제 2 측면은, 하나의 직렬 신호를 적어도 두 개의 직렬 신호로 변환하는 단계, 상기 적어도 두 개의 직렬신호가 병렬로 제 1 버터플라이 연산을 수행하는 단계 및 상기 제 1 버터플라이 연산이 수행된 두 개의 직렬신호를 이용하여 제 2 버터플라이 연산을 수행하는 단계를 포함하는 고속 푸리에 변환방법을 제공하는 것이다.
이하, 본 발명의 실시예를 첨부한 도면을 참조하여 설명하면 다음과 같다.
도 5는 본 발명에 따른 고속 푸리에 변환 장치의 구조를 나타내는 구조도이다. 도 5를 참조하여 설명하면, 고속 푸리에 변환을 수행하는 장치는 병렬로 배열되어 있는 제 1 내지 제 4 FFT(100a 내지 100d), 제 1 내지 제 4 FFT(100a 내지 100d)에서 출력되는 신호를 스위칭하는 스위칭부(300), 직렬로 입력되는 신호를 병렬로 처리하는 제 1 신호처리부(200), 병렬로 입력되는 신호를 직렬로 처리하는 제 2 신호처리부(400) 및 제어신호를 생성하여 상기 제 1 내지 제 4 FFT(100a 내지 100d)와 스위칭부(300)와 제 1 및 제 2 신호처리부(200,400)를 제어하는 제어신호 생성부(500)를 포함한다.
제 1 내지 제 4 FFT(100a 내지 100d)는 각각 복수의 BF를 구비하며 BF에서 버터플라이 연산을 수행하도록 하여 상기의 수학식 3에 해당하는 연산을 수행한다. 또한, 제 1 내지 제 4 FFT(100a 내지 100d)가 병렬로 배열되어 각 FFT가 동시에 신호를 처리하도록 하여 연산 속도는 더 빠르게 된다. 그리고, 각 FFT는 64 포인트 FFT를 수행하게 되고 네 개의 FFT가 병렬로 연결되어 있어 256 포인트 FFT를 수행할 수 있게 된다.
스위칭부(300)는 제 1 내지 제 4 FFT(100a 내지 100d)에서 각각 출력되는 신호를 스위칭하여 출력되어 나오는 신호를 재배열하게 된다. 스위칭부(300)에서 제 1 내지 제 4 FFT(100a 내지 100d)에서 출력되는 신호를 재배열하는 이유는 입력되는 신호가 제 1 내지 제 4 FFT(100a 내지 100d)로 입력이 되는 경우 제 1 FFT 내지 제 4 FFT(100a 내지 100d)에 서로 다른 신호가 입력되게 된다.
하지만, FFT는 입력되는 모든 신호와 연산을 하게 되므로, 병렬로 신호가 입력되는 경우에는 각 FFT에 입력되는 신호들만으로 연산이 수행되므로 정확한 FFT가 이루어지지 않게 된다. 즉, 제 1 FFT(100a)에는 x(0),x(4),x(8),x(12),x(16)...이 입력되고 제 2 FFT(100b)에는 x(1),x(5),x(9),x(13),x(17)...이 입력되며 제 3 FFT(100c)에는 x(2),x(6),x(10),x(14),x(18)...이 입력되며 제 4 FFT(100d)에는 x(3),x(7),x(11),x(15),x(19)... 가 입력되어 각각의 제 1 내지 제 4 FFT(100a 내지 100d)는 모든 신호를 이용하여 연산을 수행하지 않게 되어 정확한 FFT를 수행하지 못하게 된다. 따라서, 스위칭부(300)에서 제 1 내지 제 4 FFT(100a 내지 100d)에서 출력되는 연산을 재연산을 하여 정확한 FFT를 수행하도록 한다.
제 1 신호처리부(200)는 직렬로 입력되는 입력신호를 복수의 출력단으로 분배하여 전달하도록 하여 제 1 내지 제 4 FFT(100a 내지 100d)에 입력신호를 전달한다. 이때, 제 1 신호처리부(200)는 직렬로 입력되는 입력신호들을 제 1 내지 제 4 FFT(100a 내지 100d)를 선택하여 입력되도록 하며 각 입력신호들이 제 1 내지 제 4 FFT(100a 내지 100d)에 입력되는 시간이 일치하도록 한다.
제 2 신호처리부(400)는 병렬로 입력되는 복수의 신호를 입력받아 직렬로 출력되도록 한다. 이때, 제 2 신호처리부(400)는 비연속적인 신호를 연속적인 신호로 출력하도록 한다.
제어신호생성부(500)는 복수의 제어신호를 생성하여 제 1 내지 제 4 FFT(100a 내지 100d), 스위칭부(300), 제 1 및 제 2 신호처리부(200,400)의 각 구성부분의 동작을 제어하도록 하여 FFT가 수행되도록 한다.
도 6은 도 5에 채용된 FFT의 제 1 실시예를 나타내는 구조도이다. FFT는 64 포인트 R2 MDC를 나타낸다. 도 6을 참조하여 설명하면, FFT는 64 비트, 32비트, 16비트의 연산 중 선택하여 연산을 수행한다. 64 비트를 연산하는 경우에는 6 스텝의 버터플라이 연산이 수행되고, 32비트 연산이 수행되는 경우에는 5 스텝의 버 터플라이 연산이 수행된다. 그리고, 16비트의 연산을 수행하는 경우에는 4 스텝의 버터플라이 연산을 수행한다. 그리고, 도 4에 도시된 고속 푸리에 변환장치는 4 개의 FFT가 병렬로 연산을 수행하여 하나의 FFT에서 64 비트를 연산하는 경우 총 256비트를 연산하게 되며 32비트를 연산하는 경우 총 128 비트를 연산하게 된다. 또한, 16 비트를 연산하는 경우 총 64 비트를 연산하게 된다.
각각의 스텝은 BF(110), 램(120), 곱셈기(130),롬(140) 및 제 1 디먹스(150)를 이용하여 진행되며 각 스텝에 진행될 때 마다 램의 비트수는 절반으로 줄어든다. 따라서, 첫번째 스텝에서 램은 32비트, 두번째 스텝에서 램은 16비트, 세번째 스텝에서 램은 8비트, 네번째 스텝에서 램은 4 비트, 다섯번째 스템에서 램은 2 비트, 여섯번째 스텝에서 램은 1 비트의 비트수를 갖게 된다.
그리고, BF(110)는 도 3에 도시된 것과 같이 구성되며 첫번째 스텝에서 먼저 64 비트의 신호가 입력되면 BF(110a)는 처음 32개의 신호는 램(120a)에 저장을 하고 나중에 입력되는 32개의 신호가 입력되면 첫번째 입력된 신호와 33번째 입력된 신호를 연산을 하며 순차적으로 연산된 신호를 출력한다.
그리고, BF(110a)에서 출력된 신호는 레지스터(R)을 통과한 후 두개의 경로로 나누어져 제 1 먹스(130)로 전달된다. 제 1 먹스(150)는 연결된 두 개의 경로를 통해 곱셈기(130a)에 의해 롬에 기록되어 있는 데이터가 곱해진 신호가 전달되거나 곧바로 BF(110a)에서 출력된 신호가 전달되게 된다. 그리고, 제어신호에 의해 BF(110a)에서 덧셈연산을 수행하는 경우에는 BF(110a)에 의해 연산된 신호가 제 2 먹스(160a)에 전달되도록 하고 BF(110b)에서 뺄셈연산을 수행하는 경우 롬에 기 록되어 있는 데이터가 곱해진 데이터가 제 2 먹스(160a)에 전달되도록 한다.
제 2 디먹스(160a)는 첫번째 스텝이 수행된 신호와 첫번째 스텝이 수행되지 않은 신호가 입력되며 제어신호에 의해 두 신호 중 하나의 신호를 선택하여 두번째 스텝이 수행되도록 한다. 따라서, 첫번째 스텝이 수행된 신호가 두번째 스텝에 전달되면 하나의 FFT는 64 포인트 FFT를 수행하게 되어 총 256 포인트 FFT를 수행하게 된다. 그리고, 첫번째 스텝이 수행되지 않은 신호가 두번째 스텝에 전달되게 되면 하나의 FFT는 32 포인트 FFT를 수행하게 되어 총 128 포인트 FFT를 수행하게 된다. 이러한 방식으로 여러 단계의 FFT를 수행할 수 있게 되어 제어신호에 의해 제 2 먹스(160c)가 첫번째 스텝과 두번째 스텝이 수행되지 않은 신호가 세번째 스텝에 전달되게 되면 하나의 FFT는 16 포인트 FFT를 수행하게 되어 총 64 포인트 FFT를 수행하게 된다.
도 7은 도 5에 채용된 제 1 신호처리부의 제 1 실시예를 나타내는 구조도이다. 도 7을 참조하여 설명하면, 먹스(210)와 복수의 레지스터(R)를 포함한다. 먹스(210)는 하나의 입력단과 네개의 출력단을 구비한다. 네개의 출력단은 가장 상위에 있는 출력단에서 가장 하위에 있는 출력단까지를 각각 제 1 출력단, 제 2 출력단, 제 3 출력단 및 제 4 출력단으로 칭한다. 그리고, 먹스 제어신호에 의해 입력단을 통해 입력되는 신호를 제 1 출력단 내지 제 4 출력단 중 하나의 출력단으로 신호를 출력한다.
구체적으로 설명하면, 입력단을 통해 직렬로 입력되는 신호들 중 제 1 신호가 입력되면 제 1 출력단으로 출력하고 제 2 신호가 입력되면 제 2 출력단으로 출 력하며 제 3 신호가 입력되면 제 3 출력단으로 출력한다. 그리고, 제 4 신호가 입력되면 제 4 출력단으로 출력한다. 그리고, 제 5 신호가 입력단으로 입력되면 제 1 출력단으로 출력하고 제 6 신호가 입력단으로 입력되면 제 2 출력단으로 출력한다. 이러한 방식으로 계속 입력신호를 출력하여 제 1 출력단으로 제 1 신호, 제 5 신호, 제 9 신호,,, x(4n)가 출력되고, 제 2 출력단으로 제 2 신호, 제 6 신호, 제 10 신호,,,x(4n+1)가 출력되며, 제 3 출력단으로 제 3 신호, 제 7 신호, 제 11 신호,,,x(4n+2)가 출력되며 제 4 출력단으로 제 4 신호, 제 8 신호, 제 12 신호,,,x(4n+3)가 출력된다.
그리고, 제 1 출력단 내지 제 4 출력단으로 출력되는 신호의 시간을 맞추기 위해 제 1 출력단은 3 개의 레지스터를 구비하고 제 2 출력단은 2 개의 레지스터를 구비하며 제 3 출력단은 1 개의 레지스터를 구비한다. 따라서, 각 출력단을 통해 출력되는 신호는 동시에 각 FFT에 입력된다.
도 8은 도 5에 채용된 제 2 신호처리부의 제 1 실시예를 나타내는 구조도이다. 도 8을 참조하여 설명하면, 제 1 디먹스(410), 제 2 디먹스(420), 제 1 램(411) 및 제 2 램(412)을 포함하며, 제 1 및 제 2 램(411,412)은 제 1 디먹스(410)와 제 2 디먹스(420) 사이에 위치하게 된다.
먼저, 제 1 디먹스(420)는 네개의 입력단을 통해 신호를 입력받고 제어신호에 의해 하나의 출력단으로 신호를 출력한다. 네개의 입력단을 위에서 아래방향으로 제 1 입력단, 제 2 입력단, 제 3 입력단 및 제 4 입력단으로 칭하면 제 1 및 제 2 입력단을 통해 짝수(X(k), x(k+2M))의 신호를 입력받고 제 3 및 제 4 입력단을 통해 홀수(X(k+M), x(k+3M))의 신호를 입력받게 된다.
그리고, 제 1 램(411)에 짝수의 신호(X(k), x(k+2M))를 입력하고 제 2 램(412)에 홀수의 신호(X(k+M), x(k+3M))를 입력한다.
또한, 제 2 디먹스(420)는 2 개의 입력단과 하나의 출력단을 구비하며 입력단을 통해 제 1 램(411) 및 제 2 램(412)을 통해 짝수의 신호 또는 홀수의 신호를 전달받아 제어신호에 의해 하나의 출력단을 통해 직렬로 출력되는 신호를 출력한다.
도 9는 도 5에 채용된 스위칭부의 동작을 나타내는 흐름도이다. 도 9를 참조하여 설명하면, 스위칭부는 R4BF로 구성된다. R4BF는 2 개의 R2BF로 구성된다.
스위칭부(300)는 제 1 내지 제 4 FFT(100a 내지 100b)에서 입력되는 신호를 실수부와 허수부로 구분하여 입력받으며 각 FFT는 실수와 허수를 출력한다. 제 1 FFT(100a)에서 출력되는 신호를 실수와 허수로 구분을 하여 나타내면 xr(0), xi(0), 제 2 FFT(100b)에서 출력되는 신호를 xr(1), xi(1), 제 3 FFT(100c)에서 출력되는 신호를 xr(2), xi(2), 제 4 FFT(100d)에서 출력되는 신호를 xr(3), xi(3)라 하면, 각신호는 서로 연산이 되어 하나의 FFT에서 연산되어 출력된 신호가 다른 FFT에 입력되는 신호와 연산되도록 한다. 따라서, 스위칭부(300)에서 FFT 변환이 이루어진 zr(0), zi(0) zr(1), zi(1), zr(2), zi(2), zr(3), zi(3)신호를 출력하도록 한다.
이때, 제일 마지막단은 실수신호와 허수신호가 교차를 하게 되고 부호가 바뀌므로, xr(3), xi(3)가 뺄셈연산이 수행된 후 교차하게 되며 실수신호는 부호가 바뀌어야 하므로 반전되고 1을 덧셈하는 2의 보수 연산이 이루어진다.
도 10 내지 도 14는 도 5에 채용된 FFT의 다른 실시예를 나타내는 구조도이다. 도 10은 8 포인트 R2 MDC를 나타내며, 도 11은 64 포인트 R4 MDC를 나타내며, 도 12는 64 포인트 R4 SDF를 나타내며, 도 13은 256 포인트를 나타내며 R4SDC를 나타낸다. 그리고, 도 14는 64 포인트 R4MDC를 나타낸다.
R2MDC는 Pipeline 구조에서 가장 간단하나 구조를 가진다. 또한, R2BF에 의한 연산 결과(+,-)가 동시에 나가므로, SDF 구조와 비교해 볼 때 필요한 클럭비가 반으로 줄어들게 된다. 입력 데이터는 N/2 의 레지스터에 의해 상부와 하부로 갈라지게 되고 둘로 갈라진 데이터는 버터플라이 연산을 거치게 된다.
R2SDF는 버터플라이의 (-) 연산 결과를 레지스터로 피드백 시켜서 저장해 놓기 때문에 레지스터를 보다 효과적으로 이용할 수 있다. 입력 데이터 중, 상부는 먼저 레지스터에 저장되고 하부의 데이터가 들어 올 때 버터플라이 연산을 하게 된다. 버터플라이 연산 결과 중 (+) 연산 결과는 다음 단으로 넘어가고 (-) 연산 결과는 피드백 되어 다시 레지스터에 저장되고, 다음 N/2 개의 입력을 저장하면서 동시에 (-) 처리된 결과를 순차적으로 다음 버터플라이단으로 넘겨주게 된다. R2SDF는 R2MDC 와 동일한 수의 버터플라이와 곱셈기를 가지며, 레지스터 수는 R2MDC 보다 줄어들게 된다. 그러나 일정한 시간 내에서 같은 양의 데이터를 처리하기 위해 MDC 구조보다 두 배 빠른 클럭비를 필요로 하게 된다.
R4MDC는 R2MDC 구조를 확장시킨 형태이다. R4MDC 구조는 모든 구성 요소의 이용률이 25% 로 매우 낮은 효율을 가진다. 반면에 클럭비가 1/4로 데이터를 처리 할 수 있다는 장점이 있어서, 고속 데이터 처리 시스템에 많이 사용되고 있다.
R4SDF 역시 Radix-2 SDF 구조를 확장시킨 형태이다. R4SDF 구조의 경우 곱셈기의 이용률이 75% 로 증가하는 반면, 버터플라이의 이용률은 MDC 구조와 같이 25%의 이용률을 가진다.
R4SDC는 수정된 Radix-4 알고리즘을 이용하여 버터플라이의 이용률을 향상시키며, 곱셈기의 75% 이용률을 가진다.
하기의 표 1은 도 4의 FFT의 각 실시예에 따른 구조를 분석한 표이다.
구성 | 버터플라이수 | 버터플라이활용도 | 곱셈기 수 | 곱셈기 활용도 | 메모리수 | 제어 |
R2MDC | 50% | 50% | 3N/2-2 | 편리 | ||
R2SDF | 50% | 50% | N-1 | 편리 | ||
R4MDC | 25% | 25% | 5N/2-4 | 편리 | ||
R4SDF | 25% | 75% | N-1 | 약간 복잡 | ||
R4SDC | 100% | 75% | 2N-2 | 복잡 | ||
R22SDF | 50% | 75% | N-1 | 편리 |
상기의 표 1에 나타나 있는 각 FFT의 특성을 파악하여 고속 푸리에변환 장치를 설계하는 과정에서 하나의 FFT를 선택하여 고속 푸리에변환 장치를 구성하도록 할 수 있다.
본 발명의 바람직한 실시예가 특정 용어들을 사용하여 기술되어 왔지만, 그러한 기술은 단지 설명을 하기 위한 것이며, 다음의 청구범위의 기술적 사상 및 범위로부터 이탈되지 않고 여러 가지 변경 및 변화가 가해질 수 있는 것으로 이해되어져야 한다.
본 발명에 따른 고속 푸리에변환 장치에 의하면, 직렬구조와 병렬구조를 적절히 혼합하여 고속으로 신호처리를 할 수 있게 된다. 그리고, 구조를 단순히 할 수 있어 하드웨어의 복잡성을 줄일 수 있게 된다.
또한, 입력되는 신호에 따라 포인트 값을 변화를 주도록 할 수 있어 다양한 데이터를 처리할 수 있게 된다.
Claims (11)
- 직렬로 입력되는 복수의 신호를 소정 개수의 부집합으로 그룹화하여 출력하기 위한 제1 신호처리부;상기 제1 신호처리부로부터 출력되는 부집합 각각에 대하여 레딕스 알고리듬에 따라 제 1 버터플라이 연산을 병렬 수행하는 복수의 변환처리부;상기 복수의 변환처리부로부터 출력되는 신호 각각에 대하여 제 2 버터플라이 연산을 수행하는 스위칭부;상기 스위칭부로부터 병렬로 출력되는 신호를 직렬로 변환하는 제 2 신호처리부; 및상기 제1 신호처리부, 상기 복수의 변환처리부, 상기 스위칭부 및 상기 제2 신호 처리부를 제어하는 제어신호를 생성하는 제어신호 생성부를 포함하는 고속 푸리에 변환장치.
- 제 1 항에 있어서,상기 복수의 변환처리부 각각은 상기 부집합에 포함된 신호 개수가 2N인 경우에 N(1 이상의 정수)개 스텝의 버터플라이 연산을 수행하는 고속 푸리에 변환장치.
- 제 2 항에 있어서상기 제1 신호처리부로부터 출력되는 부집합에 포함되는 신호 개수에 따라 상기 N개 스텝 중 적어도 하나의 스텝이 수행되지 않은 신호를 생성하여 상기 변환처리부에서 처리되는 신호 개수를 조절하는 고속 푸리에 변환장치.
- 제 2 항에 있어서,상기 변환처리부는 Radix 2SDF, Radix 2MDC, Radix 2SDF, Radix 2MDC 중 어느 하나인 고속 푸리에 변환장치.
- 제 1 항에 있어서,상기 제 2 버터플라이 연산은 R4BF를 통해 연산되며, 최종단은 실수부와 허수부가 교차하고 반전되도록 하는 고속 푸리에 변환장치.
- 제 1항에 있어서,상기 제 1 신호처리부는 하나의 입력단을 통해 전달되는 복수의 신호를 순차적으로 복수의 출력단을 통해 출력하는 먹스와 상기 출력단에서 출력되는 신호가 상기 복수의 연산부에 동시에 전달되도록 하는 지연부를 포함하는 고속 푸리에 변환장치.
- 제 1 항에 있어서,상기 제 2 신호처리부는 복수의 입력단을 통해 순차적으로 전달되는 복수의 신호를 하나의 출력단을 통해 출력하는 먹스를 포함하는 고속 푸리에 변환장치.
- 하나의 직렬 신호를 적어도 두 개의 직렬 신호로 변환하는 단계;상기 적어도 두 개의 직렬신호가 병렬로 제 1 버터플라이 연산을 수행하는 단계; 및상기 제 1 버터플라이 연산이 수행된 두 개의 직렬신호를 이용하여 제 2 버터플라이 연산을 수행하는 단계를 포함하는 고속 푸리에 변환방법.
- 제 8항에 있어서,상기 제 1 버터플라이 연산은 복수의 스텝으로 이루어지며 상기 직렬로 입력되는 신호의 비트수를 파악하여 상기 비트수에 따라 상기 복수의 스텝의 수가 결정되는 고속 푸리에 변환 방법.
- 제 9항에 있어서,상기 제 1 버터플라이연산은 짝수번째 신호는 입력되는 신호들의 덧셈연산에 의해 형성되고 홀수번째 신호는 입력되는 신호들의 뺄셈연산과 소정의 주기적인 수와 곱셈연산을 수행하는 고속 푸리에 변환 방법.
- 제 9항에 있어서,상기 제 2 버터플라이 연산은 R4BF를 통해 연산되며 최종단은 실수부와 허수부가 교차하고 부호가 반전되도록 하는 고속 푸리에 변환 방법.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020050041407A KR100617248B1 (ko) | 2005-05-18 | 2005-05-18 | 고속 푸리에 변환 장치 및 방법 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020050041407A KR100617248B1 (ko) | 2005-05-18 | 2005-05-18 | 고속 푸리에 변환 장치 및 방법 |
Publications (1)
Publication Number | Publication Date |
---|---|
KR100617248B1 true KR100617248B1 (ko) | 2006-09-01 |
Family
ID=37625460
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020050041407A KR100617248B1 (ko) | 2005-05-18 | 2005-05-18 | 고속 푸리에 변환 장치 및 방법 |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR100617248B1 (ko) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101016470B1 (ko) | 2009-02-27 | 2011-02-24 | 인하대학교 산학협력단 | Mimo-ofdm 시스템에 효율적인 반송파 변복조 장치및 방법 |
KR101679566B1 (ko) | 2016-01-28 | 2016-11-28 | 충북대학교 산학협력단 | 대칭 신호 복구 고속 푸리에 변환을 이용한 고속 터치 스크린 감지 방법 및 장치 시스템 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH06208579A (ja) * | 1993-01-08 | 1994-07-26 | Fujitsu Ltd | 高速フーリエ変換装置 |
US6792441B2 (en) | 2000-03-10 | 2004-09-14 | Jaber Associates Llc | Parallel multiprocessing for the fast fourier transform with pipeline architecture |
KR100481852B1 (ko) | 2002-07-22 | 2005-04-11 | 삼성전자주식회사 | 고속 푸리에 변환 장치 |
-
2005
- 2005-05-18 KR KR1020050041407A patent/KR100617248B1/ko not_active IP Right Cessation
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH06208579A (ja) * | 1993-01-08 | 1994-07-26 | Fujitsu Ltd | 高速フーリエ変換装置 |
US6792441B2 (en) | 2000-03-10 | 2004-09-14 | Jaber Associates Llc | Parallel multiprocessing for the fast fourier transform with pipeline architecture |
KR100481852B1 (ko) | 2002-07-22 | 2005-04-11 | 삼성전자주식회사 | 고속 푸리에 변환 장치 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101016470B1 (ko) | 2009-02-27 | 2011-02-24 | 인하대학교 산학협력단 | Mimo-ofdm 시스템에 효율적인 반송파 변복조 장치및 방법 |
KR101679566B1 (ko) | 2016-01-28 | 2016-11-28 | 충북대학교 산학협력단 | 대칭 신호 복구 고속 푸리에 변환을 이용한 고속 터치 스크린 감지 방법 및 장치 시스템 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Garrido et al. | The serial commutator FFT | |
CN110765709B (zh) | 一种基于fpga的基2-2快速傅里叶变换硬件设计方法 | |
Garrido et al. | Feedforward FFT hardware architectures based on rotator allocation | |
CN101685385A (zh) | 一种复数乘法器 | |
CN109117188B (zh) | 一种多路混合基fft可重构蝶形运算器 | |
CN112231626A (zh) | 一种fft处理器 | |
Singh et al. | Design of radix 2 butterfly structure using vedic multiplier and CLA on xilinx | |
US7653676B2 (en) | Efficient mapping of FFT to a reconfigurable parallel and pipeline data flow machine | |
Kala et al. | High throughput, low latency, memory optimized 64K point FFT architecture using novel radix-4 butterfly unit | |
Bouguezel et al. | A general class of split-radix FFT algorithms for the computation of the DFT of length-$2^{m} $ | |
KR100892292B1 (ko) | 병렬 구조 및 파이프라인 방식을 이용한 Radix 2의4승 고속 푸리에 변환 프로세서 | |
KR100617248B1 (ko) | 고속 푸리에 변환 장치 및 방법 | |
US8010588B2 (en) | Optimized multi-mode DFT implementation | |
Li et al. | Efficient circuit for parallel bit reversal | |
Bouguezel et al. | A new split-radix FHT algorithm for length-q* 2/sup m/DHTs | |
Saha et al. | ASIC implementation of high speed processor for calculating discrete fourier transformation using circular convolution technique | |
KR20070061357A (ko) | 고속 푸리에 변환 시스템의 메모리 주소 계산 방법 및 그를이용한 트위들 팩터 생성 장치 | |
KR100576520B1 (ko) | 반복 연산 기법을 이용한 가변 고속 푸리에 변환프로세서 | |
Kallapu et al. | DRRA-based Reconfigurable Architecture for Mixed-Radix FFT | |
Ranganathan et al. | Efficient hardware implementation of scalable FFT using configurable Radix-4/2 | |
Yuan et al. | Pruning split-radix FFT with time shift | |
Ali et al. | Pipelined-scalable FFT core with optimized custom floating point engine for OFDM system | |
Mule et al. | 12-stage FFT Implementation using cordic-based pipelined SDF Architecture | |
JP3088472B2 (ja) | フーリエ変換装置 | |
KR100668674B1 (ko) | 고속 푸리에 변환 장치 및 고속 푸리에 변환 방법 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant | ||
FPAY | Annual fee payment |
Payment date: 20091228 Year of fee payment: 6 |
|
LAPS | Lapse due to unpaid annual fee |