KR100878765B1 - Circuit for FFT Operation - Google Patents
Circuit for FFT Operation Download PDFInfo
- Publication number
- KR100878765B1 KR100878765B1 KR1020060101573A KR20060101573A KR100878765B1 KR 100878765 B1 KR100878765 B1 KR 100878765B1 KR 1020060101573 A KR1020060101573 A KR 1020060101573A KR 20060101573 A KR20060101573 A KR 20060101573A KR 100878765 B1 KR100878765 B1 KR 100878765B1
- Authority
- KR
- South Korea
- Prior art keywords
- output
- address
- complex
- butterfly
- fft
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F17/00—Digital computing or data processing equipment or methods, specially adapted for specific functions
- G06F17/10—Complex mathematical operations
- G06F17/14—Fourier, Walsh or analogous domain transformations, e.g. Laplace, Hilbert, Karhunen-Loeve, transforms
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- General Physics & Mathematics (AREA)
- Pure & Applied Mathematics (AREA)
- Mathematical Optimization (AREA)
- Mathematical Analysis (AREA)
- Computational Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Theoretical Computer Science (AREA)
- Algebra (AREA)
- Databases & Information Systems (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Complex Calculations (AREA)
Abstract
본 발명에 따른 FFT 연산 회로는 복수의 직렬 연결된 버터플라이 연산기로 구성되며, 버터플라이 연산기들 각각은 이 버터플라이 연산기들 각각이 복소곱셈 및 복소가감산을 실시하는 순서대로 신호를 읽어내고, FFT 길이 및 버터플라이 연산기들 각각의 스테이지 수에 대응되는 복소계수를 차례로 읽어낸 신호마다 복소곱셈하고, 이 복소곱셈된 신호에 대해 차례로 복소가감산을 실시함으로써 기수(radix)에 대응한 복수의 연산 회로를 구비하지 않고 복수의 FFT 길이에 대응한 FFT 연산을 실시할 수 있다.
The FFT calculation circuit according to the present invention is composed of a plurality of series connected butterfly calculators, each of which reads signals in the order in which each of these butterfly operators performs complex multiplication and complex subtraction, and FFT length. And complex multiplying the complex coefficients corresponding to the number of stages of the butterfly operators for each signal and sequentially performing complex value subtraction on the complex multiplied signals to generate a plurality of arithmetic circuits corresponding to radix. It is possible to perform an FFT operation corresponding to a plurality of FFT lengths without the provision.
Description
도 1은 본 발명의 실시예에 따른 FFT 연산 회로를 나타내는 블록도이다.1 is a block diagram illustrating an FFT calculation circuit according to an embodiment of the present invention.
도 2는 도 1에 도시된 버터플라이 연산기를 나타내는 블럭도이다. FIG. 2 is a block diagram illustrating a butterfly operator shown in FIG. 1.
도 3은 도 2에 도시된 저장부의 저장 공간을 설명하는 개념도이다.3 is a conceptual diagram illustrating a storage space of the storage unit illustrated in FIG. 2.
도 4는 도 2에 도시된 FFT 회전 인자 테이블의 구성을 설명하는 개념도이다.4 is a conceptual diagram illustrating a configuration of the FFT rotation factor table illustrated in FIG. 2.
* 도면의 주요 부분에 대한 부호의 설명 *Explanation of symbols on the main parts of the drawings
1 : FFT 연산 회로 11~15 : 버터플라이 연산기1:
16: 버터플라이선택부 22 : 저장부16: Butterfly Selection 22: Storage
23: 입력 주소 생성부 23A : 제 1 입력 주소 생성부23:
23B : 제 2 입력 주소 생성부 23C : 제 3 입력 주소 생성부23B: second
24: 입력 주소 선택부 25: 출력 주소 생성부 24: input address selector 25: output address generator
25A : 제 1 출력 주소 생성부 25B : 제 2 출력 주소 생성부 25A: first
25C : 제 3 출력 주소 생성부 26: 출력 주소 선택부25C: third output address generator 26: output address selector
27: 인자 주소 생성부 27A : 제 1 인자 주소 생성부27:
27B : 제 2 인자 주소 생성부 27C : 제 3 인자 주소 생성부27B: second
28: 인자 주소 선택부 29: FFT 회전 인자 테이블28: argument address selector 29: FFT rotation factor table
30: 복소 곱셈부 31: 직렬/병렬 변환부30: complex multiplication unit 31: serial / parallel conversion unit
32: 복소 가감산부 33: 병렬/직렬 변환부32: complex addition / subtraction section 33: parallel / serial conversion section
34: 타이밍 생성부34: timing generator
본 발명은 데이터 통신이나 화상, 음성 신호의 디지털 신호 처리에 사용되는 FFT(Fast Fourier Transform) 연산 회로에 관한 것이다.The present invention relates to an FFT (Fast Fourier Transform) arithmetic circuit used for data communication, digital signal processing of video and audio signals.
FFT는 시간 영역에서의 일련의 신호 데이터로 숨어 있는 주파수 성분을 추출하는데 사용되며, 다수의 데이터를 단시간에 처리할 수 있는 우수한 특징을 가진다. 또한, FFT는 하드웨어에서 구현 할 때 작은 면적의 회로가 요구되는 장점이 있다. FFT is used to extract hidden frequency components as a series of signal data in the time domain, and has an excellent feature of processing a large number of data in a short time. In addition, the FFT has the advantage of requiring a small area of the circuit when implemented in hardware.
한편, 휴대 전화 등의 무선 통신 규격에 있어서, 여러 가지 셀룰러 방식이나 무선 LAN 방식이 사용되고 있다. 일반 이용자들은 이러한 규격의 이점을 이용하여 효율적인 무선 통신을 하고자 한다. 예를 들면, 데이터 통신 분야에 있어서는 FFT의 데이터 길이(FFT 길이)가 용도에 따라 상이해지는데, 일례로서, 무선 LAN 규격의 하나인 IEEE(Institute of Electrical and Electronics Engineers) 802.11a에서 데이터 길이가 64이고, 4G-모바일(4Generation Mobile) 규격의 후보 중 하나는 데이터 길이가 1024이다. 그 때문에, 여러 규격을 하나의 하드웨어로 구현하는 멀티-모드(Multi-Mode) 단말은 복수의 칩 셋을 내장하고 있어 대형화되는 결점이 있었다. 그에 따라, 다수의 칩 셋에 의해 여러 규격에 대응할 수 있는 FFT 연산 회로의 필요성을 인식하게 되었다.On the other hand, various cellular systems and wireless LAN systems are used in wireless communication standards such as mobile phones. Ordinary users would like to take advantage of this standard for efficient wireless communication. For example, in the field of data communication, the data length (FFT length) of the FFT varies depending on the application. For example, the data length is 64 in IEEE (Institute of Electrical and Electronics Engineers) 802.11a, one of the wireless LAN standards. And one of the candidates of the 4G-Mobile (4Generation Mobile) standard has a data length of 1024. Therefore, a multi-mode terminal that implements several standards in one hardware has a drawback in that it has a large number of chipsets built therein. Accordingly, the need for an FFT arithmetic circuit capable of meeting various specifications by a plurality of chipsets has been recognized.
기존의 FFT 전용 프로세서는 FFT 연산을 실시하는 처리 회로에 복수의 기수(radix)에 대응한 여러 연산 회로가 구비되어 있고, 각 FFT 연산 스테이지에서의 기수에 대응한 연산 회로를 선택해 사용하도록 구성이 되어 있다. 따라서, 상기 FFT 전용 프로세서는 기수(radix)에 대응한 여러 연산 회로를 구비하고 있기 때문에, 회로 사이즈가 크고, 전력 소모량이 많은 결점이 있다.Existing FFT dedicated processor has a plurality of arithmetic circuit corresponding to a plurality of radix in the processing circuit for performing the FFT operation, and is configured to select and use arithmetic circuit corresponding to the radix in each FFT arithmetic stage have. Therefore, since the FFT dedicated processor is provided with a number of arithmetic circuits corresponding to radix, it has a drawback of large circuit size and high power consumption.
따라서, 본 발명의 목적은 기수(radix)에 대응하는 복수의 연산 회로를 구비하지 않고도 다수의 FFT 길이에 대응할 수 있어, 기존 대비 회로 수를 삭감해 소비전력을 감소시킬 수 있는 FFT 연산 회로를 제공함에 있다. Accordingly, an object of the present invention is to provide a FFT arithmetic circuit that can cope with a plurality of FFT lengths without having a plurality of arithmetic circuits corresponding to radix, thereby reducing the power consumption by reducing the number of circuits. Is in.
상기 목적을 달성하기 위한 본 발명에 따른 FFT 연산 회로는 복수의 직렬 연결된 버터플라이 연산기로 구성되며, 상기 버터플라이 연산기들 각각은 상기 버터플라이 연산기들 각각이 복소곱셈 및 복소가감산을 실시하는 순서대로 신호를 읽어내는 신호순서 변환부; FFT 길이 및 상기 버터플라이 연산기들 각각의 스테이지 수에 대응되는 복소계수를 차례로 상기 신호순서 변환부가 읽어낸 신호마다 복소곱셈하는 복소곱셈부; 및 상기 복소곱셈부로부터 출력되는 복소계수가 복소곱셈된 신호에 대해, 차례로 복소가감산을 실시하는 복소가감산부를 포함한다.The FFT calculation circuit according to the present invention for achieving the above object is composed of a plurality of series connected butterfly operator, each of the butterfly operators in the order that each of the butterfly operators perform a complex multiplication and complex subtraction A signal sequence converting unit reading a signal; A complex multiplication unit for complexing the FFT length and the complex coefficient corresponding to the number of stages of each of the butterfly operators in order for each signal read by the signal order conversion unit; And a complex value subtraction unit for performing a complex value subtraction on the complex multiplied signal output from the complex multiplication unit.
상술한 본 발명에 따른 FFT 연산 회로는 복수의 버터플라이 연산기가 직렬로 접속되어 구성되기 때문에, FFT 길이에 따른 버터플라이 연산 횟수에 대응하는 버 터플라이 연산기로부터 출력을 선택함으로써, 여러 종류의 FFT 길이에 대응한 연산을 수행한다. Since the FFT calculation circuit according to the present invention described above is composed of a plurality of butterfly calculators connected in series, various types of FFT lengths are selected by selecting an output from a butterfly calculator corresponding to the number of butterfly operations according to the FFT length. Perform the operation corresponding to
이하에서는 첨부된 도면들을 참조하여 본 발명의 일 실시예를 보다 상세하게 설명한다. 다만, 본 발명을 설명함에 있어서, 관련된 공지 기능 혹은 구성에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우, 그에 대한 상세한 설명은 축약하거나 생략한다.Hereinafter, with reference to the accompanying drawings will be described in detail an embodiment of the present invention. However, in describing the present invention, when it is determined that a detailed description of a related known function or configuration may unnecessarily obscure the subject matter of the present invention, the detailed description thereof will be abbreviated or omitted.
도 1은 본 발명의 실시예에 따른 FFT 연산 회로(1)의 구성을 나타내는 블럭도이다. 본 발명의 실시예에서는 기수(radix) 4를 이용한 버터플라이 연산을 설명했으나, 기수를 n승으로 한 2, 4, 8, 16, … 등과 같이 회로를 구성할 수 있다. 1 is a block diagram showing the configuration of an FFT calculation circuit 1 according to an embodiment of the present invention. In the embodiment of the present invention, the butterfly operation using radix 4 has been described, but 2, 4, 8, 16,... The circuit can be configured as such.
또한, FFT 연산의 대상인 외부로부터 입력되는 샘플(채널) 수에 의해, 사용되는 버터플라이 연산기의 수가 변화한다. FFT 연산 회로(1)는 기수 4에서, FFT 길이 64, 256 및 1024 각각에 대해 FFT 연산을 수행할 수 있도록 구성되어 있다. In addition, the number of butterfly calculators used varies depending on the number of samples (channels) input from the outside which are the subjects of the FFT calculation. The FFT arithmetic circuit 1 is configured to be able to perform FFT arithmetic on each of the FFT lengths 64, 256, and 1024 in radix 4.
본 발명의 실시예에 따른 FFT 연산 회로(1)는 버터플라이 연산기들(11, 12, 13, 14 및 15) 각각이 각각의 출력 단자와 다음 단의 입력 단자가 접속되도록 직렬 접속되어 있다. 또, 본 발명에 따른 FFT 연산 회로(1)는 FFT 길이가 64, 256 및 1024에 대응하는 구성이기 때문에, 상기 버터플라이 연산기(13, 14 및 15)의 몇 개의 출력을, FFT 길이의 연산기에 의해 선택하고, 선택된 연산 결과를 FFT 연산 결과로 출력하도록 구성된다.The FFT calculation circuit 1 according to the embodiment of the present invention is connected in series such that each of the
또, 본 발명에 따른 FFT 연산 회로(1)는 FFT 길이 64, 256 및 1024에 대응하도록 구성되어, 몇 개의 버터플라이 연산기(13, 14 및 15)의 출력을 FFT 길이 연산 기에 의해 선택하고, 선택된 연산 결과를 FFT 연산 결과로 출력한다.Further, the FFT calculation circuit 1 according to the present invention is configured to correspond to the FFT lengths 64, 256 and 1024, so that the outputs of
본 실시예에 따르면, FFT 길이가 64(43)인 경우 4의 3승이기 때문에 3단 째의 버터플라이 연산기(13)로부터 FFT의 연산 결과가 출력되고, FFT 길이가 256(44)인 경우 4의 4승이기 때문에 4단 째의 버터플라이 연산기(14)로부터 FFT의 연산 결과가 출력되고, FFT 길이가 1024(45)인 경우 4의 5승이기 때문에 5단 째의 버터플라이 연산기(15)로부터 연산 결과가 출력된다. 또, FFT 길이가 256일 때, 버터플라이 연산기(13)에서는 중간데이터로서의 버터플라이 연산 결과가 버터플라이 연산기(14)로 출력된다. 즉, FFT 길이에 필요한 버터플라이 연산기의 전단까지의 버터플라이 연산기에서는 계산 도중의 FFT 길이와 동 수의 중간 데이터가 출력된다.According to the present embodiment, when the FFT length is 64 (4 3 ), the result of the calculation of the FFT is output from the third
버터플라이 연산기들(11~15) 각각은 후에 상세하게 말하지만, 외부로부터 입력되는 FFT 길이를 나타내는 FFT 길이 연산기에 의해, 외부로부터 또는 전단으로부터 입력되는 신호 각각(입력신호)에 복소 곱셈하는 복소계수의 데이터(이하, 계수 데이터 또는 계수로 한다)를 변화시켜, FFT 길이에 대응한 버터플라이 연산에 필요한 단의 전단까지, 상기 중간 데이터에 대응하는 버터플라이 연산을 실시해, FFT 길이에 대응한 버터플라이 연산에 필요한 스테이지의 버터플라이 연산기로부터 최종적인 연산 결과가 출력되도록 동작이 설정된다. 여기에서, 신호란 첫 번째 스테이지의 버터플라이 연산기(11)에 입력되는 입력신호 또는 다음 스테이지의 버터플라이 연산기(12~15)에 입력되는 이전 스테이지로부터의 중간 데이터 모두를 포함하는 것으로 한다.Each of the
예를 들면, FFT 길이가 256인 경우, 버터플라이 연산기들(11~13)은 중간 데이터를 생성하는 연산을 실시하고, 버터플라이 연산기(14)는 버터플라이 연산기(13)로부터 출력되는 중간 데이터로부터 최종적인 FFT 연산 결과(출력신호)를 출력한다. 버터플라이 선택부(16)는 각 버터플라이 연산기로부터의 출력 신호를 입력받아 상기 FFT 길이 및 버터플라이 연산기의 스테이지(몇 번째 버터플라이 연산기인지)에 의해 FFT 연산 결과가 출력되는 스테이지의 버터플라이 연산기로부터의 출력을 선택하고, 이를 출력 신호로서 출력한다.For example, when the FFT length is 256, the butterfly operators 11-13 perform the operation of generating the intermediate data, and the
이어서, 도 2를 참조하여, 도 1에 도시된 버터플라이 연산기(11)를 설명한다. 도 2는 본 발명의 실시예에 따른 FFT 연산 회로(1)를 구성하는 버터플라이 연산기를 도시한 것이다. 다른 버터플라이 연산기들(12, 13, 14 및 15) 각각의 구성은 버터플라이 연산기(11)와 동일한 버터플라이 연산을 실시하도록 구성이 되어 있다. 각 연산기가 다른 점은, 다음 스테이지에 출력할 중간 데이터를 연산할 때, 입력되는 데이터에 대해 복소 곱셈하는 계수가 다르다는 것과, 이 계수가 복소 곱셈된 결과를 가감 연산하는 신호(샘플 또는 중간 데이터)의 편성이 다르다는 것이다. 또, 버터플라이 연산기(14)는 FFT 길이가 256 및 1024인 경우만 버터플라이 연산을 실시하도록 FFT 길이가 64인 경우의 버터플라이 연산에 대응하는 구성을 필요로 하지 않는다. 그리고, 버터플라이 연산기(15)는 FFT 길이가 1024개인 경우만 버터플라이 연산을 실시하도록 FFT 길이가 64 및 256의 경우의 버터플라이 연산에 대응하는 구성을 필요로 하지 않는다. Next, with reference to FIG. 2, the
저장부(22)에는 외부로부터 시계열적으로 입력되는 입력신호 x(k)({ x(0),x(1), x(2),…, x(k-1), x(k)}의 신호열)가 입력주소선택부(24)로부터 출력되는 입력 주소(아래와 같이 설명함)에 따라, 대응하는 입력 주소(예를 들면 첫 번째 스테이지의 버터플라이연산기(11)에 대하여는 연속한 주소)에 차례차례 쓰여져, 다음 스테이지 이후의 버터플라이 연산기(12~15)에 대해 이전 스테이지의 출력 주소와 동일한 주소에 입력된다.The
입력 주소 생성부(23)는 저장부(22)에 신호들을 차례차례 쓰기 위한 주소를 생성한다. 상기 입력 주소 생성부(23)는 FFT 길이 64에 대응하는 입력 주소를 생성하는 제1입력주소생성부(23A), FFT 길이 256에 대응하는 입력 주소를 생성하는 제2입력주소생성부(23B), 및 FFT 길이 1024에 대응하는 입력 주소를 생성하는 제3입력주소생성부(23C)로 구성된다.The
입력주소선택부(24)는 입력되는 FFT 길이 연산기에 따라, 입력주소생성부(23)로부터 제공받은 입력 주소 중 FFT 길이에 대응하는 입력 주소를 선택하여 저장부(22)로 출력한다.The
상기 저장부(22)는 읽기와 쓰기를 동시에 수행할 수 있다. 예를 들면, 듀얼포트 램(RAM)으로 구성되고 저장 영역이 2개로 분할되어, 더블 버퍼 구조로서 입력 신호 x(k)(즉 입력되는 신호)를 쓰기 위한 기억 영역이 제1및 제2의 기억 영역으로 구분될 수 있다. 따라서, 본 발명의 실시예에 따르면, 저장부(22)는 1024의 FFT 길이에 대응하도록 구성되어 있기 때문에, 2048개의 신호에 대응하는 용량을 가진다. The
또, 저장부(22)는 예를 들면, 도 3에 도시한 바와 같이, 주소 수가 2048인 메모리 공간을 가지고 있다. 이 메모리 공간에 있어서의 메모리 맵은, FFT 길이가 64인 경우, 사용하는 주소 공간의 주소수가 64이기 때문에, 쓰기 및 읽기를 교대로 바꾸는 주소 공간으로서 주소수가 128이 된다. 저장부(22)는 128을 나타내는 주소의 최상위비트가 「0」인 주소 공간(제1 기억 영역)과 최상위비트가 「1」인 주소 공간(제2 기억 영역)으로, FFT 길이 64에 대한 2개의 주소 공간을 구성하게 된다.In addition, the
또, 상기 저장부(22)에 대하여 이 메모리 공간에 있어서의 메모리 맵은 FFT 길이가 256인 경우, 사용하는 주소 공간의 주소수가 256이기 때문에, 쓰기 및 읽기를 교대로 바꾸는 주소 공간으로서는 주소수가 512가 된다. 저장부(22)는 512를 나타내는 주소의 최상위비트가 「0」인 주소 공간(제1의 기억 영역)과 최상위비트가 「1」인 주소 공간(제2의 기억 영역)으로, FFT 길이 256에 대한 2개의 주소 공간을 구성하게 된다.The memory map in the memory space in the
또, 상기 저장부(22)에 대하여 이 메모리 공간에 있어서의 메모리 맵은 FFT 길이가 1024인 경우, 사용하는 주소 공간의 주소수가 1024이기 때문에, 쓰기 및 읽기를 교대로 바꾸는 주소 공간으로서는 주소 수가 2048이 된다. 여기서, 저장부(22)는 2048을 나타내는 주소의 최상위비트가 「0」인 주소 공간(제1 기억 영역)과, 최상위비트가 「1」인 주소 공간(제2 기억 영역)으로, FFT 길이 1024에 대한 2개의 주소 공간을 구성하게 된다.The memory map in the memory space in the
입력 주소 생성부(23)는 FFT 길이에 대응하는 각 입력 주소 생성부가 저장부(22)의 주소 공간에 대응하는 입력 주소를 생성하도록 구성된다. The
출력 주소 생성부(25)는 복소곱셈부(30)가 저장부(22)로부터 신호를 차례로 읽도록, 출력 주소를 생성한다. 이 출력 주소 생성부(25)는 FFT 길이 64에 대응하 는 출력 주소를 생성하는 제1출력주소생성부(25A), FFT 길이 256에 대응하는 출력 주소를 생성하는 제2출력주소생성부(25B), 및 FFT 길이 1024에 대응하는 출력 주소를 생성하는 제3출력주소생성부(25C)로 구성되어 있다.The
또, 출력 주소 생성부(25)는 FFT 길이 및 각 버터플라이 연산기의 스테이지에 따라 읽어 내기 위한 출력 주소가 다르기 때문에, 각각의 경우에 대응한 출력 주소를 생성한다. In addition, since the output address for reading differs depending on the FFT length and stage of each butterfly operator, the
상기 제1출력주소생성부(25A)는 FFT 길이가 64인 경우에 대한 것으로, 후술할 복소가감산부(32)에서 복소가감산을 수행하는 순서에 맞춰 신호 데이터가 저장부(22)로부터 읽어지도록 출력 주소를 차례차례 생성한다. 입력 주소 생성부(23), 출력 주소 생성부(25) 및 저장부(22)로 신호순서 변환부를 구성해, 후에 복소가감산부(32)에서 가감 연산을 실시할 신호(기수 4이므로 편성된 신호 또는 중간 데이터는 4개)가 연속적으로 복소곱셈부(30)로부터 출력되도록 출력 주소를 결정한다. 또, 제2출력주소생성부(25B) 및 제3출력주소생성부(25C) 각각은 FFT 길이 256 및 1024에 대한 것으로, 복소가감산부(32)에서 복소가감산을 수행하는 순서에 맞춰 신호 데이터가 저장부(22)로부터 읽어지도록 출력 주소를 차례차례 생성한다.The first
예를 들면, 기수 4, FFT 길이 256인 경우, 본 발명의 실시예에 따른 (FFT 연산의 알고리즘에 의해서 이하의 식은 다르다) 기수 4의 버터플라이 연산은 0≤k≤255의 범위에서 신호 x(k)를 입력받아 수행된다.For example, in the case of the radix 4 and the FFT length 256, the butterfly operation of the radix 4 according to the embodiment of the present invention (the following equations differ depending on the algorithm of the FFT operation) is the signal x ( It is executed by receiving k).
DFT(이산 푸리에 변환)로서As a DFT (Discrete Fourier Transform)
X(n)=Σx(k) WN nk …(1)X (n) = Σx (k) W N nk ... (One)
로 한다(1/N을 생략).(1 / N is omitted).
상술한 식에 대하여, 신호 번호 n과 주파수를 나타내는 인덱스 k는 아래에 기재된 바와 같다.For the above-described equation, the index k indicating the signal number n and the frequency is as described below.
n=64n3+16n2+4n1+n0 ;(n0, n1, n2, n3=0, 1, 2, 3)n = 64n 3 + 16n 2 + 4n 1 + n 0 ; (n 0 , n 1 , n 2 , n 3 = 0, 1, 2, 3)
k=64k3+16k2+4k1+k0 ;(k0, k1, k2, k3=0, 1, 2, 3)…(2)k = 64k 3 + 16k 2 + 4k 1 + k 0 ; (k 0 , k 1 , k 2 , k 3 = 0, 1, 2, 3). (2)
DFT는DFT is
X(n3, n2, n1, n0)X (n 3 , n 2 , n 1 , n 0 )
=ΣΣΣΣx(k3, k2, k1, k0) WN n(64k3+16k2+4k1+k0) …(3)= ΣΣΣΣ x (k 3 , k 2 , k 1 , k 0 ) W N n (64 k 3 + 16 k 2 + 4 k 1 + k 0 ) . (3)
로 나타난다. 이 k3, k2, k1, k0의 각각에 대하여, 제1 스테이지 버터플라이 연산기(11)에서 k3에 대한 합을 요구하고, 제2 스테이지 버터플라이 연산기(12)에서 k2에 대한 합을 요구하고, 제3 스테이지 버터플라이 연산기(13)에서 k1에 대한 합을 요구하고, 제4 스테이지 버터플라이 연산기(14)에서 k0에 대한 합을 요구하게 된다.Appears. For each of k 3 , k 2 , k 1 , and k 0 , the sum of k 3 is required in the first
x1(n0, k2, k1, k0) = Σx(k3, k2, k1, k0)W4 n0k3 …(4) x 1 (n 0 , k 2 , k 1 , k 0 ) = Σx (k 3 , k 2 , k 1 , k 0 ) W 4 n0k3 . (4)
x2(n0, n1, k1, k0) = Σx1(n0, k2, k1, k0)WN 16n0k2 W4 n1k2…(5) x 2 (n 0 , n 1 , k 1 , k 0 ) = Σx 1 (n 0 , k 2 , k 1 , k 0 ) W N 16n0k2 W 4 n1k2 . (5)
x2(n0, n1, k1, k0) = Σx2(n0, n1, k1, k0)WN 4(4n1+n0)k1 W4 n2k1…(6) x 2 (n 0 , n 1 , k 1 , k 0 ) = Σx 2 (n 0 , n 1 , k 1 , k 0 ) W N 4 (4n1 + n0) k1 W 4 n2k1 . (6)
x4(n0, n1, n2, n3) = Σx3(n0, n1, n2, k0)WN( 16n2+4n1+n0)k0 W4 n3k0…(7) x 4 (n 0 , n 1 , n 2 , n 3 ) = Σx 3 (n 0 , n 1 , n 2 , k 0 ) W N ( 16n2 + 4n1 + n0) k0 W 4 n3k0 ... (7)
여기서, x4(n0, n1, n2, n3)는 x(n3, n2, n1, n0)이다. (4)식이 제1 스테이지 버터플라이 연산기(11)의 출력이며, (5)식이 제2 스테이지 버터플라이 연산기(12)의 출력이며, (6)식이 제3 스테이지 버터플라이 연산기(13)의 출력이며, (7)식이 제4스테이지 버터플라이 연산기(14)의 출력, 즉 FFT 길이 256에 있어서의 DFT이다. 또, 상기 x1, x2, x3은 DFT 연산에 있어서, 각 버터플라이 연산기로 입력되는 중간 데이터가 된다.Here, x 4 (n 0 , n 1 , n 2 , n 3 ) is x (n 3 , n 2 , n 1 , n 0 ). Expression (4) is the output of the first
이 경우, 버터플라이 연산기(11)는 (4)식에 있어서, 입력되는 신호의 계수 「W4 n0k3」의 복소곱셈, 즉 「+1」, 「-1」, 「+j」또는 「-j」의 복소곱셈에 대해서 복소가감산부(32)에서 가산할지 감산할지가 설정되어 있기 때문에, 복소곱셈 처리는 행해지지 않는다. 복소가감산부(32)에 대해서 계수 「W4 n0k3」에서의 n0가 0, 1, 2, 3인 4개의 경우에 대응한 4개의 감산 또는 가산이 행해져 4개의 중간 데이터가 출력된다. 복소가감산부(32)에 대해서 계수 「W4 n1k2」에서의 n1가 0, 1, 2, 3인 4개의 경우에 대응한 4개의 감산 또는 가산을 해 4개의 중간 데이터가 출력된다.In this case, in the formula (4), the
또, 버터플라이 연산기(13)는 (6) 식에 있어서의, 입력되는 신호(중간 데이터)의 계수 「W4 n2k1」의 복소곱셈, 즉 「+1」, 「-1」, 「+j」또는 「-j」의 복소곱셈에 대해서, 복소가감산부(32)에서 가산할지 감산할지 설정되어 있기 때문에, 복소곱셈의 처리는 행해지지 않는다. 복소가감산부(32)에 대해서, 계수 「W4 n2k1」에서의 n2가 0, 1, 2, 3의 4개인 경우에 대응한 4개의 감산 또는 가산을 해 4개의 중간 데이터가 출력된다. 또, 버터플라이 연산기(12)는 (7) 식에 있어서, 입력되는 신호(중간 데이터)의 계수 「W3 n3k0」의 복소곱셈, 즉 「+1」, 「-1」, 「+j」또는 「-j」의 복소곱셈에 대해서, 복소가감산부(32)에서 가산할지 감산할지가 설정되어 있기 때문에, 복소곱셈의 처리는 행해지지 않는다. 복소가감산부(32)에 대해서는 계수「W4 n3k0」에 있어서의 n3이 0, 1, 2, 3의 4개의 경우에 대응한 4개의 감산 또는 가산을 해 4개의 중간 데이터가 출력된다.In addition, the
버터플라이 연산기(11)에 대해서는 신호 x(k)가 k = 0~255까지 차례로 입력되어 저장부(22)가 연속한 주소에 순서대로 써진다. 이 때문에, 저장부(22)로부터의 데이터를 읽어 내기 위해 이하와 같은 출력 주소가 필요하다. 상기 (4) 식에서 k3에 대한 합을 요구하고 있기 때문에, 복소가감산부(32)에 대해서는 신호 x(k3, k2, k1, k0)의 그룹으로서 첫 그룹이 x(k3, 0, 0, 0)가 되어, k3을 0, 1, 2, 3으로 변화시킨 신호 x(0), x(64), x(128), x(192)의 4개를 그룹으로 소정의 복소가감산을 실시한다. With respect to the
다음에, x(k3, 0, 0, 1)로서 k3을 0, 1, 2, 3으로 변화시킨 신호 x(k)이지만 4개의 신호 그룹의 신호열로서 차례차례 읽어 내어질 필요가 있다. 따라서, 버터플라이 연산기(11)에 있어서의 제2출력주소생성부(25B)는 저장부(22)로부터 신호열을 읽어내는 순서대로 k의 수치를 표현한 (2)식에 있어서의 4 진수의 가장 높은 자리수 64, 즉 이 버터플라이 연산기(11)에서 합을 취하는 번호 k3의 자리수를 기준으로 하고 다른 자리수를 고정해, 기준으로 한 자리수를 0, 1, 2, 3으로 변화시키고, 차례차례 출력 주소를 생성하게 된다.Next, although x (k) is a signal x (k) obtained by changing k 3 to 0, 1, 2, 3 as x (k 3 , 0, 0, 1), it needs to be sequentially read as a signal sequence of four signal groups. Therefore, the second
이하, 버터플라이 연산기들(12, 13, 14)도 같이 이하와 같이 구할 수 있다.Hereinafter, the
마찬가지로, (5) 식에 대하여, k2에 대한 합을 요구하고 있기 때문에, 복소가감산부(32)(버터플라이 연산기(12))에 대하여, 신호 x1(n0, k2, k1, k0)의 그룹으로서 첫 그룹이 x1(0, k2, 0, 0)이 되어, k2를 0, 1, 2, 3으로 변화시킨 신호 x1(0), x1(16), x1(32), x1(48)의 4개를 그룹으로서 소정의 복소가감산을 실시한다.Similarly, since the sum of k 2 is required for the expression (5), the signal x 1 (n 0 , k 2 , k 1 ,) is applied to the complex subtraction subtractor 32 (butterfly operator 12). k 0 ), the first group becomes x 1 (0, k 2 , 0, 0), and the signal x 1 (0), x 1 (16), which changes k 2 to 0, 1, 2, 3, A predetermined complex value subtraction is performed by grouping four of x 1 (32) and x 1 (48).
다음에, x1(0, k2, 0, 1)로서 k2를 0, 1, 2, 3으로 변화시킨 신호 x(k)가 4개의 신호 그룹의 신호열로서 차례차례 읽어내질 필요가 있다. 따라서, 버터플라이 연산기(12)에 있어서의 제2출력주소생성부(25B)는 저장부(22)로부터 신호열을 읽어내는 차례로서 k의 수치를 표현한 (2) 식에 있어서의 4 진수의 2번째로 높은 자리 수 16, 즉 이 버터플라이 연산기(12)에서 합을 취하는 번호 k2를 기준으로 하고 다른 자리수를 고정해, 기준으로 한 자리수를 0, 1, 2, 3으로 변화시켜 차례차례 출력 주소를 생성하게 된다.There is then a need naejil, x 1 (0, k 2, 0, 1) as sequentially read as a signal sequence in which the signal x (k) are four signal group changes a k 2 with 0,1,2,3. Therefore, the second
또, (6) 식에 대하여, k1에 대한 합을 요구하고 있기 때문에, 복소가감산부 (32)(버터플라이연산기(13))에서는 신호 x2(n0, n1, k1, k0)의 그룹으로서 첫 그룹이 x2(0, 0, k1, 0)가 되어, k1을 0, 1, 2, 3으로 변화시킨 신호 x2(0), x2(4), x2(8), x2(12)의 4개를 그룹으로서 소정의 복소가감산을 실시한다. 이 때문에, x2(0, 0, k1, 1)로서 k1을 0, 1, 2, 3으로 변화시킨 신호 x(k)가 4개의 신호 그룹의 신호열로서 차례차례 읽어내질 필요가 있다. 따라서, 버터플라이 연산기(13)에 있어서의 제2출력주소생성부(25B)는 저장부(22)로부터 신호열을 읽어내는 차례로서 k의 수치를 표현한 (2) 식에 있어서의 4 진수의 3번째로 높은 자리수 4, 즉 이 버터플라이 연산기(13)에서 합을 취하는 번호 k1을 기준으로 하고 다른 자리수를 고정해, 기준으로 한 자리수를 0, 1, 2, 3으로 변화시켜 차례차례 출력 주소를 생성하게 된다.In addition, since the sum to k 1 is required for the expression (6), the complex subtraction subtractor 32 (the butterfly operator 13) gives the signal x 2 (n 0 , n 1 , k 1 , k 0). ), The first group becomes x 2 (0, 0, k 1 , 0) and changes k 1 to 0, 1, 2, 3 x 2 (0), x 2 (4), x 2 The complex complex subtraction is performed by grouping four of (8) and x 2 (12). For this reason, the signal x (k) in which k 1 is changed to 0, 1, 2, 3 as x 2 (0, 0, k 1 , 1) needs to be sequentially read as a signal sequence of four signal groups. Therefore, the second
마찬가지로, (7) 식에 대하여, k0에 대한 합을 요구하고 있기 때문에, 복소가감산부(32)(버터플라이 연산기(14))에서는 신호 x3(n0, n1, n1, n2)의 그룹으로서 첫 그룹이 x3(0, 0, 0, k0)이 되어, k0을 0, 1, 2, 3으로 변화시킨 신호 x3(0), x3(1), x3(2), x3(3)의 4개를 그룹으로서 소정의 복소가감산을 실시한다. 다음에, x3(0, 0, 1, k0)으로서 k0을 0, 1, 2, 3으로 변화시킨 신호 x(k)가 4개의 신호 그룹을 신호열로서 차례차례 읽어내질 필요가 있다. 따라서, 버터플라이 연산기(14)에 있어서의 제2출력주소생성부(25B)는 저장부(22)로부터 신호열을 읽어내는 차례로서 k의 수치를 표현한 (2) 식에 있어서의 4 진수의 가장 낮은 자리수 1, 즉 이 버터플라이 연산기(13)에서 합을 취하는 번호 k0을 기준으로 해, 다른 자리수를 고정해, 기준으로 한 자리수를 0, 1, 2, 3으로 변화시켜 차례차례 출력 주소를 생성하게 된다.Similarly, since the sum for k 0 is required for the expression (7), the complex subtraction subtractor 32 (butterfly operator 14) gives the signal x 3 (n 0 , n 1 , n 1 , n 2). ), the first group as a group x 3 (0, 0, 0 , k 0) is, that the signal x changes the k 0 a 0, 1, 2, 3 3 (0), x 3 (1), x 3 of the The complex complex subtraction is performed by grouping four of (2) and x 3 (3). Next, the signal x (k) which changed k 0 to 0, 1, 2, 3 as x 3 (0, 0, 1, k 0 ) needs to read four signal groups sequentially as a signal sequence. Therefore, the second
즉, 출력 주소 생성부(25)의 각 FFT 길이에 대응한 주소 생성부는 대응하는 각 버터플라이 연산기에 있어서의 합을 요구하는 자리수를 기준으로 해, 이 기준이 되는 자리수 이외의 자리수를 순서대로 변화시킨다. 그리고, 이 변화시킨 값마다, 기준이 되는 자리수를 n진수(기수에 대응)로 변화시켜(예를 들면 4 진수이면, 0, 1, 2, 3으로 변화시킴) 복소가감산부(32)에서 이용하는 기수에 대응하는 수의 신호열에 대한 출력 주소를 생성한다.That is, the address generator corresponding to each FFT length of the
또, 출력 주소 생성부(25)의 각 주소 생성부는 기준이 되는 자리수 이외의 자리수에 변화를 둔다. 예를 들면, 연산의 알고리즘에 따라 다르지만, 보다 작은 자리수로부터 자리수에 변화를 둔다. The address generator of the
상술한 것으로부터, 각 버터플라이 연산기의 출력 주소 생성부(25)에 있어서, 제1출력주소생성부(25A)는 FFT 길이 64에 대응하고 있기 때문에, (2) 식의 표현이 이하의 식과 같이 된다.From the above, in the
n=16 n2+4n1+n0 ;(n0, n1, n2=0, 1, 2, 3)n = 16 n 2 + 4 n 1 + n 0 ; (n 0 , n 1 , n 2 = 0, 1, 2, 3)
k=16 k2+4k1+k0 ;(k0, k1, k2=0, 1, 2, 3) k = 16 k 2 + 4k 1 + k 0 ; (k 0 , k 1 , k 2 = 0, 1, 2, 3)
마찬가지로, 각 버터플라이 연산기의 출력 주소 생성부(25)에 있어서, 제3출력주소생성부(25C)는 FFT 길이 1024에 대응하고 있기 때문에, (2) 식의 표현이 이하의 식과 같게 된다.Similarly, in the
n=256 n4+64n3+16n2+4n1+n0 ;(n0, n1, n2, n3, n4=0, 1, 2, 3)n = 256 n 4 + 64n 3 + 16n 2 + 4n 1 + n 0 ; (n 0 , n 1 , n 2 , n 3 , n 4 = 0, 1, 2, 3)
k=256 n4+64k3+16k2+4k1+k0 ;(k0, k1, k2, k3, k4=0, 1, 2, 3) k = 256 n4 + 64k 3 + 16k 2 + 4k 1 + k 0 ; (k 0 , k 1 , k 2 , k 3 , k 4 = 0, 1, 2, 3)
상술한 것처럼, (2) 식의 표현이, FFT 길이가 다르면 읽어내지는 신호의 데이터의 편성(신호가 입력되어 저장부(22)에 기억된 차례로부터, 저장부(22)로부터 복소곱셈부(30)에 대해서 읽어내는 차례의 변경)도 달라지도록, FFT 길이(즉 FFT 길이 연산기)에 따른 각 출력 주소 생성부(제2출력주소생성부(25B), 제3출력주소생성부(25C))는 기수와 FFT 길이에 의해 정해지는 읽기 주소의 연산식에 의해, 차례차례 출력 주소를 생성한다. As described above, the expression of expression (2) is a combination of data of a signal read out when the FFT length is different (from the order in which the signal is input and stored in the
또, 각 버터플라이 연산기에 대하여 (2) 식에 있어서의 합을 취하는 자리수를 최소자리수로 해, (2) 식의 자리수의 낮은 순서부터 자리수 오름을 하는 카운터를 형성하고, 각 출력 주소 생성부(25)를 구성할 수 있다. Also, for each butterfly operator, the counters taking the sum in equation (2) as the minimum number of digits are formed to form a counter that increases the number of digits from the lower order of the number of digits in the equation (2). 25) can be configured.
또, 상기 각 출력 주소 생성부는 해당 FFT 길이에 대응하고 신호 데이터를 읽어내는 출력 주소가 차례로 기억된 ROM(Read Only Memory)으로부터, 시계열 순으로 이 ROM의 주소를 액세스하고, 저장된 출력 주소를 읽어내어 출력 주소를 생성하 도록 구성된다. Each of the output address generators accesses the addresses of the ROMs in chronological order from a ROM (Read Only Memory) in which the output addresses corresponding to the corresponding FFT length and the output address for reading out signal data are stored in sequence, and read out the stored output addresses. It is configured to generate an output address.
출력주소선택부(26)는 입력되는 FFT 길이에 따라, FFT 길이에 대응하는 출력 주소를 선택해, 출력 주소로서 저장부(22)에 출력한다.The
복소곱셈부(30)는 저장부(22)로부터 시계열에 입력되는 신호의 데이터 x(k)에 대하여, FFT 회전 인자 테이블(29)(청구항에 있어서의 복소계수 저장부에 대응)로부터 읽어내지는 계수, 예를 들면, FFT 길이가 256의 경우, 버터플라이 연산기 (11)에 대해 「1」, 버터플라이 연산기(12)에 대해 「WN 16n0k2」, 버터플라이 연산기(13)에 대해 「WN4 (4 n1+n0) k1」, 버터플라이 연산기(14)에 대해 WN (16 n2+4n1+n0) k0를 차례차례 복소곱셈하고, 복소곱셈 결과를 출력한다.The
복소계수(또는 복소회전 인자)로서의 상기 각 계수 각각은 복소 곱셈하는 대상의 신호마다(즉, FFT 길이 및 버터플라이 연산기의 스테이지에 대응해)에 다르게 하기 위해, 도 4에 나타낸 바와 같이, FFT 회전 인자 테이블부(29)에는 FFT 길이 및 버터플라이 연산기의 스테이지 각각에 대응한 테이블을 마련해 둔다. 이 테이블은 ROM에 미리 저장하여 형성할 수도 있고, RAM에 연산을 개시시키기 전에, 외부로부터 읽어 들여 형성할 수도 있다. Each of the above coefficients as a complex coefficient (or complex rotational factor) is changed to FFT rotation as shown in FIG. 4 so as to be different for each signal of the object to be complex multiplied (ie, corresponding to the FFT length and stage of the butterfly operator). The print table 29 is provided with a table corresponding to each of the stages of the FFT length and the butterfly calculator. The table may be stored in advance in the ROM, or read from the outside before the operation is started in the RAM.
FFT 회전 인자 테이블(29)은 그림 4에 나타낸 바와 같이, FFT 길이 마다 대응하는 계수의 저장 영역으로 구성되어 있어 FFT 길이가 1024개의 경우에 사용하는 계수가 저장되어 있는 영역 D64, FFT 길이가 256개의 경우에 사용하는 계수가 저장 되어 있는 영역 D256, 및 FFT 길이가 1024개의 경우에 사용하는 계수가 저장되어 있는 영역 D1024로 구성되어 있다.As shown in Fig. 4, the FFT rotation factor table 29 is composed of a storage area of coefficients corresponding to each FFT length, so that the coefficients used in the case of 1024 FFT lengths are stored. It consists of an area D256 in which coefficients used in the case are stored and an area D1024 in which coefficients used in the case of 1024 FFT lengths are stored.
인자주소생성부(27)는 영역 D64에 기억되고 있는 계수를 차례로 읽어내는 인자 주소를 생성하는 제1인자주소생성부(27A), 영역 D256에 기억되고 있는 계수를 차례로 읽어내는 인자 주소를 생성하는 제2인자주소생성부(27B), 및 영역 D1024에 기억되고 있는 계수를 차례로 읽어내는 인자 주소를 생성하는 제3인자주소생성부(27C)로 구성되어 있다.The factor
인자주소생성부(27)는 FFT 길이에 따라 저장부(22)로부터 차례차례 읽어내지는 신호의 데이터에 맞춰 복소 곱셈하는 계수를 읽어내기 위해, FFT 회전 인자 테이블(29)로부터 계수를 읽어내는 인자 주소 차례차례 생성한다.The argument
인자주소선택부(28)는 입력되는 FFT 길이 연산기에 의해, 제1인자주소생성부(27A), 제2인자주소생성부(27B) 및 제3인자주소생성부(27C) 각각이 생성해 출력하는 인자 주소의 어느 하나를 선택해, 선택한 인자 주소를 FFT 회전 인자 테이블(29)에 출력한다.The
복소곱셈부(30)는 저장부(22)로부터 시계열에 입력되는 신호의 데이터 각각에 대해, FFT 회전 인자 테이블(29)로부터 읽어내지는 각 계수를, 차례차례 복소곱셈해 직렬/병렬 변환부(31)에 출력한다. 직렬/병렬 변환부(31)는 계수가 복소곱셈된 4개의 신호 데이터의 그룹을, 출력 주소 생성부(25)로부터 출력되는 주소에 따라 저장부(22)로부터 읽어내진 순서(예를 들면,{x(0), x(64), x(128), x(192)},{x(1), x(65), x(129), x(193)},…의 순서)대로 직렬로 입력받아, 일단 이 그룹 신호의 데이터를 저장한 뒤 병렬로 복소가감산부(32)에 출력한다.The
또, 복소가감산부(32)는 각 버터플라이 연산기마다, 대응하는 상기 (4) 식으로부터 (7) 식의 가감 연산을 실시해 얻을 수 있던 연산 결과를 병렬/직렬변환기(33)에 병렬에 출력한다. 예를 들면, 버터플라이 연산기(11)에 있어서의 복소가감산부(32)는 입력되는{x(0), x(64), x(128), x(192)}의 신호의 그룹에 대해서 소정의 복소가감산을 실시해, 연산 결과적으로, 중간 데이터{x1(0), x1(64), x1(128), x1(192)} 을 병렬에 출력한다.In addition, the complex addition /
병렬/직렬변환기(33)는 병렬로 입력되는 연산 결과{x1(0), x1(64), x1(128), x1(192)}의 줄을, 병렬에서 직렬로 변환하고, x1(0), x1(64), x1(128), x1(198)의 순서로 출력한다.The parallel /
타이밍 생성부(34)는 저장부(22)에 신호 데이터가 기록되는 타이밍, 입력 주소 생성부(23)가 입력 주소를 생성해 출력하는 타이밍, 출력 주소 생성부(25)가 출력 주소를 생성해 출력하는 타이밍, 입력주소선택부(24), 출력주소선택부(26), 및 인자주소선택부(28) 각각이 선택 처리를 실시하는 타이밍, 복소곱셈부(30)가 복소곱셈하는 타이밍, 직렬/병렬 변환부(31)가 직렬·병렬 변환 처리를 실시하는 타이밍, 복소가감산부(32)가 복소가감산을 실시하는 타이밍, 그리고 병렬/직렬 변환부(33)가 복소가감산부(32)의 출력을 병렬·직렬 변환을 실시하는 타이밍 각각을 제어하는 동작 클럭을, 상기 각 구성요소로 출력해, FFT 길이 연산기가 나타내는 FFT 길이에 따라 각 구성요소의 동작을 제어한다.The
즉, FFT 길이가 64의 경우 64개의 데이터가 입력될 때마다, FFT 길이가 256인 경우 256개의 데이터가 입력될 때마다, FFT 길이가 1024인 경우 1024개의 데이터가 입력될 때마다, 아래와 같이 설명하는 FFT 연산을 주기적으로 실시한다.That is, whenever 64 data is input when the FFT length is 64, whenever 256 data is input when the FFT length is 256, and whenever 1024 data is input when the FFT length is 1024, The FFT operation is performed periodically.
또, 저장부(22)의 더블 버퍼에 있어서 제1및 제2의 저장 영역은, 상기 주기 마다 기입을 하는 영역과 읽기를 하는 영역에, 입력주소선택부(23) 및 출력주소선택부(25)가 차례로 바꾸어 사용할 수 있다. In the double buffer of the
다음에, 도 1 및 도 2를 참조하여, 본원 발명의 FFT 연산 회로(1)의 동작 설명을 실시한다. 여기서는 입력되는 FFT 길이가 256인 경우에 대해 설명한다. FFT 연산 회로(1)에는 입력 신호 x(k), 0≤k≤255로서 즉{x(0), x(1), x(2), x(3),…, x(254), x(255)}의 신호열이 입력된다. 또, FFT 연산 회로(1)에는 FFT 길이가 256인 것을 나타내는 FFT 길이 연산기가 입력된다.Next, with reference to FIG. 1 and FIG. 2, the operation | movement description of the FFT calculation circuit 1 of this invention is demonstrated. Here, the case where the input FFT length is 256 will be described. The FFT arithmetic circuit 1 has an input signal x (k), 0? K? A signal sequence of x (254) and x (255) 'is input. In addition, an FFT length calculator indicating that the FFT length is 256 is input to the FFT calculation circuit 1.
상기 신호열은 직렬로 버터플라이 연산기(11)에 입력된다. 버터플라이 연산기(11)에 대하여, FFT 길이가 256개인 것을 나타내는 FFT 길이 연산기가 입력주소선택부(24)에 입력되고 있기 때문에, 입력주소선택부(24)는 제2입력주소생성부(23B)로부터 입력되는 입력 주소를 저장부(22)로 출력한다.The signal string is input to the
그리고, 저장부(22)에는 상기 입력 주소에 대해 최상위비트로서「0」을 더한 주소(제1 저장 영역)에 차례차례 입력되는 신호열{x(0), x(1), x(2), x(3),…, x(254), x(255)}이 기록된다. The
여기서, 제2입력주소생성부(23B)는 0~255번째까지의 신호열에 대한 입력주소의 생성 및 출력을 종료하면, 다음의 FFT 연산의 주기에 있어서의 0~255번째까지의 신호열에 대한 입력 주소의 출력을 개시한다.Here, when the second
이것에 의해, 저장부(22)에는 입력 주소에 대해서 최상위비트로서 「1」을 더한 주소(제2의 기억 영역)에 차례차례 입력되는 신호열{x(0), x(1), x(2), x(3),…, x(254), x(255)}이 기입된다.As a result, the signal sequence {x (0), x (1), x (2) is sequentially input to the
또, FFT 길이가 256개인 것을 나타내는 FFT 길이 연산기가 출력주소선택부(26)에 입력되도록, 출력주소선택부(26)는 제2출력주소생성부(25B)로부터 입력되는 출력 주소를 저장부(22)에 대해 순차적으로 출력한다.Further, the
이 때, 출력주소선택부(26)는 FFT 길이에 대응한 256개의 신호에 대응하는 출력 주소의 출력을 종료할 때마다, 출력 주소의 최상위비트를 「0」과「1」사이에서 차례로 바꾸도록 구성되어 있다. 이 때, 제2출력주소생성부(28B)가 출력하는 출력 주소에 대해, 최상위비트로서 「0」을 더한 주소를, 차례차례 저장부(22)로 출력한다.At this time, the output
여기서, 가감 연산으로 실시하는 연산 처리에 대응한 신호의 순서대로 상기 (4) 식의 연산이 복소가감산부(32)에서 수행되는 경우, 제2출력주소생성부(28B)는 그 순서에 맞게 출력 주소를 출력한다. 그에 따라, 저장부(22)로부터{x(0), x(64), x(128), x(192), x(1), x(65), x(129), x(193)…, x(63), x(127), x(191), x(255)}의 신호가 순서대로 읽어내 지고, 복소곱셈부(26)로 입력된다.Here, when the calculation of the complex
이 때, FFT 길이가 256개인 것을 나타내는 FFT 길이 연산기가 인자주소선택부(28)에 입력되어 있도록, 인자주소선택부(28)는 제2인자주소생성부(27B)로부터 입력되는 인자 주소를 FFT 회전 인자 테이블(29)로 차례차례 출력한다.At this time, the print
이것에 의해, FFT 회전 인자 테이블(29)은,{x(0), x(64), x(128), x(192), x(1), x(65), x(129), x(193)…, x(63), x(127), x(191), x(255)}의 신호 각각에 복소곱셈하는 256개의 계수를, 제2인자주소생성부(27B)의 출력하는 주소에 따라 차례차례 출력한다.As a result, the FFT rotation factor table 29 is divided into x (0), x (64), x (128), x (192), x (1), x (65), x (129) and x. (193)... , 256 coefficients that are complex-multiplied to each of the signals of x (63), x (127), x (191), and x (255) 'in order according to the address output by the second
(4) 식으로부터 알 수 있듯이, 본 실시예의 경우, 버터플라이 연산기(11)에 있어서는 각 신호에 복소곱셈하는 계수는 정수 「1」(복소수의 실수 부분)뿐 이다. 그렇지만, 연산 알고리즘에 따라, 대응하는 계수가 복소곱셈 되도록, 대응하는 계수가 FFT 회전 인자 테이블(29)에서 읽어내져 복소곱셈부(30)에서 사용된다. As can be seen from the equation (4), in the present embodiment, in the
따라서, 복소곱셈부(30)는{x(0), x(64), x(128), x(192),…,x(63), x(127), x(191), x(255)}에, 각각 계수 「1」을 복소곱셈해,{x(0), x(64), x(128), x(192),…, x(63), x(127), x(191), x(255)}로서 차례차례, 직렬/병렬 변환부(31)로 출력한다.Thus, the
상기 출력되는 연산 결과에 대해서, 직렬/병렬 변환부(31)는 입력되는 계수나 복소곱셈된 신호가 4 개씩의 그룹, 예를 들면 직렬로 입력된{x(0), x(64), x(128), x(192)}이러한 신호를 병렬로 다시 늘어놓고, 복소가감산부(32)로 출력한다.Regarding the output operation result, the serial /
이것에 의해, 복소가감산부(32)는 상기{x(0), x(64), x(128), x(192)}의 각 데이터를 이용해 상기(4) 식에 있어서의 계수 「W4 n0k3」에 대응한 가감 연산을 실시해, 연산 결과적으로{x1(0), x1(64), x1(128), x1(192)}를 병렬로 출력한다. 그리고, 병렬/직렬 변환부(33)는 이것들 복소가감산결과{x1(0), x1(64), x1(128), x1(192)}를, x1(0)→x1(64)→x1(128)→x1(192)의 차례로 직렬로 변환하고, 직렬로 출력으로 한다. Thus,
이 버터플라이 연산기(11)로부터의 병렬/직렬 변환된 직렬 출력은, 다음 스테이지의 버터플라이 연산기(12)의 입력 신호가 되어, 256개의 신호에 대한 FFT 연산에 있어서의 첫 번째 스테이지에 의한 중간 데이터가 된다. 버터플라이 연산기(11)는 상술한 버터플라이 연산의 처리를 하는데 있어, 저장부(22) 더블 버퍼의 제1 및 제2 기억 영역 중 어느 한 영역으로부터 신호 데이터를 읽어내 버터플라이 연산을 실시하고 있을 때, 다른 한 영역에 새로운 신호열을 쓰고 있다. The parallel / serial-converted serial output from this
다음에, 버터플라이 연산기(12)는 버터플라이 연산기(11)로부터 입력되는 중간 데이터열{x1(0), x1(1), x1(2), x1(3),…, x1(253), x1(254), x1(255)}, 즉 중간 데이터 x1(k)를 입력 데이터로서 입력한다. 여기서, 제2입력주소생성부(23B)는 이전 스테이지의 출력 주소와 동일한 입력 주소를 출력한다. 입력되는 중간 데이터는 그 입력 주소에 따라, 저장부(22)에 쓰여진다. 그 후, 버터플라이 연산기(12)는 버터플라이 연산기(11)와 같은 버터플라이 연산의 처리를 실시한다. 이 중간 데이터 x1(n0, k2, k1, k0)에 대하여, 중간 데이터의 번호 k는 k=64n0+16k2+4k1+k0;(k0, k1, k2, n0=0, 1, 2, 3)으로 결정된다.Next, the
즉, 버터플라이 연산기(12)에 대해서도 버터플라이 연산기(11)와 마찬가지 로, FFT 길이가 256개인 것을 나타내는 FFT 길이 연산기가 입력주소선택부(24)에 입력되고 있기 때문에, 입력주소선택부(24)는 제2입력주소생성부(23B)로부터 입력되는 입력 주소를 저장부(22)에 대해 출력한다.That is, similarly to the
이것에 의해, 저장부(22)에는 상기 입력 주소에 따라, 버터플라이 연산기(11)로부터 입력되는 중간 데이터가 전단의 출력 주소와 동일한 값의 입력 주소에 차례로 써진다(버터플라이 연산기(11)와 마찬가지로, 저장부(22)는 제1및 제2의 기억 영역으로 구분되는 더블 버퍼 구성이 되어 있어 데이터의 쓰기, 읽기의 처리도 동일하게 이루어진다).Thereby, the
버터플라이 연산기(12)에 대하여 FFT 길이가 256개인 것을 나타내는 FFT 길이 연산기가 출력주소선택부(25)에 입력되고 있기 때문에, 출력주소선택부(26)는 제2출력주소생성부(25B)로부터 입력되는 입력 주소를 저장부(22)로 출력한다. 마찬가지로, FFT 길이가 256개인 것을 나타내는 FFT 길이 연산기가 인자주소선택부(28)에 입력되고 있기 때문에, 인자주소선택부(28)는 제2인자주소생성부(27B)로부터 입력되는 인자 주소를 FFT 회전 인자 테이블(29)로 출력한다.Since the FFT length calculator indicating that the
이 때, 제2출력주소생성부(25B)는 복소가감산부(32)에 의해 (5) 식의 연산(16 정도의 자리수 k2에 대한 합)을 하기 위해, k2 이외의 n0, k1, k0을 고정하고 x1(0, k2, 0, 0)로서 k2를 0, 1, 2, 3으로 변화시켜, 중간 데이터 x1(0), x1(16), x1(32), x1(48)를 읽어내는 주소를 생성한 다음에, x1(0, k2, 0, 1)로서 k2를 0, 1, 2, 3으로 변화시켜 x1(1), x1(17), x1(33), x1(49)로서 차례차례 출력 주소를 생성한 다. 이것에 의해, 저장부(22)에 기록된 중간 데이터가 제2출력주소생성부(25B)의 출력 주소에 따라 읽어내져 복소곱셈부(30)로 출력된다.At this time, the second output
즉, 상기 제2출력주소생성부(25B)는 복소가감산부(32)에서 버터플라이 연산기(11)로부터 입력되는 중간 데이터 x1(k)를 계수 「W4 n1k2」에 따라 복소가감할 때, 중간 데이터의 그룹이 되도록, 저장부(22)(예를 들면, 제1의 기억 영역)에 저장되어 있는 입력순서 대로 출력 주소를 생성해 출력한다.That is, when the second
마찬가지로, FFT 회전 인자 테이블(29)은 제2인자주소생성부(27B)로부터 출력되는 인자 주소에 대응한 회전 인자 계수 「WN 16n0k2」를 출력한다.Similarly, FFT twiddle factors table 29 and outputs the rotation factor coefficient "W 16n0k2 N" corresponds to the argument address output from second factor address generator (27B).
여기서, 버터플라이 연산기(12)의 FFT 회전 인자 테이블(29)은 각 FFT 길이 마다 대응하는 테이블을 가지고 있다. 이러한 테이블에는 제2 스테이지 버터플라이 연산기(12)에 대하여, 저장부(22)로부터 출력되는 중간 데이터 x1(k) 각각에 복소곱셈하는 계수가 FFT 길이 마다 저장되고 있다Here, the FFT rotation factor table 29 of the
다음에, 복소곱셈부(30)는 저장부(22)로부터 출력되는 중간 데이터 각각에 FFT 회전 인자 테이블(29)로부터 출력되는 계수를 차례차례 복소곱셈하고, 직렬/병렬 변환부(31)에 출력한다. 이후의, 직렬/병렬변환부(31), 복소가감산부(32) 및 병렬/직렬 변환부(33)에 있어서의 처리는 버터플라이 연산기(11)의 경우와 같아 설명을 생략한다.Next, the
그리고, 버터플라이 연산기(12)는 제2 스테이지의 버터플라이 연산의 결과로 서, 중간 데이터열 x2(k), 0≤k≤256을 출력한다.The
다음에, 버터플라이 연산기(13)는 버터플라이 연산기(12)로부터 입력되는 중간 데이터열{x2(0), x2(1), x2(2), x2(3),…, x2(253), x2(254), x2(255)}, 즉 중간 데이터 x2(k)를, 입력 데이터로서 입력받는다. 여기서, 제2입력주소생성부(23B)는 이전 스테이지의 출력 주소와 동일한 입력 주소를 출력한다. 입력되는 중간 데이터는 이 입력 주소에 따라 저장부(22)에 기록된다. 그 후, 버터플라이 연산기(13)는 버터플라이 연산기(12)와 같은 버터플라이 연산의 처리를 실시한다. 이 중간 데이터 x2(n0, n1, k1, k0)에 있어서, 중간 데이터의 번호 k는Next, the
k=64n0+16n1+4k1+k0 ;(k0, k1, n1, n0=0, 1, 2,3)으로 결정된다.k = 64n 0 + 16n 1 + 4k 1 + k 0 ; (k 0 , k 1 , n 1 , n 0 = 0, 1, 2, 3).
즉, 버터플라이 연산기(13)에 대해서도 버터플라이 연산기(11 및 12)와 마찬가지로, FFT 길이가 256개인 것을 나타내는 FFT 길이 연산기가 입력주소선택부(24)에 입력되고 있기 때문에, 입력주소선택부(24)는 제2입력주소생성부(23B)로부터 입력되는 입력 주소를 저장부(22)로 출력한다.That is, the
이것에 의해, 저장부(22)에는 상기 입력 주소에 따라, 버터플라이 연산기(12)로부터 입력되는 중간 데이터가, 이전 스테이지의 출력 주소와 같은 값의 입력 주소에 차례로 쓰여진다(버터플라이 연산기(11 및 12)와 마찬가지로, 저장부(22)는 제1및 제2의 저장 영역의 더블 버퍼로 구성되어 있고, 데이터의 쓰기 및 읽기도 동일한 방식으로 처리된다).As a result, intermediate data input from the
버터플라이 연산기(13)에 대하여, FFT 길이가 256개인 것을 나타내는 FFT 길이 연산기가 출력주소선택부(26)에 입력되고 있기 때문에, 출력주소선택부(26)는 제2출력주소생성부(25B)로부터 입력되는 입력 주소를 저장부(22)에 대해 출력한다. 마찬가지로, FFT 길이가 256개인 것을 나타내는 FFT 길이 연산기가 인자주소선택부(28)에 입력되고, 인자주소선택부(28)는 제2인자주소생성부(27B)로부터 입력되는 인자 주소를 FFT 회전 인자 테이블(29)에 대해 출력한다.With respect to the
이 때, 제2출력주소생성부(25B)는 복소가감산부(32)에 의해, (6) 식의 연산(4 정도의 자리수 k1에 대한 합)을 하기 위해, k1 이외의 n0, n1, k0를 고정하고, x2(0, 0, k1, 0)로서 k1를 0, 1, 2, 3으로 변화시켜, 중간 데이터 x2(0), x2(4), x2(8), x2(12)를 읽어내는 주소를 생성한 다음에 x3(0, 0, k1, 1)로서 k1를 0, 1, 2, 3으로 변화시켜, x2(1), x2(5), x2(9), x2(13)로서 차례차례 출력 주소를 생성한다. 이것에 의해, 저장부(22)에 기록된 중간 데이터가, 제2출력주소생성부(25B)의 출력 주소에 따라 읽어내져 복소곱셈부(30)로 출력된다.At this time, the second output address generating unit (25B) is to do, and (6) formula in the operation (4 sum of the number of digits k 1 degree) by the complex acceleration peaks 32, other than the k 1 n 0, fixing the n 1, k 0, and, x 2 (0, 0, k 1, 0) as by changing k 1, 0, 1, 2, 3, the intermediate data x 2 (0), x 2 (4), Create an address that reads x 2 (8), x 2 (12), then change k 1 to 0, 1, 2, 3 as x 3 (0, 0, k 1 , 1), and x 2 ( 1), x 2 (5), x 2 (9), and x 2 (13) are generated sequentially. As a result, the intermediate data recorded in the
즉, 상기 제2출력주소생성부(25B)는 복소가감산부(32)에서 버터플라이 연산기(12)로부터 입력되는 중간 데이터 x2(k)를 계수 「W4 n2k1」에 따라 복소가감할 때, 중간 데이터의 그룹이 되도록, 저장부(22)(예를 들면, 제1 기억 영역)에 저장되어 있는 입력순서 대로 출력 주소를 생성해 출력한다.That is, when the second
마찬가지로, FFT 회전 인자 테이블(29)은 제2인자주소생성부(27B)로부터 출력되는 인자 주소에 대응한 회전 인자인 계수 「WN 4(4 n1+n0) k1」을 출력한다. 여기에서, 버터플라이 연산기(13)의 FFT 회전 인자 테이블(29)은 각 FFT 길이 마다 대응한 테이블을 가지고 있다. 이러한 테이블에는 제3 스테이지 버터플라이 연산기(13)에 대하여, 저장부(22)로부터 출력되는 중간 데이터 x2(k) 각각에 복소곱셈하는 계수가 FFT 길이 마다 저장되고 있다.Similarly, the FFT rotation factor table 29 outputs a coefficient "W N 4 (4 n1 + n0) k1 " which is a rotation factor corresponding to the printing address output from the second factor
다음에, 복소곱셈부(30)는 저장부(22)로부터 출력되는 중간 데이터 각각에, FFT 회전 인자 테이블(29)로부터 출력되는 계수를 차례차례 복소곱셈하고, 직렬/병렬 변환부(31)에 출력한다. 이후의 직렬/병렬 변환부(31), 복소가감산부(32) 및 병렬/직렬 변환부(33)에 있어서의 처리는 버터플라이 연산기(11)의 경우와 같아 설명을 생략한다. 그리고, 버터플라이 연산기(13)는 제3 스테이지의 버터플라이 연산의 결과로서, 중간 데이터열 x2(k), 0≤k≤256을 출력한다. 상술한 것처럼, 버터플라이 연산기(13)도, 버터플라이 연산기(12)와 같은 처리에 의해 제3 스테이지에 있어서의 중간 데이터열 x3(k), 0≤k≤256을 출력한다.Next, the
다음에, 버터플라이 연산기(14)는 버터플라이 연산기(13)로부터 입력되는 중간 데이터열{x3(0), x3(1), x3(2), x3(3),…, x3(253), x3(254), x3(255), 즉 중간 데이터 x3(k)을 입력 데이터로서 입력한다. 여기서, 제2입력주소생성부(23B)는 이전 스테이지의 출력 주소와 동일한 입력 주소를 출력한다. 입력되는 중간 데이터는 이 입력 주소에 따라, 저장부(22)에 기록된다. 그리고 입력 후, 버터플라이 연산 기(14)는 버터플라이 연산기(12 및 13)와 같은 버터플라이 연산의 처리를 실시한다. 이 중간 데이터 x3(n0, n1, n2, k0)에 있어서, 중간 데이터의 번호 k는Next, the
k=64 n0+16n1+4n2+k0 ;(k0, n2, n1, n0=0, 1, 2, 3) 으로 결정된다. k = 64 n 0 + 16n 1 + 4n 2 + k 0 ; (k 0 , n 2 , n 1 , n 0 = 0, 1, 2, 3).
즉, 버터플라이 연산기(14)에 대해서도 버터플라이 연산기(12 및 13)과 마찬가지로, FFT 길이가 256개인 것을 나타내는 FFT 길이 연산기가 입력주소선택부(24)에 입력되고 있기 때문에, 입력주소선택부(24)는 제2입력주소생성부(23B)로부터 입력되는 입력 주소를 저장부(22)로 출력한다. 이것에 의해, 저장부(22)에는 상기 입력 주소에 따라, 버터플라이 연산기(13)로부터 입력되는 중간 데이터가, 이전 스테이지의 출력 주소와 동일한 값의 입력 주소에 차례로 쓰여진다(버터플라이 연산기(11 및 12)와 마찬가지로, 저장부(22)는 제1및 제2의 저장 영역의 더블 버퍼 구성되어 있고, 데이터의 쓰기 및 읽기도 동일한 방식으로 처리된다).That is, the
버터플라이 연산기(14)에 대하여 FFT 길이가 256개인 것을 나타내는 FFT 길이 연산기가 출력주소선택부(25)에 입력되고 있기 때문에, 출력주소선택부(25)는 제2출력주소생성부(25B)로부터 입력되는 입력 주소를 저장부(22)에 대해 출력한다.Since the FFT length calculator indicating that the
마찬가지로, FFT 길이가 256개인 것을 나타내는 FFT 길이 연산기가 인자주소선택부(28)에 입력되고, 인자주소선택부(28)는 제2인자주소생성부(27B)로부터 입력되는 인자 주소를 FFT 회전 인자 테이블(29)에 대해 출력한다.Similarly, an FFT length calculator indicating that the FFT length is 256 is input to the print
이 때, 제2출력주소생성부(25B)는 복소가감산부(32)에 의해, (7) 식의 연산(1의 정도의 자리수 k0에 대한 합)을 하기 위해, k0 이외의 n0, n1, n2를 고정하 고, x3(0, 0, 0, k0)로서 k0를 0, 1, 2, 3으로 변화시켜, 중간 데이터 x3(0), x3(1), x3(2), x3(3)를 읽어내는 주소를 생성한 다음에 x3(0, 0, 1, k0)로서 k0를 0, 1, 2, 3으로 변화시켜, x3(4), x3(5), x3(6), x3(7)로서 차례차례 출력 주소를 생성한다. 이것에 의해, 저장부(22)에 기록된 중간 데이터가 제2출력주소생성부(25B)의 출력 주소에 따라 읽어내져 복소곱셈부(30)로 출력된다. 이것에 의해, 저장부(22)에 기록된 중간 데이터가 제2출력주소생성부(25B)의 출력 주소에 따라 읽어내져 복소곱셈부(30)로 출력된다.At this time, the second
즉, 상기 제2출력주소생성부(25B)는 복소가감산부(32)에서 버터플라이 연산기(12)로부터 입력되는 중간 데이터 x3(k)을 계수 「W4 n3k0」에 대응해 복소가감 할 때, 중간 데이터의 그룹이 되도록, 저장부(22)(예를 들면, 제1의 기억 영역)에 저장되어 있는 입력순서 대로 출력 주소를 생성해 출력한다. That is, when the
마찬가지로, FFT 회전 인자 테이블(29)은 제2인자주소생성부(27B)로부터 출력되는 인자 주소에 대응한 회전 인자인 계수 「WN (16 n2+4n1+n0) k0」을 출력한다. 여기에서, 버터플라이 연산기(13)의 FFT 회전 인자 테이블(29)은, 각 FFT 길이 마다 대응하는 테이블을 가지고 있다. 이러한 테이블에는 제4 스테이지 버터플라이 연산기(14)에 대하여, 저장부(22)로부터 출력되는 중간 데이터 x3(k) 각각에 복소곱셈하는 계수가, FFT 길이 마다 저장되고 있다.Similarly, the FFT rotation factor table 29 outputs the coefficient "W N (16 n2 + 4n1 + n0) k0 ", which is a rotation factor corresponding to the printing address output from the second factor
다음에, 복소곱셈부(30)는 저장부(22)로부터 출력되는 중간 데이터 각각에, FFT 회전 인자 테이블(29)로부터 출력되는 계수를 차례차례 복소곱셈하고, 직렬/병렬 변환부(31)로 출력한다. 이후의, 직렬/병렬 변환부(31), 복소가감산부(32) 및 병렬/직렬 변환부(33)에 있어서의 처리는 버터플라이 연산기(13)의 경우와 같아 설명을 생략한다. Next, the
그리고, 버터플라이 연산기(14)는 제4 스테이지의 버터플라이 연산의 결과로서, 중간 데이터열 x4(k), 0≤k≤256을 출력한다. 상술한 것처럼, 버터플라이 연산기(14)도 버터플라이 연산기(12)와 동일한 처리에 의해, 제4 스테이지의 중간 데이터열 x4(k), 0≤k≤256을 출력한다.The
여기서, FFT 길이 연산기가 FFT 길이가 256인 것을 나타내고 있기 때문에, 버터플라이 선택부(16)는 버터플라이 연산기(14)의 중간 데이터 x4, 0≤k≤256을 선택하고, FFT 연산 결과인 X(n), 0≤n≤256을 출력한다.Here, since the FFT length calculator indicates that the FFT length is 256, the
따라서, 버터플라이 연산기(14)는 FFT 길이가 256인 경우에, 입력 신호로 서 신호열{x(0), x(1), x(2), x(3),…, x(254), x(255)의 FFT 연산 결과인 출력 신호{X(0), X(1), X(2), X(3),…, X(254), X(255)}를 출력해, 이를 FFT 연산 회로(1)의 FFT 연산 결과로 한다.Therefore, when the FFT length is 256, the
상술한 것처럼, 버터플라이 연산기들(11, 12, 13, 14 및 15) 각각은 FFT 길이64, 256 및 1024의 각각의 경우, 입력 신호인 신호 또는 중간 데이터에 대해서, 계수의 복소곱셈 및, 계수가 복소곱셈된 신호(샘플 또는 중간 데이터)의 가감 연산을 수행한다. 각각의 버터플라이 연산기(11, 12, 13, 14 및 15)는 저장부(22)로부터 제공되는 신호(중간 데이터)의 읽기 순서를 변경하는 것과, FFT 회전 인자 테이블(29)에 저장된 계수의 수치에서 차이가 나지만, 기본적으로 동일한 처리를 실시하고 있다.As described above, each of the
또, 버터플라이 연산기들(11, 12, 13, 14 및 15)은 입력되는 신호, 또는 이전 스테이지로부터의 중간 데이터의 버터플라이 연산을 실시하기 위해, 후술하는 바와 같이 구성에 있어 차이가 있다. 버터플라이 연산기들(11, 12 및 13)으 신호 및 중간 데이터에 대한 버터플라이 연산을 실시할 필요가 있기 때문에, FFT 길이가 64, 256 및 1024인 경우에 대응하는 구성을 가지고 있다. 즉, 입력 주소 생성부(23)는 제1입력주소생성부(23A), 제2입력주소생성부(23B) 및 제3입력주소생성부(23C)로 구성되고, 출력주소생성부(25)는 제1출력주소생성부(25A), 제2출력주소생성부(25B), 제3출력주소생성부(25C)로 구성되고, 인자주소생성부(27)는 제1인자주소생성부(27A), 제2인자주소생성부(27B), 제3인자주소생성부(27C)로 구성되고, FFT 회전 인자 테이블(29)에는 FFT 길이 64, 256, 1024 각각에 대한 계수가 저장되어 있다. 또, 버터플라이 연산기(11, 12 및 13)의 입력주소선택부(24), 출력주소선택부(26) 및 인자주소선택부(28)는 상술한 구성에 대응하며, FFT 길이 64, 256, 1024의 경우에 대응해서 교체된다.In addition, the
그렇지만, 버터플라이 연산기(14)는 FFT 길이가 64인 경우 버터플라이연산을 실시할 필요가 없기 때문에, FFT 길이가 256 및 1024인 경우에 대응하고, 입력 주소 생성부(23)는 제2입력주소생성부(23B) 및 제3입력주소생성부(23C)로 구성되고, 출력주소생성부(25)는 제2출력주소생성부(25B) 및 제3출력주소생성부(25C)로 구성되고, 또 인자주소생성부(27)는 제2인자주소생성부(27B) 및 제3인자주소생성부(27C)로 구성되며, FFT 회전 인자 테이블(29)는 FFT 길이 256, 1024 각각에 대한 계수가 저장되어 있다. 또, 버터플라이 연산기(14)의 입력주소선택부(24), 출력주소선택부(26) 및 인자주소선택부(28)는 상술한 구성에 대응하며, FFT 길이 256, 1024의 경우에 대응해서 교체된다.However, since the
마찬가지로, 버터플라이 연산기(15)는 FFT 길이가 1024인 경우에만, 버터플라이 연산을 실시하기 위해, FFT 길이가 1024인 경우에 대응하고, 입력주소생성부(23)는 제3입력주소생성부(23C)로 구성되고, 출력주소생성부(25)는 제3출력주소생성부(25C)로 구성되고, 인자주소생성부(27)는 제3인자주소생성부(27C)로 구성되며, FFT 회전 인자 테이블(29)에는 FFT 길이 1024의 계수가 저장되어 있다. 또, 버터플라이 연산기(14)에는 FFT 길이가 1024인 경우만의 입력 주소, 출력 주소, 인자 주소, 및 중간 데이터에 복소곱셈하는 계수로 충분하기 때문에, 입력주소선택부(24), 출력주소선택부(26) 및 인자주소선택부(28)가 설치되지 않았다.Similarly, the
여기서, 버터플라이 연산기(14 및 15)는 버터플라이 연산기(11~13)와 동일하게 회로를 구성한 뒤 필요한 부분만 사용하도록 할 수 있다. 또, 버터플라이 연산기(14 및 15)는 FFT 길이 연산기가 FFT 길이 64를 나타내는 경우 동작을 정지하고, 버터플라이 연산기(15)는 FFT 길이 연산기가 FFT 길이 256을 나타내고 있는 경우 동작을 정지하도록 구성할 수 있다. Here, the
또, 신호순서 변환부로서의 입력 주소 생성부(23), 출력 주소 생성부(25) 및 저장부(22)에 대하여 상술한 구성에서는 저장부(22)가 연속한 주소에, 입력된 차례로 신호를 쓰고 있었다. 그리고, FFT 길이에 대응하는 출력 주소 생성부(25)가 복소곱셈하는 순서에 맞춰 저장부(22)로부터 신호를 읽어내어 출력 주소를 생성하도록 했다.In addition, in the above-described configuration of the
그렇지만, 저장부(22)에 쓰이는 입력 주소를, 신호가 복소곱셈되는 순서대로 연속적으로 저장부(22)에 저장되는 주소로 생성하여, 그 입력 주소에 대응하고, 입력하는 신호를 차례차례 저장부(22)에 기록되도록 할 수 있다. 이것에 의해, 상술한 실시 형태와 동일하게, 입력되는 신호순서를 각 연산을 실시하는 차례로 변환할 수 있다. 그에 따라, 출력 주소 생성부(25)는 저장부(22)의 연속한 주소를 생성하여, 순차적으로 저장부(22)로부터 신호를 읽어내게 된다.However, an input address used for the
또, 상술한 본 실시 형태의 FFT 연산 회로는 각 버터플라이 연산기의 회전 인자의 테이블의 계수와 가감 연산의 식을 변경하여, 역FFT 연산 회로로 이용될 수 있다. In addition, the FFT calculation circuit of the present embodiment described above can be used as an inverse FFT calculation circuit by changing the coefficient of the table of the rotation factor of each butterfly operator and the expression of the addition and the decrease calculation.
이상 설명한 것처럼, 본 발명은 기수(radix)에 대응한 복수의 연산 회로를 구비하지 않고 복수의 FFT 길이에 대응한 FFT 연산을 실시할 수 있기 때문에, 종래 FFT 프로세서와 비교해 회로 사이즈를 줄일 수 있다. As described above, the present invention can perform FFT operations corresponding to a plurality of FFT lengths without providing a plurality of arithmetic circuits corresponding to radix, so that the circuit size can be reduced as compared with a conventional FFT processor.
또한, 이상에서는 본 발명의 바람직한 실시예에 대하여 도시하고 설명하였지만, 본 발명은 상술한 특정의 실시예에 한정되지 아니하며, 청구범위에서 청구하는 본 발명의 요지를 벗어남이 없이 당해 발명이 속하는 기술분야에서 통상의 지식을 가진 자라면 누구든지 다양한 변형 실시가 가능한 것은 물론이고, 그와 같은 변경은 청구범위 기재의 범위 내에 있게 된다.In addition, although the preferred embodiment of the present invention has been shown and described above, the present invention is not limited to the specific embodiments described above, but the technical field to which the invention belongs without departing from the spirit of the invention claimed in the claims. Anyone of ordinary skill in the art that various modifications can be made, as well as such changes are within the scope of the claims.
Claims (11)
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/641,864 US7979485B2 (en) | 2005-12-20 | 2006-12-20 | Circuit for fast fourier transform operation |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JPJP-P-2005-00366731 | 2005-12-20 | ||
JP2005366731A JP4791172B2 (en) | 2005-12-20 | 2005-12-20 | FFT operation circuit |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20070065778A KR20070065778A (en) | 2007-06-25 |
KR100878765B1 true KR100878765B1 (en) | 2009-01-14 |
Family
ID=38298659
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020060101573A KR100878765B1 (en) | 2005-12-20 | 2006-10-18 | Circuit for FFT Operation |
Country Status (2)
Country | Link |
---|---|
JP (1) | JP4791172B2 (en) |
KR (1) | KR100878765B1 (en) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101969542B1 (en) * | 2017-12-21 | 2019-04-16 | 엘아이지넥스원 주식회사 | Apparatus for generating IP address using user information and system for communicating D2D with the apparatus and method thereof |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20030054300A (en) * | 2001-12-24 | 2003-07-02 | 한국전자통신연구원 | Fast fourier transform apparatus using radix-8 single-path delay commutator and method thereof |
KR20030080590A (en) * | 2002-04-09 | 2003-10-17 | 삼성전자주식회사 | Method and apparatus of hadamard transform |
KR20050052740A (en) * | 2003-12-01 | 2005-06-07 | 전자부품연구원 | Variable fast fourier transform processor using iteration algorithm |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS5887655A (en) * | 1981-11-20 | 1983-05-25 | Asahi Chem Ind Co Ltd | High speed fourier transformation device of pipeline |
JP2848134B2 (en) * | 1992-07-03 | 1999-01-20 | 富士通株式会社 | Variable fast Fourier transform circuit |
JP3757782B2 (en) * | 2000-10-30 | 2006-03-22 | 日本電気株式会社 | FFT operation circuit |
WO2002069182A1 (en) * | 2001-02-28 | 2002-09-06 | Fujitsu Limited | Fourier transform device |
US7415584B2 (en) * | 2003-11-26 | 2008-08-19 | Cygnus Communications Canada Co. | Interleaving input sequences to memory |
-
2005
- 2005-12-20 JP JP2005366731A patent/JP4791172B2/en active Active
-
2006
- 2006-10-18 KR KR1020060101573A patent/KR100878765B1/en active IP Right Grant
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20030054300A (en) * | 2001-12-24 | 2003-07-02 | 한국전자통신연구원 | Fast fourier transform apparatus using radix-8 single-path delay commutator and method thereof |
KR20030080590A (en) * | 2002-04-09 | 2003-10-17 | 삼성전자주식회사 | Method and apparatus of hadamard transform |
KR20050052740A (en) * | 2003-12-01 | 2005-06-07 | 전자부품연구원 | Variable fast fourier transform processor using iteration algorithm |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101969542B1 (en) * | 2017-12-21 | 2019-04-16 | 엘아이지넥스원 주식회사 | Apparatus for generating IP address using user information and system for communicating D2D with the apparatus and method thereof |
Also Published As
Publication number | Publication date |
---|---|
JP4791172B2 (en) | 2011-10-12 |
KR20070065778A (en) | 2007-06-25 |
JP2007172157A (en) | 2007-07-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111694027B (en) | Ultra-large dynamic spread spectrum signal capturing method and device | |
WO2018027706A1 (en) | Fft processor and algorithm | |
US7979485B2 (en) | Circuit for fast fourier transform operation | |
KR100878765B1 (en) | Circuit for FFT Operation | |
US8788558B2 (en) | Method and device for transform computation | |
Rodríguez et al. | Application-specific processor for piecewise linear functions computation | |
US7925213B2 (en) | Method and system for audio signal processing for Bluetooth wireless headsets using a hardware accelerator | |
JP2010067251A (en) | Integer division circuit with allowable error | |
JPWO2011102291A1 (en) | Fast Fourier transform circuit | |
US9214921B2 (en) | Sampling rate conversion device | |
CN114281304A (en) | Random calculation method, circuit, chip and equipment | |
CN115146769A (en) | Digital circuit module for calculating tanh function based on range addressable lookup table | |
TW200811672A (en) | Optimized multi-mode DFT implementation | |
JPH1125071A (en) | Complex number multiplier | |
JP2011015159A (en) | Correlation calculation device | |
JP2007189506A (en) | Dds signal generation apparatus | |
JPWO2013183096A1 (en) | Multistage filter processing apparatus and method | |
CN110533174B (en) | Circuit and method for data processing in neural network system | |
KR0139761B1 (en) | Digital sine-wave generating circuit | |
CN115495868A (en) | Determination method of autoregressive model parameters, computing equipment and electronic equipment | |
Haridoss et al. | Comparative Analysis of Digital FIR Filter using Various Types of Modular Arithmetic Algorithms | |
JP3654622B2 (en) | DCT arithmetic device and IDCT arithmetic device | |
CN116560618A (en) | Random computing circuit and method, chip and electronic equipment | |
JP2905904B2 (en) | Electronic musical instrument signal processor | |
JPH10260958A (en) | Address generating circuit |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
E90F | Notification of reason for final refusal | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant | ||
FPAY | Annual fee payment |
Payment date: 20121210 Year of fee payment: 5 |
|
FPAY | Annual fee payment |
Payment date: 20131217 Year of fee payment: 6 |
|
FPAY | Annual fee payment |
Payment date: 20141224 Year of fee payment: 7 |
|
FPAY | Annual fee payment |
Payment date: 20151217 Year of fee payment: 8 |
|
FPAY | Annual fee payment |
Payment date: 20161219 Year of fee payment: 9 |
|
FPAY | Annual fee payment |
Payment date: 20171219 Year of fee payment: 10 |
|
FPAY | Annual fee payment |
Payment date: 20181220 Year of fee payment: 11 |
|
FPAY | Annual fee payment |
Payment date: 20191217 Year of fee payment: 12 |