KR20070031769A - Fast fourier transformer device using single butterfly and method therefor - Google Patents

Fast fourier transformer device using single butterfly and method therefor Download PDF

Info

Publication number
KR20070031769A
KR20070031769A KR1020050086563A KR20050086563A KR20070031769A KR 20070031769 A KR20070031769 A KR 20070031769A KR 1020050086563 A KR1020050086563 A KR 1020050086563A KR 20050086563 A KR20050086563 A KR 20050086563A KR 20070031769 A KR20070031769 A KR 20070031769A
Authority
KR
South Korea
Prior art keywords
butterfly
data
memory
subunit
memories
Prior art date
Application number
KR1020050086563A
Other languages
Korean (ko)
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 KR1020050086563A priority Critical patent/KR20070031769A/en
Publication of KR20070031769A publication Critical patent/KR20070031769A/en

Links

Images

Classifications

    • 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/2647Arrangements specific to the receiver only
    • H04L27/2649Demodulators
    • H04L27/265Fourier transform demodulators, e.g. fast Fourier transform [FFT] or discrete Fourier transform [DFT] demodulators
    • 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

Landscapes

  • Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computational Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Discrete Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Algebra (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Complex Calculations (AREA)

Abstract

본 발명은 고속 퓨리에 변환 장치 및 그 방법에 관한 것으로, 특히 단일 버터플라이를 이용한 고속 퓨리에 변환 장치 및 그 방법에 관한 것이다.The present invention relates to a fast Fourier transform device and a method thereof, and more particularly to a fast Fourier transform device and a method using a single butterfly.

본 발명에서는 단일 버터플라이 구조를 이용하여 FFT를 구현할 때 메모리를 적게 사용하고, FFT 블록을 처리하는 시간(processing time)을 줄이며, r개의 데이터를 한번에 읽어 들여 처리할 수 있는 단일 버터플라이 구조를 통해 메모리를 효율적으로 운용할 수 있는 장치 및 방법을 제공한다.In the present invention, a single butterfly structure uses less memory when implementing an FFT, reduces the processing time of the FFT block, and uses a single butterfly structure that can read and process r data at a time. An apparatus and method for efficiently operating a memory are provided.

이에 따른 본 발명의 장치는, Radix-2n(여기서 n은 자연수)의 구조를 가지는 단일 버터플라이를 이용하여 고속 퓨리에 연산을 수행하기 위한 장치로서, 서로 다른 4개의 소단위 메모리로 구성된 메모리부와, 상기 버터플라이 연산이 이루어질 때마다 카운트 값을 증가시키는 카운터와, 상기 카운터 값에 의거하여 상기 각 소단위 메모리들에서 중복되지 않고 하나씩 독취 및 기록할 수 있는 데이터 주소를 발생하는 데이터 주소 발생기와, 상기 주소 발생기로부터 수신된 데이터 주소 정보에 의거하여 입력 데이터들을 저장하는 기록부와, 상기 주소 발생기로부터 수신된 데이터 주소 정보에 의거하여 상기 버터플라이로 입력할 데이터들을 상기 각 소단위 메모리로부터 하나씩 독취하여 출력하는 독취부를 포함한다.Accordingly, the apparatus of the present invention is a device for performing a fast Fourier operation using a single butterfly having a structure of Radix-2 n (where n is a natural number), comprising: a memory unit comprising four different subunit memories; A data address generator for generating a counter that increments a count value each time the butterfly operation is performed, a data address that can be read and written one by one without overlapping in each of the subunit memories based on the counter value, and the address A recording unit for storing input data based on the data address information received from the generator, and a reading unit for reading and outputting data to be input from the subunit memory one by one based on the data address information received from the address generator. It includes.

버터플라이, 단일 버터플라이, 고속 퓨리에 변환, FFT Butterfly, Single Butterfly, Fast Fourier Transform, FFT

Description

단일 버터플라이를 이용한 고속 퓨리에 변환 장치 및 그 방법{FAST FOURIER TRANSFORMER DEVICE USING SINGLE BUTTERFLY AND METHOD THEREFOR}FAST FOURIER TRANSFORMER DEVICE USING SINGLE BUTTERFLY AND METHOD THEREFOR}

도 1은 본 발명이 적용되는 OFDM 수신기의 블록 구성도,1 is a block diagram of an OFDM receiver to which the present invention is applied;

도 2는 본 발명에 따른 OFDM 시스템의 수신기에서 수행되는 심볼의 동작 처리 흐름도,2 is a flowchart illustrating operation of a symbol performed in a receiver of an OFDM system according to the present invention;

도 3은 본 발명의 일 실시 예에 따른 FFT의 내부 블록 구성도,3 is an internal block diagram of an FFT according to an embodiment of the present invention;

도 4는 본 발명의 일 실시 예에 따라 N=128인 경우 4개로 이루어진 메모리에 대응되는 데이터의 주소를 표현한 도면,4 is a diagram representing addresses of data corresponding to four memories in the case of N = 128 according to an embodiment of the present invention;

도 5는 상기 도 4와 같은 메모리 주소를 구현하기 위한 FFT 입력 값들이 저장된 형상을 도시한 도면,FIG. 5 is a diagram illustrating a shape in which FFT input values for implementing a memory address as shown in FIG. 4 are stored;

도 6은 본 발명의 일 실시 예에 따라 입력 메모리의 주소를 변환하기 위한 회로도,6 is a circuit diagram for translating an address of an input memory according to an embodiment of the present disclosure;

도 7은 N=64(26)의 예에 따라 각 소단위 메모리로 입력될 데이터들이 도 5와 같이 저장된 상태의 도면,FIG. 7 is a diagram illustrating data stored in each sub-unit memory according to an example of N = 64 (2 6 ) as shown in FIG. 5;

도 8은 첫 번째 버터플라이 연산이 이루어진 이후 2번째 버터플라이 연산이 수행될 시 각 소단위 메모리들로부터 읽혀야 하는 데이터를 도시한 도면,FIG. 8 is a diagram illustrating data that should be read from each subunit memory when a second butterfly operation is performed after the first butterfly operation is performed.

도 9는 두 번째 버터플라이 연산이 이루어진 이후 3번째 버터플라이 연산이 수행될 시 각 소단위 메모리들로부터 읽혀야 하는 데이터를 도시한 도면,FIG. 9 is a diagram illustrating data to be read from each subunit memory when a third butterfly operation is performed after a second butterfly operation is performed. FIG.

도 10은 본 발명에 따라 N=64(26)의 예에서 각 단계의 버터플라이 연산 시에 소단위 메모리들로부터 하나씩의 데이터가 겹칩없이 읽힐 수 있도록 한 메모리 구성도.FIG. 10 is a memory configuration diagram in which, in the example of N = 64 (2 6 ), one data can be read from the sub-unit memories without overlapping in the butterfly operation of each step according to the present invention.

본 발명은 고속 퓨리에 변환 장치 및 그 방법에 관한 것으로, 특히 단일 버터플라이를 이용한 고속 퓨리에 변환 장치 및 그 방법에 관한 것이다.The present invention relates to a fast Fourier transform device and a method thereof, and more particularly to a fast Fourier transform device and a method using a single butterfly.

무선통신 시스템에서 직교 주파수 분할 다중(Orthogonal Frequency Division Multiplexing : 이하 "OFDM"이라 함) 방식은 고속 퓨리에 변환(Fast Fourier Transform) 방법이 알려지면서 급속도로 상용화가 이루어지고 있다. 상기와 같이 OFDM 방식의 시스템에서 송신기는 고속 역 퓨리에 변환기(Inverse Fast Fourier Transformer : 이하 "IFFT"라 함)를 이용하여 데이터를 송신하며, 수신기는 고속 퓨리에 변환기(Fast Fourier Transformer : 이하 "FFT"라 함)를 사용하여 데이터를 수신한다.Orthogonal Frequency Division Multiplexing (hereinafter referred to as " OFDM ") in wireless communication systems is rapidly commercialized as the Fast Fourier Transform method is known. As described above, in an OFDM system, a transmitter transmits data using a fast inverse fast Fourier transformer (hereinafter referred to as "IFFT"), and a receiver is referred to as a fast fourier transformer (hereinafter referred to as "FFT"). To receive the data.

이러한 고속 퓨리에 변환기를 구현하기 위한 방법으로 radix-r 알고리듬을 표현하는 버터플라이(butterfly) 구조를 이용하는 것이 일반적이다. 이러한 버터플라이 구조를 몇 번 사용하는지에 따라 다른 구조의 FFT 블록을 만들 수 있다. 일반적으로 OFDM 시스템에서 사용되는 N point FFT의 경우 최대

Figure 112005051818170-PAT00001
의 버터플라이 블록을 사용하여 구현이 가능하다. 여기서
Figure 112005051818170-PAT00002
는 x를 넘지 않는 최대 정수를 의미한다. N point FFT의 경우와 같이 최대
Figure 112005051818170-PAT00003
개의 버터플라이 블록을 모두 이용하는 구조를 파이프라인(pipeline) 구조라 한다. 반면에 하나의 버터플라이 블록을 이용하는 구조를 단일 버터플라이(single butterfly) 구조라고 한다.As a method for implementing such a fast Fourier transformer, it is common to use a butterfly structure representing a radix-r algorithm. Depending on how many times you use these butterfly structures, you can create an FFT block with a different structure. Typically for N point FFTs used in OFDM systems
Figure 112005051818170-PAT00001
It can be implemented using the butterfly block. here
Figure 112005051818170-PAT00002
Is the maximum integer not exceeding x. As in the case of N point FFT
Figure 112005051818170-PAT00003
A structure that uses all four butterfly blocks is called a pipeline structure. On the other hand, a structure using a single butterfly block is called a single butterfly structure.

일반적으로 FFT를 하드웨어로 구현 할 경우에 복잡도를 고려하여 보통 단일 버터플라이 구조를 사용하고 있다. 그러므로 이하에서는 단일 버터 플라이 구조에 대하여 살펴보기로 한다.In general, when implementing FFT in hardware, considering the complexity, a single butterfly structure is usually used. Therefore, the following describes a single butterfly structure.

일반적으로 사용되는 단일 버터플라이 구조에서는 FFT를 구현하기 위해서 하나의 버터플라이 블록과 하나의 단일 포트 램(single-port SRAM)과 하나의 듀얼 포트 램(double-port SRAM)을 사용한다. 상기 단일 포트 램(Single-port SRAM)은 FFT의 앞단의 결과를 읽어서 저장하는 메모리이고, 듀얼 포트 램(double-port SRAM)은 버터플라이의 입력 값과 출력 값을 저장하는 메모리이다.A commonly used single butterfly architecture uses one butterfly block, one single-port SRAM and one double-port SRAM to implement the FFT. The single-port SRAM is a memory for reading and storing the result of the front end of the FFT, and the double-port SRAM is a memory for storing the input and output values of the butterfly.

이와 같이 입력 값과 출력 값을 저장하기 위해서 하나씩 또는 하나의 메모리를 사용하면서 FFT 연산을 수행하는데,

Figure 112005051818170-PAT00004
의 클럭이 필요하다. 즉, 하나의 버터플라이 블록의 결과를 얻기 위해서 N 클럭이 소요된다는 의미가 된 다. 이것은 입력이나 출력 값을 저장하기 위해서 하나의 메모리를 사용하고 있기 때문에 한 클럭에 하나의 데이터를 읽어 들여서 나온 결과이다.In this way, FFT operation is performed while using one or one memory to store input and output values.
Figure 112005051818170-PAT00004
Clock is required. This means that it takes N clocks to get the result of one butterfly block. This is the result of reading one data per clock since one memory is used to store the input or output values.

한편, Radix-r 알고리듬을 이용한 버터플라이 블록은 한 클럭에 r개의 데이터를 처리할 수 있도록 설계되어 있다. 따라서 Radix-r 알고리듬 구조를 가장 효율적으로 활용할 수 있는 방법은 한 클럭에 r개의 데이터를 읽어 들여 동시에 처리하는 것이다. 하지만 현재 일반적으로 사용되고 있는 FFT 연산을 위한 장치에서는 연산용으로 하나의 메모리를 사용하고 있다. 따라서 FFT 연산을 위한 Radix-r 알고리듬을 적용하고 있지만, 실제로 한 클럭에 하나의 데이터를 읽어 들여서 처리하므로 버터플라이 블록을 효율적으로 활용하지 못하고 있는 문제점을 가지고 있다.On the other hand, the butterfly block using the Radix-r algorithm is designed to process r data in one clock. Therefore, the most efficient use of the Radix-r algorithm structure is to read r data at the same time and process them simultaneously. However, a device for FFT operation, which is generally used, uses one memory for calculation. Therefore, although the Radix-r algorithm is applied for FFT operation, it has a problem in that it does not utilize the butterfly block efficiently because it reads and processes one data at one clock.

따라서 본 발명의 목적은 단일 버터플라이 구조를 이용하여 FFT를 구현할 때 메모리를 적게 사용하기 위한 장치 및 방법을 제공한다.It is therefore an object of the present invention to provide an apparatus and method for using less memory when implementing an FFT using a single butterfly structure.

본 발명의 다른 목적은 단일 버터플라이 구조를 이용하여 FFT 블록을 처리하는 시간(processing time)을 줄일 수 있는 장치 및 방법을 제공한다.It is another object of the present invention to provide an apparatus and method that can reduce the processing time for processing an FFT block using a single butterfly structure.

본 발명의 또 다른 목적은 r개의 데이터를 한번에 읽어 들여 처리할 수 있는 단일 버터플라이 구조를 통해 메모리를 효율적으로 운용할 수 있는 장치 및 방법을 제공한다.Another object of the present invention is to provide an apparatus and method for efficiently operating a memory through a single butterfly structure capable of reading and processing r data at a time.

상기한 목적들을 달성하기 위한 본 발명의 장치는, Radix-2n(여기서 n은 자 연수)의 구조를 가지는 단일 버터플라이를 이용하여 고속 퓨리에 연산을 수행하기 위한 장치로서, 서로 다른 4개의 소단위 메모리로 구성된 메모리부와, 상기 버터플라이 연산이 이루어질 때마다 카운트 값을 증가시키는 카운터와, 상기 카운터 값에 의거하여 상기 각 소단위 메모리들에서 중복되지 않고 하나씩 독취 및 기록할 수 있는 데이터 주소를 발생하는 데이터 주소 발생기와, 상기 주소 발생기로부터 수신된 데이터 주소 정보에 의거하여 입력 데이터들을 저장하는 기록부와, 상기 주소 발생기로부터 수신된 데이터 주소 정보에 의거하여 상기 버터플라이로 입력할 데이터들을 상기 각 소단위 메모리로부터 하나씩 독취하여 출력하는 독취부를 포함한다.An apparatus of the present invention for achieving the above objects is a device for performing a fast Fourier operation using a single butterfly having a structure of Radix-2 n (where n is self-number), the four different subunit memory A memory unit including a memory unit, a counter for increasing a count value each time the butterfly operation is performed, and data for generating a data address that can be read and written one by one without being duplicated in each of the subunit memories based on the counter value. An address generator, a recorder for storing input data based on data address information received from the address generator, and data to be input to the butterfly based on the data address information received from the address generator, one from each of the subunit memories. It includes a reading unit for reading and outputting.

상기한 목적들을 달성하기 위한 본 발명의 방법은, Radix-2n(여기서 n은 자연수)의 구조를 가지는 단일 버터플라이와 서로 다른 4개의 소단위 메모리를 갖는 장치에서 이용하여 고속 퓨리에 연산을 수행하기 위한 방법으로서, 상기 버터플라이 연산이 이루어지는 횟수를 카운트하는 과정과, 상기 카운트된 값에 의거하여 상기 각 소단위 메모리들에서 중복되지 않고 하나씩 독취 및 기록할 수 있는 데이터 주소를 발생하는 과정과, 상기 발생된 데이터 주소 정보에 의거하여 입력 데이터들을 상기 메모리에 저장하는 과정과, 상기 소단위 메모리에 저장된 데이터들을 상기 데이터 주소 정보에 의거하여 각 소단위 메모리로부터 하나씩 독취하여 상기 버터플라이로 입력하는 과정과, 상기 버터플라이를 이용하여 버터플라이의 단계적 연산을 수행하여 출력하는 과정을 포함한다.A method of the present invention for achieving the above objects is for performing a fast Fourier operation using a single butterfly having a structure of Radix- 2n (where n is a natural number) and a device having four different subunit memories. A method comprising: counting a number of times a butterfly operation is performed, generating a data address that can be read and written one by one without overlapping in each of the subunit memories based on the counted value; Storing input data in the memory based on data address information, reading data stored in the subunit memory from each subunit memory based on the data address information, and inputting the data into the butterfly; Output by performing stepwise operation of butterfly It includes the process.

이하 첨부된 도면을 참조하여 본 발명의 바람직한 실시 예에 대한 동작 원리를 상세히 설명한다. 하기에서 본 발명을 설명함에 있어 관련된 공지 기능 또는 구성에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명을 생략할 것이다. 그리고 후술되는 용어들은 본 발명에서의 기능을 고려하여 정의된 용어들로서 이는 사용자, 운용자의 의도 또는 관례 등에 따라 달라질 수 있다. 그러므로 그 정의는 본 명세서 전반에 걸친 내용을 토대로 내려져야 할 것이다.Hereinafter, with reference to the accompanying drawings will be described in detail the operating principle of the preferred embodiment of the present invention. In the following description of the present invention, detailed descriptions of well-known functions or configurations will be omitted if it is determined that the detailed description of the present invention may unnecessarily obscure the subject matter of the present invention. Terms to be described later are terms defined in consideration of functions in the present invention, and may be changed according to intentions or customs of users or operators. Therefore, the definition should be made based on the contents throughout the specification.

도 1은 본 발명이 적용되는 OFDM 수신기의 블록 구성도이다. 이하 도 1을 참조하여 OFDM 수신기에서 이루어지는 전반적인 동작에 대하여 살펴보기로 한다.1 is a block diagram of an OFDM receiver to which the present invention is applied. Hereinafter, the overall operation performed in the OFDM receiver will be described with reference to FIG. 1.

무선 대역으로 수신된 신호는 안테나(ANT)를 통해 수신하여 ADC 변환기(101)로 입력한다. 상기 ADC 변환기(101)는 입력된 아날로그 신호를 디지털 신호로 양자화한다. 이와 같이 양자화된 신호는 수신 필터(Rx Filter)(103)로 입력되어 양자화된 신호를 필터링한 후 직렬 신호를 병렬 신호로 변환한다. 상기 도 1에서는 직렬 신호를 병렬 신호로 변환하는 과정은 도시하지 않았다. 이와 같이 병렬 신호로 변환된 신호는 FFT 변환기(105)로 입력된다. 상기 FFT 변환기(105)는 시간 영역의 신호를 주파수 영역의 신호로 변환하는 복조를 수행한 후 출력한다. 이와 같이 주파수 영역의 신호로 변환할 때, 상기 FFT 변환기(105)가 N-point FFT 변환기라면 0부터 N-1번째까지의 OFDM 부반송파를 출력한다. 상기 FFT 변환기(105)에서 출력된 신호는 복호기(107)로 입력된다. 상기 복호기(107)는 입력된 신호를 복호함으로써 데 이터를 복원할 수 있다.The signal received in the radio band is received through the antenna ANT and input to the ADC converter 101. The ADC converter 101 quantizes the input analog signal into a digital signal. The quantized signal is input to the Rx Filter 103 to filter the quantized signal and then converts the serial signal into a parallel signal. In FIG. 1, a process of converting a serial signal into a parallel signal is not shown. The signal converted into the parallel signal in this way is input to the FFT converter 105. The FFT converter 105 performs demodulation which converts a signal in the time domain into a signal in the frequency domain and outputs the demodulated signal. As described above, when the FFT converter 105 is an N-point FFT converter, it outputs the 0 to N-1 th OFDM subcarriers. The signal output from the FFT converter 105 is input to the decoder 107. The decoder 107 may restore data by decoding the input signal.

그러면 상기한 장치에서 이루어지는 따른 동작을 도 2의 흐름도를 참조하여 다시 살펴보기로 한다.Next, the operation performed in the apparatus will be described again with reference to the flowchart of FIG. 2.

도 2는 본 발명에 따른 OFDM 시스템의 수신기에서 수행되는 심볼의 동작 처리 흐름도이다. 상기 도 2의 동작은 매 심볼 단위로 이루어지는 동작임에 유의해야 한다.2 is a flowchart illustrating operation of a symbol performed in a receiver of an OFDM system according to the present invention. It should be noted that the operation of FIG. 2 is performed every symbol unit.

OFDM 수신기는 200단계에서 안테나로부터 무선 신호를 수신한다. 그런 후 OFDM 수신기는 202단계로 진행하여 아날로그 신호를 디지털 신호로 변환한다. 상기 아날로그 신호를 디지털 신호로 변환하는 양자화 과정은 도 1의 ADC 변환기(101)에서 이루어지는 과정이다. 그리고 상기 OFDM 수신기는 204단계에서 서비스하는 대역의 신호를 필터링한다. 즉, OFDM 수신기에서 서비스 받고자 하는 대역의 신호만을 추출하는 것이다. 상기 필터링 과정은 전술한 도 1의 수신 필터(103)에서 이루어지는 동작이다. 이와 같이 필터링이 이루어진 이후에 OFDM 수신기는 206단계로 진행하여 필터링한 신호를 FFT 변환기의 입력 메모리에 저장한다. 이때 필터링된 직렬 신호가 병렬 신호로 변환되는 과정은 도 1 및 도 2에 도시하지 않았다.The OFDM receiver receives a radio signal from an antenna in step 200. The OFDM receiver then proceeds to step 202 to convert the analog signal into a digital signal. The quantization process of converting the analog signal into a digital signal is performed in the ADC converter 101 of FIG. 1. In operation 204, the OFDM receiver filters a signal of a service band. That is, only signals of bands to be serviced by the OFDM receiver are extracted. The filtering process is an operation performed by the reception filter 103 of FIG. 1. After the filtering is performed, the OFDM receiver proceeds to step 206 and stores the filtered signal in the input memory of the FFT converter. In this case, a process of converting the filtered serial signal into a parallel signal is not illustrated in FIGS. 1 and 2.

상기와 같이 필터링된 신호가 FFT 변환기의 입력 버퍼에 저장되는 것은 후술되는 도 3을 참조하여 더 상세히 설명하기로 한다. 이후 OFDM 수신기는 208단계로 진행하여 버터플라이 연산을 수행한다. 즉, FFT 변환기에서 시간 대역의 신호를 주파수 대역의 신호로 변환하는 동작을 수행하는 것이다. 이러한 동작은 OFDM 수신기가 수신하고자 하는 모든 서브 캐리어에 대하여 이루어져야 하므로 연산이 이루어 진 데이터는 210단계에서 연산용 메모리에 저장된다. 그리고 OFDM 수신기는 212단계에서 모든 서브 캐리어에 대하여 연산이 이루어졌는가를 검사한다. 즉, 버터플라이 연산이 마지막 단계인가를 검사하는 것이다.Storage of the filtered signal in the input buffer of the FFT converter will be described in more detail with reference to FIG. 3 to be described later. Thereafter, the OFDM receiver proceeds to step 208 to perform a butterfly operation. That is, the FFT converter converts a signal of a time band into a signal of a frequency band. Since this operation must be performed for all subcarriers that the OFDM receiver intends to receive, the data on which the operation is performed is stored in the operation memory in step 210. In step 212, the OFDM receiver checks whether the operation is performed on all subcarriers. In other words, it checks to see if the butterfly operation is the last step.

상기 212단계의 검사결과 버터플라이 연산이 완료된 경우 완료된 데이터를 복호기로 입력한다. 그러면 OFDM 수신기는 214단계에서 입력된 데이터의 복호를 수행한다. 그러나 212단계의 검사결과 버터플라이 연산이 완료되지 않은 경우 OFDM 수신기는 208단계로 다시 진행하여 나머지 데이터들에 대하여 버터플라이 연산을 수행하게 된다.When the butterfly operation is completed as a result of the check in step 212, the completed data is input to the decoder. The OFDM receiver then decodes the input data in step 214. However, if the butterfly operation is not completed as a result of the check in step 212, the OFDM receiver proceeds to step 208 to perform the butterfly operation on the remaining data.

그러면 다시 여기서 FFT 변환기(105)에서 버터플라이 연산에 의해 시간 영역의 신호를 주파수 영역의 신호로 바꾸는 과정에 대하여 살펴본다. 먼저 FFT 변환기(105)는 필터링된 신호를 FFT 입력 메모리에 저장한다. 그리고 상기 입력 메모리에 저장된 신호를 읽어 들이면서 버터플라이가 동작한다. 버터플라이의 연산 결과는 연산 메모리에 저장한다. 여기서 입력 메모리와 연산 메모리는 따로 사용하지 않고 동일한 것으로 사용할 수 있다. 즉, 하나의 메모리로 필터링된 신호를 저장하는 것과 연산을 수행한 후 다시 해당 메모리에 저장하는 용도로 사용할 수 있다. 이러한 과정을 계속 반복함으로써 버터플라이의 마지막 연산까지 완료되면 시간 영역의 신호가 주파수 영역의 신호로 변환된다.Then again, the process of converting the signal in the time domain into the signal in the frequency domain by the butterfly operation in the FFT converter 105 will be described. First the FFT converter 105 stores the filtered signal in the FFT input memory. The butterfly operates while reading the signal stored in the input memory. Butterfly operation results are stored in operation memory. Here, the input memory and the operation memory can be used as the same one without using them separately. That is, it can be used to store the filtered signal in one memory and to store the filtered signal again in the corresponding memory. By repeating this process, the signal in the time domain is converted into a signal in the frequency domain when the butterfly's final operation is completed.

도 3은 본 발명의 일 실시 예에 따른 FFT의 내부 블록 구성도이다. 이하 도 3을 참조하여 본 발명의 일 실시 예에 따른 FFT 내부 블록 구성 및 그 동작에 대하여 살펴보기로 한다.3 is an internal block diagram of an FFT according to an embodiment of the present invention. Hereinafter, an FFT internal block configuration and its operation according to an embodiment of the present invention will be described with reference to FIG. 3.

상기 도 3에 도시한 FFT 내부 블록 구성에서 버터플라이(320)는 radix-22/radix-2를 사용하는 FFT 구조로 예로써 도시하고 있다. 상기 도 3에서 radix-22을 사용하였기 때문에 메모리(310)는 4개로 구성되어 있다. 즉, 메모리(310)는 첫 번째 뱅크(Bank_0)(310a)와 두 번째 뱅크(Bank_1)(310b)와 세 번째 뱅크(Bank_2)(310c)와 네 번째 뱅크(Bank_3)(310c)로 구성된다. 상기 메모리(310)의 각 뱅크들은 각각 하나의 소단위 메모리들(310a, 310b, 310c, 310d)이며, 각 소단위 메모리들(310a, 310b, 310c, 310d)은 한번에 하나씩의 신호를 읽어내고 한번에 하나씩의 신호를 저장하는 작업을 할 수 있도록 주소가 구성되어 있다.In the FFT internal block configuration shown in FIG. 3, the butterfly 320 is illustrated as an FFT structure using radix-2 2 / radix-2 as an example. Since radix-2 2 is used in FIG. 3, the memory 310 is composed of four pieces. That is, the memory 310 includes a first bank Bank_0 310a, a second bank Bank_1 310b, a third bank Bank_2 310c, and a fourth bank Bank_3 310c. Each bank of the memory 310 is one subunit memories 310a, 310b, 310c, 310d, and each of the subunit memories 310a, 310b, 310c, 310d reads one signal at a time and one at a time. The address is configured to do the work of storing the signal.

또한 기록부(Commutator_read)(308)는 각 소단위 메모리들(310a, 310b, 310c, 310d)에서 읽어 낸 신호를 radix-22 버터플라이 작업을 할 수 있게 정렬하는 역할을 수행하며, 독취부(Commutator_write)(312)는 radix-22 버터플라이 작업의 결과를 각 소단위 메모리들(310a, 310b, 310c, 310d)의 해당 위치로 다시 정렬하는 작업을 한다. 즉, 기록부(308)에서는 입력되는 데이터의 위치를 지정하고, 독취부(312)에서는 기록된 데이터를 정상적으로 읽어낼 수 있도록 하는 것이다. 또한 데이터 주소 발생기(Data address generator)(326)는 radix-22 버터플라이에서 연산을 위해 필요한 데이터의 위치를 알려준다. 그리고 공통 주소 발생기(Coefficient address generator)(328)는 버터플라이 연산 중에 곱해지는 비틀림 펙터(twiddle factor)를 알려주는 동작을 수행한다. 이때 연산 도중 곱해지는 비틀림 펙터는 공 통 메모리(Coefficient ROM)의 소정 테이블에 저장하고 있다가 공통 주소 발생기(328)가 알려주는 값에 따라 coefficient 값들을 읽어낸다.In addition, the commutator_read 308 aligns signals read from the subunit memories 310a, 310b, 310c, and 310d to enable radix-2 2 butterfly operation, and reads commutator_write. 312 realigns the result of the radix-2 2 butterfly operation to the corresponding position of each of the subunit memories 310a, 310b, 310c, and 310d. That is, the recording unit 308 designates the position of the input data, and the reading unit 312 allows the recorded data to be read normally. A data address generator 326 also informs the location of the data needed for the operation in the radix-2 2 butterfly. The common address generator 328 performs an operation of notifying a twist factor that is multiplied during the butterfly operation. At this time, the torsion factor multiplied during the operation is stored in a predetermined table of the common memory (Coefficient ROM), and the coefficient values are read according to the value indicated by the common address generator 328.

단일 버터플라이 구조를 이용하는 경우 FFT 연산을 하기 위해서

Figure 112005051818170-PAT00005
단계의 연산이 수행된다. 또한 하나의 단계를 계산하기 위해서 버터플라이를 N/r 만큼을 반복적으로 이용한다. 이때, 카운터(Counter)(324)는 버터플라이가 하나의 단계에서 몇 번 동작했는지를 카운트한다. 또한 상기 카운터(324)는 상기 카운트된 값을 공통 주소 발생기(328)와 데이터 주소 발생기(326)에 각각 알려준다. 이를 통해 각 주소 발생기들(326, 328)에서 각 반복횟수에 맞게 주소를 생성할 수 있다. 또한 상기 카운터(324)는 한 단계에서의 모든 버터플라이 연산이 끝나면 카운트 값을 0으로 리셋(reset)하고, 다음 단계의 연산을 위한 버터플라이 동작 횟수를 카운트한다.To perform FFT operation when using single butterfly structure
Figure 112005051818170-PAT00005
The operation of the step is performed. In addition, the butterfly is repeatedly used by N / r to calculate one step. At this time, the counter 324 counts how many times the butterfly has operated in one step. The counter 324 also informs the common address generator 328 and the data address generator 326 of the counted values, respectively. Through this, the address generators 326 and 328 may generate an address for each iteration number. In addition, the counter 324 resets the count value to 0 when all butterfly operations in one step are completed, and counts the number of butterfly operations for the next operation.

도 4는 본 발명의 일 실시 예에 따라 N=128인 경우 4개로 이루어진 메모리에 대응되는 데이터의 주소를 표현한 도면이다. 상기 도 4에서 참조부호 310a, 310b, 310c 및 310d는 상술한 도 3의 메모리(310)에 대응된다. 또한 상기한 바와 같이 주소를 가지도록 메모리를 구성하면, 각 소단위 메모리들(310a, 310b, 310c, 310d)로부터 한번에 각각 하나씩의 데이터를 읽어내고, 읽어낸 데이터들을 다시 그 위치에 저장할 수 있다.FIG. 4 is a diagram representing addresses of data corresponding to four memories when N = 128 according to an embodiment of the present invention. In FIG. 4, reference numerals 310a, 310b, 310c, and 310d correspond to the memory 310 of FIG. 3. In addition, when the memory is configured to have an address as described above, one piece of data may be read from each of the subunit memories 310a, 310b, 310c, and 310d at a time, and the read data may be stored in the location again.

상기 도 4와 같은 형식은 일 예로 N=2p인 경우에 동일한 규칙으로 적용할 수 있다. 여기서 p는 지수를 의미하므로 2의 p 승을 표현한 것이다. 상기 도 4의 메모 리 내에 표시된 숫자는 FFT로 입력이 들어오는 순서를 의미한다. 그리고 참조부호 401 내지 408에 대응되는 메모리 주소는 저장되는 위치를 나타내는 값이다. 그러므로 상기 도 4에서 메모리 내부에 위치한 숫자들은 FFT 처리기로 순차적으로 입력될 시 상기 소단위 메모리들(310a, 310b, 310c, 310d) 내에 어느 주소에 기록되는지를 설명하고 있는 것이다.4 may be applied to the same rule when N = 2 p as an example. Where p is the exponent and is the p power of 2. The number displayed in the memory of FIG. 4 indicates the order in which the input is input to the FFT. In addition, the memory addresses corresponding to the reference numerals 401 to 408 are values indicating the storage location. Therefore, the numbers located in the memory in FIG. 4 describe which addresses are written in the sub-unit memories 310a, 310b, 310c, and 310d when sequentially input to the FFT processor.

상기 도 4와 같이 메모리를 구현하기 위한 규칙을 살펴보면 하기와 같이 설명할 수 있다. 이해의 편의를 위해 도 1의 상기 FFT 변환기(105)로 입력되는 데이터가 상기 도 5와 같이 저장된다고 가정한다. 즉, 입력될 데이터는 제1버퍼와 제2버퍼와 제3버퍼 및 제4버퍼에 순차적으로 입력되어 있다. 제1버퍼에 저장되는 데이터의 순서는 0번째 데이터부터 31번째 데이터까지 총 32개의 데이터가 입력되고, 제2버퍼에 저장되는 데이터는 32번째 데이터부터 63번째 데이터까지 총 32개의 데이터가 입력된다. 또한 제3버퍼에 저장되는 데이터는 64번째 데이터부터 95번째 데이터까지 총 32개의 데이터가 입력되고, 제4버퍼에 저장되는 데이터는 96번째 데이터부터 127번째 데이터까지 저장되어 있는 경우이다. Looking at the rules for implementing the memory as shown in FIG. 4 can be described as follows. For convenience of understanding, it is assumed that data input to the FFT converter 105 of FIG. 1 is stored as shown in FIG. 5. That is, the data to be input is sequentially input to the first buffer, the second buffer, the third buffer, and the fourth buffer. In the order of data stored in the first buffer, a total of 32 data are input from the 0th data to the 31st data, and a total of 32 data from the 32nd data to the 63rd data are input to the data stored in the second buffer. In the case of data stored in the third buffer, 32 pieces of data are input from the 64th data to the 95th data, and the data stored in the fourth buffer is stored from the 96th data to the 127th data.

상기 도 5와 같이 순차적으로 입력되어 있는 데이터가 상기 도 3의 각 소단위 버퍼들(310a, 310b, 310c, 310d)에 그대로 저장되는 경우 버터플라이에서 다단계 연산이 이루어지면, 상기 도 3에 도시한 바와 같이 4개의 소단위 메모리들(310a, 310b, 310c, 310d)로부터 각각 하나씩의 데이터를 읽거나 기록할 수 없다. 그러므로 상기 각 버퍼들에서 하나씩의 데이터가 항상 읽히고, 다시 읽은 데이터를 기록할 수 있도록 상기 도 4와 같이 데이터의 기록 위치를 변경한 것이다. 즉, 상 기 도 4에서 각 소단위 메모리들(310a, 310b, 310c, 310d)의 내부에 기록된 각 숫자들은 상기 도 5에서 순차적으로 입력된 데이터의 순서를 표시한 것이다.When data sequentially input as shown in FIG. 5 is stored in the sub-unit buffers 310a, 310b, 310c, and 310d of FIG. 3 as it is, when a multi-step operation is performed in the butterfly, as shown in FIG. Likewise, one data cannot be read or written from each of the four subunit memories 310a, 310b, 310c, and 310d. Therefore, the data recording position is changed as shown in FIG. 4 so that one data in each of the buffers is always read and the read data can be recorded. That is, the numbers written in the subunit memories 310a, 310b, 310c, and 310d in FIG. 4 indicate the order of data sequentially input in FIG. 5.

상기 도 5에서와 같이 순차적으로 저장된 데이터들은 본 발명에 따른 도 6의 장치에 의거하여 도 4와 같이 정렬되어 저장된다. 상기 도 5의 내용이 상기 도 4와 같이 적용이 되면 버터플라이를 계산하는 단계에서 한번도 겹침이 없이 각 소단위 메모리들(310a, 310b, 310c, 310d)로부터 한번에 하나의 데이터를 읽을 수 있게 된다.Data sequentially stored as shown in FIG. 5 is stored and aligned as shown in FIG. 4 based on the apparatus of FIG. 6 according to the present invention. When the content of FIG. 5 is applied as shown in FIG. 4, one data can be read from each of the sub-unit memories 310a, 310b, 310c, and 310d at once without overlapping in calculating the butterfly.

그러면 이에 대한 이해를 돕기 위해 도 7 내지 도 10을 참조하여 살펴보기로 한다. 상기 도 7은 N=64(26)의 예에 따라 각 소단위 메모리로 입력될 데이터들이 상기 도 5와 같이 저장된 상태의 도면이고, 도 8은 첫 번째 버터플라이 연산이 이루어진 이후 2번째 버터플라이 연산이 수행될 시 각 소단위 메모리들로부터 읽혀야 하는 데이터의 순서이며, 도 9는 두 번째 버터플라이 연산이 이루어진 이후 3번째 버터플라이 연산이 수행될 시 각 소단위 메모리들로부터 읽혀야 하는 데이터의 순서도이다. 그리고 도 10은 본 발명에 따라 N=64(26)의 예에서 각 단계의 버터플라이 연산 시에 소단위 메모리들로부터 하나씩의 데이터가 겹칩없이 읽힐 수 있도록 한 메모리 구성도이다.This will be described with reference to FIGS. 7 to 10 to help understand this. FIG. 7 is a diagram illustrating data stored in each sub-unit memory according to an example of N = 64 (2 6 ) as shown in FIG. 5, and FIG. 8 is a second butterfly operation after the first butterfly operation is performed. This is a sequence of data to be read from each sub-unit memory when this is performed, and FIG. 9 is a flowchart of data to be read from each sub-unit memory when the third butterfly operation is performed after the second butterfly operation is performed. FIG. 10 is a memory configuration diagram in which one piece of data can be read from the sub-unit memories without overlapping in the butterfly operation of each step in the example of N = 64 (2 6 ) according to the present invention.

상기 도 7 내지 도 10의 예에 따른 도면은 N=64(26)의 예를 도시하고 있다. 이 경우 Radix-22를 사용하면 버터플라이는 전체 6/2=3의 단계로 계산이 된다. 즉 첨부한 도 7 내지 도 9는 그 3단계에서 버터플라이 연산을 위해 메모리에서 읽어들여야 하는 데이터의 순서를 도시한 것이다.7 to 10 show an example of N = 64 (2 6 ). In this case, using Radix-2 2 , the butterfly is calculated in steps of 6/2 = 3. 7 to 9 show the order of data to be read from the memory for the butterfly operation in the third step.

상기 도 7은 앞에서 상술한 바와 같이 제1버퍼에 0~15까지의 데이터가 입력되어 저장되어 있고, 제2버퍼에 16번째 데이터부터 31까지의 데이터가 입력되어 저장되어 있으며, 제3버퍼에 32번째 데이터부터 47번째까지의 데이터가 입력되어 저장되어 있고, 제4버퍼에는 48번째 데이터부터 63번째 데이터까지 각각 16개의 데이터들이 저장되어 있다. 이러한 경우 상기 소단위 메모리들(310a, 310b, 310c, 310d)로부터 첫 번째 버터플라이 연산에서 읽혀져야 하는 데이터들은 도 8의 첫 번째 행에 도시한 바와 같이 0번째 데이터와 4번째 데이터, 8번째 데이터 및 12번째 데이터가 된다. 그런데 상기 데이터의 순서는 도 7에서 살펴보면, 모두 제1버퍼에 위치한 데이터들이다. 그러므로 실제로 도 3과 같이 소단위 메모리들로 구분하여 메모리를 구성하더라도 64개의 연산을 수행하기 위해서는 16회의 연산만으로 버터플라이 연산을 수행할 수 없고, 많은 연산을 요구하게 된다.In FIG. 7, as described above, data from 0 to 15 are input and stored in the first buffer, data from 16th to 31 are input and stored in the second buffer, and 32 is stored in the third buffer. The data from the 47 th data to the 47 th data are input and stored, and the 16th data from the 48 th data to the 63 th data are stored in the fourth buffer. In this case, data to be read in the first butterfly operation from the subunit memories 310a, 310b, 310c, and 310d may be 0th data, 4th data, 8th data, and the like as shown in the first row of FIG. 8. 12th data. However, as shown in FIG. 7, the order of the data is data located in the first buffer. Therefore, even though the memory is divided into small memory units as shown in FIG. 3, in order to perform 64 operations, the butterfly operation cannot be performed by only 16 operations and requires many operations.

또한 도 9에 도시한 바와 같이 두 번째 단계에서 요구되는 입력되는 데이터의 순서는 0, 1, 2 및 3번째 데이터들이다. 이들 또한 상기 도 7 및 도 8에서 살펴보면, 모두 제1버퍼에 존재하는 데이터가 된다.In addition, as shown in FIG. 9, the order of input data required in the second step is 0, 1, 2, and 3rd data. 7 and 8, all of them become data existing in the first buffer.

상기한 과정에서 읽은 데이터들은 다시 읽은 위치에 기록되어야 한다. 따라서 각각의 데이터가 하나씩만 읽히고 다시 하나씩 기록된다면 상기 도 3과 같은 형태의 메모리 구조를 가지더라도 하나의 단일 메모리로 구현한 경우와 동일한 효과를 가지게 된다. 따라서 상기 도 6의 예에서 살핀 바와 같은 장치를 이용하여 도 10과 같은 형태로 메모리에 기록되는 데이터의 순서를 정할 수 있다.Data read in the above process should be recorded in the read position again. Therefore, if each data is read one by one and written again one by one, even if the memory structure of the type shown in FIG. 3 has the same effect as when implemented as a single memory. Therefore, in the example of FIG. 6, the order of data recorded in the memory in the form of FIG.

그러면 다시 도 6에 대하여 살펴보기로 한다.This will be described again with reference to FIG. 6.

도 6은 본 발명의 일 실시 예에 따라 입력 메모리의 번호를 변환하기 위한 회로도이다. 상기 도 6은 예를 들어 최초 도 5 및 도 7에 도시한 바에 의거하면 0번 메모리에 저장되었어야 하는데 실제로 본 발명에서는 3번 메모리 또는 그 밖의 다른 메모리나 동일한 메모리로 저장되는 데이터의 위치를 변경하기 위한 장치이다. 상기 도 6에 대하여 살펴보면 하기와 같다. 6 is a circuit diagram for converting a number of an input memory according to an embodiment of the present invention. For example, FIG. 6 should be stored in memory 0 based on the first shown in FIGS. 5 and 7. In the present invention, the location of data stored in memory 3 or other memory or the same memory is changed. It is an apparatus for doing so. Referring to Figure 6 as follows.

먼저 도 6의 구성에서는 각각의 배타적 논리합(XOR)(601, 602, 611, 612) 연산자들이 짝수 번째끼리 인접한 결과들의 배타적 논리합 연산을 수행하며, 홀수 번째끼리 인접한 결과들과의 배타적 논리합 연산을 수행한다. 이를 통해 최종 배타적 논리합 연산자의 출력은 짝수 번째의 배타적 논리합 연산자의 결과는 주소 1에 쓰여지고, 홀수 번째 배타적 논리합 연산자의 결과는 주소 0에 쓰여진다. 그리고 상기 입력되는 신호는 버터플라이 카운터의 카운트된 값들로 x0, x1, x2, x3, x4...과 같은 형태로 도시되어 있다.First, in the configuration of FIG. 6, each of the exclusive ORs 601, 602, 611, and 612 operators performs an exclusive OR operation on adjacent numbers of even numbers, and performs an exclusive OR operation on adjacent results of odd numbers. do. This results in the output of the final exclusive OR operator being written to address 1 and the result of the odd exclusive OR operator being written to address 0. And the input signal is shown in the form of x 0 , x 1 , x 2 , x 3 , x 4 ... as counted values of the butterfly counter.

이를 다시 설명하면, FFT 입력 메모리를 연산 메모리와 공유가 가능하면서도 최종 연산까지 나누어진 각각의 메모리에서 한번에 하나씩 동시에 메모리 개수만큼의 데이터를 읽어내기 위해서 각 메모리의 어드레스 또는 버터플라이 카운터(324)를 이용한 것이다. 따라서 각 메모리의 어드레스는 도 4에서 왼쪽에 표현된 수이다. 이 값을 이진수로 도 4의 오른쪽에 표현하였다. 이 값은 어드레스뿐 아니라 버 터플라이의 카운터(324)에서 카운트된 값을 의미한다. 버터플라이에서 연산된 카운트 값을 표현하는 메모리를 이용하여 상기 도 5의 정렬을 도 4와 같이 바꿀 수 있게 된다. 상기 버터플라이 카운터를 LSB부터 2비트(bit)씩 나눈 다음에 앞의 비트(bit)끼리 배타적 논리합 연산을 하고, 뒤에 있는 비트(bit)끼리 배타적 논리합 연산을 하면, 두 개의 비트로 이루어진 하나의 수를 만들 수 있다. 따라서 다음 이 수만큼 순환 이동(cyclic shift)를 해 주면 도 5의 정렬을 쉽게 도 4와 같이 바꿀 수 있다. 따라서 상기 도 6의 과정을 다항식으로 표현하면 하기 <수학식 1>과 같이 표현할 수 있다.In other words, the FFT input memory can be shared with the operation memory but the address or butterfly counter 324 of each memory can be used to read data of the number of memories at a time from each memory divided into the final operation at the same time. will be. Thus, the address of each memory is the number represented on the left in FIG. This value is expressed in binary to the right of FIG. 4. This value refers to the value counted by the counter 324 of the butterfly as well as the address. The arrangement of FIG. 5 may be changed as shown in FIG. 4 by using a memory representing a count value calculated by the butterfly. If the butterfly counter is divided by 2 bits from the LSB, and the preceding bits are subjected to an exclusive OR operation, and the bits following the exclusive OR operation are performed, a number consisting of two bits is obtained. I can make it. Therefore, if the next cyclic shift (cyclic shift) by this number can be easily changed as shown in FIG. Therefore, if the process of FIG. 6 is expressed as a polynomial, it may be expressed as Equation 1 below.

버터플라이 counter : xn, xn-1, ... , x2, x, x0 Butterfly counter: x n , x n-1 , ..., x 2 , x, x 0

도 6에서 n은 홀수 : ( xn+ xn-2 + ... + x )(xn-1+ xn-3 + ... + x2 + x)In Figure 6, n is odd: (x n + x n-2 + ... + x) (x n-1 + x n-3 + ... + x 2 + x)

도 6에서 n은 짝수 : ( xn-1+ ... + x )(xn + xn-2 + ... + x2 + x0)In FIG. 6, n is even: (x n-1 + ... + x) (x n + x n-2 + ... + x 2 + x 0 )

=> (첫 번째 비트 : n은 홀수)(두 번째 비트 : n은 짝수) => (First bit: n is odd) (second bit: n is even)

상기 <수학식 1>에서 +는 배타적 논리합을 의미한다.In Equation 1, + means an exclusive OR.

한편, 입력 메모리를 따로 사용할 경우 수신 필터(103)의 출력을 FFT 연산 전에 입력 메모리에 저장해야 하는데 이때도 FFT 연산을 위한 버터플라이 구조에 대응되게 메모리를 구성해야 한다. 연산용 메모리와 마찬가지로 r개의 메모리를 사용하여 한번에 하나의 메모리에서 하나의 데이터를 읽을 수 있게 정렬해 놓는다. 도 5는 입력 메모리를 따로 사용하였을 경우의 입력 메모리를 표현한 것이다.On the other hand, when the input memory is used separately, the output of the reception filter 103 should be stored in the input memory before the FFT operation. In this case, the memory must be configured to correspond to the butterfly structure for the FFT operation. As with memory for operations, r memories are used to arrange one data at a time into one memory. 5 shows an input memory when the input memory is used separately.

이상에서 상술한 바와 같이 단일 버터플라이 구조를 사용하여 FFT 연산을 구현할 때에 간단한 주소의 조작으로 단일 메모리를 사용하는 경우와 동일한 크기의 메모리를 사용하면서도 FFT 연산을 처리하는 시간을 최적화할 수 있다.As described above, when implementing a FFT operation using a single butterfly structure, it is possible to optimize the processing time of the FFT operation while using a memory having the same size as using a single memory by simple address manipulation.

Claims (4)

Radix-2n(여기서 n은 자연수)의 구조를 가지는 단일 버터플라이를 이용하여 고속 퓨리에 연산을 수행하기 위한 장치에 있어서,An apparatus for performing a fast Fourier operation using a single butterfly having a structure of Radix-2 n (where n is a natural number), 서로 다른 4개의 소단위 메모리로 구성된 메모리부와,A memory unit composed of four different subunit memories, 상기 버터플라이 연산이 이루어질 때마다 카운트 값을 증가시키는 카운터와,A counter for incrementing a count value each time the butterfly operation is performed; 상기 카운터 값에 의거하여 상기 각 소단위 메모리들에서 중복되지 않고 하나씩 독취 및 기록할 수 있는 데이터 주소를 발생하는 데이터 주소 발생기와,A data address generator for generating a data address that can be read and written one by one without overlapping in each of the subunit memories based on the counter value; 상기 주소 발생기로부터 수신된 데이터 주소 정보에 의거하여 입력 데이터들을 저장하는 기록부와,A recording unit for storing input data based on data address information received from the address generator; 상기 주소 발생기로부터 수신된 데이터 주소 정보에 의거하여 상기 버터플라이로 입력할 데이터들을 상기 각 소단위 메모리로부터 하나씩 독취하여 출력하는 독취부를 포함함을 특징으로 하는 상기 장치.And a reading unit configured to read data to be input to the butterfly based on data address information received from the address generator, and output one by one from each of the subunit memories. 제 1 항에 있어서,The method of claim 1, 상기 버터플라이의 연산에 필요한 비틀림 펙터 값을 저장하고 있는 공통 메모리와,A common memory for storing torsion factor values required for the operation of the butterfly; 상기 카운터 값에 의거하여 버터플라이 연산에 필요한 비틀림 펙터 값의 주 소를 발생하여 상기 비트림 값을 상기 버터플라이로 제공하도록 하는 공통 주소 발생기를 포함함을 특징으로 하는 상기 장치.And a common address generator for generating an address of a torsion factor value required for a butterfly operation based on the counter value to provide the bit value to the butterfly. 제 1 항 또는 제 2 항에 있어서, 상기 데이터 주소 발생기는,The data address generator of claim 1, wherein the data address generator comprises: 하기 <수학식 2>를 이용하여 데이터 주소를 발생함을 특징으로 하는 상기 장치.The apparatus of claim 1, wherein the data address is generated using Equation 2. 버터플라이 카운터(counter) : xn, xn-1, ... , x2, x, x0 Butterfly counter: x n , x n-1 , ..., x 2 , x, x 0 n은 홀수 : ( xn+ xn -2 + ... + x )(xn -1+ xn -3 + ... + x2 + x)n is odd: (x n + x n -2 + ... + x) (x n -1 + x n -3 + ... + x 2 + x) n은 짝수 : ( xn-1+ ... + x )(xn + xn-2 + ... + x2 + x0)n is even: (x n-1 + ... + x) (x n + x n-2 + ... + x 2 + x 0 ) => (첫 번째 비트 : n은 홀수)(두 번째 비트 : n은 짝수) => (First bit: n is odd) (second bit: n is even) 상기 <수학식 2>에서 "+"는 배타적 논리합을 의미한다.In Equation 2, "+" means an exclusive logical OR. Radix-2n(여기서 n은 자연수)의 구조를 가지는 단일 버터플라이와 서로 다른 4개의 소단위 메모리를 갖는 장치에서 이용하여 고속 퓨리에 연산을 수행하기 위한 방법에 있어서,A method for performing fast Fourier operations using a single butterfly having a structure of Radix-2 n (where n is a natural number) and a device having four different subunit memories, 상기 버터플라이 연산이 이루어지는 횟수를 카운트하는 과정과,Counting the number of times the butterfly operation is performed; 상기 카운트된 값에 의거하여 상기 각 소단위 메모리들에서 중복되지 않고 하나씩 독취 및 기록할 수 있는 데이터 주소를 발생하는 과정과,Generating a data address that can be read and written one by one without overlapping in each of the subunit memories based on the counted value; 상기 발생된 데이터 주소 정보에 의거하여 입력 데이터들을 상기 메모리에 저장하는 과정과,Storing input data in the memory based on the generated data address information; 상기 소단위 메모리에 저장된 데이터들을 상기 데이터 주소 정보에 의거하여 각 소단위 메모리로부터 하나씩 독취하여 상기 버터플라이로 입력하는 과정과,Reading data stored in the subunit memory from each subunit memory based on the data address information and inputting the data into the butterfly; 상기 버터플라이를 이용하여 버터플라이의 단계적 연산을 수행하여 출력하는 과정을 포함함을 특징으로 하는 상기 방법.And performing a stepwise calculation of the butterfly using the butterfly to output the butterfly.
KR1020050086563A 2005-09-15 2005-09-15 Fast fourier transformer device using single butterfly and method therefor KR20070031769A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020050086563A KR20070031769A (en) 2005-09-15 2005-09-15 Fast fourier transformer device using single butterfly and method therefor

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020050086563A KR20070031769A (en) 2005-09-15 2005-09-15 Fast fourier transformer device using single butterfly and method therefor

Publications (1)

Publication Number Publication Date
KR20070031769A true KR20070031769A (en) 2007-03-20

Family

ID=43655950

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020050086563A KR20070031769A (en) 2005-09-15 2005-09-15 Fast fourier transformer device using single butterfly and method therefor

Country Status (1)

Country Link
KR (1) KR20070031769A (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2009110768A1 (en) * 2008-03-06 2009-09-11 주식회사 포스데이타 Fast fourier transform method and device thereof
CN110941792A (en) * 2018-09-24 2020-03-31 半导体元件工业有限责任公司 Signal processor, system and method for performing in-situ fast fourier transforms

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2009110768A1 (en) * 2008-03-06 2009-09-11 주식회사 포스데이타 Fast fourier transform method and device thereof
CN110941792A (en) * 2018-09-24 2020-03-31 半导体元件工业有限责任公司 Signal processor, system and method for performing in-situ fast fourier transforms

Similar Documents

Publication Publication Date Title
EP1516467B1 (en) Modulation apparatus using mixed-radix fast fourier transform
KR960013080A (en) MPEG audio / video decoder
US5832443A (en) Method and apparatus for adaptive audio compression and decompression
EP2191381A1 (en) Encoding and/or decoding digital content
JP6177239B2 (en) Adapt analysis weighting window or synthesis weighting window for transform coding or transform decoding
AU2005208287A1 (en) Improved coding techniques using estimated spectral magnitude and phase derived from MDCT coefficients
US20050177608A1 (en) Fast Fourier transform processor and method using half-sized memory
US9735996B2 (en) Fully parallel fast fourier transformer
CN101421780A (en) Processing of excitation in audio coding and decoding
US9727531B2 (en) Fast fourier transform circuit, fast fourier transform processing method, and program recording medium
CN111435383B (en) Data processing method, data processing chip and electronic equipment
US7689429B2 (en) Methods and apparatuses for bit stream decoding in MP3 decoder
EP4283614A2 (en) Method for processing speech/audio signal and apparatus
KR20070031769A (en) Fast fourier transformer device using single butterfly and method therefor
WO2003021973A2 (en) Ram-based fast fourier transform unit for wireless communications
JP2000066872A (en) Bit and digit reversing method
US20190013823A1 (en) Compression and decompression engines and compressed domain processors
US6631167B1 (en) Process and device for transforming real data into complex symbols, in particular for the reception of phase-modulated and amplitude-modulated carriers transmitted on a telephone line
JPWO2019131754A1 (en) Signal processing equipment, methods, programs and recording media
Hong et al. Implementation of FIR filter on FPGA using DAOBC algorithm
JP6977883B2 (en) Signal processing equipment, methods, programs
KR20050072633A (en) Fast fourier transform device capable of improving a processing speed and a method processing thereof
US20090172062A1 (en) Efficient fixed-point implementation of an fft
US9952648B2 (en) Digital filtering device, digital filtering method, and storage media storing program
EP2191382B1 (en) System, method, and/or apparatus for digital signal sorting

Legal Events

Date Code Title Description
WITN Withdrawal due to no request for examination