New! View global litigation for patent families

KR100284181B1 - Fast Fourier transform (fft) to the control device, method - Google Patents

Fast Fourier transform (fft) to the control device, method Download PDF

Info

Publication number
KR100284181B1
KR100284181B1 KR19980011642A KR19980011642A KR100284181B1 KR 100284181 B1 KR100284181 B1 KR 100284181B1 KR 19980011642 A KR19980011642 A KR 19980011642A KR 19980011642 A KR19980011642 A KR 19980011642A KR 100284181 B1 KR100284181 B1 KR 100284181B1
Authority
KR
Grant status
Grant
Patent type
Application number
KR19980011642A
Other languages
Korean (ko)
Other versions
KR19990079171A (en )
Inventor
임일택
김규석
Original Assignee
구자홍
엘지전자주식회사
Filing date
Publication date
Grant date

Links

Images

Abstract

본 발명은 디지탈 신호처리과정에서 사용되는 패스트 퓨리에 변환(FFT; Fast Fourier Transform) 계산과정을 위한 구조를 구현하도록 한 디지탈 신호처리과정의 패스트 퓨리에 변환(FFT) 장치 및 제어방법에 관한 것이다. The present invention is a fast Fourier transform used by the digital signal processing procedure; relates to the (FFT Fast Fourier Transform) fast Fourier transform (FFT) apparatus and a control method for a digital signal processing procedure to implement the architecture for the calculation process.
본 발명에서는 DIT(Decimation in Time) 알고리듬으로 부터 이루어지는 FFT 계산 구조에 있어서, 하나의 멀티플라이어(multiplier)와 두개의 가감산 연산기, 네개의 누산기(accumulator)(X0,X1,X2,X3)로 이루어지는 MAC(multiply - and - accumulate) 구조로써, 그 계산구조에 있어 버터플라이의 계산구조를 간단히 하도록 하여, 간단하면서도 빠르게 전체적인 계산 과정이 이루어지도록 한 구조를 제공하도록 하는 것이다. In the present invention, in the FFT calculation structure formed from the DIT (Decimation in Time) algorithm, comprising a multiplier (multiplier) and two subtraction operator, with four accumulator (accumulator) (X0, X1, X2, X3) as MAC (multiply - - and accumulate) structure, in the calculation structure so as to simplify the calculation structure of the butterfly, to a simple, rapid whole calculation process so as to provide a structure to occur.

Description

패스트 퓨리에 변환(FFT) 장치와 제어방법 Fast Fourier transform (FFT) unit and the control method

본 발명은 디지탈 신호처리과정에서 사용되는 패스트 퓨리에 변환(FFT; Fast Fourier Transform) 계산과정을 위한 구조를 구현하도록 한 디지탈 신호처리과정의 패스트 퓨리에 변환(FFT) 장치 및 제어방법에 관한 것이다. The present invention is a fast Fourier transform used by the digital signal processing procedure; relates to the (FFT Fast Fourier Transform) fast Fourier transform (FFT) apparatus and a control method for a digital signal processing procedure to implement the architecture for the calculation process.

디지탈 신호처리(DSP; Digital Signal Processing)를 위해서는 FFT 계산이 자주 사용되어지고 있는 바, Digital signal processing; For (DSP Digital Signal Processing) FFT calculation is often used, which is a bar,

퓨리에 변환(Fourier Transform)이란 서로다른 주파수의 정현파의 중복으로 표현할 수 있는 시간함수에 대하여, 그 시간함수에 포함되는 각 주파수 성분의 크기를 주파수의 함수로 나타내는 것인데, 신호 해석, 화상처리 등에 널리 이용된다. Fourier transform (Fourier Transform) is from each other with respect to a function of time can be represented as a duplicate of the sinusoidal waves of different frequencies, geotinde indicating the magnitude of each frequency component contained in the function of time as a function of frequency, the signal analysis, image processing is widely used for do.

일반적으로 FFT 알고리듬은 여러가지가 있으나, 그 중에서 가장 일반적으로 사용되는 것은 DIT(Decimation-in-time) 알고리듬(algorithm)에 그 토대를 둔 것인 바, In general, the FFT algorithm is that the various, but the most commonly used among them being placed on the foundation DIT (Decimation-in-time) algorithm (algorithm) bar,

이러한 알고리듬은 가장 기본적인 구조를 갖는 도 2에서와 같은 버터플라이(butterfly)들을 기본 요소 삼아 구성된다. This algorithm is also having the basic structural configuration Sanya basic elements of the butterfly (butterfly), such as in 2.

도 1은 DIT 알고리듬으로 부터 얻어지는 8-포인트(point) FFT 계산 신호흐름을 나타낸 도면이다. 1 is a diagram showing the 8-point (point) FFT calculated signal stream obtained from the DIT algorithm.

도 1을 살펴보면, 버터플라이 구조를 기본으로 하여, 버터플라이가 다중으로 연결되어 있는 것을 볼 수 있는 데, 도 2에서 이와 같은 버터플라이 구조를 상세하게 나타내었다. Looking at Figure 1, by the butterfly structure by default, to be found in that the butterfly is connected to multiple, it was also specifically indicate the butterfly structure such as this in the second.

도 2에서와 같이, 버터플라이의 입력측으로 실수부와 허수부(j)로 이루어지는 데이타 X[a]+jY[a], X[b]+jY[b]가 입력되면, 이들 값은 곱셈기(1)와, 각각의 합산기(2,3)를 거치면서, 박스(box)내의 식들의 출력값 X'[a]+jY'[a]와 X'[b]+jY'[b]을 얻을 수 있게 된다. As shown in FIG. 2, when the input side of the butterfly real part and the data consisting of an imaginary part (j) X [a] + jY [a], X [b] + jY [b] is input, these values ​​are multipliers ( 1), while passing through the respective adder (2,3), the output value X '[a] + jY' of the formula in the box (box) [a], and X '[b] + jY' obtained [b] It can be so.

FFT 계산 플로우 과정을 살펴보면, 버터플라이, 그룹(group), 스테이지(stage)의 3종류로 나누어져 있는 데, 상기와 같은 도 2의 버터플라이 계산 과정을 반복진행하여 입력되는 디지탈 신호값에 대하여 FFT 변환을 하게 되는 바, FFT calculation Looking at the flow process, butterfly, group (group), to which is divided into three stages (stage), with respect to the digital signal value which is repeatedly conducted by entering the butterfly calculation in Figure 2, such as the FFT bar to which the conversion,

이와 같은 FFT 변환은 도 3에서와 같은 순환 알고리듬으로 이루어진다. This FFT transform is performed in a cyclic algorithm as in FIG.

이와 같이 하여 모든 스테이지의 계산이 완료되면, FFT 계산에 의해 얻어지는 값들의 순서를 재정렬하게 되는 바, Once this way is completed, the calculation of all the stages and, the bar that is to rearrange the order of the values ​​obtained by the FFT calculation,

다음의 표 1에 나타난 바와 같이, 8-포인트 FFT의 경우를 예를 들면, As shown in Table 1 below, for example in the case of 8-point FFT,

입력 데이타 Input data 이진 어드레스 Binary address 변환 데이타 Conversion data 이진 어드레스 Binary address
X(0) X (0) 000 000 X(0) X (0) 000 000
X(1) X (1) 001 001 X(0) X (0) 100 100
X(2) X (2) 010 010 X(0) X (0) 010 010
X(3) X (3) 011 011 X(0) X (0) 110 110
X(4) X (4) 100 100 X(0) X (0) 001 001
X(5) X (5) 101 101 X(0) X (0) 101 101
X(6) X (6) 110 110 X(0) X (0) 011 011
X(7) X (7) 111 111 X(0) X (0) 111 111

상기 2진수로 표시되는 각 입력 어드레스와 FFT 계산을 거쳐 출력되는 이진 어드레스들을 살펴보면, 입력되는 값들의 어드레스에 대하여 출력되는 값들의 이진 어드레스는 그 역의 값을 가지게 되므로, 입력되는 값들에 대하여 비트 리저브드(역전) 어드레싱(bit-reserveed addressing)에 의해 재정렬시키면 올바른 출력값을 얻을 수 있게 된다. Since Looking at each input address with a binary address is output through the FFT computation represented by the binary number, the binary address of the value to be outputted to the address of the input value have a value of the station, the bit reserved for the input values, de (reverse) If reorder by the addressing (bit-addressing reserveed) it is possible to obtain the correct output value.

본 발명에서는 이와 같이 DIT 알고리듬으로 부터 이루어지는 FFT 계산 구조에 있어서, 버터플라이의 계산을 효율적으로 하므로써, 간단하면서도 빠르게 전체적인 FFT 계산 과정이 이루어지도록 한 구조를 제공하고자 한 것이다. In the present invention, intended to provide a structure in this manner in the FFT calculation structure formed from the DIT algorithm, By the calculation of the butterfly efficient, simple, rapid whole FFT calculation process to occur.

도 1은 DIT(decimation in time) 알고리듬으로 부터 얻어지는 8-포인트(point) FFT(Fast Fourier Transform) 계산 신호흐름을 나타낸 도면. 1 is a DIT (decimation in time) 8-point algorithm (point) FFT (Fast Fourier Transform) signal flow diagram showing the calculation obtained from the.

도 2는 상기 도 1에서의 버터플라이(butterfly)의 계산 구조를 나타낸 도면. Figure 2 is a view showing a calculation structure of the butterfly (butterfly) in the FIG.

도 3은 도 1의 FFT 계산 알고리듬을 나타낸 플로우챠트. 3 is a flowchart showing the FFT calculation algorithm of FIG.

도 4는 본 발명 패스트 퓨리에 변환(FFT) 장치의 블록 구성도. Diagram 4 is the invention a fast Fourier transform (FFT) block of the device.

도 5는 도 4의 각 클록별 제어과정을 기본 개념적으로 나타낸 제어도표. 5 is a control diagram showing a control process of each of the clock by 4 basic conceptual.

도 6은 도 4의 각 클록별 제어과정을 실제 각부출력진행상태로 나타낸 제어도표. 6 is a control diagram showing a control process of each of the clock by 4 to output the real parts progress.

도 7은 도 4의 각 클록별 제어과정을 나타낸 것으로, 루프가 발생하였을 경우를 나타낸 제어도표. To Figure 7 is shown for each clock by the control process of Figure 4, a control chart showing a case hayeoteul loop occurs.

도 8은 도 4에서 위상각 q가 0일 경우에 각 클록별 제어과정을 기본 개념적으로 나타낸 제어도표. 8 is a control diagram showing a control process of each of the clock by a basic conceptual when each q is zero phase in Fig.

도 9는 도 4에서 위상각 q가 0일 경우에 각 클록별 제어과정을 실제 각 부 출력 진행상태로 상세하게 나타낸 제어도표. 9 is a control chart showing in detail each of the clock by the control process when each q is zero phase in each unit 4 to the actual output progress.

도 10은 도 4에서 위상각 q가 0이며, 루프가 발생하였을 경우에 각 클록별 제어과정을 나타낸 제어도표. 10 is a control diagram showing a control process of each of the clock by a case in phase, and each q is zero, the loop is generated in FIG.

도 11은 도 4에서 위상각 q가 π/2일 경우에 각 클록별 제어과정을 기본 개념적으로 나타낸 제어도표. 11 is a control diagram showing a control process of each of the clock by a basic conceptual when each q is π / 2 the phase in Fig.

도 12는 도 4에서 위상각 q가 π/2일 경우에 각 클록별 제어과정을 실제 각 부 출력 진행상태로 상세하게 나타낸 제어도표. Figure 12 shows the phase angle q is detailed for each clock by the control process in the case π / 2 days the actual progress status of each output unit controlled by the Figure 4 diagram.

도 13은 도 4에서 위상각 q가 π/2이며, 루프가 발생하였을 경우에 각 클록별 제어과정을 나타낸 제어도표. 13 is a control diagram showing a control process of a case in each of the clock by the phase angle q that is π / 2, a loop is generated in FIG.

본 발명에서는 상기와 같은 목적을 달성하기 위하여 도 4에서와 같은 장치를 제안하게 된다. For the present invention to accomplish the above object, it is to propose a device as in Fig.

도 4는 도 1에서와 같은 DIT(Decimation-In-Time) FFT의 계산 구조를 구현한 것이다. Figure 4 implements a calculation structure of the DIT (Decimation-In-Time) FFT as in Fig.

이와 같은 실시예를 참조하여 이하 첨부된 도면을 참조하여 그 구성 및 작용을 설명하면 다음과 같다. According to this by referring to the same embodiment with reference to the accompanying drawings describe the structure and operation as follows.

위상각(q)에 대한 트위들 팩터스(twiddle factors)값의 실수부에 대한 어드레스를 [cosptr]저장하는 실수저장부(10a)와 허수부에 대한 어드레스[sinptr]를 저장하는 허수저장부(10b)를 포함하는 계수 어드레싱 레지스터(coefficient addressing registers)(10)와, 입력되는 어드레스에 따라 저장되어 있는 FFT 계수를 출력하는 롬(ROM)(20)과, 변환하고자 하는 입력 데이타 및 변환된 데이타의 어드레스[a,a0∼a4]를 저장하는 데이타 어드레싱 레지스터(data addressing registers)(30)와, 입력되는 데이타 어드레스에 따라서 읽어온 데이타를 출력하고, 변환된 데이타를 저장하는 데이타 램(data RAM)(40)과, 상기 롬(20)으로 부터 출력된 FFT 계수를 일시 저장한 후 출력하는 m 레지스터(50)과, 상기 데이타 램(40)으로 부터 출력된 데이타를 일시 저장한 후 출력하는 t 레지스터(60) 및 d 레지스터(70)와, Phase imaginary storage unit for storing the twiddle factor's (twiddle factors) an address for the value of the real part [cosptr] address [sinptr] for the real storage unit (10a) and an imaginary part for storing for each (q) ( and the coefficient addressing register (coefficient addressing registers) (10) containing 10b), of which outputs the FFT coefficient that is stored according to an input address ROM (ROM) (20) and the input to convert the data and transform data address [a, a0~a4] the stored data addressing register (data addressing registers) (30) and, for storing the output data was read according to the input data address, and converts the data data RAM (data RAM) for ( 40) and t registers to the ROM 20 is output after storing the FFT coefficient output from the date and time output after temporarily storing the data output from the m register 50 and the data RAM 40 for ( and 60) and the d register 70, 기 m 레지스터(50)로 부터 출력되는 FFT 계수와 t 레지스터(60)에서 출력되는 데이타를 승산하는 멀티플라이어(multiplier)(80)와, 멀티플라이어(80)에서 연산된 결과를 일시 저장한 후 출력하는 p 레지스터(90)와, And a group m multiplier (multiplier) 80 which multiplies the data outputted from the register (50), FFT coefficients, and t register 60 is output from, a multiplier 80, temporal storage after outputting the operation result from the and p registers (90),

상기 p 레지스터(90)로 부터 출력된 승산결과값과 상기 d 레지스터(70)로 부터 출력되는 입력 데이타의 가감연산 실행하여 연산결과를 해당 XO 레지스터(110) 및 X2 레지스터(120)에 저장하고, 상기 XO 레지스터(110) 및 X2 레지스터(120)의 출력 데이타 즉, 이전 연산결과와 P 레지스터(90)로 부터 출력되는 데이타와의 가감연산을 실행하는 연산기(100)와, The p storing an operation result by executing subtraction operation of the input data output from the register 90, the multiplication result output from the and the d register 70 to the XO register 110 and X2 register 120, and computing (100) for executing addition and subtraction operations and the output data of the register XO 110 and X2 register 120, that is, prior to the operation result data output from the P register 90,

상기 p 레지스터(90)로 부터 출력된 승산결과값과 상기 d 레지스터(70)로 부터 출력되는 입력 데이타의 가감연산 실행하여 연산결과를 해당 X1 레지스터(140) 및 X3 레지스터(150)에 저장하고, 상기 X1 레지스터(110) 및 X3 레지스터(12)의 출력 데이타 즉, 이전 연산결과와 P 레지스터(90)로 부터 출력되는 데이타와의 연산을 실행하는 연산기(130)와, The p storing an operation result by executing subtraction operation of the input data output from the register 90, the multiplication result output from the and the d register 70 in the X1 register 140 and X3 register 150, and a computing unit (130) for executing an operation with the output data X1 of the register 110 and X3 register 12, that is, prior to the operation result data output from the P register 90,

상기 XO 레지스터(110), X1 레지스터(120), X2 레지스터(140), X3 레지스터(150)에서 출력되는 값들의 그 수치값을 제한하여 출력하는 수치값제한부(160)로 구성되며, XO is composed of the register (110), X1 register (120), X2 register 140, the numerical value limiting section 160 limits the output to the numerical value of the values ​​output from the register X3 150,

상기 각 부의 출력값들 및 상기 연산기(100)(130)의 논리연산의 제어는 진행되는 각 클럭(clock) 마다 제어수단으로 부터 전달되는 제어신호에 의해 제어되어짐을 특징으로 한다. The output value of each unit and controls the logical operation of the computing unit (100, 130) is characterized in doeeojim control by a control signal delivered from the control means for each clock (clock) that is in progress.

이와 같은 구성을 특징으로 하는 본 발명이 제안하고 있는 장치는 버터플라이를 계산하게 되는 도 2에서와 같은 수학식과 같은 값이 얻어질 수 있도록 상기 각 부의 출력 및 작용을 제어수단에서 각 클록(1∼9)별로 도 5에서와 같이 제어가 이루어지도록 하는 것으로, The device that the invention is proposed, characterized by the same configuration, each clock in a mathematical expression and an output, and the operation of each unit control means so that the value can not be obtained, such as in Figure 2 is to calculate a butterfly (1- 9) as a control, as shown in FIG 5 to occur by,

도 5를 참조하여 기본적인 그 작용을 설명하면 다음과 같다. Referring to Fig. 5 will be described a basic operation that follows.

첫번째 클록(1)에서 데이타 램(40)으로 부터 X[a]의 데이타를 출력하게 되어 d 레지스터(70)의 저장값은 X[a]가 된다. It is the first clock (1) outputs the data of the X [a] from the data RAM 40 in the storage value of the d register 70 is the X [a].

이후, 다음 클록(2)이 되면, 롬(20)에서는 cosq를 출력하게 되고, 따라서 m 레지스터(50)의 저장값은 cosq가 된다. Then, when the next clock (2), and outputs a cosq in the ROM 20, and thus stored value of the m register 50 are a cosq.

또한, 데이타 램(40)에서는 X[b]가 출력되어 t 레지스터(60)에는 X[b]가 저장된다. Further, the data RAM 40 is the output X [b] t register 60 is stored in the X [b].

클록(3)이 되면, 상기 m 레지스터(50)와 t 레지스터(60)에서는 이들 값을 출력하게 되고, 멀티플라이어(80)에서는 이들 출력값을 승산(m*t)하여 p 레지스터(90)에 저장하게 된다. A clock (3) stored in the m register 50, and t register 60 in the multiplying (m * t) to p registers (90) for these output values ​​in and outputs these values, a multiplier 80, when the It is.

이때, 롬(20)에서는 계수값 sinq를 출력하게 되어, m 레지스터(50)에는 sinq가 저장되고, 데이타 램(40)에서는 Y[b]가 출력된다. In this case, the ROM 20 is output to the coefficient value sinq, m register 50, and sinq is stored, in the data RAM 40 is Y [b] is outputted.

그러므로 t 레지스터(60)에는 Y[b]가 저장된다. Thus t register 60 is stored in the Y [b].

다음 클록(4)이 되면, 연산기(100)에서는 상기 d 레지스터(70)와 p 레지스터(90)에서 출력되는 값을 가산(d+p)하게 되고, 이 값을 XO 레지스터(110)에 저장하게 된다. Next if the clock (4), and the values ​​in the computing unit 100 is output from the d register 70 and the p register 90 plus (d + p), and stores this value in XO register 110 do.

또한, 연산기(130)에서는 상기 d 레지스터(70)와 p 레지스터(90)에서 출력되는 값을 감산(dp)하여 X1 레지스터(140)에 저장하게 된다. In addition, the computing unit 130 to the value output from the d register 70 and the p register 90 is subtracted (dp) is stored in the X1 register 140.

이때, 멀티플라이어(80)에서는 이전 클럭(3)에서 t 레지스터(60)와 m 레지스터(50)에 저장되어 있던 값 sinq와 Y[b]을 승산하여 p 레지스터(90)에 저장하게 된다. At this time, the multiplier 80 is stored in the previous clock (3) t register 60 and the m register 50 multiplies the value sinq and Y [b] p stored in the register 90 at.

그리고, m 레지스터(50)에는 현재 클록(4)에서 롬(20)으로 부터 출력되는 cosq가 저장되고, d 레지스터(70)에는 현재 클록(4)에서 데이타 램(40)으로 부터 출력되는 Y[a]가 저장된다. And, m register 50 is provided with a cosq the current output from the clock (4) from the ROM 20 stores, d register 70 has Y are outputted from the clock (4) from the data RAM 40. [ a] is stored.

클록(5)에서는 X0 레지스터(110)에 저장되어 있던, 연산기(100)의 연산결과인 X0를 누적값으로 하여 연산기(100)에서 이로 부터 이전 클록(4)에서 p 레지스터(90)에 저장되어 있던 값을 감산(X0-P)하여 X0 레지스터(110)에 저장하게 된다. A clock (5) stored in the previous clock (4), p register 90 in the calculator 100 by the calculation result of X0 to the cumulative value of the X0 register, arithmetic unit 100 is stored in the 110 therefrom to a value that is subtracted (X0-P) it is stored in the X0 register 110.

그리고, 연산기(130)에서는 이전 클록(4)에 p 레지스터(90)에 저장되어 있던 값과 X1 레지스터(140)에 저장되어 있던 값을 가산(X1+p)하여 X1 레지스터(140)에 저장하게 된다. Then, the computing unit 130 in the previous clock (4) in the p-value and adding the value stored in the X1 register 140 (X1 + p) stored in the register 90 to store the X1 register 140 do.

이와 동시에 m 레지스터(50)와 t 레지스터(60)에는 롬(20)과 데이타 램(40)으로 부터 출력되는 sinq, X[b]가 저장된다. At the same time, there is a sinq, X [b] which is output from the ROM 20 and the data RAM 40 stores m register 50 and the register t 60.

이후, 클록(6)이 되면, 수치값제한부(160)를 통해 반올림 및 포화 연산되어 출력되는 값들중에서 X0 레지스터(110)에서 출력되는 값을 X'[a]로 둔다. Then, the clock (6) puts the value X0 output from the register 110 from, numerical value limiting section values ​​that are calculated and rounded off to the saturation output through 160. When a X '[a].

이때, 연산기(100)에서는 d 레지스터(70)에 저장출력된 값에서 p 레지스터(90)에 저장출력된 값을 감산(dp)하여 X2 레지스터(120)에 저장하게 된다. At this time, the computing unit 100, the d register 70 stores the output value from the p register 90 stores the output value of the subtraction (dp) to the X2 is stored in the register 120.

그리고, 연산기(130)에서는 d 레지스터(70)에 저장출력된 값과 p 레지스터(90)의 저장출력된 값을 가산(d+p)하여 X3 레지스터(150)에 저장하게 된다. Then, the arithmetic unit 130 is stored in the storage output value of the stored value and the p register 90 outputs the d register 70 to the adding (d + p) to X3 register 150.

여기서, p 레지스터(90)에는 m 레지스터(50)와 t 레지스터(60)로 부터 출력되는 sinq, X[b]가 승산된 값이 다시 저장되어 진다. Here, p register 90, the value is multiplied sinq, X [b] output from the m register 50, and t register 60 is stored again.

클록(7)이 되면, X1 레지스터(140)에서 출력되는 값을 X'[b]로 두고, 상기 X2 레지스터(120)에서 출력되는 값으로 부터 상기 p 레지스터(90)에서 출력되는 값을 연산기(100)에서 감산(X2-p)하여 X2 레지스터(12)에 저장하게 된다. A clock (7) computing a value output from, X1 register 140, the p register 90 with a value of X '[b], from the value output from the X2 register 120 is output from when the ( 100) by subtracting (p-X2) in is stored in X2 register 12.

또한, 연산기(130)에서는 X3 레지스터(150)에서 출력되는 값과 p 레지스터(90)에서 출력되는 값을 가산(X3+p)하여 X3 레지스터(150)에 저장하게 된다. Further, the arithmetic unit 130 is stored in the value outputted from the value p and the register 90 is output from X3 register 150 to the adding (X3 + p) to X3 register 150.

이후, 클록(8)이 되면, 상기 X2를 Y'[b]로 두고, 클록(9)에서 X3를 Y'[a]로 두게 된다. Then, when the clock (8), the X2 Y is kept to "put as [b], the X3 at the clock (9) Y '[a].

이와 같은 과정을 거치게 되면, X'[a],X'[b],Y'[b],Y'[a]를 모두 얻을 수 있게 되며, 이들 값은 도 5의 상부에 실행 수학식과 같이 나타나게 되므로써, 버터플라이 하나에 대한 계산을 완료할 수 있게 된다. When subjected to the above process, X '[a], X' [b], Y '[b], Y' is able to obtain all of the [a], these values ​​are displayed as expressions running math on the upper portion of Figure 5 doemeurosseo, it is possible to complete the calculation of the butterfly one.

도 6은 실제로 도 4에서와 같은 본 발명 장치에서 진행되는 각부의 제어도표이다. 6 is actually a control chart of each part is held in the invention device as in Figure 4.

여기서, 데이타 어드레싱 레지스터(30)의 a1은 X[a], a2는 X[b], a3는 Y[a], a4는 Y[b]의 어드레스를 갖는다. Here, a1 data addressing register 30 is X [a], a2 is X [b], a3 is Y [a], a4 has the address of the Y [b].

각 어드레스에 해당하는 데이타를 읽어와서 상기에서 도 5를 참조하여 설명한 과정에 의해 구한 값(X0,X1,X2,X3)을 각 클록(6∼9)에서 데이타 램(40)의 데이타를 dram[a]=X0, X1,X2,X3로 설정하게 될때, 하나 이전의 클럭 즉, 클록(5) 부터 어드레스 a를 a1,a2,a4,a3로 설정하게 된다. Reads data corresponding to the address, see Fig. 5 in the dram to the data from the data RAM 40, the obtained value (X0, X1, X2, X3) at each clock (6 to 9) by the process described [ a] = X0, when set to X1, X2, X3, is set to one before the clock that is a clock 5, a address from the a1, a2, a4, a3.

따라서, 데이타 램(40)의 어드레스 a1,a2,a4,a3에 의해 지시되는 영역들은 상기와 같이 구한 X0,X1,X2,X3의 값을 갖게 된다. Thus, the area indicated by the address a1, a2, a4, a3 of the data RAM 40 are given the values ​​of X0, X1, X2, X3 obtained as described above.

이때, 각 클록(5∼8)에서 원래의 어드레스 a1,a2,a3,a4는 1씩 증가시키게 된다.(a1=a1+1, a2=a2+1, a3=a3+1, a4=a4+1) In this case, the original address a1, a2, a3, at each clock (5~8) a4 is thereby incremented by 1. (1 + a1 = a1, a2 = a2 + 1, + 1 a3 = a3, a4 = a4 + One)

또한, m 레지스터(50)는 실수저장부(10a)에서 출력되는 어드레스[cosptr] 및 허수저장부(10b)에서 출력되는 어드레스[sinptr]에 의해 롬(20)에서 출력되는 값들이 저장출력되며, t 레지스터(60) 및 d 레지스터(70)는 데이타 어드레싱 레지스터(30)로 부터 전달되는 어드레스[a1][a2][a3][a4]에 의해 데이타 램(40)에서 출력되는 값들을 저장 및 출력하게 된다. In addition, m register 50 are output values ​​to be outputted from the ROM 20 by the address [sinptr] output from the address [cosptr] and imaginary storage unit (10b) that is output from the real storage unit (10a) are stored, t register 60 and the d register 70 stores the value output from the data RAM 40 by the address [a1] [a2] [a3] [a4] that is passed from the data the addressing register 30 and the output It is.

도 7은 도 1에서와 같은 버터플라이 단위로 이루어진 전체를 상기와 같은 과정으로 버터플라이를 반복하여 FFT 계산이 이루어질 수 있도록 하는 것으로, 버터플라이가 반복되는 루프(loop)가 존재하게 될때, 제어도표를 나타낸 것이다. When the Figure 7 there is a loop (loop) the whole consisting of the butterfly unit as in Figure 1 is that to repeat the butterfly to the process as described above be made FFT calculation, the butterfly is repeated, the control chart It illustrates a.

클럭(5)∼클럭(9)까지가 반복되는 사이클이며, 버터플라이가 하나이상 존재하게 될때, 반복되는 수가 N이라고 가정하면, 요구되는 사이클(cycle)은 5N+4로 나타낼 수 있으며, 따라서 하나의 버터플라이에 요구되는 사이클은 9 이다. Clock (5) to the clock and the repeating cycles to 9, when it is a butterfly there is more than one, by repeating the number that is assumed to be N, and the cycle (cycle) required will be represented by 5N + 4, therefore one a cycle required for the butterfly to 9.

그리고, 버터플라이가 두개 존재하면 즉, N=2이면, 도표에서와 같이, 14 사이클이 된다. Then, when the butterfly two exist that is, if N = 2, as shown in the Figure, is a 14 cycles.

상기와 같이 버터플라이의 반복이 존재하게 될 경우 도 1을 보게 되면, 한 그룹내에서는 q의 값이 같지만, 그룹을 넘어서게 되면, 그 값이 달라지게 되므로, 이에 맞추기 위하여 클록(11) 및 클록(12)에서와 같이, 계수 어드레싱 레지스터(10)의 어드레스 레지스터인 cosptr 및 sinptr의 값을 1씩 증가시키게 된다. If you see Fig. 1 if the there is a repeat of the butterfly as described above, when a group within the same, the value of q, beyond the group, so becomes the value is changed, the clock 11 and the clock to meet this ( as in 12), thus increasing the value of the address register and cosptr sinptr coefficient of the addressing register 10 by one.

또한, 한 그룹이 끝나는 시점으로 부터 다음 그룹이 시작하게 될 경우 데이타 어드레싱 레지스터(30)의 a1,a2,a3,a4의 값들은 1보다 큰값만큼 증가가 되므로, 이러한 증감을 하여 어드레스 레지스터 a0의 값을 가산하도록 한다. Further, when the next group is started from the time when a group ending data addressed values ​​of a1, a2, a3, a4 of the register 30 are therefore increased by greater than the first, and this increase or decrease the address register a0 value of to be added to.

이때, 위상각 q가 0이거나 또는 π/2일 경우에는 sin값 또는 cos값이 0 또는 1이 되므로, 그 식이 단순해지게 된다. At this time, when the phase angle is 0, or q or π / 2 days, since the sin value or cos value of 0 or 1, the expression becomes simple.

즉, 계산량이 줄어들게 되므로써, 상기와 같은 위상각을 갖게 될 경우에 이에 맞추어 제어를 하게 되면, 빠른 연산이 가능해지는 것이다. That is, when the amount of calculation is reduced doemeurosseo, to the control according to this case to have the same phase angle as above, it becomes possible to faster operation.

도 8은 q가 0일 경우의 실행 수학식의 기본제어개념을 나타낸 도표이며, 도 9는 q가 0일 경우 실제 장치에서 이루어지는 제어도표를 나타낸 것이고. 8 is a diagram showing the basic control concept q is the running equation of 0, Fig. 9 depicts the control chart formed on the actual device, if q is zero. 도 10은 q가 0일 경우에 루프가 존재할 경우를 나타낸 제어도표이다. 10 is a control chart showing a case there is a loop if q is zero.

q값이 0이되면, cosq=1이고, sinq=0이 되므로, When the q value is zero, and cosq = 1, since the sinq = 0,

X'[a]=X[a]+cosq*X[b]-sinq*Y[b]를 예를 들면, 이식은 X'[a]=X[a]+X[b]가 된다. X is a "a [a] = X [a] + cosq * X [b] -sinq * Y [b], for example, transplantation X '[a] X = [a] X + [b].

도 8에 도시된 실행 수학식에서와 같이, 그 식이 단순해짐을 알 수 있다. As the execution equations shown in Figure 8, it can be seen that expression becomes simple.

여기서, 도 10에 도시된 제어도표에서, Here, in the control diagram shown in Figure 10,

루프가 없을 경우에는 1, 2, 4, 10, 11, 12, 13의 클럭순으로 진행이 이루어지게 되며, 루프가 5,6,7,8,9 클록까지 존재하게 될 경우에 루프를 두번만 반복실행한다고 가정하면, 즉, 버터플라이 3개를 연속실행한다고 가정하면, 1, 2, 3, 5, 6, 7, 8, 5, 6, 7, 9, 10, 11, 12, 13의 클럭순서로 제어진행된다. If there is no loop, the proceeding is made to be 1, 2, 4, 10, 11, 12, 13 clock net, the loop only if the loop will be present up to 5,6,7,8,9 clock twice repeated assuming execution, that is, assuming that the continuous running butterfly 3, 1, 2, 3, 5, 6, 7, 8, 5, 6, 7, 9, 10, 11, 12, 13 clock is sequence proceeds to a control.

즉, 루프를 반복 진행하게 될때, 루프를 빠져 나오게 될때, 마지막 클록(8)은 실행하지 않고, 클록(9)에 대하여 제어를 실행하게 되는 것이다. That is, when proceeding to the repeated loop, when it exits the loop, would be to run a control with respect to the last clock 8 is not executed, a clock (9).

도 11, 도 12, 도 13은 q가 π/2 값을 가질 경우에 기본개념, 실제 블록에서의 진행 제어도표, 루프가 존재할 경우를 나타낸 제어도표이다. 11, 12, 13 is a control diagram showing the basic concept q are, proceeding from the actual control of the block diagram, if there is a loop with having a π / 2 value.

도 13에서와 같은 경우에도 상기 클록 진행제어순서와 동일하게 이루어진다. Even if, as in Figure 13 is made in the same manner as the clock control procedure in progress.

이와 같이 첨부된 제어도표와 같은 실행수순으로, 도 4에서와 같은 장치가 제어되어지면서, 각 버터플라이의 계산을 실행하여 전체의 FFT 계산을 실행하게 된다. The execution procedures such as the control chart accompanying this way, As the device is controlled as in Figure 4, is executed in the full FFT calculation to execute the calculation of the respective butterfly.

앞서 도 1에서와 같이 FFT 플로우는 버터플라이의 단위구조로 이루어지게 되는데, q값이 각 단위별로 변화되어지고 있는 바, Prior FIG FFT flow as in the first will be made there is a structural unit of the butterfly, the q value is being changed for each unit of the bar,

일반적인 값, 0, π/2의 q값에 해당하는 각 모드별로 개별 명령어를 갖고 각 부를 제어하여 FFT 계산을 수행하게 된다. Typical values, having individual instructions for each mode corresponding to a q value of 0, π / 2 and performs the FFT calculation to control each part.

즉, 도 1에서와 같이, 첫번째 스테이지에서는 q값이 모두 0이고, 버터플라이가 4개이므로, 도 10에서와 같은 제어수순을 갖게 되며, 루프는 3번 반복실행하면 되는 것이다. That is, as shown in Figure 1, in the first stage and all of the q value of 0, and because the butterfly is four, also have a control sequence, such as at 10, the loop will be repeated three times when running.

또한, 두번째 스테이지에서는 상부그룹에서도 q가 0인 모드, 하부 그룹에서는 q가 π/2인 모드로, 세번째 스테이지에서는 q가 임의의 값인 버터플라이에 해당하는 모드로 각각의 명령어를 선택하여 각 부를 제어하도록 하므로써, 각각의 버터플라이의 계산을 통하여 완전한 FFT 계산과정을 수행할 수 있게 되는 것이다. In addition, the second stage in the control to q is π / 2 in mode, q is zero mode, the lower group in the top group, and the third stage in selecting the respective instructions to the mode in which q is the random value butterfly respective units by that, it is possible to perform a complete FFT calculations by the calculation of the respective butterfly.

이상에서 설명한 바와 같이, 하나의 멀티플라이어와 두개의 가감산 연산기, 네개의 누산기(accumulator)(X0,X1,X2,X3)로 이루어지는 MAC(multiply - and - accumulate) 구조로써, 간단하고 빠른 FFT 계산 구조를 제공할 수 있게 된다. As described above, one multiplier and two subtraction operator, the four accumulator (accumulator) (X0, X1, X2, X3) MAC consisting of As (multiply - - and accumulate) structure, a simple and fast FFT calculation it is possible to provide a structure.

Claims (3)

  1. 위상각(q)에 대한 트리들 팩터스(twiddle factors)값의 실수부에 대한 어드레스를 [cosptr]저장하는 실수저장부(10a)와 허수부에 대한 어드레스[sinptr]를 저장하는 허수저장부(10b)를 포함하는 계수 어드레싱 레지스터(coefficient addressing registers)(10)와, 입력되는 어드레스에 따라 저장되어 있는 FFT 계수를 출력하는 롬(ROM)(20)과, 변환하고자 하는 입력 데이타 및 변환된 데이타의 어드레스[a,a0∼a4]를 저장하는 데이타 어드레싱 레지스터(data addressing registers)(30)와, 입력되는 데이타 어드레스에 따라서 읽어온 데이타를 출력하고, 변환된 데이타를 저장하는 데이타 램(data RAM)(40)과, 상기 롬(20)으로 부터 출력된 FFT 계수를 일시 저장한 후 출력하는 m 레지스터(50)과, 상기 데이타 램(40)으로 부터 출력된 데이타를 일시 저장한 후 출력하는 t 레지스터(60) 및 d 레지스터(70)와, Phase imaginary storage unit that stores the address [sinptr] for each (q) tree of factor's (twiddle factors) an address for the value of the real part [cosptr] store real storage unit (10a) that the imaginary part of the ( and the coefficient addressing register (coefficient addressing registers) (10) containing 10b), of which outputs the FFT coefficient that is stored according to an input address ROM (ROM) (20) and the input to convert the data and transform data address [a, a0~a4] the stored data addressing register (data addressing registers) (30) and, for storing the output data was read according to the input data address, and converts the data data RAM (data RAM) for ( 40) and t registers to the ROM 20 is output after storing the FFT coefficient output from the date and time output after temporarily storing the data output from the m register 50 and the data RAM 40 for ( and 60) and the d register 70, 기 m 레지스터(50)로 부터 출력되는 FFT 계수와 t 레지스터(60)에서 출력되는 데이타를 승산하는 멀티플라이어(multiplier)(80)와, 멀티플라이어(80)에서 연산된 결과를 일시 저장한 후 출력하는 p 레지스터(90)와, And a group m multiplier (multiplier) 80 which multiplies the data outputted from the register (50), FFT coefficients, and t register 60 is output from, a multiplier 80, temporal storage after outputting the operation result from the and p registers (90),
    상기 p 레지스터(90)로 부터 출력된 승산결과값과 상기 d 레지스터(70)로 부터 출력되는 입력 데이타의 가감연산 실행하여 연산결과를 해당 XO 레지스터(110) 및 X2 레지스터(120)에 저장하고, 상기 XO 레지스터(110) 및 X2 레지스터(120)의 출력 데이타 즉, 이전 연산결과와 P 레지스터(90)로 부터 출력되는 데이타와의 가감연산을 실행하는 연산기(100)와, The p storing an operation result by executing subtraction operation of the input data output from the register 90, the multiplication result output from the and the d register 70 to the XO register 110 and X2 register 120, and a computing unit (100) for executing a subtraction operation with the output data of the register XO 110 and X2 register 120, that is, prior to the operation result data output from the P register 90,
    상기 p 레지스터(90)로 부터 출력된 승산결과값과 상기 d 레지스터(70)로 부터 출력되는 입력 데이타의 가감연산 실행하여 연산결과를 해당 X1 레지스터(140) 및 X3 레지스터(150)에 저장하고, 상기 X1 레지스터(110) 및 X3 레지스터(12)의 출력 데이타 즉, 이전 연산결과와 P 레지스터(90)로 부터 출력되는 데이타와의 연산을 실행하는 연산기(130)와, The p storing an operation result by executing subtraction operation of the input data output from the register 90, the multiplication result output from the and the d register 70 in the X1 register 140 and X3 register 150, and a computing unit (130) for executing an operation with the output data X1 of the register 110 and X3 register 12, that is, prior to the operation result data output from the P register 90,
    상기 XO 레지스터(110), X1 레지스터(120), X2 레지스터(140), X3 레지스터(150)에서 출력되는 값들의 그 수치값을 제한하여 출력하는 수치값제한부(160)로 구성되며, XO is composed of the register (110), X1 register (120), X2 register 140, the numerical value limiting section 160 limits the output to the numerical value of the values ​​output from the register X3 150,
    상기 각 부의 출력값들 및 상기 연산기(100)(130)의 논리연산의 제어는 진행되는 각 클럭(clock) 마다 제어수단으로 부터 전달되는 제어신호에 의해 제어되어짐을 특징으로 하는 패스트 퓨리에 변환(FFT) 장치. Control of the logical operation of the respective parts of the output value and the arithmetic unit 100, 130 is a fast Fourier transform (FFT), characterized by control doeeojim by a control signal delivered from the control means for each clock (clock) that is in progress Device.
  2. 제 1항에 있어서, 상기 제어수단은 위상각(q)에 따른 각 모드별로 개별 명령어를 갖고, 이에 따라서, 각 모드에 따라 제어신호를 출력하여 상기 각 부의 입출력제어를 진행하도록 하는 것을 특징으로 하는 패스트 퓨리에 변환(FFT) 장치. The method of claim 1, wherein said control means has a separate command for each mode according to the phase angle (q), accordingly, outputs a control signal for each mode, which is characterized in that to proceed with the input and output controls the respective parts Fast Fourier transform (FFT) unit.
  3. 위상각(q)을 판별하는 과정과, 판별된 위상각(q)에 따라서 FFT 변환을 위하여 구성되는 각 레지스터의 값의 출력 및 연산을 위한 제어 모드를 결정하는 과정과, 결정되는 제어모드에 따른 명령신호를 각각의 레지스터 및 연산수단에 출력하여 FFT 연산을 실행 제어하는 과정을 포함하는 것을 특징으로 하는 패스트 퓨리에 변환(FFT) 제어 방법. Phase of the process, a control mode which is determined for determining the control mode for the output and operation of the value of each register is configured to the FFT conversion according to angle (q) process and, the determined phase angle (q) to determine the Fast Fourier transform (FFT) method of controlling and outputting a command signal to each of the register and arithmetic operation means, characterized in that it comprises the step of running the control FFT operation.
KR19980011642A 1998-04-02 Fast Fourier transform (fft) to the control device, method KR100284181B1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US09144284 US6317770B1 (en) 1997-08-30 1998-08-31 High speed digital signal processor
US09902603 US6463451B2 (en) 1997-08-30 2001-07-12 High speed digital signal processor

Publications (2)

Publication Number Publication Date
KR19990079171A true KR19990079171A (en) 1999-11-05
KR100284181B1 true KR100284181B1 (en) 2001-03-02

Family

ID=

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7233968B2 (en) 2002-07-22 2007-06-19 Samsung Electronics Co., Ltd. Fast fourier transform apparatus
US7626923B2 (en) 2004-09-03 2009-12-01 Electronics And Telecommunications Research Institute Method and apparatus of the variable points IFFT/FFT

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7233968B2 (en) 2002-07-22 2007-06-19 Samsung Electronics Co., Ltd. Fast fourier transform apparatus
US7626923B2 (en) 2004-09-03 2009-12-01 Electronics And Telecommunications Research Institute Method and apparatus of the variable points IFFT/FFT

Similar Documents

Publication Publication Date Title
Wong et al. Martingales and stochastic integrals for processes with a multi-dimensional parameter
US5181183A (en) Discrete cosine transform circuit suitable for integrated circuit implementation
US6035313A (en) Memory address generator for an FFT
US5941940A (en) Digital signal processor architecture optimized for performing fast Fourier Transforms
US5500811A (en) Finite impulse response filter
US4748579A (en) Method and circuit for performing discrete transforms
US5233551A (en) Radix-12 DFT/FFT building block
US4849922A (en) Circuit for computing the quantized coefficient discrete cosine transform of digital signal samples
US3638004A (en) Fourier transform computer
US5249146A (en) Dct/idct processor and data processing method
US6061705A (en) Power and area efficient fast fourier transform processor
Liu Fixed-point fast Fourier transform error analysis
EP0474246A2 (en) Image signal processor
US4829463A (en) Programmed time-changing coefficient digital filter
US5270953A (en) Fast convolution multiplier
US4689762A (en) Dynamically configurable fast Fourier transform butterfly circuit
US4843581A (en) Digital signal processor architecture
US5034910A (en) Systolic fast Fourier transform method and apparatus
US6366936B1 (en) Pipelined fast fourier transform (FFT) processor having convergent block floating point (CBFP) algorithm
US4646256A (en) Computer and method for the discrete bracewell transform
US5694347A (en) Digital signal processing system
US5235535A (en) Arithmetic operation apparatus for elementary function
US6356926B1 (en) Device and method for calculating FFT
US4344151A (en) ROM-Based complex multiplier useful for FFT butterfly arithmetic unit
US5038311A (en) Pipelined fast fourier transform processor