KR20040002762A - Modulating apparatus for using fast fourier transform of mixed-radix scheme - Google Patents

Modulating apparatus for using fast fourier transform of mixed-radix scheme Download PDF

Info

Publication number
KR20040002762A
KR20040002762A KR1020030042357A KR20030042357A KR20040002762A KR 20040002762 A KR20040002762 A KR 20040002762A KR 1020030042357 A KR1020030042357 A KR 1020030042357A KR 20030042357 A KR20030042357 A KR 20030042357A KR 20040002762 A KR20040002762 A KR 20040002762A
Authority
KR
South Korea
Prior art keywords
radix
butterfly
output
input
memory
Prior art date
Application number
KR1020030042357A
Other languages
Korean (ko)
Other versions
KR100557160B1 (en
Inventor
선우명훈
Original Assignee
삼성전자주식회사
학교법인대우학원
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 삼성전자주식회사, 학교법인대우학원 filed Critical 삼성전자주식회사
Priority to US10/608,511 priority Critical patent/US7164723B2/en
Priority to JP2004517385A priority patent/JP4022546B2/en
Priority to CNB038150123A priority patent/CN100563226C/en
Priority to AU2003243046A priority patent/AU2003243046A1/en
Priority to EP03761859.2A priority patent/EP1516467B1/en
Priority to PCT/KR2003/001268 priority patent/WO2004004265A1/en
Publication of KR20040002762A publication Critical patent/KR20040002762A/en
Application granted granted Critical
Publication of KR100557160B1 publication Critical patent/KR100557160B1/en

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • G06F17/14Fourier, Walsh or analogous domain transformations, e.g. Laplace, Hilbert, Karhunen-Loeve, transforms
    • G06F17/141Discrete Fourier transforms
    • G06F17/142Fast Fourier transforms, e.g. using a Cooley-Tukey type algorithm
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L27/00Modulated-carrier systems
    • H04L27/26Systems using multi-frequency codes
    • H04L27/2601Multicarrier modulation systems
    • H04L27/2626Arrangements specific to the transmitter only
    • H04L27/2627Modulators
    • H04L27/2634Inverse fast Fourier transform [IFFT] or inverse discrete Fourier transform [IDFT] modulators in combination with other circuits for modulation
    • H04L27/2636Inverse fast Fourier transform [IFFT] or inverse discrete Fourier transform [IDFT] modulators in combination with other circuits for modulation with FFT or DFT modulators, e.g. standard single-carrier frequency-division multiple access [SC-FDMA] transmitter or DFT spread orthogonal frequency division multiplexing [DFT-SOFDM]

Abstract

PURPOSE: A mixed-radix type modulation apparatus using FFT(Fast Fourier Transform) is provided to improve calculation performance as well as reduce device size. CONSTITUTION: A mixed-radix type modulation apparatus using FFT, is provided with an input/output interface(101) for carrying out an input and output process, a pair of N word memories(102,103) having four banks, and the first data switching part(104) for connecting the banks assigned to the input/output of each butterfly(105) with four inputs of a butterfly operational circuit to select a memory and perform in-place calculation for a FFT process . At this time, the butterfly is capable of carrying out the Radix-4 and Radix-2 supplied from the first data switching part by using one circuit. The mixed-radix type modulation apparatus using FFT further includes the second data switching part(106) and an address generating part.

Description

고속 퓨리에 변환을 이용한 혼합-기수 방식의 변조 장치{MODULATING APPARATUS FOR USING FAST FOURIER TRANSFORM OF MIXED-RADIX SCHEME}Mixed-odd modulator using fast Fourier transform {MODULATING APPARATUS FOR USING FAST FOURIER TRANSFORM OF MIXED-RADIX SCHEME}

본 발명은 데이터의 변조 장치에 관한 것으로, 특히 직교 주파수 분할 변조(OFDM : Orthogonal Frequency Division Multiplexing) 방식 또는 이산 다중 톤(DMT : Discrete Multi-Tone) 방식의 변조 장치에 관한 것이다.The present invention relates to a data modulation device, and more particularly, to an orthogonal frequency division multiplexing (OFDM) system or a discrete multi-tone (DMT) modulation device.

일반적으로 디지털 데이터 통신 시스템에서는 데이터의 송신 및 수신 시에 변조와 복조를 통해 데이터의 전송이 이루어진다. 이러한 변조와 복조는 모뎀(Modem)이라는 장치에서 수행된다. 상기 변조와 복조를 위한 모뎀의 장치는 각 변조 방식에 따라 서로 다른 구성 및 구조를 가지게 된다. 데이터 통신에서 사용되는 일반적인 변조 방식들은 코드 다중 변조(CDM) 방식, 주파수 변조(FDM) 방식, 직교 주파수 변조(이하 "OFDM" 이라 함.) 방식, 이산 다중 톤(이하 "DMT"라 함.) 변조 방식 등이 존재한다.In general, in a digital data communication system, data is transmitted through modulation and demodulation at the time of data transmission and reception. This modulation and demodulation is performed in a device called a modem. The device of the modem for modulation and demodulation has a different configuration and structure according to each modulation scheme. Common modulation schemes used in data communications include code multiplexing (CDM), frequency modulation (FDM), orthogonal frequency modulation (hereinafter referred to as "OFDM"), and discrete multiple tones (hereinafter referred to as "DMT"). Modulation schemes and the like.

그러면 이하에서는 OFDM 방식과 DMT 변조 방식에 대하여 설명한다.Hereinafter, the OFDM scheme and the DMT modulation scheme will be described.

상기 OFDM 방식은 무선 통신 시스템에서 다중 경로 채널을 통해 고속 데이터 전송을 위해 제안되었다. 상기 OFDM 방식 이전에는 단일 캐리어 전송 방식으로 데이터를 전송하였다. 즉, OFDM 방식 이전의 무선 통신 시스템에서는 전송하고자 하는 직렬의 데이터를 변조하고, 전송 시에 변조된 각 심볼이 전 채널의 주파수 대역을 사용하여 전송하였다. 그러나, OFDM 방식 또는 DMT 방식은 변조된 데이터를 부반송파(subcarrier)의 수만큼 직·병렬 변환하고 이를 각각에 대응되는부반송파(subcarrier)로 변조하는 방식이다. 이러한 부반송파를 이용한 변조는 이산 퓨리에 변환( Discrete Fourier Transform : 이하 "DFT"라 함)을 이용하여 구현한다. 그러나, 실제 하드웨어 설계에는 DFT나 역 이산 퓨리에 변환( Inverse Discrete Fourier Transform : 이하 "IDFT"라 함)을 사용하지 않고 연산량을 줄이기 위해 고속 퓨리에 변환(Fast Fourier Transform : 이하 "FFT"라 함) 알고리즘을 이용하여 구현한다. 이러한 FFT 알고리즘을 처리하기 위한 프로세서는 OFDM 시스템에 있어 가장 큰 복잡도를 가지며 고속 연산이 요구된다. 따라서 FFT 알고리즘을 처리하기 위한 프로세서는 구현이 까다로운 부분이다.The OFDM scheme is proposed for high speed data transmission through a multipath channel in a wireless communication system. Prior to the OFDM scheme, data was transmitted in a single carrier transmission scheme. That is, in a wireless communication system prior to the OFDM scheme, serial data to be transmitted is modulated, and each symbol modulated at the time of transmission is transmitted using the frequency band of all channels. However, the OFDM method or the DMT method converts the modulated data as many as the number of subcarriers (subcarriers) in parallel and modulates them into corresponding subcarriers. Modulation using such subcarriers is implemented using Discrete Fourier Transform (DFT). However, real hardware designs do not use DFTs or Inverse Discrete Fourier Transforms (IDFTs) and use Fast Fourier Transforms (FFTs) algorithms to reduce computation. Implement using The processor for processing such an FFT algorithm has the largest complexity in an OFDM system and requires high speed computation. Therefore, the processor for processing the FFT algorithm is a difficult part to implement.

이러한 고성능을 요구하는 분야에 사용되는 FFT 프로세서는 주로 파이프라인(pipe line) 구조를 가지는 FFT 프로세서가 사용된다. 그러나, 이 구조는 스테이지(stage) 수만큼의 연산부를 요구하여 포인트 수가 증가할 경우 실제 하드웨어로 구현할 경우에 많은 면적을 소모한다. 따라서 상기한 문제점을 극복하고 작은 하드웨어 크기를 유지하기 위해 메모리 구조와 단일 버터플라이 연산부를 사용하는 프로세서들이 발표되고 있다.As the FFT processor used in the field requiring such high performance, an FFT processor having a pipeline line structure is mainly used. However, this structure requires as many computation units as the number of stages, and consumes a large area when implemented in real hardware when the number of points increases. Therefore, processors are proposed that use a memory structure and a single butterfly operation unit to overcome the above problems and maintain a small hardware size.

그 한 예로서 기수-2(Radix-2 : 이하 "Radix-2"라 함) FFT 알고리즘을 사용한 메모리 구조 FFT 프로세서가 있다. 상기 메모리 구조 FFT 프로세서는 메모리 구조에 상기 Radix-2 알고리즘을 사용할 수 있으므로, 곱셈기의 수를 최소화할 수 있다. 따라서 메모리 구조 FFT 프로세서는 작은 면적을 소모하는 FFT 프로세서의 구현이 가능하다.One example is a memory structure FFT processor using Radix-2 (hereinafter referred to as "Radix-2") FFT algorithm. The memory structure FFT processor can use the Radix-2 algorithm in the memory structure, thereby minimizing the number of multipliers. Therefore, the memory structure FFT processor can implement an FFT processor that consumes a small area.

그러나 상기 Radix-2 알고리즘을 사용한 메모리 구조 FFT 프로세서는 매우많은 연산 싸이클을 필요로 한다. 따라서 연산 시간이 매우 길어지는 문제를 가진다. 따라서 고속 연산이 요구되는 OFDM 시스템 또는 DMT 시스템에 적합하지 않으며 이를 만족시키기 위해서는 매우 높은 동작 주파수가 요구된다. 따라서 일반적으로 OFDM 시스템 또는 DMT 시스템에서는 Radix-2 방식보다는 기수-4(Radix-4 : 이하 "Radix-4"라 함) 알고리즘을 사용하는 방식이 주로 이용하고 있다. 그러면 이하에서 현재까지 발표되어 사용되고 있는 Radix-4 알고리즘 방식의 FFT 프로세서들에 대하여 살펴본다.However, the memory structure FFT processor using the Radix-2 algorithm requires a lot of computational cycles. Therefore, the computation time becomes very long. Therefore, it is not suitable for an OFDM system or a DMT system requiring high speed operation, and a very high operating frequency is required to satisfy this. Therefore, in general, an OFDM system or a DMT system mainly uses a Radix-4 (Radix-4: hereinafter referred to as "Radix-4") algorithm rather than a Radix-2 scheme. The following describes the Radix-4 algorithmic FFT processors that have been published and used.

도 1은 암피온(AMPHION) 사에서 발표한 Radix-4 알고리즘을 기반으로 한 FFT 프로세서를 나타낸 것이다. 상기 Radix-4 알고리즘의 경우 Radix-2 알고리즘에 비해 스테이지 수가 1/2로 줄어들게 된다. 또한 각 스테이지 당 버터플라이 연산 횟수도 Radix-2에 비해 1/2이 된다. 따라서 Radix-4 알고리즘은 Radix-2 알고리즘에 비해 훨씬 적은 버터플라이 연산 횟수를 가진다. 이와 같은 Radix-4 알고리즘과 Radix-2 알고리즘 및 후술할 혼-기수 알고리즘의 FFT 길이에 따른 연산 횟수를 하기 <표 1>에 도시하였다.Figure 1 shows an FFT processor based on the Radix-4 algorithm published by AMPHION. In the case of the Radix-4 algorithm, the number of stages is reduced to 1/2 compared to the Radix-2 algorithm. The number of butterfly operations per stage is also half that of Radix-2. Therefore, the Radix-4 algorithm has much fewer butterfly operations than the Radix-2 algorithm. Table 1 shows the number of operations according to the FFT length of the Radix-4 algorithm, the Radix-2 algorithm, and the horn-odd algorithm described below.

FFT 길이FFT length Radix-2Radix-2 Radix-4Radix-4 혼합-기수Mixed-base 256256 1,0241,024 256256 -- 512512 2,3042,304 -- 640640 1,0241,024 5,1205,120 1,2801,280 -- 2,0482,048 11,26411,264 -- 3,0723,072 4,0964,096 24,57624,576 6,1446,144 -- 8,1928,192 53,24853,248 -- 14,33614,336

상기 <표 1>에서 도시한 바와 같이 Radix-4 알고리즘은 4n(이하에서 n은 정수를 의미한다)의 길이를 갖는 FFT 연산만이 가능하며, Radix-2 알고리즘은 2n의 길이를 갖는 모든 FFT의 길이에 대하여 연산이 가능하다. 이를 상기 <표 1>에 있는 FFT 길이를 이용하여 설명하면 하기와 같다. FFT 길이 256은 28이므로 Radix-2 알고리즘과 Radix-4 알고리즘 모두에서 사용이 가능하다. 그러나 FFT 길이 512는 29이므로 Radix-4 알고리즘은 FFT 길이 512인 경우에 연산을 수행할 수 없다. 따라서 2n의 길이를 갖는 모든 FFT 연산을 가능하도록 하기 위해 Radix-4 알고리즘을 다른 Radix와 함께 사용하는 혼합-기수(Mixed-radix) 알고리즘이 요구된다. 상기 <표 1>의 마지막 열에는 Radix-4 알고리즘과 Radix-2 알고리즘을 사용하는 Mixed-radix 알고리즘을 사용하였을 경우의 버터플라이 연산 횟수를 나타내었다. 상기 <표 1>의 혼합-기수에 대한 연산 횟수는 상기 도 1의 암피온 사(社)에서 제공하는 장치에서 수행되는 연산 횟수가 된다. 그러면 도 1을 참조하여 암피온 사에서 제공하는 장치에 대하여 살펴본다.As shown in Table 1, the Radix-4 algorithm is only capable of FFT operations having a length of 4 n (n is an integer below), and the Radix-2 algorithm has a length of 2 n . The length of the FFT can be calculated. This will be described below using the FFT length shown in Table 1. Since the FFT length 256 is 2 8, it can be used in both the Radix-2 and Radix-4 algorithms. However, because the FFT length 512 is 2 9 , the Radix-4 algorithm cannot perform the operation when the FFT length is 512. Therefore, a mixed-radix algorithm is required that uses the Radix-4 algorithm with other Radix to enable all FFT operations with a length of 2 n . The last column of Table 1 shows the number of butterfly operations when the mixed-radix algorithm using the Radix-4 and Radix-2 algorithms is used. The number of operations on the mixed-base of <Table 1> is the number of operations performed by the apparatus provided by Ampion Co., Ltd. of FIG. Then, with reference to Figure 1 looks at the device provided by Ampion.

상기 혼합-기수 알고리즘을 사용하는 상기 도 1의 FFT 프로세서는 Radix-4 버터플라이와 Radix-4/Radix-2의 버퍼플라이를 선택적으로 연동하여 Radix-4, Radix-8, Radix-16의 혼합-기수 연산을 수행한다.The FFT processor of FIG. 1 using the mixed-odd algorithm selectively combines Radix-4 butterfly and Radix-4 / Radix-2 buffer fly to mix Radix-4, Radix-8 and Radix-16. Perform a radix operation.

입출력 인터페이스 및 제어기(11)는 외부로부터 입력되는 데이터(X)를 FFT 연산하도록 제어하며, FFT 연산이 수행된 결과 데이터(Y)를 프로세서 외부로 출력한다. 여기서 입출력 인터페이스 및 제어기(11)로 입력되는 데이터(X)와 출력되는데이터(Y)는 OFDM 심볼 또는 DMT 심볼이 될 수 있다. 메모리 제어기(12)는 상기 입출력 인터페이스 및 제어기(11)로부터 FFT 연산을 위해 입력되는 데이터와 연산 중인 데이터의 읽기 및 쓰기를 위해 메모리(13)의 주소생성을 제어한다. 상기 메모리(13)는 1024-워드 듀얼 포트 메모리로 구성되어 있으며, 외부로부터 입력되는 데이터 및 FFT 연산 중간의 데이터, 결과 데이터를 상기 메모리 제어기(12)가 지시하는 주소에 저장하거나 독취한다.The input / output interface and the controller 11 control to FFT the data X input from the outside, and output the result data Y from which the FFT operation is performed to the outside of the processor. Herein, the data X input to the input / output interface and the controller 11 and the output data Y may be OFDM symbols or DMT symbols. The memory controller 12 controls address generation of the memory 13 to read and write data input for FFT operation from the input / output interface and the controller 11 and data in operation. The memory 13 is configured as a 1024-word dual port memory, and stores or reads data input from the outside, data in the middle of the FFT operation, and result data at an address indicated by the memory controller 12.

또한 버터플라이 연산부(10)는 Radix-4 버터플라이(14)와 회전인자 룩업 테이블(Look Up Table : 이하 "LUT"라 함)(16)과, 복호 곱셈기(15)로 구성된다. 상기 Radix-4 버터플라이(14)는 Radix-4 버터플라이 연산 중 덧셈과 뺄셈의 연산을 수행한다. 회전인자 LUT(16)는 연산이 수행되는 데이터의 회전인자를 저장하며, 회전인자 값을 출력하는 메모리 테이블이다. 복소 곱셈기(15)는 Radix-4 버터플라이 연산 중 복소수에 대한 곱셈을 수행하고 그 결과 값을 출력한다. 또한 Radix-4/Radix-2 선택적 버터플라이(17)는 FFT 길이에 따라 필요한 최종 연산을 선택적으로 수행하기 위한 장치이다. 즉, FFT 길이에 따라 최종 연산이 Radix-2 연산을 필요로 하는 경우에는 Radix-2 버터플라이를 선택하여 Radix-2 연산을 수행하도록 하며, 최종 연산이 Radix-4 연산을 필요로 하는 경우 Radix-4 버터플라이를 선택하여 Radix-4 연산을 수행하도록 한다. 따라서 전체적인 FFT 연산이 연산부(10)의 Radix-4 버터플라이 연산과 연동하여 Radix-8 혹은 Radix-16 연산을 수행 가능토록 한다. 그러므로 마지막 스테이지에서만 Radix-4/Radix-2 선택적 버터플라이(17)를 사용하고 나머지 스테이지에서는 Radix-4 버터플라이 연산부(10)만을 사용하기 위한 MUX(18)로 구성된다. 상기 Radix-4 알고리즘의 경우 4개의 입력과 출력을 갖는 버터플라이로 구현된다. 따라서 4개의 입출력이 한 싸이클에 수행되어야 연산 싸이클을 최소화할 수 있다. 이와 같이 한 싸이클에 4개의 입출력이 이루어지기 위해서는 메모리를 다중 뱅크로 나누어 사용하여야만 한다. 그러나, 상기 도 1의 FFT 프로세서는 다중 뱅크 구조를 사용하지 않는 구조로 되어있다. 따라서 도 1과 같은 구조로 동작을 수행하는 경우 많은 연산 싸이클이 요구되어 Radix-4 연산의 장점을 살리지 못하고 있다.In addition, the butterfly calculating unit 10 includes a Radix-4 butterfly 14, a rotation factor lookup table (LUT) 16, and a decoding multiplier 15. The Radix-4 butterfly 14 performs addition and subtraction operations among Radix-4 butterfly operations. The rotation factor LUT 16 is a memory table that stores rotation factors of data on which calculation is performed and outputs rotation factor values. The complex multiplier 15 performs a multiplication on the complex number during the Radix-4 butterfly operation and outputs the result. In addition, the Radix-4 / Radix-2 selective butterfly 17 is a device for selectively performing the required final operation according to the FFT length. In other words, if the final operation requires Radix-2 operation according to the FFT length, select Radix-2 butterfly to perform Radix-2 operation. If the final operation requires Radix-4 operation, Radix- 4 Select Butterfly to perform Radix-4 operations. Therefore, the overall FFT operation is performed in conjunction with the Radix-4 butterfly operation of the operation unit 10 to perform Radix-8 or Radix-16 operation. Therefore, in the last stage, the Radix-4 / Radix-2 selective butterfly 17 is used, and in the remaining stages, the MUX 18 is used to use only the Radix-4 butterfly calculation unit 10. The Radix-4 algorithm is implemented as a butterfly with four inputs and outputs. Therefore, four inputs and outputs must be performed in one cycle to minimize the operation cycle. In order to achieve four inputs and outputs in one cycle, the memory must be divided into multiple banks. However, the FFT processor of FIG. 1 has a structure that does not use a multi-bank structure. Therefore, when the operation is performed in the structure as shown in FIG. 1, many operation cycles are required and thus the advantage of the Radix-4 operation is not utilized.

도 2는 드레이 엔터프라이즈(Drey Enterprise) 사에서 발표한 혼합-기수 알고리즘과 다중 뱅크 구조를 갖는 FFT 프로세서의 블록 구성도이다. 상기 도 2에 도시한 바와 같이 드레이 엔터프라이즈 사에서 발표한 FFT 프로세서도 메모리 구조를 가짐을 알 수 있다. 도 2의 FFT 프로세서에서는 두 개의 메모리들(RAM)(21, 22) 중 하나의 RAM이 외부 입력 데이터를 저장하는 동안 나머지 하나의 RAM은 FFT 연산에 사용된다. 그리고, MUX(23)는 입력 RAM들 중 하나로부터 버터플라이 입력을 받을지 출력 RAM들(28, 29) 중 하나로부터 버터플라이 입력을 받을지를 결정한다. Radix-2 연산부들(26, 27)은 Radix-2 연산을 수행하는 스테이지에서 Radix-2 연산을 수행하여 그 결과를 출력한다. 또한 MUX(24)는 Radix-2 연산부들(26,27)로부터 Radix-2 버터플라이 출력을 받아 입력 RAM들(21, 22) 중 하나에 저장하거나 또는 출력 RAM들(28, 29) 중 하나에 저장하기 위해 결과 값을 다중화하여 출력한다. Radix-2/Radix-4 공유연산부(25)는 Radix-4 연산을 수행하는 스테이지에서는 Radix-4 연산을 수행하고, Radix-2 연산을 수행하는 스테이지에서는 Radix-2 연산을 수행하여그 결과 값을 출력한다. 2개의 출력 RAM들(28, 29) 중 하나의 RAM이 FFT 연산에 사용되는 동안 나머지 하나의 RAM은 FFT 연산의 결과 데이터를 외부로 출력한다. 상기 도 2와 같은 구조는 Radix-4와 Radix-2의 혼합-기수 알고리즘을 사용하며 또한 메모리도 다중 뱅크 구조를 사용한다. 따라서 메모리의 다중 뱅크 구조를 사용함으로 연산 클럭 싸이클이 최소화된 구조이다.FIG. 2 is a block diagram of an FFT processor having a mixed-odd algorithm and a multi-bank structure published by Drey Enterprise. As shown in FIG. 2, the FFT processor released by Dray Enterprise also has a memory structure. In the FFT processor of FIG. 2, one of two memories (RAM) 21 and 22 stores the external input data while the other RAM is used for the FFT operation. The MUX 23 then determines whether to receive a butterfly input from one of the input RAMs or a butterfly input from one of the output RAMs 28, 29. The Radix-2 calculators 26 and 27 perform a Radix-2 operation at the stage performing the Radix-2 operation and output the result. The MUX 24 also receives the Radix-2 butterfly output from the Radix-2 calculators 26 and 27 and stores it in one of the input RAMs 21 and 22 or in one of the output RAMs 28 and 29. Output multiplexed result values for storage. The Radix-2 / Radix-4 shared operation unit 25 performs Radix-4 operation at the stage performing Radix-4 operation, and performs Radix-2 operation at the stage performing Radix-2 operation to obtain the result value. Output While one of the two output RAMs 28 and 29 is used for the FFT operation, the other one outputs the result data of the FFT operation to the outside. The structure shown in FIG. 2 uses a mixed-base algorithm of Radix-4 and Radix-2, and a memory also uses a multi-bank structure. Therefore, the operation clock cycle is minimized by using the multi-bank structure of the memory.

그러나, 상기 도 2의 구조는 버터플라이 입력을 억세스한 메모리 위치에 버터플라이 출력을 저장하는 인-플레이스(In-plase) 알고리즘을 적용하지 못하였다. 따라서 FFT 연산에 N워드를 갖는 메모리 2개를 사용하는 구조이다. 즉, 상기 FFT 연산만을 위해서는 각각 4개의 뱅크로 구성된 메모리들 중 2개의 메모리만으로도 가능하지만, 연속 처리를 수행하기 위해서는 입력과 출력을 위한 2개의 메모리를 더 사용해야만 한다. 따라서, 상기 도 2에서는 총 4개의 메모리가 사용된다. 메모리의 경우 FFT 프로세서에서 대부분의 면적을 차지하는 블록 중에 하나이다. 따라서 상기와 같이 메모리의 숫자가 증가되는 경우에 메모리의 복잡도가 증가하며, 하드웨어의 부피가 증대되고, 가격이 상승하는 요인으로 작용한다.However, the structure of FIG. 2 does not apply an in-plase algorithm that stores the butterfly output in a memory location where the butterfly input is accessed. Therefore, the structure uses two memories having N words for FFT operation. That is, only two memories among four banks of memory may be used for the FFT operation alone, but two memories for input and output must be used to perform continuous processing. Therefore, a total of four memories are used in FIG. 2. Memory is one of the blocks that occupies most of the area in an FFT processor. Therefore, when the number of memories increases as described above, the complexity of the memory increases, the volume of the hardware increases, and the price increases.

상기 메모리 구조들의 메모리 복잡도를 최소화하기 위해 엘.쥐. 존슨(L. G. Johnson)이 발표한 인-플레이스 알고리즘의 16-포인트 FFT에 대한 실시 예는 도 3과 같다. 상기 인-플레이스 알고리즘은 메모리를 다중 뱅크로 나누어 사용할 경우를 위한 알고리즘이다. Radix-4 버터플라이 연산을 위해 4개의 데이터를 동시에 억세스하여야 하고, 버터플라이 연산이 이루어진 4개의 결과를 억세스한 위치에 동시에 저장하여야 한다. 이를 위해 메인 메모리를 4개의 뱅크(뱅크0, 뱅크1, 뱅크2,뱅크3)로 나누어 사용하며 동시에 한 뱅크에서 여러 개의 데이터를 억세스하지 않기 위해 적절한 어드레싱을 수행해야만 한다. 도 3은 16-포인트 FFT에 대한 인-플레이스 메모리 어드레싱의 예이다. 상기 도 3을 살펴보면, 첫 번째 버터플라이 연산부터 8번째의 버터플라이 연산까지를 수행하는 구성을 가진다. 또한 각 버터플라이 연산들을 살펴보면, 1회에 4개씩의 입력을 취한다. 이때 4개의 입력들은 각기 다른 뱅크들로부터 읽어온다. 그러면 첫 번째 버터플라이 연산과 두 번째 버터플라이 연산에 대하여 살펴본다. ①번 버터플라이의 경우 4개의 입력을 뱅크의 0번지, 뱅크1의 1번지, 뱅크2의 2번지, 뱅크3의 3번지로부터 읽어오고, 버터플라이 연산 결과를 같은 뱅크들과 번지들에 저장한다. ②번 버터플라이의 경우 4개의 입력을 뱅크1의 0번지, 뱅크2의 1번지, 뱅크3의 2번지, 뱅크0의 3번지로부터 읽어오고, 버터플라이 연산 결과를 같은 위치에 저장한다. 도 3에서 어느 뱅크를 사용하는지를 나타내는 뱅크 인덱스(뱅크i)는 데이터 입력 카운트 비트들을 2비트 디지트들로 나누어 모듈로-4 덧셈을 취함으로써 쉽게 구할 수 있다. 도 3이 16-포인트 FFT이므로 16개의 데이터를 카운트하기 위해서 4 비트 카운터가 사용된다. 4 비트를 상위 2 비트와 하위 2 비트의 디지트로 나누고, 상위 2 비트와 하위 2 비트를 모듈로-4 덧셈을 수행하는 방식으로 뱅크 인덱스를 구한다.In order to minimize the memory complexity of the memory structures. An example of the 16-point FFT of the in-place algorithm published by L. G. Johnson is shown in FIG. 3. The in-place algorithm is an algorithm for the case where the memory is divided into multiple banks. Four data must be accessed simultaneously for the Radix-4 butterfly operation, and four results of the butterfly operation must be stored simultaneously in the accessed location. To do this, the main memory is divided into four banks (bank 0, bank 1, bank 2, and bank 3), and appropriate addressing must be performed to avoid accessing multiple data in one bank at the same time. 3 is an example of in-place memory addressing for a 16-point FFT. Referring to FIG. 3, a configuration is performed from the first butterfly operation to the eighth butterfly operation. Also, look at each butterfly operation, taking four inputs at a time. Four inputs are then read from different banks. Let's take a look at the first and second butterfly operations. ① In case of butterfly, read 4 inputs from address 0 of bank, address 1 of bank 1, address 2 of bank 2, address 3 of bank 3, and store the result of butterfly operation in the same banks and addresses. . In the case of No. 2 butterfly, four inputs are read from address 0 of bank 1, address 1 of bank 2, address 2 of bank 3, and address 3 of bank 0, and the result of the butterfly operation is stored in the same position. The bank index (bank i) indicating which bank to use in FIG. 3 can be easily obtained by dividing the data input count bits into 2-bit digits and taking modulo-4 addition. Since FIG. 3 is a 16-point FFT, a 4-bit counter is used to count 16 data. The bank index is obtained by dividing the four bits into the digits of the upper two bits and the lower two bits, and performing modulo-4 addition on the upper two bits and the lower two bits.

그러나, 이상에서 상술한 인-플레이스 알고리즘은 혼합-기수가 아닌 고정된 기수에만 사용하기 위해 제안되었다. 따라서 상기한 인-플레이스 알고리즘을 혼합-기수 방식에 그대로 적용할 수 없는 문제가 있다.However, the in-place algorithm described above has been proposed for use only in fixed radix, not mixed-base. Therefore, there is a problem that the in-place algorithm described above cannot be applied to the mixed-base system as it is.

다음은 연속 처리 구조를 갖는 종래의 구조에 대해 기술한다. 메모리 구조에서 입력과 출력을 동시에 수행함으로써 N 워드의 크기를 갖는 메모리 2개만을 사용하여 연속처리가 가능한 메모리 구조의 FFT 프로세서가 알.랜드후앤(R. Radhouane)에 의해 제안되었다. 상기 구조는 Radix-2 알고리즘에서 DIF 연산을 할 경우와 DIT 연산을 할 경우에 각각 출력과 입력이 비트 리버스 특성을 갖는 것을 이용하여 한번은 DIF 연산을 수행하고 다음은 DIT 연산을 수행하는 방식으로 연속 처리를 구현하였다. 하기의 <표 2>는 메모리 2개를 이용한 연속 처리 구조의 연산 방식을 도시하였다.The following describes a conventional structure having a continuous processing structure. R. Radhouane has proposed a FFT processor with a memory structure capable of performing continuous processing using only two memories having an N word size by simultaneously performing input and output in the memory structure. In the above structure, the DIF operation is performed once in the Radix-2 algorithm and the DIT operation is performed. Implemented Table 2 below shows a calculation method of a continuous processing structure using two memories.

메모리 1Memory 1 메모리 2Memory 2 OFDM 심볼OFDM symbol 메모리 상태Memory status FFT-I/0 모드FFT-I / 0 mode 메모리 상태Memory status FFT-I/0 모드FFT-I / 0 mode 00 CC DIFDIF I/OI / O NATNAT 1One I/OI / O BRBR CC DIFDIF 22 CC DITDIT I/OI / O BRBR 33 I/OI / O NATNAT CC DITDIT

상기 <표 2>에서 OFDM 심볼은 FFT 연산의 길이에 해당하는 데이터를 의미한다. 예를 들어 256-포인트 FFT 연산의 경우 하나의 OFDM 심볼은 256개의 데이터들을 의미한다. 상기 <표 2>에서 C는 FFT 연산을 의미하고, I/O는 입출력을 수행함을 의미한다. NAT는 원래의 0, 1, 2, 3, …, N-1 번지의 올바른 순서로 메모리 어드레싱을 수행하여 입출력하는 것을 의미하며, BR은 비트 리버스 어드레싱으로 메모리 입출력을 수행함을 의미한다. 또한 상기 <표 2>의 0번 OFDM 심볼에서 메모리1이 DIF로 연산을 수행하는 동안 메모리2는 NAT 즉, 올바른 순서로 어드레싱을 수행하여 입출력을 수행한다. 다음 1번 OFDM 심볼에서 메모리1은 BR 즉, 비트 리버스 어드레싱으로 입출력을 수행하고, 메모리2는 DIF로 연산을 수행한다. 2번 심볼에서는메모리1이 DIT로 연산을 수행하고, 메모리2는 BR 즉, 비트 리버스 어드레싱으로 입출력을 수행한다. 다음 3번 심볼에서는 메모리1이 NAT 즉, 올바른 순서로 입출력을 수행하고 메모리2는 DIT로 연산을 수행한다. 다음 4번 심볼부터는 0, 1, 2, 3번 심볼의 연산흐름이 반복된다. 2개의 메모리로 연속처리가 가능하려면 하나의 메모리가 연산을 수행하는 동안 나머지 메모리는 순차적 순서를 갖는 입력과 출력을 동시에 수행 가능하여야 한다. 이와 같이 상기 구조에서는 두 메모리가 입출력과 FFT 연산을 번갈아 가며 수행하는 방식으로 2개의 메모리만으로 연속 처리가 가능하였다.In Table 2, the OFDM symbol means data corresponding to the length of the FFT operation. For example, in the case of a 256-point FFT operation, one OFDM symbol means 256 data. In Table 2, C means FFT operation and I / O means I / O. NAT is the original 0, 1, 2, 3,…. In other words, the memory addressing is performed in the correct order of the address N-1, and the BR means the memory I / O is performed by bit reverse addressing. In addition, while memory 1 performs DIF operation in OFDM symbol 0 of Table 2, memory 2 performs input / output by addressing NAT in the correct order. In the next OFDM symbol, memory 1 performs input / output by BR, that is, bit reverse addressing, and memory 2 performs operation by DIF. In symbol 2, memory 1 performs operations with DIT, and memory 2 performs input and output with BR, that is, bit reverse addressing. In symbol 3, memory 1 performs I / O in the correct order, and memory 2 operates with DIT. From the next 4 symbols, the operation flow of 0, 1, 2, 3 symbols is repeated. To enable continuous processing with two memories, the other memory must be able to execute input and output in sequential order while one memory performs the operation. As described above, in the above structure, two memories can be successively processed with only two memories in a manner in which I / O and FFT operations are alternately performed.

알카텔(Alcatel) 사에서 발표한 종래의 구조가 3개의 메모리를 사용하여 연속 처리를 구현한 반면 상기 종래의 연속 처리 구조는 2개의 메모리만을 사용하여 메모리 복잡도를 최소화할 수 있었다.While the conventional structure disclosed by Alcatel Inc. implements continuous processing using three memories, the conventional continuous processing structure can minimize memory complexity using only two memories.

그러나, 상기 연속 처리 구조는 Radix-2 알고리즘을 사용하는 경우만을 위해 구성되었다. 따라서 Radix-2 연산만을 수행하므로 많은 연산 싸이클과 높은 동작 주파수를 요구하는 문제점이 있었다.However, the continuous processing structure is configured only for the case of using the Radix-2 algorithm. Therefore, since only Radix-2 operations are performed, there are problems that require many operation cycles and high operating frequencies.

상술한 문제점을 해결하기 위하여 본 발명은 FFT 프로세서에 있어서, 고속 연산과 동시에 최소화된 복잡도를 갖는 회로를 제공함으로써 고성능을 만족시키며 면적을 최소화할 수 있는 프로세서를 제공하는 것을 목적으로 한다.In order to solve the above problems, an object of the present invention is to provide a processor capable of satisfying high performance and minimizing an area by providing a circuit having a minimum complexity and a high speed operation in an FFT processor.

본 발명의 다른 목적은 FFT 연산 수행 시에 Radix-2/Radix-4의 혼합-기수를제공하면서 작은 면적과 복잡도를 줄일 수 있는 프로세서 장치를 제공함에 있다.Another object of the present invention is to provide a processor device capable of reducing a small area and complexity while providing a mixed-base of Radix-2 / Radix-4 when performing an FFT operation.

본 발명의 또 다른 목적은 FFT 연산을 수행하는 프로세서에서 Radix-2/Radix-4의 혼합-기수를 제공하면서 빠른 속도의 처리가 가능한 프로세서 장치를 제공함에 있다.It is still another object of the present invention to provide a processor device capable of processing at high speed while providing a mixed-base of Radix-2 / Radix-4 in a processor performing an FFT operation.

본 발명의 또 다른 목적은 FFT 연산을 수행하는 프로세서에서 Radix-2/Radix-4의 혼합-기수를 제공하면서 연속 처리가 가능한 프로세서 장치를 제공함에 있다.It is another object of the present invention to provide a processor device capable of continuous processing while providing a mixed-base of Radix-2 / Radix-4 in a processor performing an FFT operation.

상기 목적들을 달성하기 위하여 본 발명은 Mixed-radix 알고리즘과 연속처리 구조를 갖는 FFT 프로세서에 있어서, 선택한 메모리와 그 선택한 메모리의 임의의 뱅크로부터 입력과 출력을 수행하기 위한 입출력 인터페이스와; 상기 인터페이스로의 입출력과 FFT 연산에 사용되는 4개의 뱅크로 구성된 2개의 N 워드 메모리와; 상기 선택한 메모리와 뱅크로부터 4개의 버플라이 입력을 공급하기 위한 데이터 교환부와; 상기 데이터 교환부로부터 공급된 Radix-4와 Radix-2 두 종류의 버터플라이를 하나의 회로로 수행하며 대칭적인 리버스 출력을 구성하기 위한 Radix-4/2 버터플라이 연산 회로와; 상기 선택한 메모리와 뱅크로 4개의 버터플라이 출력을 공급하기 위한 데이터 교환부와; 다중 뱅크 메모리 구조에서 인-플레이스 연산을 수행하기 위한 주소를 생성하는 주소 생성부를 포함하는 FFT 프로세서를 특징으로 한다.In order to achieve the above objects, the present invention provides a FFT processor having a mixed-radix algorithm and a continuous processing structure, comprising: an input / output interface for performing input and output from a selected memory and an arbitrary bank of the selected memory; Two N word memories consisting of four banks used for input and output to the interface and FFT operations; A data exchanger for supplying four buckle inputs from the selected memory and bank; A Radix-4 / 2 butterfly operation circuit configured to perform two types of butterflies supplied from the data exchanger as a single circuit and configure a symmetrical reverse output; A data exchanger for supplying four butterfly outputs to said selected memory and bank; An FFT processor includes an address generator for generating an address for performing an in-place operation in a multi-bank memory structure.

상기한 목적들을 달성하기 위한 본 발명은 고속 퓨리에 변환을 이용한 혼합-기수 방식의 변조 장치로서, 입력 심볼을 저장하거나 고속 퓨리에 연산이 완료된심볼들을 저장하는 4개의 뱅크로 구성된 2개의 메모리들과, 상기 메모리로부터 출력되는 심볼들의 수에 따라 기수-4 또는 기수-2 방식으로 버터플라이 연산을 수행하고, 상기 연산된 값들을 대칭적 리버스로 출력하는 버터플라이와, 상기 메모리들 중 하나의 메모리의 각 뱅크들로부터 각각 하나씩의 심볼들을 독취하여 상기 버터플라이로 출력하는 제1데이터 교환부와, 상기 버터플라이로부터 연산되어 출력된 심볼들을 상기 제1데이터 교환부에서 읽어온 주소와 동일한 주소에 저장되도록 각 심볼들을 매칭하는 제2데이터 교환부와, 상기 제1데이터 교환부에서 읽어온 심볼이 연산 이후 상기 제2데이터 교환부를 통해 출력될 시 상기 제1데이터 교환부에서 읽어온 뱅크 및 주소와 상기 제2데이터 교환부의 출력 뱅크 및 주소가 동일하도록 상기 제2데이터 교환부의 출력을 제어하는 주소 생성부를 포함함을 특징으로 한다.The present invention for achieving the above object is a mixed-odd modulation device using a fast Fourier transform, comprising: two memories consisting of four banks for storing input symbols or symbols for which fast Fourier operations have been completed; A butterfly that performs a butterfly operation in radix-4 or radix-2 according to the number of symbols output from the memory, and outputs the calculated values symmetrically in reverse, and each bank of one of the memories A first data exchanger reading one symbol from each of the symbols and outputting the symbols to the butterfly, and storing the symbols calculated and outputted from the butterfly at the same address as the address read from the first data exchanger. A second data exchanger matching the data sets and a symbol read from the first data exchanger after the operation is performed. And an address generator for controlling the output of the second data exchange unit such that the bank and address read from the first data exchange unit and the output bank and address of the second data exchange unit are the same when outputted through the data exchange unit. It is done.

도 1은 종래의 다중 뱅크 구조를 사용하지 않는 혼합-기수(Mixed-radix) 알고리즘 FFT 프로세서의 구조를 나타낸 블록도.1 is a block diagram illustrating the structure of a mixed-radix algorithm FFT processor that does not use a conventional multi-bank structure.

도 2는 종래의 인-프레이스(In-place) 알고리즘을 사용하지 않는 홉합-기수 알고리즘 FFT 프로세서의 구조를 나타낸 블록도.2 is a block diagram illustrating the structure of a hop-odd algorithm FFT processor that does not use a conventional in-place algorithm.

도 3은 종래의 다중 뱅크 메모리를 위한 기수-4(이하; Radix-4) 인-프레이스 알고리즘을 나타낸 도면.FIG. 3 illustrates a Radix-4 in-place algorithm for a conventional multi-bank memory. FIG.

도 4는 본 발명에 따른 연속 처리 구조를 갖는 In-place 알고리즘 혼합-기FFT 프로세서의 구조를 나타낸 블록도.4 is a block diagram illustrating the structure of an In-place algorithm mixer-based FFT processor with a continuous processing structure in accordance with the present invention.

도 5는 본 발명에 따른 32-포인트 혼합-기수 FFT 프로세서의 연산 흐름도.5 is a computational flow diagram of a 32-point mixed-odd FFT processor in accordance with the present invention.

도 6a는 도4의 FFT 프로세서에 사용되는 Radix-4/Radix-2 버터플라이 회로의 블록도.6A is a block diagram of a Radix-4 / Radix-2 butterfly circuit used in the FFT processor of FIG.

도 6b는 도6a의 Radix-2 버터플라이 연산 시 등가 버터플라이 쌍을 나타낸 도면.FIG. 6B shows an equivalent butterfly pair during the Radix-2 butterfly operation of FIG. 6A. FIG.

도 7은 도3의 Radix-4 알고리즘만을 사용할 경우에 연속 처리를 구현하기 위한 FFT 연산 흐름도.7 is a flow chart of an FFT operation for implementing continuous processing when using only the Radix-4 algorithm of FIG.

도 8a는 4n-포인트 FFT 연산을 위해 Radix-4 알고리즘만을 사용할 경우에 출력의 디지트 리버스(Reverse) 순서를 나타낸 도면.8A illustrates the digit reverse order of output when using only the Radix-4 algorithm for 4 n -point FFT operations.

도 8b는2n(n=3, 5, 7, 9, …)- 포인트 FFT 연산을 위해 Radix-2를 함께 사용하는 Mixed-radix 알고리즘을 사용할 경우에 출력의 비대칭적 리버스 순서를 나타낸 도면.FIG. 8B shows the asymmetric reverse order of the outputs when using a Mixed-radix algorithm using Radix-2 together for a 2 n (n = 3, 5, 7, 9,…) -point FFT operation.

도 9는 32-포인트 Mixed-radix FFT 연산인 도5의 열4에 해당하는 비대칭적 리버스 출력 순서를 나타낸 도면.9 illustrates an asymmetric reverse output order corresponding to column 4 of FIG. 5, which is a 32-point Mixed-radix FFT operation.

도 10은 32-포인트 Mixed-radix FFT 연산인 도5의 열3에 해당하는 대칭적 리버스 출력 순서를 나타낸 도면.FIG. 10 shows a symmetrical reverse output sequence corresponding to column 3 of FIG. 5, which is a 32-point Mixed-radix FFT operation.

도 11은 2n(n=3, 5, 7, 9, …)-포인트 FFT 연산을 위한 혼합-기수의 대칭적 리버스 출력 순서를 나타낸 도면.FIG. 11 shows the symmetric reverse output order of mixed-base for 2 n (n = 3, 5, 7, 9, ...)-point FFT operations.

도 12는 도5의 열3에 해당하는 대칭적 리버스 출력 순서를 생성하기 위한 데이터 교환을 나타낸 흐름도.12 is a flow diagram illustrating data exchange for generating a symmetric reverse output order corresponding to column 3 of FIG.

도 13은 32-포인트 혼합-기수 FFT 연산인 도5의 뱅크 인덱스 생성 방법을 나타낸 도면.Figure 13 illustrates the bank index generation method of Figure 5 which is a 32-point mixed-odd FFT operation.

도 14는 2n(n=3, 5, 7, 9, …)-포인트 FFT 연산을 위한 혼합-기수의 뱅크 인덱스 생성 방법을 나타낸 도면.14 illustrates a method for generating a mixed-base bank index for a 2 n (n = 3, 5, 7, 9, ...)-point FFT operation.

이하, 첨부된 도면을 참조로 하여 본 발명을 상세히 설명하기로 한다.Hereinafter, the present invention will be described in detail with reference to the accompanying drawings.

도 4는 본 발명에 따른 인-플레이스 알고리즘을 적용하고 Mixed-radix 구조와 입출력을 동시에 수행함으로써 2N 워드의 메모리로 연속 처리를 수행하는 FFT 프로세서의 블록 구성도이다.FIG. 4 is a block diagram of an FFT processor applying a in-place algorithm according to the present invention and simultaneously performing a mixed-radix structure and an input / output in a 2N word memory.

입출력 인터페이스(101)는 입력되는 데이터를 FFT 연산을 위해 메모리들(102, 103) 중 한 메모리를 선택하고, 메모리의 4개의 뱅크 중 하나의 뱅크를 선택하여 데이터를 기록한다. 그리고 입력된 데이터의 연산이 완료된 경우 상기 입출력 인터페이스(101)는 FFT 연산이 완료된 데이터가 저장된 메모리를 선택하고, 상기 선택된 메모리의 4개의 뱅크 중 하나의 뱅크를 선택하여 데이터를 독출하여 출력한다. 4개의 뱅크를 가지는 2개의 N 워드 메모리들(102, 103)는 상기 인터페이스(101)로부터 입력되는 데이터를 저장하고, 저장된 데이터의 FFT 연산을 위해 제1데이터 교환부(104)로 출력하고, 제2데이터 교환부(106)로부터 수신되는 데이터를 다시 저장한다. 그리고, 상기 각 메모리들(102, 103)에서 FFT 연산이 완료된 데이터는 입출력 인터페이스(101)로 출력한다. 상기 제1데이터 교환부(104)는 FFT 연산을 수행할 데이터가 저장된 메모리 및 상기 메모리의 뱅크를 선택하고, 본 발명에 따라 인-플레이스 연산을 위해 선택된 메모리의 뱅크로부터 4개의 데이터를 읽어온다. 그리고, 상기 제1데이터 교환부(104)는 주소 생성부(107)로부터 출력되는 주소 생성 값에 따라 상기 읽어온 데이터를 교환하여 Radix-4/2 버터플라이(105)로 출력한다. 또한 본 발명에 따른 Radix-4/2 버터플라이(105)는 상기 제1데이터 교환부(104)로부터 입력되는 데이터에 따라 Radix-4 방식으로 동작하거나 또는 Radix-2 방식 중 하나의 방식으로 연산을 수행한다. 상기 Radix-4/2 버터플라이(105)는 하나의 회로로 이루어지며, 대칭적인 리버스 출력을 가진다. 이와 같이 Radix-4/2 버터플라이(105)에서 연산된 데이터는 제2데이터 교환부(106)로 출력된다. 상기 제2데이터 교환부(106)는 상기 주소 생성부(107)로부터 수신되는 주소에 따라 상기 Radix-4/2 버터플라이(105)로부터 출력된 값을 저장할 메모리와 상기 메모리 내의 뱅크를 선택하여 저장한다. 주소 생성부(107)는 상기 다중 뱅크 메모리 구조에서 본 발명에 따른 인-플레이스 연산을 수행하기 위한 뱅크 인덱스 및 주소를 생성하여 출력한다.The input / output interface 101 selects one of the memories 102 and 103 for the FFT operation on the input data, and selects one of the four banks of the memory to record the data. When the operation of the input data is completed, the input / output interface 101 selects a memory in which the data on which the FFT operation is completed is stored, selects one bank among four banks of the selected memory, and reads out the data. Two N word memories 102 and 103 having four banks store data input from the interface 101 and output the data to the first data exchanger 104 for FFT operation of the stored data. The data received from the data exchange unit 106 is stored again. In addition, the data in which the FFT operation is completed in each of the memories 102 and 103 is output to the input / output interface 101. The first data exchanger 104 selects a memory in which data to perform an FFT operation and a bank of the memory, and reads four data from a bank of the memory selected for in-place operation according to the present invention. The first data exchanger 104 exchanges the read data according to the address generation value output from the address generator 107 and outputs the read data to the Radix-4 / 2 butterfly 105. In addition, the Radix-4 / 2 butterfly 105 according to the present invention operates in the Radix-4 method or the Radix-2 method according to the data input from the first data exchanger 104. To perform. The Radix-4 / 2 butterfly 105 consists of one circuit and has a symmetrical reverse output. The data calculated by the Radix-4 / 2 butterfly 105 is output to the second data exchange unit 106. The second data exchanger 106 selects and stores a memory to store a value output from the Radix-4 / 2 butterfly 105 and a bank in the memory according to an address received from the address generator 107. do. The address generator 107 generates and outputs a bank index and an address for performing an in-place operation according to the present invention in the multi-bank memory structure.

상기 도 4의 구조를 가지는 FFT 프로세서는 도 5와 같은 흐름도를 갖는다. 도 5는 32-포인트 Mixed-radix FFT 연산의 예이며, 스테이지1과 스테이지2는 Radix-4로, 마지막 스테이지3은 Radix-2로 연산이 수행된다. 상기 도 4에서 살핀 바와 같이 본 발명의 구조에서는 2개의 각 메모리를 4개의 뱅크로 나누어 동시에 4개의 데이터 접근이 가능하다. 그러므로 2개의 데이터를 사용하는 Raidx-2 버터플라이의 경우 동시에 2개의 버터플라이 연산 수행이 가능하다. 또한 스테이지3의 가는 실선 안에 표시한 2개의 Radix-2 버터플라이들이 동시에 수행 가능한 버터플라이 쌍을 나타낸다. 이와 같이 2개의 Radix-2 버터플라이를 동시에 한 싸이클로 수행하면 연산 싸이클 감소의 이득을 볼 수 있다.The FFT processor having the structure of FIG. 4 has a flowchart as shown in FIG. 5. 5 shows an example of a 32-point mixed-radix FFT operation, in which stage 1 and stage 2 are Radix-4, and stage 3 is Radix-2. As shown in FIG. 4, in the structure of the present invention, two data are divided into four banks and four data can be accessed simultaneously. Thus, for a Raidx-2 butterfly using two data, two butterfly operations can be performed simultaneously. In addition, two Radix-2 butterflies in the thin solid line of Stage 3 represent butterfly pairs that can be executed simultaneously. Thus, by running two Radix-2 butterflies in one cycle at the same time, the benefit of computational cycle reduction can be seen.

상기 FFT 프로세서에서 Radix-2 버터플라이 구조는 별도의 버터플라이로 구현하지 않고 Radix-4 버터플라이에 데이터 스위칭 회로를 추가하여 구현한다. 이를 도 6a에 나타내었다. 도 6a에서 'Radix-2'라는 멀티플렉서(Multiplexer) 선택 신호를 통해 Radix-4 버터플라이와 2개의 Radix-2 버터플라이를 구현한다. 상기 도 6a에 도시한 도면에 대하여 좀더 살펴보면 하기와 같다. 2개씩 입력되는 데이터 x(0)의 심볼과 x(2)의 심볼이 각 Radix-2 버터플라이를 구성하는 가산기들로 각각 입력되며, x(1)의 심볼과 x(3)의 심볼이 다른 Radix-2 버터플라이를 구성하는 가산기들로 각각 입력된다. 이와 같이 각 Radix-2 버터플라이를 구성하는 가산기들은 출력을 둘로 분기하여 하나의 출력을 각각 멀티플렉서의 한 입력단으로 입력된다. 그리고, 상기 분기된 다른 하나의 출력은 Radix-2 버터플라이를 구성하는 각기 다른 가산기로로부터의 출력과 가산 및 감산을 수행하여 상기 각 멀티플렉서들의 다른 한입력단으로 입력된다. 이후 각 멀티플렉서들의 출력은 도면에 도시한 바와 같이 다시 분기되어 다른 멀티플렉서들을 통해 선택이 이루어지거나 또는 그대로 출력된다. 이와 같이 출력된 값들은 본 발명에 따라 인-플레이스를 위한 주소로 매핑된다. 이에 대하여는 이하에 첨부된 도면을 참조하여 더 상세히 설명하기로 한다. 상기 도 6a에 대한 등가 회로를 구성하면 도 6b와 같이 구성된다. 도 6b는 Radix-4 버터플라이 회로로 Radix-2 버터플라이를 구현하였을 경우 등가의 Radix-2 버터플라이 쌍을 나타낸다.In the FFT processor, the Radix-2 butterfly structure is implemented by adding a data switching circuit to the Radix-4 butterfly rather than a separate butterfly. This is shown in Figure 6a. In FIG. 6A, a Radix-4 butterfly and two Radix-2 butterflies are implemented through a multiplexer selection signal called 'Radix-2'. The drawings illustrated in FIG. 6A will be described below. The two symbols of data x (0) and the symbols of x (2) are input to the adders constituting each Radix-2 butterfly, and the symbols of x (1) and the symbols of x (3) are different. Inputs are made to the adders that make up the Radix-2 butterfly. In this way, the adders that make up each Radix-2 butterfly split the output into two, and each output is input to one input of the multiplexer. The other branched output is input to the other input terminal of each of the multiplexers by performing addition, subtraction, and subtraction of the outputs from different adders constituting the Radix-2 butterfly. Thereafter, the outputs of the multiplexers are branched again as shown in the drawing to be selected through the other multiplexers or output as is. The values thus output are mapped to addresses for in-place in accordance with the present invention. This will be described in more detail with reference to the accompanying drawings below. The equivalent circuit of FIG. 6A is configured as shown in FIG. 6B. 6B shows an equivalent Radix-2 butterfly pair when implementing a Radix-2 butterfly circuit with a Radix-4 butterfly circuit.

다음으로 상기 본 발명의 메모리 구조에서 연속 처리를 수행하기 위한 구조에 대해 설명한다. 종래기술에서 설명한 바와 같이 알.래드후앤에 의해 제안된 연속 처리 구조는 Radix-2 알고리즘을 위한 구조이다. 그러나, 본 발명의 구조는 Radix-4와 혼합-기수를 위한 구조이다. 또한, 종래의 구조는 FFT와 DIT 연산을 번갈아 가며 수행하는 방식이다. 그러나, 본 발명의 구조는 DIF 연산만을 수행하며 메모리 어드레싱의 제어만으로 연속 처리를 수행한다.Next, a structure for performing continuous processing in the memory structure of the present invention will be described. As described in the prior art, the continuous processing structure proposed by R. Radhuan is the structure for the Radix-2 algorithm. However, the structure of the present invention is a structure for Radix-4 and mixed-base. In addition, the conventional structure is a method of alternately performing the FFT and DIT operations. However, the structure of the present invention performs only DIF operations and performs continuous processing only under the control of memory addressing.

본 발명에서와 같이 연속 처리를 수행하기 위해서는 복호를 수행할 심볼의 위치에 새로이 복호할 심볼이 저장되어야 한다. 이와 같이 복호가 될 심볼을 읽어가는 동작과 새로이 복호할 심볼이 저장되는 것은 한 클럭에 의해 읽기와 쓰기가 동시에 이루어진다. 또한 Radix-4 버터플라이를 만족하기 위해서는 4개의 뱅크를 가지는 메모리에서 각 뱅크에서 출력되는 심볼이 하나씩만 출력되어야 한다. 그리고, 각 스테이지를 거쳐 연산이 완료되었을 때, 상기 심볼들은 읽혀진 위치에 기록되어야만 한다. 따라서 이러한 방법으로 주소를 생성하는 것이 가장 큰 과제가 된다. 이상에서 설명한 방법은 Radix-4 알고리즘만을 사용할 때 쉽게 구현될 수 있다. 따라서 도 7에는 Radix-4 알고리즘만을 사용하는 16-포인트 FFT의 예를 도시하였다.In order to perform continuous processing as in the present invention, a symbol to be newly decoded must be stored at a position of a symbol to be decoded. In this way, the operation of reading a symbol to be decoded and storing a symbol to be decoded are simultaneously read and written by one clock. In addition, to satisfy the Radix-4 butterfly, only one symbol from each bank must be output from a memory with four banks. And, when the operation is completed through each stage, the symbols must be written to the read position. Therefore, creating an address in this way is the biggest challenge. The method described above can be easily implemented when using only the Radix-4 algorithm. Thus, FIG. 7 shows an example of a 16-point FFT using only the Radix-4 algorithm.

도 7에서 열1과 열2는 데이터들이 저장되는 메모리 뱅크와 번지를 나타낸 것이고, 열3은 디지트 리버스 출력 순서를 나타낸다. 도 7에서 처음으로 외부에서 들어온 입력 데이터들은 열2의 뱅크와 번지에 저장된다. 상기 입력된 데이터들은 첫 번째 스테이지에서 4번의 버터플라이 연산이 이루어지며, 2번째 스테이지에서 4번의 버터플라이 연산이 이루어진다. 즉, 도 7에서 ① 내지 ④는 첫 번째 스테이지에서 이루어지는 4번의 버터플라이 연산을 나타내며, ⑤ 내지 ⑧은 두 번째 스테이지에서 이루어지는 4번의 버터플라이 연산을 나타낸다. 상기 각 스테이지의 각 버터플라이 연산은 하나의 메모리에 구비된 4개의 각 뱅크로부터 데이터가 하나씩 읽혀짐을 알 수 있다. 첫 번째 버터플라이 연산에서는 뱅크0의 0번지 데이터와, 뱅크1의 1번지 데이터와 뱅크2의 2번지 데이터와 뱅크3의 3번지 데이터가 읽혀진다. 따라서 각 뱅크마다 하나씩 데이터가 읽혀지면서 처리가 이루어진다. 이러한 방법으로 4번의 버터플라이 연산이 완료되면, 2번째 스테이지에서 다시 4번의 버터플라이 연산이 이루어진다.In FIG. 7, columns 1 and 2 represent memory banks and addresses where data are stored, and column 3 represents a digit reverse output order. In FIG. 7, externally input data are stored in the bank and the address of the column 2. The input data is performed four butterfly operations in the first stage and four butterfly operations in the second stage. That is, in FIG. 7, ① to ④ represent four butterfly operations performed in the first stage, and ⑤ to ⑧ represent four butterfly operations performed in the second stage. In the butterfly operation of each stage, it can be seen that one data is read from each of four banks provided in one memory. In the first butterfly operation, address 0 data of bank 0, address 1 data of bank 1, address 2 data of bank 2, and address 3 data of bank 3 are read. Therefore, data is read and processed one by one for each bank. In this way, when four butterfly operations are completed, four butterfly operations are performed again in the second stage.

상기한 방법으로 연산이 이루어진 출력들은 도 7의 열3에 도시한 바와 같은 출력 순서를 가진다.The outputs computed in the above manner have the output order as shown in column 3 of FIG.

상술한 바와 같이 FFT 연산이 수행되면 열3의 디지트 리버스 순서로 출력이 구성되며 메모리 저장 위치는 인-플레이스 연산을 수행하므로 열2의 뱅크와 번지가그대로 유지된다. 연산 결과를 디지트 리버스 어드레싱을 통해 순차적 순서로 출력하고 동시에 순차적 순서로 다음 데이터를 입력하면 열1의 뱅크와 주소에 새로운 입력 데이터들이 저장된다. 열3의 '0'번 출력은 열2의 뱅크0의 0번지에 저장되어 있으므로 이를 출력하고, 다음 FFT 연산을 위한 새로운 데이터의 '0'번을 상기 출력이 이루어진 뱅크와 번지에 저장한다. 다음으로 열3의 '1'번 출력은 열2의 뱅크1의 1번지에 있으며, 이를 출력하고 새로운 데이터의 '1'번을 상기 출력이 이루어진 위치에 저장한다. '2'번 출력은 열2의 뱅크2의 2번지에 저장되어 있으며 이를 출력하고 이 위치에 새로운 데이터의 '2'번을 상기 출력이 이루어진 위치에 저장한다. 이와 같은 방법으로 새로운 입력을 저장하면 열1의 뱅크와 번지가 형성된다. 그리고 이에 대한 FFT 연산을 수행한 뒤 순차적 순서로 출력하고 순차적 순서로 입력을 저장하면 다시 열2의 뱅크와 주소 할당으로 복원된다. 따라서 열1과 열2의 뱅크와 주소 할당이 번갈아 가며 수행된다.As described above, when the FFT operation is performed, the output is configured in the digit reverse order of column 3, and the memory storage location performs the in-place operation, so the bank and address of column 2 are maintained as they are. If the results of the operation are output in sequential order through digit reverse addressing and the next data is input in sequential order at the same time, new input data is stored in the bank and address of column 1. Output '0' of column 3 is stored in address 0 of bank 0 of column 2, and outputs it. Then, '0' of new data for the next FFT operation is stored in the bank and address where the output is made. Next, output '1' of column 3 is located at address 1 of bank 1 of column 2, and the output is stored in the position where the output is made. The output of '2' is stored in address 2 of bank 2 of column 2, and the output thereof is stored in the position where the output is made. Storing a new input in this way creates a bank and address for column 1. After the FFT operation is performed, the output is performed in sequential order and the inputs are stored in sequential order. Then, the FFT operation is restored to the bank and address assignment of column 2. Thus, the bank and address assignments in columns 1 and 2 are alternately performed.

이와 같이 순차적 순서로 동시에 입출력 수행이 가능하면 하나의 메모리가 연산을 수행하는 동안 나머지 메모리는 입출력을 수행하는 방식으로 메모리 2개만으로 연속 처리가 가능하다. 이때 FFT 연산은 입출력 동작 주파수에 비해 2배의 동작 주파수로 연산이 수행되어야 한다. 이는 상기 <표 1>에서 볼 수 있듯이 FFT 연산 클럭 싸이클이 FFT 포인트 수보다 더 길기 때문이다. 즉, Radix-4의 경우 1024-포인트 FFT부터, Radix-4/Radix-2의 혼합-기수의 경우 512-포인트 FFT부터 연산 클럭 싸이클이 더 길어진다.In this way, if I / O can be performed simultaneously in a sequential order, the remaining memory can be processed continuously with only two memories while one memory performs an operation. In this case, the FFT operation should be performed at an operating frequency twice that of the input / output operating frequency. This is because, as shown in Table 1, the FFT computation clock cycle is longer than the number of FFT points. That is, the computational clock cycle is longer from 1024-point FFT for Radix-4 and 512-point FFT for Radix-4 / Radix-2 mixed-base.

혼합-기수의 경우 연속 처리를 위한 순차적 입출력을 위해 별도의 조작이 필요하다. 32-포인트 혼합-기수의 경우 출력이 상기 도 5의 열4와 같이 나타난다. 이는 도 7 열3의 Radix-4 알고리즘의 리버스 순서와 달리 비대칭적인 리버스 형태를 갖는다. 먼저 Radix-4 알고리즘만을 사용한 경우의 디지트 리버스 순서에 대해 설명하면, Radix-4의 2n-포인트 FFT에 대한 디지트 리버스 순서를 도 8a에 나타내었다. 2n개의 데이터를 카운트하기 위해서 n 비트가 필요하므로 n 비트 카운터가 사용된다. 도 8a에서 (n-1, n-2) 번째 비트, (n-3, n-4) 번째 비트, …, (3, 2) 번째 비트, (1, 0) 번째 비트들의 쌍을 하나의 디지트로 하여 리버스가 수행된다. 본 발명에서는 이와 같이 이루어지는 리버스를 "디지트 리버스"라 칭함에 유의하여야 한다. 도 8a에서 알 수 있듯이 디지트들의 정가운데를 중심으로 대칭적으로 리버스가 됨을 알 수 있다.In the case of mixed-odds, a separate operation is required for sequential input and output for continuous processing. In the case of a 32-point mixed-base the output is shown in column 4 of FIG. This has an asymmetric reverse form, unlike the reverse order of the Radix-4 algorithm in FIG. First, the digit reverse order when only the Radix-4 algorithm is used will be described. FIG. 8A shows the digit reverse order for the 2 n -point FFT of the Radix-4. An n bit counter is used because n bits are needed to count 2 n data. In FIG. 8A, the (n-1, n-2) th bit, the (n-3, n-4) th bit,... Reverse is performed by using a pair of the (3, 2) th bit and the (1, 0) th bit as one digit. In the present invention, it should be noted that such a reverse is called "digit reverse". As can be seen in Figure 8a it can be seen that the symmetrical reverse around the center of the digits.

도 8b는 2n-포인트 FFT에 대한 혼합-기수의 리버스 순서를 도시하였다. 혼합-기수의 경우 23, 25, 27, 29 등의 2의 홀수승의 포인트 수를 가져 출력 카운트 비트의 수가3, 5, 7, 9 비트 등과 같이 홀수이기 때문에 Radix-4와 같이 2 비트 디지트로만 리버스할 수 없다. 최하위 비트가 별도로 리버스 되어야 하며 이로 인해 비대칭적인 리버스 형태를 갖게 된다. 도 8b의 예로 32(25)-포인트에 해당하는 도 5의 열4는 도 9와 같은 비대칭적 리버스 형태를 가진다. 비대칭적인 리버스 출력을 가질 경우 Radix-4 알고리즘으로 구성된 도 7과 같이 열1과 열2의 뱅크와 번지가 반복되는 구조를 구성할 수 없다. 혼합-기수에서도 Radix-4만을 사용하는 도7과 같이 연속 처리를 위해 열1과 열2가 반복되는 구조를 가지려면 출력이 대칭적인 리버스 형태를 가져야 한다. 이를 위해 혼합-기수 알고리즘에서 도 5의 열4와 같은 비대칭적 출력 순서를 열3과 같은 대칭적 출력 순서를 갖도록 변환하는 데이터 교환이 수행되며 이를 통한 32(25)-포인트의 대칭적 리버스 출력 순서가 도 5의 열3과 같으며 도 10과 같이 생성할 수 있다. 이를 일반화하여 2n-포인트 혼합-기수 FFT의 경우를 살펴보면 출력의 대칭적 리버스 순서는 도 11과 같으며 상위 2 비트(n-1, n-2)와 하위 2비트 (1, 0)는 디지트 리버스가 수행되며 가운데 비트들(n-3, n-4, …, 3, 2)은 비트 리버스가 수행된다. 결론적으로 원래 도 8b의 비대칭적 리버스 형태가 데이터 교환 과정을 통해 도 11의 대칭적 리버스 형태로 변환되는 것이다.8B shows the reverse order of mixed-base for a 2 n -point FFT. For mixed-odds, only two-bit digits, such as Radix-4, because the number of output power bits is odd, such as 23, 25, 27, 29, etc. It cannot be reversed. The least significant bit must be reversed separately, resulting in an asymmetrical reverse shape. Column 4 of FIG. 5 corresponding to 32 (2 5 ) -points in FIG. 8B has an asymmetrical reverse form as shown in FIG. 9. In the case of having an asymmetric reverse output, the bank and address of the columns 1 and 2 are not repeated as shown in FIG. 7 configured with the Radix-4 algorithm. To have a structure in which columns 1 and 2 are repeated for continuous processing as shown in FIG. 7 using only Radix-4 in mixed-base, the output must have a symmetrical reverse form. For this purpose, a data exchange is performed in the mixed-base algorithm that converts an asymmetrical output order, such as column 4 of FIG. 5, to have a symmetrical output order, such as column 3, resulting in 32 (2 5 ) -point symmetrical reverse output The order is as shown in column 3 of FIG. 5 and can be generated as shown in FIG. 10. Generalizing this, the case of 2 n -point mixed-odd FFT shows that the symmetrical reverse order of the output is shown in Fig. 11, and the upper two bits (n-1, n-2) and the lower two bits (1, 0) are digits. Reverse is performed, and bits (n-3, n-4, ..., 3, 2) are reversed in the middle. In conclusion, the asymmetric reverse form of FIG. 8B is originally converted into the symmetric reverse form of FIG. 11 through a data exchange process.

도 5의 열3과 도 10에 나타낸 32-포인트의 대칭적 리버스 순서를 구현하기 위한 데이터 교환 과정을 도 12에 도시하였다. 상기 도 12는 상기 도 5의 우측 상단에 굵은 실선으로 박스(box) 표시한 8-포인트 DFT 부분에 해당한다. 도 12에 나타낸 바와 같이 단순히 스테이지2에서는 Radix-4 버터플라이의 두 번째와 세 번째의 각 2개씩 존재하는 출력 g'2(n), g'3(n)의 저장 위치를 교환하고, 스테이지3에서도 Radix-2 버터플라이 쌍의 출력 X'2(n)과 X'3(n)의 저장 위치를 교환한다. 이와 같이 구성하면 도 12의 열1에 도시한 바와 같이 대칭적 리버스 순서로 변환된다. 상기 도 12에서 열2는 본 발명에서와 같은 저장 위치의 교환이 이루어지지 않은 경우의 비대칭적 리버스 순서를 대비하여 도시하였다. 이와 같은 데이터 교환은도 6a의 버터플라이 회로에서 'Exchange' 신호의 제어를 통해 수행될 수 있다. 예로 든 32-포인트 FFT 뿐만 아니라 모든 2n(n=1, 3, 5, 7, 9, …)-포인트 FFT에서 첫 번째 스테이지를 제외한 나머지 스테이지에서 Radix-4 버터플라이의 두 번째와 세 번째 출력 저장 위치를 교환하고 마지막 스테이지에서 2개의 Radix-2 버터플라이의 두 번째와 세 번째 출력 저장 위치를 교환하는 것에 의해 대칭적 리버스 출력 순서를 구성하는 것이 가능하다.A data exchange procedure for implementing the 32-point symmetric reverse order shown in column 3 of FIG. 5 and FIG. 10 is shown in FIG. FIG. 12 corresponds to an 8-point DFT portion boxed by a thick solid line at the upper right of FIG. 5. As shown in Fig. 12, simply in stage 2, the storage positions of the outputs g'2 (n) and g'3 (n) which exist for each of the second and third of the Radix-4 butterfly are exchanged, and stage 3 Also exchanges the storage locations of the outputs X'2 (n) and X'3 (n) of the Radix-2 butterfly pair. This configuration converts the symmetrical reverse order as shown in column 1 of FIG. In FIG. 12, column 2 is shown in contrast to the asymmetric reverse order when the storage location is not exchanged as in the present invention. Such data exchange may be performed through control of the 'Exchange' signal in the butterfly circuit of FIG. 6A. Second and third outputs of the Radix-4 butterfly at all stages except the first stage in all 2 n (n = 1, 3, 5, 7, 9,…) -point FFTs as well as the example 32-point FFT It is possible to configure a symmetrical reverse output order by swapping storage locations and swapping the second and third output storage locations of the two Radix-2 butterflies in the last stage.

마지막으로 Mixed-radix 알고리즘에서의 뱅크 인덱스 생성에 대해 설명한다. 본 발명에 따른 뱅크 인덱스 생성 방법은 전술한 도 5의 열1과 열2에 나타낸 뱅크 인덱스를 생성하는 것이다. 뱅크 인덱스와 각 뱅크의 번지 생성은 FFT 길이가 2n일 경우 n 비트 카운터를 이용하여 생성한다. 종래기술에서 설명된 Radix-4 알고리즘의 경우 22, 24, 26, 28등의 포인트 수를 가진다. 그러므로 뱅크 인덱스(뱅크i) 생성은 2비트 디지트들에 대하여 모듈로-4 덧셈을 통해 구할 수 있다. 그러나, Mixed-radix의 경우 23, 25, 27, 29등과 같은 포인트 수를 가져 입력 카운트 비트의 개수가 3비트, 5비트, 7비트, 9비트 등과 같이 홀수가 존재하게 된다. 따라서 2 비트 디지트들의 모듈로-4 덧셈만으로는 뱅크 인덱스를 생성할 수 없다. 본 발명에 따른 Mixed-radix의 경우 입력 카운트 비트의 자리 수가 홀수인 경우 뱅크 인덱스를 생성하는 방법은 하기의 2가지 과정을 통해 수행된다. 첫째로, 최상위 2비트의 위치를 교환한다. 둘째로, 상기 위치 교환이 이루어진 카운트 값을 하위 비트부터2비트 디지트들로 나누고 나뉘어진 2비트들에 대하여 모듈러-4 덧셈을 수행한다. 그러면 최상위 1비트가 남게 되는데, 남은 상기 최상위 1비트와 모듈러-4 덧셈에 의해 연산된 값을 모듈러-4로 다시 연산한다.Finally, bank index generation in the Mixed-radix algorithm is described. The bank index generation method according to the present invention is to generate the bank index shown in the column 1 and column 2 of FIG. The bank index and address generation of each bank are generated by using an n bit counter when the FFT length is 2 n . The Radix-4 algorithm described in the prior art has a number of points such as 2 2 , 2 4 , 2 6 and 2 8 . Therefore, bank index (bank i) generation can be obtained by modulo-4 addition for 2-bit digits. However, in the case of mixed-radix, the number of input count bits is 2 3 , 2 5 , 2 7 , 2 9 , etc., so that an odd number exists such as 3 bits, 5 bits, 7 bits, 9 bits, and the like. Thus, a modulo-4 addition of two bit digits alone cannot produce a bank index. In the case of mixed-radix according to the present invention, a method of generating a bank index when the number of digits of an input count bit is odd is performed through the following two processes. First, swap the positions of the most significant two bits. Secondly, the count value of the position exchange is divided into two bit digits from the lower bit, and modular-4 addition is performed on the divided two bits. The most significant 1 bit is left, and the value computed by the remainder of the most significant 1 bit and modular-4 addition is recalculated to modular-4.

32(25)-포인트 FFT의 2비트 디지트들과 1비트를 구성하는 방법을 도 13에 도시하였다. 상술한 방법에 따라 입력 카운트 비트들의 위치를 교환하고 연산을 수행하게 되면, 모듈러-4의 연산을 수행할 때, 마지막으로 1비트가 남는 비트는 입력 데이터 카운트 비트 중 3번 비트에 해당한다. 그리고, 하위 비트부터 2비트 디지트씩 모듈러-4 덧셈 연산을 수행하는 비트들의 매칭은 (4, 2), (1, 0)에 해당한다. 이와 같이 뱅크를 생성하면 FFT 연산시 모두 다른 뱅크로부터 데이터를 가져올 수 있을 뿐만 아니라 도 5의 열2에서 열1로 변경 시 뱅크 인덱스 순서는 그대로 유지할 수 있다.A method of configuring two bits and one bit of a 32 (2 5 ) -point FFT is shown in FIG. 13. When the positions of the input count bits are exchanged and the operation is performed according to the above-described method, when the operation of the modular-4 is performed, the last bit remaining in one bit corresponds to the third bit of the input data count bits. In addition, matching of bits for performing the modular-4 addition operation by 2 bits from the lower bits corresponds to (4, 2) and (1, 0). Creating a bank in this way can not only import data from other banks during the FFT operation, but also maintain the bank index order when changing from column 2 to column 1 of FIG. 5.

도 14는 32-포인트에서의 뱅크 인덱스 생성 방법을 일반화하여 2n-포인트 Mixed-radix FFT 일 때의 뱅크 인덱스 생성 방법을 나타낸 것이다. 도 14에서 입력 데이터 카운트 비트들 중 별도의 1비트 위치는 n-2번째 비트이며 2비트 디지트들의 모듈로-4 덧셈에 이 별도의 비트가 포함된다.FIG. 14 illustrates a bank index generation method in a 2n-point mixed-radix FFT by generalizing a bank index generation method in 32-point. In FIG. 14, the separate 1-bit position of the input data count bits is the n-2 th bit, and this extra bit is included in the modulo-4 addition of 2-bit digits.

상술한 바와 같이 본 발명은 Radix-4 알고리즘에 기초한 Mixed-radix 알고리즘을 사용함으로써, 고속 연산이 가능해진다. 그리고, Mixed-radix 알고리즘에 인-플레이스 연산을 적용하고 입출력 동시 수행을 통해 4개의 뱅크로 구성된 N 워드 메모리 2개로 연속 처리를 수행함으로 인해 메모리에 사용되는 면적을 최소화 할수 있다.As described above, the present invention enables a high-speed operation by using a mixed-radix algorithm based on the Radix-4 algorithm. In addition, by applying an in-place operation to the mixed-radix algorithm and simultaneously performing input / output operations, two N word memories composed of four banks can be used to minimize the area used for the memory.

본 발명에 따른 FFT 프로세서의 연산 싸이클과 종래기술에서 설명된 FFT 프로세서의 연산 싸이클을 하기 <표 3>에 비교하여 도시하였다. 하기 <표 3>으로부터 Radix-2 알고리즘을 사용한 종래의 메모리 구조에 비해 연산 싸이클이 약 1/4로 감소됨을 알 수 있다.The calculation cycle of the FFT processor according to the present invention and the calculation cycle of the FFT processor described in the prior art are shown in comparison with Table 3 below. It can be seen from Table 3 that the computational cycle is reduced to about 1/4 compared to the conventional memory structure using the Radix-2 algorithm.

구 조rescue 알고리즘 클럭 싸이클Algorithm Clock Cycle N = 2,048N = 2,048 N = 4,096N = 4,096 종래의메모리 구조Conventional Memory Structure Radix-2log2N+2Radix-2 log2N + 2 11,26611,266 24,57824,578 본 발명의구조Structure of the Invention Radix-4log4N+6Radix-4 log4N + 6 -- 6,1506,150 Mixed-radix(Radix-4,Radix-2)log42N+6Mixed-radix (Radix-4, Radix-2) log42N + 6 3,0783,078 --

또한, 다중 뱅크 구조를 사용하지 않은 Radix-4 알고리즘을 기반으로 한 종래의 Mixed-radix FFT 프로세서와 본 발명을 비교할 경우 종래기술에 따른 FFT 프로세서는 본 발명에 비해 약 4배 가까운 연산 싸이클이 소모된다.In addition, when comparing the present invention with a conventional mixed-radix FFT processor based on the Radix-4 algorithm without using a multi-bank structure, the FFT processor according to the prior art consumes about four times as many computation cycles as the present invention. .

뿐만 아니라 인-플레이스 알고리즘과 동시에 입출력하는 구조를 채택하지 않은 종래기술에서 설명된 Mixed-radix FFT 프로세서는 4개의 뱅크로 구성된 N 워드 메모리 4개를 요구하여 N 워드 메모리 2개를 요구하는 본 발명의 구조에 비해 2배의 메모리 면적을 가진다.In addition, the mixed-radix FFT processor described in the prior art, which does not adopt a structure for inputting / outputting at the same time as an in-place algorithm, requires four N word memories composed of four banks, thereby requiring two N word memories. It has twice as much memory area as the structure.

따라서, 본 발명은 고속 연산뿐만 아니라 적은 하드웨어 크기도 만족하여 OFDM, DMT 시스템에 적용하기 용이하다.Therefore, the present invention is easy to apply to OFDM and DMT systems by satisfying not only high speed operation but also small hardware size.

상술한 바와 같이 본 발명을 이용하면, FFT 연산에서 고속 연산이 용이하며, 작은 크기의 하드웨어를 통해 구현할 수 있는 이점이 있다.As described above, using the present invention, it is easy to perform a high-speed operation in the FFT operation, there is an advantage that can be implemented through a small size of hardware.

Claims (11)

입출력과 FFT 연산을 위한 메모리 중 입출력을 위한 메모리를 선택하고 메모리의 4개의 뱅크 중 하나의 뱅크를 선택하여 입력과 출력을 수행하기 위한 입출력 인터페이스와,An input / output interface for performing input and output by selecting a memory for input / output among memory for input / output and FFT operation, and selecting one bank among four banks of the memory; 상기 인터페이스로의 입출력과 FFT 연산이 사용되는 4개의 뱅크로 구성된 2개의 N 워드 메모리와,Two N word memories consisting of four banks for input and output to the interface and FFT operations; 상기 인터페이스로의 입출력과 FFT 연산을 위한 메모리 중 FFT 연산을 위한 메모리를 선택하고 인-플레이스 연산을 위해 각 버터플라이 입출력에 할당된 뱅크들을 버터플라이 연산 회로의 4개의 입력과 연결하기 위한 제1데이터 교환부와,First data for selecting a memory for FFT operation among the input / output to the interface and the memory for FFT operation and connecting the banks allocated to each butterfly input / output for in-place operation with the four inputs of the butterfly operation circuit. With exchange, 상기 제1데이터 교환부에서 공급되는 Radix-4와 Radix-2 두 종류의 버터플라이를 하나의 회로로 수행 가능하며 대칭적인 리버스 출력을 구성하기 위한 버터플라이와,A butterfly configured to perform two types of butterfly supplied from the first data exchanger in one circuit and to form a symmetrical reverse output; 상기 인터페이스부로의 입출력과 FFT 연산을 위한 메모리 중 FFT 연산을 위한 메모리를 선택하고 인-플레이스 연산을 위해 각 버터플라이 입출력에 할당된 뱅크들을 버터플라이 연산 회로의 4개의 출력과 연결하기 위한 제2데이터 교환부와,Second data for selecting a memory for FFT operation among the input / output to the interface unit and the memory for FFT operation and connecting the banks allocated to each butterfly input / output for in-place operation with the four outputs of the butterfly operation circuit. With exchange, 상기 다중 뱅크 메모리 구조에서 인-플레이스 연산을 수행하기 위한 뱅크 인덱스 및 주소를 생성하기 위한 주소 생성부를 포함하는 것을 특징으로 하는 고속 퓨리에 변환을 이용한 혼합-기수 방식의 변조 장치.And an address generator for generating a bank index and an address for performing an in-place operation in the multi-bank memory structure. 제 1 항에 있어서,The method of claim 1, 상기 버터플라이는 Radix-4 버터플라이와 2개의 Radix-2 버터플라이의 출력을 교환하는 것에 의해 대칭적 리버스 출력 순서를 구성하여 순차적 입출력을 동시에 수행 가능하게 함으로써 4개의 뱅크로 구성된 N 워드 메모리 2개만으로 연속 처리를 수행할 수 있는 Radix-4/2 버터플라이 연산회로인 것을 특징으로 하는 고속 퓨리에 변환을 이용한 혼합-기수 방식의 변조 장치.The butterfly consists of four banks of N word memory configured by symmetrical reverse output order by exchanging the outputs of the Radix-4 butterfly and the two Radix-2 butterflies to perform sequential input and output simultaneously. A mixed-base modulator using a fast Fourier transform, characterized in that it is a Radix-4 / 2 butterfly arithmetic circuit capable of performing continuous processing only. 제 1 항에 있어서,The method of claim 1, 상기 인-플레이스 알고리즘은 Radix-4 알고리즘의 다중 뱅크 메모리 구조의인-플레이스 알고리즘을 변형하여 혼합-기수 알고리즘을 위한 인-플레이스 알고리즘인 것을 특징으로 하는 고속 퓨리에 변환을 이용한 혼합-기수 방식의 변조 장치.The in-place algorithm is an in-place algorithm for the mixed-odd algorithm by modifying the in-place algorithm of the multi-bank memory structure of the Radix-4 algorithm. . 제 1 항에 있어서,The method of claim 1, 상기 인-플레이스 알고리즘은 뱅크 인덱스 생성에서 2n-포인트 연산일 때 n-2번째 비트를 별도로 모듈로-4 덧셈에 포함하는 것을 특징으로 하는 고속 퓨리에 변환을 이용한 혼합-기수 방식의 변조 장치.The in-place algorithm is a modulated apparatus of the mixed-base system using fast Fourier transform, characterized in that the n-2th bit is included in modulo-4 addition separately when the 2 n -point operation in the bank index generation. 고속 퓨리에 변환을 이용한 혼합-기수 방식의 변조 장치에 있어서,In a mixed-base modulator using a fast Fourier transform, 입력 심볼을 저장하거나 고속 퓨리에 연산이 완료된 심볼들을 저장하는 4개의 뱅크로 구성된 2개의 메모리들과,Two memories consisting of four banks for storing input symbols or for storing fast Fourier-completed symbols, 상기 메모리로부터 출력되는 심볼들의 수에 따라 기수-4 또는 기수-2 방식으로 버터플라이 연산을 수행하고, 상기 연산된 값들을 대칭적 리버스로 출력하는 버터플라이와,A butterfly for performing a butterfly operation in radix-4 or radix-2 according to the number of symbols output from the memory, and outputting the calculated values symmetrically with reverse; 상기 메모리들 중 하나의 메모리의 각 뱅크들로부터 각각 하나씩의 심볼들을 독취하여 상기 버터플라이로 출력하는 제1데이터 교환부와,A first data exchanger which reads one symbol from each bank of one of the memories and outputs the symbols to the butterfly; 상기 버터플라이로부터 연산되어 출력된 심볼들을 상기 제1데이터 교환부에서 읽어온 주소와 동일한 주소에 저장되도록 각 심볼들을 매칭하는 제2데이터 교환부와,A second data exchanger for matching each symbol to store the symbols calculated and outputted from the butterfly at the same address as the address read from the first data exchanger; 상기 제1데이터 교환부에서 읽어온 심볼이 연산 이후 상기 제2데이터 교환부를 통해 출력될 시 상기 제1데이터 교환부에서 읽어온 뱅크 및 주소와 상기 제2데이터 교환부의 출력 뱅크 및 주소가 동일하도록 상기 제2데이터 교환부의 출력을 제어하는 주소 생성부를 포함함을 특징으로 하는 고속 퓨리에 변환을 이용한 혼합-기수 방식의 변조 장치.When a symbol read from the first data exchanger is output through the second data exchanger after the operation, the bank and address read from the first data exchanger and the output bank and address of the second data exchanger are the same. And an address generator for controlling the output of the second data exchanger. 제5항에 있어서,The method of claim 5, 상기 2개의 메모리와 입출력 데이터의 인터페이스를 수행하는 입출력 인터페이스를 더 포함함을 특징으로 하는 고속 퓨리에 변환을 이용한 혼합-기수 방식의 변조 장치.And an input / output interface for interfacing the two memories with the input / output data. 제5항에 있어서, 상기 버터플라이는,The method of claim 5, wherein the butterfly, 기수-4 버터플라이의 구조를 가지며, 기수-2로 동작이 필요한 경우 상기 버터플라이의 내부에 구비된 다중화기를 통해 2개의 기수-2 연산이 이루어지도록 구성됨을 특징으로 하는 고속 퓨리에 변환을 이용한 혼합-기수 방식의 변조 장치.Mixture using a fast Fourier transform having a structure of radix-4 butterfly and configured to perform two radix-2 operations through a multiplexer provided inside the butterfly when the operation of radix-2 is required. Radix modulator. 제5항에 있어서, 상기 버터플라이의 대칭적 리버스는,The method of claim 5, wherein the symmetrical reverse of the butterfly, 상기 버터플라이 연산이 수행되는 심볼들의 총 개수에 결정되는 2진수의 출력 카운터 값을 2비트씩 하나의 단위로 하여 대칭적으로 변환하여 주소로 결정함을 특징으로 하는 고속 퓨리에 변환을 이용한 혼합-기수 방식의 변조 장치.Mixed-base using Fast Fourier Transform, characterized in that the binary output counter value determined by the total number of symbols for which the butterfly operation is performed is symmetrically converted into one bit unit and determined as an address. Modulator. 제8항에 있어서,The method of claim 8, 상기 2진수의 출력 카운터의 자리 수가 홀수인 경우 상기 자리 수의 중앙의 비트를 기준으로 대칭적으로 변환하여 주소로 결정함을 특징으로 하는 고속 퓨리에변환을 이용한 혼합-기수 방식의 변조 장치.When the number of digits of the binary output counter is an odd number, the mixed-odd modulator using a fast Fourier transform, characterized in that the symmetric conversion on the basis of the center bit of the digits to determine the address. 제5항에 있어서, 상기 주소 생성부는,The method of claim 5, wherein the address generator, 상기 뱅크 결정 시, 상기 연산되는 심볼에 대응하는 2진수의 입력 카운트 비트 값을 모듈러-4 연산한 값으로 뱅크를 결정함을 특징으로 하는 고속 퓨리에 변환을 이용한 혼합-기수 방식의 변조 장치.And a modulus-based modulator using fast Fourier transform, wherein the bank is determined based on a modular-4 operation based on a binary input count bit value corresponding to the symbol to be calculated. 제10항에 있어서, 상기 주소 생성부는,The method of claim 10, wherein the address generator, 상기 2진수의 입력 카운트 비트의 자리 수가 홀수인 경우 최상위 2비트의 위치를 교환하고, 하위 2비트씩 모듈러-4연산을 수행한 후 교환된 최상위 비트와 모듈러-4 연산을 통해 뱅크를 결정함을 특징으로 하는 고속 퓨리에 변환을 이용한 혼합-기수 방식의 변조 장치.If the number of digits of the binary input count bit is odd, the position of the most significant two bits is exchanged, the lower two bits are modulated, the modular-4 operation is performed, and the bank is determined through the replaced most significant bit and the modular-4 operation. A mixed-base modulator using a fast Fourier transform.
KR1020030042357A 2002-06-27 2003-06-27 Modulating apparatus for using fast fourier transform of mixed-radix scheme KR100557160B1 (en)

Priority Applications (6)

Application Number Priority Date Filing Date Title
US10/608,511 US7164723B2 (en) 2002-06-27 2003-06-27 Modulation apparatus using mixed-radix fast fourier transform
JP2004517385A JP4022546B2 (en) 2002-06-27 2003-06-27 Mixed-radix modulator using fast Fourier transform
CNB038150123A CN100563226C (en) 2002-06-27 2003-06-27 Utilize the modulating equipment of mixed-radix fast fourier transform
AU2003243046A AU2003243046A1 (en) 2002-06-27 2003-06-27 Modulation apparatus using mixed-radix fast fourier transform
EP03761859.2A EP1516467B1 (en) 2002-06-27 2003-06-27 Modulation apparatus using mixed-radix fast fourier transform
PCT/KR2003/001268 WO2004004265A1 (en) 2002-06-27 2003-06-27 Modulation apparatus using mixed-radix fast fourier transform

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR20020036216 2002-06-27
KR1020020036216 2002-06-27

Publications (2)

Publication Number Publication Date
KR20040002762A true KR20040002762A (en) 2004-01-07
KR100557160B1 KR100557160B1 (en) 2006-03-03

Family

ID=37314086

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020030042357A KR100557160B1 (en) 2002-06-27 2003-06-27 Modulating apparatus for using fast fourier transform of mixed-radix scheme

Country Status (1)

Country Link
KR (1) KR100557160B1 (en)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100518797B1 (en) * 2004-01-07 2005-10-05 삼성전자주식회사 Fast Fourier Transform device capable of improving a processing speed and a method processing thereof
KR100697539B1 (en) * 2005-12-26 2007-03-21 전자부품연구원 Apparatus of parallel signal processing in high-speed wideband modem
KR100884098B1 (en) * 2007-09-28 2009-02-19 고려대학교 산학협력단 Apparatus and method for block interleaving using mixed radix system in mb-ofdm
KR100932277B1 (en) * 2007-12-17 2009-12-16 한국전자통신연구원 Apparatus and method for receiving random access channel in communication system
CN101110803B (en) * 2006-07-18 2011-06-01 大唐移动通信设备有限公司 Method for implementing join operation based on fast Fourier transformation and inverse transformation

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100597439B1 (en) 2004-11-03 2006-07-06 한국전자통신연구원 2n-point and n-point fft/ifft dual mode device

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1997019412A1 (en) * 1995-11-17 1997-05-29 Teracom Svensk Rundradio Improvements in or relating to real-time pipeline fast fourier transform processors
JP3092545B2 (en) * 1997-05-02 2000-09-25 日本電気株式会社 FFT operation circuit
KR20020034746A (en) * 2000-11-03 2002-05-09 윤종용 Fast fourier transform processor using fast and area efficient algorithm
KR100692997B1 (en) * 2001-04-17 2007-03-12 삼성전자주식회사 Fast fourier transform apparatus
KR100444729B1 (en) * 2001-12-24 2004-08-16 한국전자통신연구원 Fast fourier transform apparatus using radix-8 single-path delay commutator and method thereof

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100518797B1 (en) * 2004-01-07 2005-10-05 삼성전자주식회사 Fast Fourier Transform device capable of improving a processing speed and a method processing thereof
KR100697539B1 (en) * 2005-12-26 2007-03-21 전자부품연구원 Apparatus of parallel signal processing in high-speed wideband modem
CN101110803B (en) * 2006-07-18 2011-06-01 大唐移动通信设备有限公司 Method for implementing join operation based on fast Fourier transformation and inverse transformation
KR100884098B1 (en) * 2007-09-28 2009-02-19 고려대학교 산학협력단 Apparatus and method for block interleaving using mixed radix system in mb-ofdm
KR100932277B1 (en) * 2007-12-17 2009-12-16 한국전자통신연구원 Apparatus and method for receiving random access channel in communication system

Also Published As

Publication number Publication date
KR100557160B1 (en) 2006-03-03

Similar Documents

Publication Publication Date Title
JP4022546B2 (en) Mixed-radix modulator using fast Fourier transform
Jo et al. New continuous-flow mixed-radix (CFMR) FFT processor using novel in-place strategy
EP0855657B1 (en) Fast fourier transforming apparatus and method
US6122703A (en) Generalized fourier transform processing system
US20070226286A1 (en) Fast fourier transform apparatus
JP3749022B2 (en) Parallel system with fast latency and array processing with short waiting time
US7752249B2 (en) Memory-based fast fourier transform device
WO2005057423A2 (en) Fft architecture and method
WO2005086020A2 (en) Fast fourier transform circuit having partitioned memory for minimal latency during in-place computation
EP0953175B1 (en) Method and apparatus for fft computation
CN111737638A (en) Data processing method based on Fourier transform and related device
CN103699515A (en) FFT (fast Fourier transform) parallel processing device and FFT parallel processing method
US20060200513A1 (en) Fast Fourier transform processor and method capable of reducing size of memories
JP4755610B2 (en) Fast Fourier transform device
KR100557160B1 (en) Modulating apparatus for using fast fourier transform of mixed-radix scheme
EP2144172A1 (en) Computation module to compute a multi radix butterfly to be used in DTF computation
US20170103042A1 (en) System and method for optimizing mixed radix fast fourier transform and inverse fast fourier transform
KR100836624B1 (en) Device of variable fast furier transform and method thereof
JP5486226B2 (en) Apparatus and method for calculating DFT of various sizes according to PFA algorithm using Ruritanian mapping
EP2144173A1 (en) Hardware architecture to compute different sizes of DFT
CN114422315B (en) Ultra-high throughput IFFT/FFT modulation and demodulation method
CN113328965B (en) Signal modulation method, system, equipment and readable storage medium
KR20080062003A (en) Apparatus and method of pipelined fast fourier transform using radix 2 square supporting variable input sizes
CN116805027A (en) DFT multiplexing method and device, communication equipment and storage medium
Karachalios et al. A new FFT architecture for 4× 4 MIMO-OFDMA systems with variable symbol lengths

Legal Events

Date Code Title Description
A201 Request for examination
N231 Notification of change of applicant
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
LAPS Lapse due to unpaid annual fee