KR101334494B1 - High-speed low-complexity radix-2 to the fifth fast fourier transform apparatus and method - Google Patents
High-speed low-complexity radix-2 to the fifth fast fourier transform apparatus and method Download PDFInfo
- Publication number
- KR101334494B1 KR101334494B1 KR1020110112082A KR20110112082A KR101334494B1 KR 101334494 B1 KR101334494 B1 KR 101334494B1 KR 1020110112082 A KR1020110112082 A KR 1020110112082A KR 20110112082 A KR20110112082 A KR 20110112082A KR 101334494 B1 KR101334494 B1 KR 101334494B1
- Authority
- KR
- South Korea
- Prior art keywords
- butterfly
- fast fourier
- fourier transform
- butterfly operation
- result
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
- G06F7/52—Multiplying; Dividing
- G06F7/523—Multiplying only
- G06F7/53—Multiplying only in parallel-parallel fashion, i.e. both operands being entered in parallel
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
- G06F7/57—Arithmetic logic units [ALU], i.e. arrangements or devices for performing two or more of the operations covered by groups G06F7/483 – G06F7/556 or for performing logical operations
Landscapes
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computational Mathematics (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- Mathematical Physics (AREA)
- General Engineering & Computer Science (AREA)
- Computing Systems (AREA)
- Data Mining & Analysis (AREA)
- Discrete Mathematics (AREA)
- Algebra (AREA)
- Databases & Information Systems (AREA)
- Software Systems (AREA)
- Complex Calculations (AREA)
Abstract
고속 저 복잡도의 Radix 2의 5승 고속 푸리에 변환 장치 및 방법이 개시된다.
고속 푸리에 변환 장치는 병렬 데이터 경로를 통하여 수신한 입력 데이터들을 단일 경로 지연 피드백(SDF: Single-path Delay Feedback) 연산하여 고속 푸리에 변환하는 복수의 고속 푸리에 변환부; 고속 푸리에 변환된 입력 데이터들을 버터플라이 연산하는 제1 버터플라이 연산부; 및 상기 제1 버터플라이 연산부의 연산 결과를 버터플라이 연산하는 제2 버터플라이 연산부를 포함할 수 있다.Radix 2 quadratic fast Fourier transform apparatus and method are disclosed.
The fast Fourier transform apparatus includes: a plurality of fast Fourier transform units configured to perform fast Fourier transform by calculating single-path delay feedback (SDF) on input data received through a parallel data path; A first butterfly operation unit performing a butterfly operation on the fast Fourier transformed input data; And a second butterfly calculator configured to butterfly arithmetic operations of the first butterfly calculator.
Description
본 발명은 Radix 2의 5승 고속 푸리에 변환 장치 및 방법에 관한 것으로, 보다 상세하게는, 고속 푸리에 변환 방법에서 상위 스테이지의 일부를 병렬 연산함으로써 데이터 처리율을 높이는 파이프라인 고속 푸리에 변환 장치 및 방법에 관한 것이다.The present invention relates to an apparatus and method for a quadratic fast Fourier transform of Radix 2. More particularly, the present invention relates to a pipeline fast Fourier transform device and method for increasing data throughput by performing a parallel operation on a part of a higher stage in the fast Fourier transform method. will be.
직교 주파수 분할 다중화 (OFDM: Orthogonal Frequency Division Multiplexing) 는 통신 시스템에서 하나의 반송파를 여러 개의 직교되는 부 반송파로 나누어 데이터 열을 실어서 변조 및 전송함으로써, 통신 시스템을 병렬 구조화 하지 않아도 단일 반송파 통신 시스템을 병렬 구조화 하는 것에 가까운 고속 데이터 전송이 가능한 방식이다.Orthogonal Frequency Division Multiplexing (OFDM) divides a single carrier into several orthogonal subcarriers in a communication system, loads, modulates, and transmits a data stream, thereby providing a single carrier communication system without having to parallel structure the communication system. This is a high speed data transfer that is close to parallel structure.
이때, 직교 주파수 분할 다중화 방식은 이산 푸리에 변환 (Discrete Fourier Transform; DFT) 방식을 사용하여 구현한다. 그러나 이산 푸리에 변환 방식을 하드웨어로 구현하면, 입력 길이인 포인트 수의 증가에 따라 복소 덧셈, 뺄셈 및 곱셈 연산이 지수적으로 증가하여 하드웨어 비용이 늘어나므로, 고속 푸리에 변환을 사용하고 있다.In this case, orthogonal frequency division multiplexing is implemented using a Discrete Fourier Transform (DFT) scheme. However, when the discrete Fourier transform is implemented in hardware, the fast Fourier transform is used because the complex add, subtract, and multiply operations increase exponentially with the increase in the number of points, the input length.
한국공개특허 제10-2008-0062003호(공개일 2008년 07월 03일)에는 파이프라인 (Pipeline) 구조를 사용한 고속 푸리에 변환 장치가 개시되어 있다. 종래의 파이프라인 구조를 사용한 고속 푸리에 변환 장치는 Radix-22 알고리즘을 사용하고 있으나, Radix-22 알고리즘은 높은 입력 길이의 고속 푸리에 변환 연산을 수행하는 경우 다수의 곱셈기가 필요하게 되어 하드웨어 설계 비용이 높아진다는 문제가 있었다. Korean Patent Publication No. 10-2008-0062003 (published Jul. 03, 2008) discloses a fast Fourier transform apparatus using a pipeline structure. The fast Fourier transform apparatus using the conventional pipeline structure uses the Radix-2 2 algorithm, but the Radix-2 2 algorithm requires a multiplier when performing the fast Fourier transform operation with a high input length. There was a problem of this being high.
따라서 종래의 고속 푸리에 변환 프로세서보다 저 면적으로 구현 할 수 있으면서도 고속 처리가 가능한 장치 및 방법이 요청되고 있다.Therefore, there is a need for an apparatus and method that can be implemented in a lower area than a conventional fast Fourier transform processor and can be processed at a high speed.
본 발명은 상위 스테이지의 일부를 병렬 연산함으로써 데이터 처리율을 높일 수 있는 파이프라인 고속 푸리에 변환 장치 및 방법을 제공한다.The present invention provides a pipeline fast Fourier transform apparatus and method that can increase the data throughput by performing parallel operations on some of the higher stages.
또한, 본 발명은 복잡한 구조를 가지는 복소 부스(Booth) 곱셈기의 대부분을 간단한 구조를 가지는 공통 서브 익스프레션 공유(Common Sub-expression Sharing; CSS)기법을 사용한 정준부호숫자(Canonical Signed Digit; CSD) 방식의 복수 상수 곱셈기로 대체함으로써, 복잡도가 낮은 고속 푸리에 변환 장치 및 방법을 제공한다. In addition, the present invention is a Canonical Signed Digit (CSD) method using a common sub-expression sharing (CSS) technique having a simple structure for most of the complex booth multiplier having a complex structure By replacing with a plural constant multiplier, there is provided a fast Fourier transform device and method with low complexity.
본 발명의 일실시예에 따른 고속 푸리에 변환 장치는 병렬 데이터 경로를 통하여 수신한 입력 데이터들을 단일 경로 지연 피드백(Single-path Delay Feedback; SDF) 연산하여 고속 푸리에 변환하는 복수의 고속 푸리에 변환부; 고속 푸리에 변환된 입력 데이터들을 버터플라이 연산하는 제1 버터플라이 연산부; 및 상기 제1 버터플라이 연산부의 연산 결과를 버터플라이 연산하는 제2 버터플라이 연산부를 포함할 수 있다.A fast Fourier transform device according to an embodiment of the present invention includes a plurality of fast Fourier transform unit for performing a fast Fourier transform by calculating a single-path delay feedback (SDF) input data received through a parallel data path; A first butterfly operation unit performing a butterfly operation on the fast Fourier transformed input data; And a second butterfly calculator configured to butterfly arithmetic operations of the first butterfly calculator.
본 발명의 일실시예에 따른 고속 푸리에 변환 장치의 고속 푸리에 변환부는, 32-FIFO 메모리와 연결된 제2 버터플라이 연산부를 통해 버터플라이 연산하는 제1 단계; 16-FIFO 메모리와 연결된 제1 버터플라이 연산부를 통해 상기 제1 단계의 연산 결과를 버터플라이 연산하는 제2 단계; 8-FIFO 메모리와 연결된 제1 버터 플라이 연산부를 통해 상기 제2 단계의 연산 결과를 버터플라이 연산하는 제3 단계; 4-FIFO 메모리와 연결된 제2 버터 플라이 연산부를 통해 상기 제3 단계의 연산 결과를 버터플라이 연산하는 제4 단계; 2-FIFO 메모리와 연결된 제1 버터 플라이 연산부를 통해 상기 제4 단계의 연산 결과를 버터플라이 연산하는 제5 단계; 및 1-FIFO 메모리와 연결된 제2 버터 플라이 연산부를 통해 상기 제5 단계의 연산 결과를 버터플라이 연산하는 제6 단계를 포함하는 단일 경로 지연 피드백(SDF: Single-path Delay Feedback) 연산을 수행할 수 있다.A fast Fourier transform unit of the fast Fourier transform device according to an embodiment of the present invention, the first step of performing a butterfly operation through a second butterfly calculation unit connected to the 32-FIFO memory; A second step of performing a butterfly operation on the operation result of the first step through a first butterfly operation unit connected to a 16-FIFO memory; A third step of performing a butterfly operation on the operation result of the second step through a first butterfly operation unit connected to an 8-FIFO memory; A fourth step of performing a butterfly operation on the operation result of the third step through a second butterfly operation unit connected to a 4-FIFO memory; A fifth step of performing a butterfly operation on the operation result of the fourth step through a first butterfly operation unit connected to a 2-FIFO memory; And a sixth step of performing a butterfly operation on the operation result of the fifth step through a second butterfly operation unit connected to the 1-FIFO memory to perform a single-path delay feedback (SDF) operation. have.
본 발명의 일실시예에 따른 고속 푸리에 변환 장치의 고속 푸리에 변환부는 복소 상수 곱셈기를 사용하여 상기 제2 단계의 연산 결과와 상기 제3단계의 연산 결과를 회전 인자 곱셈 연산할 수 있다.The fast Fourier transform unit of the fast Fourier transform device according to an embodiment of the present invention may perform a rotation factor multiplication operation on the calculation result of the second step and the operation result of the third step by using a complex constant multiplier.
본 발명의 일실시예에 따른 고속 푸리에 변환 장치의 복소 상수 곱셈기는 공통 서브 익스프레션 공유(CSS)기법을 사용한 정준부호숫자(CSD) 방식의 복수 상수 곱셈기일 수 있다.The complex constant multiplier of the fast Fourier transform apparatus according to an embodiment of the present invention may be a multiple constant multiplier of a canonical code number (CSD) method using a common subexpression sharing (CSS) technique.
본 발명의 일실시예에 따른 고속 푸리에 변환 방법은 병렬 데이터 경로를 통하여 수신한 입력 데이터들을 단일 경로 지연 피드백(SDF: Single-path Delay Feedback) 연산하여 병렬로 고속 푸리에 변환하는 단계; 제1 버터플라이 연산부를 사용하여 고속 푸리에 변환된 입력 데이터들을 버터플라이 연산하는 단계; 및 제2 버터플라이 연산부를 사용하여 상기 제1 버터플라이 연산부의 연산 결과를 버터플라이 연산하는 단계를 포함할 수 있다.A fast Fourier transform method according to an embodiment of the present invention comprises the steps of performing a fast Fourier transform in parallel by calculating a single-path delay feedback (SDF) input data received through the parallel data path; Performing a butterfly operation on the fast Fourier transformed input data using the first butterfly calculator; And performing a butterfly operation on a calculation result of the first butterfly calculator using a second butterfly calculator.
본 발명의 일실시예에 따른 고속 푸리에 변환 장치는 6차원 인덱스 분해법에 의해 유도 되는 Radix-25 알고리즘에 공통 인수 분해 알고리즘을 적용하여 수식을 재구성한 수정된 Radix-25 알고리즘에 따라 고속 푸리에 변환을 수행할 수 있다.A fast Fourier transform apparatus according to an embodiment of the present invention is a fast Fourier transform according to a modified Radix-2 5 algorithm that reconstructs an equation by applying a common factorization algorithm to a Radix-2 5 algorithm derived by 6-dimensional index decomposition. Can be performed.
본 발명의 일실시예에 따른 고속 푸리에 변환 장치는 6차원 인덱스 분해법에 의해 유도 되는 복수의 Radix-25 알고리즘을 기초로 병렬 구조 및 파이프라인 방식을 이용한 수정된 Radix-25 알고리즘에 따라 고속 푸리에 변환을 수행할 수 있다.A fast Fourier transform apparatus according to an embodiment of the present invention is a fast Fourier transform according to a modified Radix-2 5 algorithm using a parallel structure and a pipeline method based on a plurality of Radix-2 5 algorithms derived by 6-dimensional index decomposition. You can perform the conversion.
본 발명의 일실시예에 의하면, 복수의 병렬 데이터 경로를 가지는 파이프라인 고속 푸리에 변환 장치에서 상위 스테이지의 일부를 병렬 연산함으로써 데이터 처리율을 높일 수 있다.According to an embodiment of the present invention, the data throughput may be increased by performing a parallel operation on a part of an upper stage in a pipeline fast Fourier transform apparatus having a plurality of parallel data paths.
또한, 본 발명의 일실시예에 의하면, 복잡한 구조를 가지는 복소 부스(Booth) 곱셈기의 대부분을 간단한 구조를 가지는 공통 서브 익스프레션 공유(CSS)기법을 사용한 정준부호숫자(CSD) 방식의 복수 상수 곱셈기로 대체함으로써, 고속 푸리에 변환 장치의 복잡도를 낮출 수 있다.In addition, according to an embodiment of the present invention, a majority of the complex booth multiplier having a complicated structure is a plural constant multiplier of a canonical code number (CSD) method using a common subexpression sharing (CSS) technique having a simple structure. By replacing, the complexity of the fast Fourier transform device can be reduced.
도 1은 64 포인트의 Radix-25 알고리즘의 전개 방법 1을 이용한 고속 푸리에 변환 방법의 개략적인 신호 흐름도이다.
도 2는 64 포인트의 Radix-25 알고리즘의 전개 방법 2를 이용한 고속 푸리에 변환 방법의 개략적인 신호 흐름도이다.
도 3은 본 발명의 일실시예에 따른 고속 푸리에 변환 장치를 도시한 블록 다이어그램이다.
도 4는 본 발명의 일실시예에 따른 고속 푸리에 변환부를 도시한 블록 다이어그램이다.
도 5는 본 발명의 일실시예에 따른 고속 푸리에 변환부에 포함된 제1 버터플라이 연산부의 구성을 도시한 도면이다.
도 6은 본 발명의 일실시예에 따른 고속 푸리에 변환부에 포함된 제2 버터플라이 연산부의 구성을 도시한 도면이다.
도 7은 본 발명의 일실시예에 따른 CSD 상수 곱셈기의 구성을 도시한 도면이다.
도 8은 회전 인자 W32를 위한 본 발명의 일실시예에 따른 복소 상수 곱셈기의 구성을 도시한 도면이다.
도 9는 본 발명의 일실시예에 따른 후처리부에 포함된 제1 버터플라이 연산부의 구성을 도시한 도면이다.
도 10은 본 발명의 일실시예에 따른 후처리부에 포함된 제2 버터플라이 연산부의 구성을 도시한 도면이다.
도 11은 본 발명의 일실시예에 따른 고속 푸리에 변환 방법을 도시한 플로우차트이다.1 is a schematic signal flow diagram of a fast Fourier transform method using a
FIG. 2 is a schematic signal flow diagram of a fast Fourier transform method using a
3 is a block diagram illustrating a fast Fourier transform device according to an embodiment of the present invention.
4 is a block diagram illustrating a fast Fourier transform unit according to an embodiment of the present invention.
5 is a diagram illustrating a configuration of a first butterfly calculator included in a fast Fourier transform unit according to an embodiment of the present invention.
6 is a diagram illustrating a configuration of a second butterfly calculator included in a fast Fourier transform unit according to an exemplary embodiment of the present invention.
7 is a diagram illustrating a configuration of a CSD constant multiplier according to an embodiment of the present invention.
8 shows for rotation factor W 32 A diagram illustrating a configuration of a complex constant multiplier according to an embodiment of the present invention.
9 is a diagram illustrating a configuration of a first butterfly calculation unit included in a post-processing unit according to an embodiment of the present invention.
10 is a diagram illustrating a configuration of a second butterfly calculating unit included in a post-processing unit according to an embodiment of the present invention.
11 is a flowchart illustrating a fast Fourier transform method according to an embodiment of the present invention.
이하, 본 발명의 실시예를 첨부된 도면을 참조하여 상세하게 설명한다. 본 발명의 일실시예에 따른 고속 푸리에 변환 방법은 고속 푸리에 변환 장치에 의해 수행될 수 있다. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS Hereinafter, embodiments of the present invention will be described in detail with reference to the accompanying drawings. The fast Fourier transform method according to an embodiment of the present invention may be performed by a fast Fourier transform device.
본 발명은 Radix-25 알고리즘을 사용한 고속 푸리에 변환 방법이다.The present invention is a fast Fourier transform method using the Radix-2 5 algorithm.
고속 푸리에 변환 방법 중에 64 포인트의 Radix-25 알고리즘은 공통 인수 분해 알고리즘의 적용 방법에 따라 도 1이나 도 2와 같은 신호 흐름도를 사용할 수 있다. 이때, 도 1을 64 포인트의 Radix-25 알고리즘의 전개 방법 1에 따른 신호 흐름도라 하고, 도 2를 64 포인트의 Radix-25 알고리즘의 전개 방법 2에 따른 신호 흐름도라 한다.The 64-point Radix-2 5 algorithm in the fast Fourier transform method may use a signal flow diagram as shown in FIG. 1 or 2 according to a method of applying a common factorization algorithm. At this time, the Dorado signal flow according to a first signal stream Dora, and deployment of the Radix-2 algorithm of the Fig. 5 2 2 64-point method according to the
이때, 길이가 N인 이산 푸리에 변환은 수학식 1과 같이 정의할 수 있다.In this case, the discrete Fourier transform of length N may be defined as in
이때, WN은 회전 인자이고, n은 시간 인덱스이며, k는 주파수 인덱스일 수 있다.In this case, W N may be a rotation factor, n may be a time index, and k may be a frequency index.
이때, Radix-25 알고리즘을 유도하기 위하여 수학식 1과 같은 이산 푸리에 변환에 6차원 선형 인덱스 맵을 적용하면 수학식 2를 생성할 수 있다.In this case,
다음으로, 수학식 2에 공통 인수 분해 알고리즘(Common Factor Algorithm; CFA)을 적용하면 수학식 3을 생성할 수 있다.Next, when the common factor algorithm (CFA) is applied to
이때, 수학식 3의 회전 인자를 정리하면 수학식 4를 생성할 수 있다.At this time, if the rotation factor of Equation 3 is arranged,
이때, 수학식 4는 도 1에 도시된 바와 같이 64 포인트의 Radix-25 알고리즘의 전개 방법 1에 따른 각 스테이지의 버터플라이 연산 및 회전 인자 곱셈 연산의 순서 및 구조를 나타낼 수 있다. In this case,
이때, 첫 번째 스테이지의 회전 인자 곱셈(110)와 네 번째 스테이지의 회전 인자 곱셈(120)은 곱셈기를 필요로 하지 않는 단순 곱셈으로 구성될 수 있다. 또한, W8 회전 인자 복소 곱셈(130)의 회전 인자 수는 1개이고, W32 회전 인자 복소 곱셈(140) 의 회전 인자 수는 7개로 구성될 수 있다. 이때, W8 회전 인자 복소 곱셈(130)과 W32 회전 인자 복소 곱셈(140)은 CSD 특수 상수 곱셈기를 사용하여 수행될 수 있다. 이때, 64P BU2는 64포인트 제2 버터플라이 연산이고, 32P BU1은 32포인트 제1 버터플라이 연산일 수 있다. 또한, 16P BU1은 16포인트 제1 버터플라이 연산이고, 8P BU2는 8포인트 제2 버터플라이 연산일 수 있다. In this case, the
또한, 수학식 1과 수학식 2에 적용하는 공통 인수 분해 알고리즘을 수학식 3과 다른 방식으로 적용하는 경우, 수학식 5를 생성할 수 있다.In addition, when the common factorization algorithm applied to
이때, 수학식 5의 회전 인자를 정리하면 수학식 6을 생성할 수 있다.At this time, by arranging the rotation factors of Equation 5,
이때, 수학식 6은 도 2에 도시된 바와 같이 64 포인트의 Radix-25 알고리즘의 전개 방법 2에 따른 각 스테이지의 버터플라이 연산 및 회전 인자 곱셈 연산의 순서 및 구조를 나타낼 수 있다. In this case,
이때, 첫 번째 스테이지의 회전 인자 곱셈(210)과 세 번째 스테이지의 회전 인자 곱셈(220)은 곱셈기를 필요로 하지 않는 단순 곱셈으로 구성될 수 있다. 또한, 두 번째 스테이지의 W16 회전 인자 복소 곱셈(230)에서의 회전 인자 수를 3개로 구성함으로써, CSD 특수 상수 곱셈기를 사용 하여 두 번째 스테이지의 W16 회전 인자 복소 곱셈(230)을 연산할 수 있다. 그리고, 다섯 번째 스테이지의 회전 인자 곱셈(240)은 고속 푸리에 변환의 입력 길이가 512 보다 작은 경우, 회전 인자 수를 최대 7개로 구성함으로써, CSD 특수 상수 곱셈기로 다섯 번째 스테이지의 회전 인자 곱셈(240)을 연산할 수 있다.In this case, the
본 발명에 따른 Radix-25 알고리즘은 복소 곱셈 연산량을 최소화 하기 위하여 첫 번째 스테이지에서 상위 다섯 번째 스테이지까지는 수학식 3과 수학식 4에 따른 전개 방법 1을 적용하여 연산하고, 여섯 번째 스테이지부터는 마지막 스테이지까지는 수학식 5와 수학식 6에 따른 전개 방법 2를 적용하여 연산할 수 있다.The Radix-2 5 algorithm according to the present invention operates from the first stage to the upper fifth stage by applying the
또한, 본 발명에 따른 Radix-25 알고리즘은 프로그래머블 복소 곱셈기를 대신하여 CSS 기법 및 CSD 방식을 이용한 복소 상수 곱셈기로 복수 상수 곱셈을 연산함으로써, 하드웨어의 설계 비용 및 전력 소모를 감소시킬 수 있다. 이때, 본 발명에 따른 복소 상수 곱셈기는 CSD 방식을 통해 0 (Zero)이 아닌 비트의 개수를 최소화하고 CSS 기법을 통해 공통 연산부를 공유하도록 연산과정을 간소화할 수 있다.In addition, the Radix-2 5 algorithm according to the present invention can reduce the design cost and power consumption of hardware by calculating a multiple constant multiplication using a complex constant multiplier using CSS and CSD instead of the programmable complex multiplier. In this case, the complex constant multiplier according to the present invention can simplify the calculation process to minimize the number of non-zero bits through the CSD method and to share the common operation unit through the CSS method.
도 3은 본 발명의 일실시예에 따른 고속 푸리에 변환 장치를 도시한 블록 다이어그램이다. 3 is a block diagram illustrating a fast Fourier transform device according to an embodiment of the present invention.
본 발명의 일실시예에 따른 고속 푸리에 변환 장치는 도 3에 도시된 바와 같이 8개의 병렬 데이터 경로를 가지는 파이프라인 고속 푸리에 변환 장치이며, 고속 푸리에 변환부(310)와, 후처리부(320)를 포함할 수 있다. The fast Fourier transform device according to an embodiment of the present invention is a pipelined Fast Fourier transform device having eight parallel data paths as shown in FIG. 3, and includes a fast
고속 푸리에 변환부(310)는 8개의 병렬 데이터 경로를 통하여 수신한 입력 데이터들을 64 포인트의 단일 경로 지연 피드백(Single-path Delay Feedback; SDF) 연산하여 고속 푸리에 변환할 수 있다. 이때, 고속 푸리에 변환부(310)는 제1 고속 푸리에 변환부(311) 내지 제8 고속 푸리에 변환부(312)를 사용하여 병렬 데이터 경로를 통하여 입력된 입력 데이터들을 독립적으로 병렬 연산할 수 있다.The fast
또한, 고속 푸리에 변환부(310)는 본 발명의 일실시예에 따른 고속 푸리에 변환 방법의 제1 단계 내지 제6 단계에 해당하는 상위 6개의 스테이지를 수행할 수 있다.In addition, the fast
고속 푸리에 변환부(310)의 상세 구성과 수행하는 스테이지들은 이하 도 4를 기초로 상세히 설명한다.The detailed configuration of the fast
후처리부(320)는 제1 버터플라이 연산부와 제2 버터플라이 연산부 및 W16의 회전 인자 곱셈을 위한 복소 상수 곱셈기(322)로 하위 3스테이지를 수행하여 제1 고속 푸리에 변환부(311) 내지 제8 고속 푸리에 변환부(312)의 출력을 후처리할 수 있다.The
이때, 후처리부(320)는 7 번째 스테이지에서 4개의 제1 버터플라이 연산부(321)를 사용하여 제1 고속 푸리에 변환부(311) 내지 제8 고속 푸리에 변환부(312)의 출력을 8 포인트 버터플라이 연산할 수 있다. 이때, 7 번째 스테이지의 회전 인자 곱셈 연산은 3 종류의 회전 인자를 필요로 하므로, 후처리부(320)는 W16의 회전 인자 곱셈을 위한 복소 상수 곱셈기(322)를 이용하여 제1 버터플라이 연산부(321)의 출력에 회전 인자 곱셈 연산을 수행할 수 있다. 이때, W16의 회전 인자 곱셈을 위한 복소 상수 곱셈기(322)는 공통 서브 익스프레션 공유(Common Sub-expression Sharing: CSS)기법을 사용한 정준부호숫자(Canonical Signed Digit; CSD) 방식의 복수 상수 곱셈기일 수 있다. In this case, the
또한, 후처리부(320)는 8번째 스테이지와 4개의 제2 버터플라이 연산부(323)를 사용하여 7 번째 스테이지의 결과를 4 포인트 버터플라이 연산할 수 있다. In addition, the
그리고, 후처리부(320)는 9번째 스테이지에서 4개의 제1 버터플라이 연산부(324)를 사용하여 8 번째 스테이지 결과를 2 포인트 버터플라이 연산하여 64 클럭 동안 결과를 출력할 수 있다. The
후처리부(320)의 제1 버터플라이 연산부와 제2 버터플라이 연산부의 상세 구성과 동작은 이하 도 9와 도 10을 참조로 상세히 설명한다. 또한, 복소 상수 곱셈기(322)의 구성은 도 7을 참조로 상세히 설명한다.Detailed configurations and operations of the first butterfly calculating unit and the second butterfly calculating unit of the
도 4는 본 발명의 일실시예에 따른 고속 푸리에 변환부를 도시한 블록 다이어그램이다. 4 is a block diagram illustrating a fast Fourier transform unit according to an embodiment of the present invention.
본 발명의 일실시예에 따른 고속 푸리에 변환부(310)은 도 4에 도시된 바와 같이 6개의 스테이지를 수행하기 위한 6개의 버터플라이 연산부(410, 420, 430, 440, 450, 460)와 W8의 회전 인자 곱셈을 위한 복소 상수 곱셈기(422), W32의 회전 인자 곱셈을 위한 복소 상수 곱셈기(432) 및 각각의 버터플라이 연산부에 대응하는 FIFO 메모리(411, 421, 431, 441, 451, 461)를 포함할 수 있다. 이때, W8의 회전 인자 곱셈을 위한 복소 상수 곱셈기(422), W32의 회전 인자 곱셈을 위한 복소 상수 곱셈기(432)는 공통 서브 익스프레션 공유(CSS)기법을 사용한 정준부호숫자(CSD) 방식의 복수 상수 곱셈기일 수 있다. 이때, 고속 푸리에 변환부(310)의 제1 버터플라이 연산부와 제2 버터플라이 연산부의 상세 구성과 동작은 이하 도 5와 도 6을 참조로 상세히 설명한다.The fast
본 발명의 일실시예에 따른 고속 푸리에 변환부(310)는 8개의 파이프라인 중 하나로부터 매 클럭 당 1개의 복소수 값을 입력 데이터로 수신할 수 있다.The fast
이때, 고속 푸리에 변환부(310)는 32-FIFO 메모리(411)와 연결된 제2 버터플라이 연산부(410)를 통해 입력 데이터를 64 포인트 버터플라이 연산하는 첫 번째 스테이지를 수행할 수 있다.In this case, the fast
구체적으로, 제2 버터플라이 연산부(410)는 1클럭부터 32클럭까지는 입력 데이터를 32-FIFO 메모리(411)에 저장할 수 있다. 다음으로, 제2 버터플라이 연산부(410)는 32클럭부터 64클럭까지의 입력 데이터를 32-FIFO 메모리(411)에 저장 된 값과 버터플라이 연산을 수행할 수 있다. 이때, 버터플라이 연산 결과 중 복소 덧셈을 수행한 결과는 두 번째 스테이지 연산을 위해 출력할 수 있다. 또한, 버터플라이 연산 결과 중 복소 뺄셈을 수행한 결과는 32-FIFO 메모리(411)에 저장할 수 있다. 이때, 32-FIFO 메모리(411)의 특성에 따라 버터플라이 연산 결과 중 복소 뺄셈을 수행한 결과는 32 클럭이 경과한 후에 출력될 수 있다.In detail, the
다음으로, 고속 푸리에 변환부(310)는 16-FIFO 메모리(421)와 연결된 제1 버터플라이 연산부(420)를 통해 입력 데이터를 32 포인트 버터플라이 연산하는 두 번째 스테이지를 수행할 수 있다. 이때, 고속 푸리에 변환부(310)는 8-FIFO 메모리(431)와 연결된 제1 버터플라이 연산부(430)를 통해 입력 데이터를 16 포인트 버터플라이 연산하는 세 번째 스테이지를 수행할 수 있다. Next, the fast
그 다음으로, 고속 푸리에 변환부(310)는 4-FIFO 메모리(441)와 연결된 제2 버터플라이 연산부(440)를 통해 입력 데이터를 8 포인트 버터플라이 연산하는 네 번째 스테이지를 수행할 수 있다. 이때, 고속 푸리에 변환부(310)는 2-FIFO 메모리(451)와 연결된 제1 버터플라이 연산부(450)를 통해 입력 데이터를 4 포인트 버터플라이 연산하는 다섯 번째 스테이지를 수행할 수 있다. Next, the fast
마지막으로, 고속 푸리에 변환부(310)는 1-FIFO 메모리(461)와 연결된 제2 버터플라이 연산부(460)를 통해 입력 데이터를 2 포인트 버터플라이 연산하는 여섯 번째 스테이지를 수행할 수 있다.Finally, the fast
이때, 제2 버터플라이 연산부는 제1 버터플라이 연산부와 동일한 연산 결과에 복소수 (-j)를 곱하는 단순 곱셈 연산을 추가하는 구성이다. 따라서, 제2 버터플라이 연산부를 사용하지 않은 두 번째 스테이지와 세 번째 스테이지 및 다섯 번째 스테이지는 회전 인자 곱셈을 위한 곱셈기를 필요로 할 수 있다.In this case, the second butterfly calculator is configured to add a simple multiplication operation that multiplies a complex number (-j) by the same operation result as the first butterfly calculator. Thus, the second stage, the third stage, and the fifth stage without using the second butterfly operator may require a multiplier for rotation factor multiplication.
이때, 두 번째 스테이지와 세 번째 스테이지는 곱셈을 위한 회전 인자의 종류가 적을 수 있다, 따라서, 고속 푸리에 변환부(310)는 W8의 회전 인자 곱셈을 위한 복소 상수 곱셈기(422)를 사용하여 두 번째 스테이지의 연산 결과를 회전 인자 곱셈 연산하고, W32의 회전 인자 곱셈을 위한 복소 상수 곱셈기(432)를 사용하여 세 번째 스테이지의 연산 결과를 회전 인자 곱셈 연산할 수 있다.In this case, the second stage and the third stage may have fewer kinds of rotation factors for multiplication. Therefore, the fast
또한, 고속 푸리에 변환부(310)는 W32의 회전 인자 복소 부스(Booth) 곱셈기(452)를 사용하여 다섯 번째 스테이지의 연산 결과를 회전 인자 곱셈 연산할 수 있다. 이때, 복소 부스(Booth) 곱셈기(452)는 ROM 메모리에 기 저장된 회전 인자 값을 사용하여 회전 인자 곱셈 연산을 수행할 수 있다.In addition, the fast
본 발명에 따른 고속 푸리에 변환부(310)는 각 병렬 데이터 경로에 도 4에 도시된 바와 같은 단일 경로 지연 피드백 구조를 사용하여 여섯 번째 스테이지까지 연산함으로써, 동일한 제어 신호로 64 포인트 고속 푸리에 변환을 연산할 수 있다.The
도 5는 본 발명의 일실시예에 따른 고속 푸리에 변환부에 포함된 제1 버터플라이 연산부의 구성을 도시한 도면이다.5 is a diagram illustrating a configuration of a first butterfly calculator included in a fast Fourier transform unit according to an embodiment of the present invention.
본 발명에 따른 고속 푸리에 변환부(310)에 포함된 제1 버터플라이 연산부(420, 430, 450)는 N 포인트 버터플라이 연산을 수행하는 경우, N/2 번째 클럭을 기준으로 두 가지 연산 과정을 수행할 수 있다.The
먼저, 제1 버터플라이 연산부(420, 430, 450)는 첫 번째부터 N/2 번째 클럭까지 입력되는 복소수 값을 N/2-FIFO 메모리(510)에 순차적으로 저장하고, N/2-FIFO 메모리(510)에 기 저장되었던 복소수 값을 순차적으로 다음 스테이지에 출력할 수 있다.First, the first
다음으로, 제1 버터플라이 연산부(420, 430, 450)는 N/2 번째 클럭부터 N 번째 클럭까지 입력되는 복소수 값과 N/2-FIFO 메모리(510)에서 출력되는 복소수 값을 버터플라이 연산을 할 수 있다. 이때, 제1 버터플라이 연산부(420, 430, 450)는 버터플라이 연산 결과 중, 복소 뺄셈을 수행한 결과를 N/2-FIFO 메모리(510)에 순차적으로 입력할 수 있다(520). 이때, 입력한 순서대로 출력하는 N/2-FIFO 메모리(510)의 특성에 따라 버터플라이 연산 결과 중 복소 뺄셈을 수행한 결과는 N/2 클럭이 경과한 후에 출력될 수 있다. 예를 들어, N이 32인 경우, 16클럭에 버터플라이 연산 중 복소 뺄셈을 수행한 결과로 16-FIFO 메모리에 저장된 값은 16클럭이 경과한 후인 33클럭, 즉, 새로운 1클럭에 출력될 수 있다. Next, the
또한, 제1 버터플라이 연산부(420, 430, 450)는 버터플라이 연산 결과 중 복소 덧셈을 수행한 결과를 다음 스테이지로 출력할 수 있다(530).In
즉, 본 발명에 따라 N 포인트 버터플라이 연산을 수행하는 제1 버터플라이 연산부는 상기 과정을 반복함으로써, 첫 번째부터 N/2 번째 클럭까지는 버터플라이 연산 결과 중, 복소 뺄셈을 수행한 결과를 출력하고, N/2 번째 클럭부터 N 번째 클럭까지는 버터플라이 연산 결과 중 복소 덧셈을 수행한 결과를 출력할 수 있다.That is, the first butterfly operation unit performing the N point butterfly operation according to the present invention repeats the above process, and outputs the result of performing the complex subtraction among the butterfly operation results from the first to N / 2th clocks. From the N / 2 th clock to the N th clock, the complex addition result of the butterfly operation result may be output.
도 6은 본 발명의 일실시예에 따른 고속 푸리에 변환부에 포함된 제2 버터플라이 연산부의 구성을 도시한 도면이다.6 is a diagram illustrating a configuration of a second butterfly calculator included in a fast Fourier transform unit according to an exemplary embodiment of the present invention.
본 발명에 따른 고속 푸리에 변환부(310)에 포함된 제2 버터플라이 연산부(410, 440, 460)는 제1 버터플라이 연산부와 동일한 연산 결과에 복소수 (-j)를 곱하는 단순 곱셈 연산을 추가하는 구성이다.The
따라서, 본 발명에 따른 제2 버터플라이 연산부(410, 440, 460)는 N 포인트 버터플라이 연산을 수행하는 경우, 제1 버터플라이 연산부(420, 430, 450)와 동일하게 N/2 번째 클럭을 기준으로 두 가지 연산 과정을 수행할 수 있다.Accordingly, when the second
이때, 제2 버터플라이 연산부(410, 440, 460)는 입력 데이터를 수신한 클럭이 1 내지 N/2인 경우, 제1 버터플라이 연산부와 같이 첫 번째부터 N/2 번째 클럭까지 입력되는 복소수 값을 N/2-FIFO 메모리(610)에 순차적으로 저장하고, N/2-FIFO 메모리(610)에 기 저장되었던 복소수 값을 순차적으로 다음 스테이지에 출력할 수 있다.In this case, when the clocks for receiving the input data are 1 to N / 2, the
또한, 제2 버터플라이 연산부(410, 440, 460)는 입력 데이터를 수신한 클럭이 N/2 내지 N인 경우, N/2 번째 클럭부터 N 번째 클럭까지 입력되는 복소수 값과 N/2-FIFO 메모리(610)에서 출력되는 복소수 값을 버터플라이 연산을 할 수 있다. 이때, 제2 버터플라이 연산부(410, 440, 460)는 버터플라이 연산 결과 중, 복소 뺄셈을 수행한 결과를 N/2-FIFO 메모리(610)에 순차적으로 입력할 수 있다(620). In addition, when the clocks for receiving the input data are N / 2 to N, the
또한, 제2 버터플라이 연산부(410, 440, 460)는 버터플라이 연산 결과 중 복소 덧셈을 수행한 결과를 다음 스테이지로 출력할 수 있다(630). 이때, 제2 버터플라이 연산부(410, 440, 460)는 멀피플렉서 회로(640)를 사용하여 버터플라이 연산 결과 중 복소 덧셈을 수행한 결과에 복소수 (-j)를 곱하는 단순 곱셈 연산을 수행할 수 있다.In
도 7은 본 발명의 일실시예에 따른 CSD 상수 곱셈기의 구성을 도시한 도면이다.7 is a diagram illustrating a configuration of a CSD constant multiplier according to an embodiment of the present invention.
본 발명의 일실시예에 따른 고속 푸리에 변환 장치는 하드웨어 면적 및 전력 소모 감소를 위하여 고속 푸리에 변환 장치에 포함된 복소 곱셈기 중 대부분을 공통 서브 익스프레션 공유(CSS)기법을 사용한 정준부호숫자(CSD) 방식의 복수 상수 곱셈기로 사용할 수 있다.In the fast Fourier transform apparatus according to an embodiment of the present invention, a canonical code number (CSD) scheme using a common subexpression sharing (CSS) technique for most of the complex multipliers included in the fast Fourier transform apparatus in order to reduce hardware area and power consumption. Can be used as a multiple constant multiplier of.
고속 푸리에 변환 장치에서 복소 곱셈에 필요한 회전 인자는 표 1과 같이 10진수, 10 비트의 2진수 및 10 비트의 CSD 표현으로 나타낼 수 있다.The rotation factor required for complex multiplication in the fast Fourier transform device may be represented by a decimal number, a 10-bit binary number, and a 10-bit CSD representation as shown in Table 1.
이때, 회전인자에 해당하는 복소 곱셈 계수는 sin(/8), cos(/8), sin(/4), sin(/16), sin(3/16), sin(5/16), sin(7/16)이며 이를 CSD 표현으로 나타내면 최대 5개의 0이 아닌 비트로 표현될 수 있다.In this case, the complex multiplication factor corresponding to the rotation factor is sin ( / 8), cos ( / 8), sin ( / 4), sin ( / 16), sin (3 / 16), sin (5 / 16), sin (7 / 16), which can be represented by up to five nonzero bits.
이때, CSD 상수 곱셈기는 곱셈 계수 중 0이 아닌 비트의 위치에 따라서 입력 값을 오른쪽 시프트 하여 부분곱을 생성하고 생성 된 부분 곱을 모두 더해서 결과를 얻을 수 있다.In this case, the CSD constant multiplier generates a partial product by right shifting an input value according to a non-zero bit position among multiplication coefficients, and adds all the generated partial products to obtain a result.
구체적으로 CSD 상수 곱셈기는 회전 인자 W32 , W16 , W8의 공통 비트를 연산하는 공통 연산부(710)가 회전 인자별 비트를 연산하는 회전 인자 연산부(720)를 포함할 수 있다.In detail, the CSD constant multiplier may include a
이때, 회전 인자 W32 , W16 , W8는 W8 회전 인자 곱셈 연산부(721), W16 회전 인자 곱셈 연산부(722), W32 회전 인자 곱셈 연산부(723)에서 연산될 수 있다.In this case, the rotation factors W 32 , W 16 , and W 8 may be calculated by the W 8 rotation factor
이때, 회전 인자 W32는 W16 와 W8의 곱셈 계수를 모두 포함하고, 회전 인자 W16는 W8 의 곱셈 계수를 포함하므로, 회전 인자 연산부(720)는 회전 인자 W32를 연산하는 구성을 생성하고, 본 발명의 일실시예에 따른 복소 상수 곱셈기는 연산 결과에서 필요한 곱셈 계수를 사용함으로써, 하나의 CSD 상수 곱셈기로 회전 인자 W32 , W16 , W8를 모두 연산할 수 있다.At this time, the rotation factor W 32 is W 16 Wow Contains all the multiplication factors of W 8 , and the rotation factor W 16 is Since it includes a multiplication coefficient of W 8 , the rotation
또한, W32의 회전 인자 곱셈을 위한 복소 상수 곱셈기(432)는 W32 회전 인자 곱셈 연산부(723)를 사용하고, W16의 회전 인자 곱셈을 위한 복소 상수 곱셈기(322)는 W16 회전 인자 곱셈 연산부(722)만을 사용하며, W8의 회전 인자 곱셈을 위한 복소 상수 곱셈기(422)는 W8 회전 인자 곱셈 연산부(721)만을 사용함으로써 구조를 간략화할 수도 있다.In addition, W complex constant multiplier (432) for rotation factor multiplication 32, W 32 twiddle factors using the
즉, 본 발명의 일실시예에 따른 CSD 상수 곱셈기는 2의 보수 형식으로 표현 된 곱셈 계수를 CSD 방식으로 표현함으로써, 하드웨어 면적을 감소시키는 2진 곱셈기를 설계할 수 있다. 이때, CSD 방식은 반드시 {-1, 0, 1}의 원소 중 하나의 값을 갖고. 두 개 이상의 연속적인 0이 아닌 비트로 이루어질 수 없다.That is, the CSD constant multiplier according to an embodiment of the present invention may design a binary multiplier for reducing hardware area by expressing a multiplication coefficient expressed in two's complement form by the CSD method. At this time, the CSD method must have a value of one of the elements of {-1, 0, 1}. It cannot consist of more than two consecutive nonzero bits.
도 8은 회전 인자 W32를 위한 본 발명의 일실시예에 따른 복소 상수 곱셈기의 구성을 도시한 도면이다.8 shows for rotation factor W 32 A diagram illustrating a configuration of a complex constant multiplier according to an embodiment of the present invention.
회전 인자 W32를 위한 본 발명의 일실시예에 따른 복소 상수 곱셈기는 도 8에 도시된 바와 같이 두 개의 CSD 상수 곱셈기와 멀티플렉서, 및 두 개의 덧셈기를 포함할 수 있다.Rotation factor for W 32 The complex constant multiplier according to an embodiment of the present invention may include two CSD constant multipliers, a multiplexer, and two adders, as shown in FIG. 8.
이때, 본 발명의 일실시예에 따른 복소 상수 곱셈기는 두 개의 CSD 상수 곱셈기에 각각 실수와 허수를 입력하여 입력 데이터에 대한 계수 별 곱셈 결과를 출력시킬 수 있다.In this case, the complex constant multiplier according to an embodiment of the present invention may input real and imaginary numbers to two CSD constant multipliers to output a multiplication result for each coefficient of the input data.
이때, 본 발명의 일실시예에 따른 복소 상수 곱셈기는 표 2의 스케쥴에 따라 회전 인자 곱셈을 연산할 수 있다.In this case, the complex constant multiplier according to an embodiment of the present invention may calculate rotation factor multiplication according to the schedule of Table 2.
표 2는 회전 인자 W32에서 사용하는 64 클럭 별 회전 인자 곱셈 연산 모드를 시간 순서에 따라 정의한 것이며, 15 종류의 회전 인자 곱셈 연산 모드가 정의되어 있을 수 있다. Table 2 defines the rotation factor multiplication operation mode for each of the 64 clocks used in the rotation factor W 32 in chronological order, and 15 rotation factor multiplication operation modes may be defined.
또한, 본 발명의 일실시예에 따른 복소 상수 곱셈기는 표 2를 사용하여 표 3과 같은 멀티플렉서의 제어 신호를 생성할 수 있다.In addition, the complex constant multiplier according to an embodiment of the present invention can generate the control signal of the multiplexer as shown in Table 3 using Table 2.
본 발명의 일실시예에 따른 복소 상수 곱셈기는 표 3과 같이 전체 4개의 멀티플렉서 제어 신호에 의해 곱셈기의 동작을 제어할 수 있다. 이때, 회전 인자 W8 및 W16을 위한 복소 상수 곱셈기도 회전 인자 W32로 구성한 경우와 같은 제어 신호를 통해 간략히 구성될 수 있다.As shown in Table 3, the complex constant multiplier according to an embodiment of the present invention can control the operation of the multiplier by the four multiplexer control signals. At this time, the rotation factor W 8 And a complex constant multiplier for W 16 may also be simply configured through a control signal as in the case of the rotation factor W 32 .
이때, W16의 회전 인자 곱셈을 위한 복소 상수 곱셈기(322)는 상수 곱셈기(W32)를 W16 회전 인자 곱셈 연산부(722)로 대체하고, W16 회전 인자 곱셈 연산부(722)의 출력은 3개 이므로, mux-sel2의 멀티플렉서를 3-to-1 MUX로 대체하여 구성할 수 있다.In this case, the complex
또한, W8의 회전 인자 곱셈을 위한 복소 상수 곱셈기(422)는 상수 곱셈기(W32)를 W8 회전 인자 곱셈 연산부(721)로 대체하고, W8 회전 인자 곱셈 연산부(721)의 출력은 1개 이므로, mux-sel2의 멀티플렉서를 생략하여 구성할 수 있다. Further, the complex
도 9는 본 발명의 일실시예에 따른 후처리부에 포함된 제1 버터플라이 연산부의 구성을 도시한 도면이다.9 is a diagram illustrating a configuration of a first butterfly calculation unit included in a post-processing unit according to an embodiment of the present invention.
본 발명에 따른 후처리부(320)에 포함된 제1 버터플라이 연산부(321, 324)는 입력받은 복소수 값을 버터플라이 연산을 할 수 있다. 이때, 제1 버터플라이 연산부(321)는 버터플라이 연산 결과 중, 복소 뺄셈을 수행한 결과(910)와 복소 덧셈을 수행한 결과(920)를 각각 다른 출력 단자를 사용하여 W16의 회전 인자 곱셈을 위한 복소 상수 곱셈기(322) 또는 제2 버터플라이 연산부(323)로 출력할 수 있다.The
또한, 제1 버터플라이 연산부(324)는 버터플라이 연산 결과 중, 복소 뺄셈을 수행한 결과(910)와 복소 덧셈을 수행한 결과(920)를 각각 다른 출력 단자를 사용하여 64 클럭 동안 출력할 수 있다. In addition, the
도 10은 본 발명의 일실시예에 따른 후처리부에 포함된 제2 버터플라이 연산부의 구성을 도시한 도면이다.10 is a diagram illustrating a configuration of a second butterfly calculating unit included in a post-processing unit according to an embodiment of the present invention.
본 발명에 따른 후처리부(320)에 포함된 제2 버터플라이 연산부(323)는 제1 버터플라이 연산부(321), 또는 W16의 회전 인자 곱셈을 위한 복소 상수 곱셈기(322)로부터 입력받은 복소수 값을 버터플라이 연산할 수 있다. 이때, 제2 버터플라이 연산부(323)는 버터플라이 연산 결과 중, 복소 뺄셈을 수행한 결과(1010)와 복소 덧셈을 수행한 결과(1020)에 각각 복소수 (-j)를 곱하는 단순 곱셈 연산(1030)을 수행하여 제1 버터플라이 연산부(324)로 출력할 수 있다.The
도 11은 본 발명의 일실시예에 따른 고속 푸리에 변환 방법을 도시한 플로우차트이다.11 is a flowchart illustrating a fast Fourier transform method according to an embodiment of the present invention.
단계(S1110)에서 8개의 제2 버터플라이 연산부(410)는 병렬 데이터 경로 각각에 대하여 32-FIFO 메모리(411)를 사용하여 64 포인트 버터플라이 연산을 병렬로 수행할 수 있다.In operation S1110, the eight
단계(S1120)에서 8개의 제1 버터플라이 연산부(420)는 16-FIFO 메모리(421)를 사용하여 단계(S1110)의 연산 결과에 32포인트 버터플라이 연산을 수행할 수 있다. 이때, W8의 회전 인자 곱셈을 위한 복소 상수 곱셈기(422)는 제1 버터플라이 연산부(420)의 연산 결과를 회전 인자 곱셈 연산하여 제1 버터플라이 연산부(430)에 제공할 수 있다.In operation S1120, the eight first
단계(S1130)에서 8개의 제1 버터 플라이 연산부(430)는 8-FIFO 메모리(431)를 사용하여 단계(S1130)의 연산 결과에 16포인트 버터플라이 연산을 수행할 수 있다. 이때, W32의 회전 인자 곱셈을 위한 복소 상수 곱셈기(432)는 제1 버터플라이 연산부(430)의 연산 결과를 회전 인자 곱셈 연산하여 제2 버터플라이 연산부(440)에 제공할 수 있다.In operation S1130, the eight
단계(S1140)에서 8개의 제2 버터 플라이 연산부(440)는 4-FIFO 메모리(441)를 사용하여 단계(S1130)의 연산 결과에 8포인트 버터플라이 연산을 수행할 수 있다.In operation S1140, the eight
단계(S1150)에서 8개의 제1 버터 플라이 연산부(450)는 2-FIFO 메모리(451)를 사용하여 단계(S1140)의 연산 결과에 4포인트 버터플라이 연산을 수행할 수 있다. 이때, W512의 회전 인자 복소 부스(Booth) 곱셈기(452)는 제1 버터플라이 연산부(450)의 연산 결과를 회전 인자 곱셈 연산하여 제1 버터플라이 연산부(460)에 제공할 수 있다.In operation S1150, the eight
단계(S1160)에서 8개의 제2 버터 플라이 연산부(460)는 1-FIFO 메모리(461)를 사용하여 단계(S1150)의 연산 결과에 2포인트 버터플라이 연산을 수행할 수 있다. In operation S1160, the eight second
이때, 단계(S1110) 내지 단계(S1160)는 8개의 병렬 데이터 경로에 따라 독립적으로 동작하는 단일 경로 지연 피드백(SDF: Single-path Delay Feedback) 연산일 수 있다.In this case, steps S1110 to S1160 may be a single-path delay feedback (SDF) operation that operates independently according to eight parallel data paths.
단계(S1170)에서 제1 버터플라이 연산부(321)는 단계(S1160)의 연산 결과들에 8포인트 버터플라이 연산을 수행할 수 있다. 이때, 복소 상수 곱셈기(322)는 제1 버터플라이 연산부(321)의 연산 결과에 회전 인자 곱셈 연산을 수행하여 제2 버터플라이 연산부(323)에 제공할 수 있다.In operation S1170, the
단계(S1180)에서 제2 버터플라이 연산부(323)는 단계(S1170)의 연산 결과에 4포인트 버터플라이 연산을 수행할 수 있다. In operation S1180, the second
단계(S1190)에서 제1 버터플라이 연산부(324)는 단계(S1180)의 연산 결과에 2포인트 버터플라이 연산을 수행함으로써 64 클럭 동안 고속 푸리에 변환 결과를 출력할 수 있다.In operation S1190, the
본 발명은 복수의 병렬 데이터 경로를 가지는 파이프라인 고속 푸리에 변환 장치에서 상위 스테이지의 일부를 병렬 연산함으로써 데이터 처리율을 높일 수 있다. 또한, 복잡한 구조를 가지는 복소 부스(Booth) 곱셈기의 대부분을 간단한 구조를 가지는 공통 서브 익스프레션 공유(CSS)기법을 사용한 정준부호숫자(CSD) 방식의 복수 상수 곱셈기로 대체함으로써, 고속 푸리에 변환 장치의 복잡도를 낮출 수 있다.The present invention can increase data throughput by performing parallel operations on a part of higher stages in a pipeline fast Fourier transform apparatus having a plurality of parallel data paths. In addition, the complexity of the fast Fourier transform apparatus is replaced by replacing a majority of the complex booth multiplier with a complex structure with a plural constant multiplier of the canonical code number (CSD) method using a common subexpression sharing (CSS) technique with a simple structure. Can be lowered.
이상과 같이 본 발명은 비록 한정된 실시예와 도면에 의해 설명되었으나, 본 발명은 상기의 실시예에 한정되는 것은 아니며, 본 발명이 속하는 분야에서 통상의 지식을 가진 자라면 이러한 기재로부터 다양한 수정 및 변형이 가능하다.As described above, the present invention has been described by way of limited embodiments and drawings, but the present invention is not limited to the above embodiments, and those skilled in the art to which the present invention pertains various modifications and variations from such descriptions. This is possible.
그러므로, 본 발명의 범위는 설명된 실시예에 국한되어 정해져서는 아니 되며, 후술하는 특허청구범위뿐 아니라 이 특허청구범위와 균등한 것들에 의해 정해져야 한다.Therefore, the scope of the present invention should not be limited to the described embodiments, but should be determined by the equivalents of the claims, as well as the claims.
310: 고속 푸리에 변환부
321: 제1 버터플라이 연산부
323: 제2 버터플라이 연산부310: fast Fourier transform unit
321: first butterfly calculation unit
323: second butterfly operation unit
Claims (14)
복수의 병렬 데이터 경로를 통하여 수신한 입력 데이터들을 병렬적으로 단일 경로 지연 피드백(Single-path Delay Feedback; SDF) 연산하여 고속 푸리에 변환하는 복수의 고속 푸리에 변환부; 및
상기 복수의 고속 푸리에 변환부에서 고속 푸리에 변환된 입력 데이터들을 버터플라이 연산하는 제1 버터플라이 연산부와, 상기 제1 버터플라이 연산부의 연산 결과를 회전 인자 곱셈 연산하는 복소 상수 곱셈기와, 상기 제1 버터플라이 연산부 또는 상기 복소 상수 곱셈기의 연산 결과를 버터플라이 연산하는 제2 버터플라이 연산부로 구성된 후처리부
를 포함하고,
상기 고속 푸리에 변환부는,
32-FIFO 메모리와 연결된 제2 버터플라이 연산부를 통해 버터플라이 연산하는 제1 단계;
16-FIFO 메모리와 연결된 제1 버터플라이 연산부를 통해 상기 제1 단계의 연산 결과를 버터플라이 연산하는 제2 단계;
8-FIFO 메모리와 연결된 제1 버터 플라이 연산부를 통해 상기 제2 단계의 연산 결과를 버터플라이 연산하는 제3 단계;
4-FIFO 메모리와 연결된 제2 버터 플라이 연산부를 통해 상기 제3 단계의 연산 결과를 버터플라이 연산하는 제4 단계;
2-FIFO 메모리와 연결된 제1 버터 플라이 연산부를 통해 상기 제4 단계의 연산 결과를 버터플라이 연산하는 제5 단계; 및
1-FIFO 메모리와 연결된 제1 버터 플라이 연산부를 통해 상기 제5 단계의 연산 결과를 버터플라이 연산하는 제6 단계
를 포함하는 단일 경로 지연 피드백(Single-path Delay Feedback; SDF) 연산을 병렬로 각각 수행하는 것이고,
상기 복소 상수 곱셈기는 공통 서브 익스프레션 공유(Common Sub-expression Sharing; CSS)기법을 사용한 정준부호숫자(Canonical Signed Digit; CSD) 방식의 복소 상수 곱셈기이며,
상기 복소 상수 곱셈기를 사용하여 상기 제2 단계의 연산 결과와 상기 제3단계의 연산 결과를 회전 인자 곱셈 연산하고,
상기 후처리부는,
상기 제1 버터플라이 연산부를 통해 상기 복수의 고속 푸리에 변환부에서 고속 푸리에 변환된 입력 데이터들을 버터플라이 연산하는 과정과, 상기 복소 상수 곱셈기를 통해 상기 제1 버터플라이 연산부의 버터플라이 연산 결과를 회전 인자 곱셈 연산하는 과정으로 이루어진 제7 단계;
상기 제2 버터플라이 연산부를 통해 상기 제7 단계의 버터플라이 연산 결과 또는 회전 인자 곱셈 연산 결과를 버터플라이 연산하는 제8 단계; 및
상기 제1 버터플라이 연산부를 통해 상기 제8 단계의 버터플라이 연산 결과를 버터플라이 연산하는 제9 단계
를 포함하는 후처리 연산을 수행하는 것이며,
상기 제1 단계부터 상기 제5 단계까지는 6차원 인덱스 분해법에 의해 유도 되는 Radix-25 알고리즘에 공통 인수 분해 알고리즘을 적용하여 수식을 재구성한 수정된 Radix-25 알고리즘에 따라 동작하고,
상기 제6 단계부터 상기 제9 단계까지는 6차원 인덱스 분해법에 의해 유도 되는 복수의 Radix-25 알고리즘을 기초로 병렬 구조 및 파이프라인 방식을 이용한 수정된 Radix-25 알고리즘에 따라 동작하는 것
을 특징으로 하는 고속 푸리에 변환 장치.In a pipeline fast Fourier transform apparatus having a plurality of parallel data paths,
A plurality of fast Fourier transform units for performing fast Fourier transform by calculating single-path delay feedback (SDF) in parallel on input data received through a plurality of parallel data paths; And
A first butterfly operator for butterfly operation on the fast Fourier transformed input data by the plurality of fast Fourier transform units, a complex constant multiplier for performing a rotation factor multiplication operation on the calculation result of the first butterfly operator, and the first butter Post-processing unit comprising a fly operation unit or a second butterfly operation unit for performing a butterfly operation on the operation result of the complex constant multiplier
Lt; / RTI >
Wherein the fast Fourier transform unit comprises:
A first step of performing a butterfly operation through a second butterfly operator connected to the 32-FIFO memory;
A second step of performing a butterfly operation on the operation result of the first step through a first butterfly operation unit connected to a 16-FIFO memory;
A third step of performing a butterfly operation on the operation result of the second step through a first butterfly operation unit connected to an 8-FIFO memory;
A fourth step of performing a butterfly operation on the operation result of the third step through a second butterfly operation unit connected to a 4-FIFO memory;
A fifth step of performing a butterfly operation on the operation result of the fourth step through a first butterfly operation unit connected to a 2-FIFO memory; And
A sixth step of performing a butterfly operation on the operation result of the fifth step through a first butterfly calculator connected to a 1-FIFO memory;
Single-path delay feedback (SDF) operations, each of which includes a
The complex constant multiplier is a complex constant multiplier of Canonical Signed Digit (CSD) using Common Sub-expression Sharing (CSS).
A rotation factor multiplication operation of the operation result of the second step and the operation result of the third step using the complex constant multiplier,
The post-
Performing a butterfly operation on the fast Fourier transformed input data by the plurality of fast Fourier transformers through the first butterfly calculator, and a butterfly operation result of the butterfly operation of the first butterfly calculator through the complex constant multiplier A seventh step of performing a multiplication operation;
An eighth step of performing a butterfly operation on the butterfly operation result or the rotation factor multiplication operation result of the seventh step through the second butterfly operation unit; And
A ninth step of performing a butterfly operation on the butterfly operation result of the eighth step through the first butterfly operation unit;
To perform a post-processing operation including
From the first step to the fifth step is operated according to the modified Radix-2 5 algorithm which reconstructs the equation by applying a common factorization algorithm to the Radix-2 5 algorithm derived by the 6-dimensional index decomposition method,
The sixth to the ninth steps operate according to the modified Radix-2 5 algorithm using a parallel structure and a pipeline method based on a plurality of Radix-2 5 algorithms derived by 6-dimensional index decomposition.
High speed Fourier transform device characterized in that.
복수의 병렬 데이터 경로를 통하여 수신한 입력 데이터들을 병렬적으로 단일 경로 지연 피드백(Single-path Delay Feedback; SDF) 연산하여 병렬로 고속 푸리에 변환하는 푸리에 변환 단계; 및
제1 버터플라이 연산부를 사용하여 고속 푸리에 변환된 입력 데이터들을 버터플라이 연산하고, 복소 상수 곱셈기를 사용하여 상기 제1 버터플라이 연산부의 연산 결과를 회전 인자 곱셈 연산하며, 제2 버터플라이 연산부를 사용하여 상기 제1 버터플라이 연산부 또는 상기 복소 상수 곱셈기의 연산 결과를 버터플라이 연산하는 후처리 단계
를 포함하고,
상기 푸리에 변환 단계는
32-FIFO 메모리와 연결된 제2 버터플라이 연산부를 통해 입력 데이터를 버터플라이 연산하는 제1 단계;
16-FIFO 메모리와 연결된 제1 버터플라이 연산부를 통해 상기 제1 단계의 연산 결과를 버터플라이 연산하는 제2 단계;
8-FIFO 메모리와 연결된 제1 버터 플라이 연산부를 통해 상기 제2 단계의 연산 결과를 버터플라이 연산하는 제3 단계;
4-FIFO 메모리와 연결된 제2 버터 플라이 연산부를 통해 상기 제3 단계의 연산 결과를 버터플라이 연산하는 제4 단계;
2-FIFO 메모리와 연결된 제1 버터 플라이 연산부를 통해 상기 제4 단계의 연산 결과를 버터플라이 연산하는 제5 단계; 및
1-FIFO 메모리와 연결된 제1 버터 플라이 연산부를 통해 상기 제5 단계의 연산 결과를 버터플라이 연산하는 제6 단계
를 포함하는 단일 경로 지연 피드백(Single-path Delay Feedback; SDF) 연산을 병렬로 각각 수행하고,
상기 복소 상수 곱셈기는 공통 서브 익스프레션 공유(Common Sub-expression Sharing; CSS)기법을 사용한 정준부호숫자(Canonical Signed Digit; CSD) 방식의 복소 상수 곱셈기이며,
상기 복소 상수 곱셈기를 사용하여 상기 제2 단계의 연산 결과와 상기 제3단계의 연산 결과를 회전 인자 곱셈 연산하고,
상기 후처리 단계는,
상기 제1 버터플라이 연산부를 통해 상기 푸리에 변환 단계에서 고속 푸리에 변환된 입력 데이터들을 버터플라이 연산하는 과정과, 상기 복소 상수 곱셈기를 통해 상기 제1 버터플라이 연산부의 버터플라이 연산 결과를 회전 인자 곱셈 연산하는 과정으로 이루어진 제7 단계;
상기 제2 버터플라이 연산부를 통해 상기 제7 단계의 버터플라이 연산 결과 또는 회전 인자 곱셈 연산 결과를 버터플라이 연산하는 제8 단계; 및
상기 제1 버터플라이 연산부를 통해 상기 제8 단계의 버터플라이 연산 결과를 버터플라이 연산하는 제9 단계
를 포함하며,
상기 제1 단계부터 상기 제5 단계까지는 6차원 인덱스 분해법에 의해 유도 되는 Radix-25 알고리즘에 공통 인수 분해 알고리즘을 적용하여 수식을 재구성한 수정된 Radix-25 알고리즘에 따라 동작하고,
상기 제6 단계부터 상기 제9 단계까지는 6차원 인덱스 분해법에 의해 유도 되는 복수의 Radix-25 알고리즘을 기초로 병렬 구조 및 파이프라인 방식을 이용한 수정된 Radix-25 알고리즘에 따라 동작하는 것
을 특징으로 하는 고속 푸리에 변환 방법.A fast Fourier transform method performed by a pipeline fast Fourier transform apparatus having a plurality of parallel data paths,
A Fourier transform step of performing fast Fourier transform in parallel by performing single-path delay feedback (SDF) operations on input data received through a plurality of parallel data paths in parallel; And
Butterfly operation of fast Fourier transformed input data using a first butterfly operation unit, and a rotation factor multiplication operation of the operation result of the first butterfly operation unit using a complex constant multiplier, and using a second butterfly operation unit A post-processing step of performing a butterfly operation on a calculation result of the first butterfly calculator or the complex constant multiplier
Lt; / RTI >
The Fourier transform step
A first step of performing a butterfly operation on the input data through a second butterfly operator connected to the 32-FIFO memory;
A second step of performing a butterfly operation on the operation result of the first step through a first butterfly operation unit connected to a 16-FIFO memory;
A third step of performing a butterfly operation on the operation result of the second step through a first butterfly operation unit connected to an 8-FIFO memory;
A fourth step of performing a butterfly operation on the operation result of the third step through a second butterfly operation unit connected to a 4-FIFO memory;
A fifth step of performing a butterfly operation on the operation result of the fourth step through a first butterfly operation unit connected to a 2-FIFO memory; And
A sixth step of performing a butterfly operation on the operation result of the fifth step through a first butterfly calculator connected to a 1-FIFO memory;
Respectively performing parallel single-path delay feedback (SDF) operations including
The complex constant multiplier is a complex constant multiplier of Canonical Signed Digit (CSD) using Common Sub-expression Sharing (CSS).
A rotation factor multiplication operation of the operation result of the second step and the operation result of the third step using the complex constant multiplier,
The post-
Performing a butterfly operation on the fast Fourier transformed input data in the Fourier transform step through the first butterfly calculator, and a rotation factor multiplication operation of the butterfly operation result of the first butterfly calculator by the complex constant multiplier A seventh step consisting of a process;
An eighth step of performing a butterfly operation on the butterfly operation result or the rotation factor multiplication operation result of the seventh step through the second butterfly operation unit; And
A ninth step of performing a butterfly operation on the butterfly operation result of the eighth step through the first butterfly operation unit;
Including;
From the first step to the fifth step is operated according to the modified Radix-2 5 algorithm which reconstructs the equation by applying a common factorization algorithm to the Radix-2 5 algorithm derived by the 6-dimensional index decomposition method,
The sixth to the ninth steps operate according to the modified Radix-2 5 algorithm using a parallel structure and a pipeline method based on a plurality of Radix-2 5 algorithms derived by 6-dimensional index decomposition.
Fast Fourier transform method characterized in that.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020110112082A KR101334494B1 (en) | 2011-10-31 | 2011-10-31 | High-speed low-complexity radix-2 to the fifth fast fourier transform apparatus and method |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020110112082A KR101334494B1 (en) | 2011-10-31 | 2011-10-31 | High-speed low-complexity radix-2 to the fifth fast fourier transform apparatus and method |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20130047202A KR20130047202A (en) | 2013-05-08 |
KR101334494B1 true KR101334494B1 (en) | 2013-11-29 |
Family
ID=48658744
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020110112082A KR101334494B1 (en) | 2011-10-31 | 2011-10-31 | High-speed low-complexity radix-2 to the fifth fast fourier transform apparatus and method |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR101334494B1 (en) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR102376492B1 (en) * | 2020-08-05 | 2022-03-21 | 아스텔 주식회사 | Fast Fourier transform device and method using real valued as input |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20050087683A (en) * | 2004-02-26 | 2005-08-31 | 임명섭 | Fast fourier transform processor based on low-power and area-efficient algorithm |
-
2011
- 2011-10-31 KR KR1020110112082A patent/KR101334494B1/en active IP Right Grant
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20050087683A (en) * | 2004-02-26 | 2005-08-31 | 임명섭 | Fast fourier transform processor based on low-power and area-efficient algorithm |
Also Published As
Publication number | Publication date |
---|---|
KR20130047202A (en) | 2013-05-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Cortés et al. | Radix $ r^{k} $ FFTs: Matricial representation and SDC/SDF pipeline implementation | |
US5717620A (en) | Improved-accuracy fast-Fourier-transform butterfly circuit | |
KR100597439B1 (en) | 2n-point and n-point fft/ifft dual mode device | |
KR20060061796A (en) | Recoded radix-2 pipelined fft processor | |
Saenz et al. | FPGA design and implementation of radix-2 fast Fourier transform algorithm with 16 and 32 points | |
Garrido et al. | The constant multiplier FFT | |
Prakash et al. | Performance evaluation of FFT processor using conventional and Vedic algorithm | |
KR100598075B1 (en) | Method for transforming data using Look-up table in IFFT/FFT processor | |
US7653676B2 (en) | Efficient mapping of FFT to a reconfigurable parallel and pipeline data flow machine | |
KR101334494B1 (en) | High-speed low-complexity radix-2 to the fifth fast fourier transform apparatus and method | |
JP3668356B2 (en) | Fast Fourier transform circuit | |
US8010588B2 (en) | Optimized multi-mode DFT implementation | |
KR100892292B1 (en) | Parallel and Pipelined Radix - 2 to the Fourth Power FFT Processor | |
KR102301144B1 (en) | Device for processing short time fourier transform of low complexity and method thereof | |
Adiono et al. | Low latency parallel-pipelined configurable FFT-IFFT 128/256/512/1024/2048 for LTE | |
KR100576520B1 (en) | Variable fast fourier transform processor using iteration algorithm | |
KR100617248B1 (en) | Apparratus and method for performing fast fourier transform | |
Mamatha et al. | Triple-matrix product-based 2D systolic implementation of discrete Fourier transform | |
KR101652899B1 (en) | Fast fourier trasform processor using eight-parallel mdc architecture | |
JP3355319B2 (en) | Digital channelizer with efficient architecture for periodic shifting and method of operation thereof | |
Pritha et al. | An effective design of 128 point FFT/IFFT processor UWB application utilizing radix-(16+ 8) calculation | |
Chen et al. | New algorithm for design of low complexity twiddle factor multipliers in radix-2 FFT | |
Samiha et al. | DFT processor implementation scheme based on Rader algorithm | |
Park et al. | Twiddle factor transformation for pipelined FFT processing | |
JPH0883264A (en) | One-dimensional systolic array type arithmetic device and dct/idct arithmetic unit using same |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant | ||
FPAY | Annual fee payment |
Payment date: 20170829 Year of fee payment: 5 |
|
FPAY | Annual fee payment |
Payment date: 20180823 Year of fee payment: 6 |