WO2007066964A1 - Memory address generating method and twiddle factor generator using the same - Google Patents

Memory address generating method and twiddle factor generator using the same Download PDF

Info

Publication number
WO2007066964A1
WO2007066964A1 PCT/KR2006/005217 KR2006005217W WO2007066964A1 WO 2007066964 A1 WO2007066964 A1 WO 2007066964A1 KR 2006005217 W KR2006005217 W KR 2006005217W WO 2007066964 A1 WO2007066964 A1 WO 2007066964A1
Authority
WO
WIPO (PCT)
Prior art keywords
twiddle factor
address value
value
control signal
twiddle
Prior art date
Application number
PCT/KR2006/005217
Other languages
French (fr)
Inventor
Hui-Rae Cho
Gweon-Do Jo
Jin-Up Kim
Original Assignee
Electronics And Telecommunications Research Institute
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
Priority claimed from KR1020060118116A external-priority patent/KR20070061357A/en
Application filed by Electronics And Telecommunications Research Institute filed Critical Electronics And Telecommunications Research Institute
Priority to US12/096,774 priority Critical patent/US8458241B2/en
Publication of WO2007066964A1 publication Critical patent/WO2007066964A1/en

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • G06F17/14Fourier, Walsh or analogous domain transformations, e.g. Laplace, Hilbert, Karhunen-Loeve, transforms
    • G06F17/141Discrete Fourier transforms
    • G06F17/142Fast Fourier transforms, e.g. using a Cooley-Tukey type algorithm

Definitions

  • X(Ak) ⁇ x(n) + x ⁇ ⁇ ⁇ ⁇ + x ⁇ n — 1 + jc n w ⁇ N°w ⁇ N kn ⁇ 4
  • N denotes a parameter indicating the respective twiddle factor cases, and it has values of 0, 1, 2, and 3 when a corresponding operation is performed. That is, to obtain an n temporary address value
  • control signals are required to operate the sign inverters 320, 330, 340, and 350, and there are two types of control signals output from the memory address calculator 200.
  • the control signal may be generated according to the temporary value
  • the generated first control signal operates the first switch 310 and the sign inverters
  • step SIlO the memory address calculator 200 inverts the sign of the temporary address value, establishes the temporary address value having the inverted sign as an n twiddle factor address value, and transmits the n ⁇ twiddle factor address value to the twiddle factor storage unit 100 in step S 170. Subsequently, the memory address calculator 200 generates the second control signal in step S 180.
  • FIG. 7 shows a diagram representing variations of the control signal of the twiddle factor generator according to a time variation.

Landscapes

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

Abstract

The present invention relates to a memory address generating method and a twiddle factor generator using the memory address generating method in a fast Fourier transform (FFT) system. In the memory address generating method for generating a memory address of a twiddle factor in a fast Fourier transform (FFT) system according to an embodiment of the present invention: a) a temporary address value of a second twiddle factor is induced and generated based on a first twiddle factor; b) a control signal for controlling the system is generated based on the generated temporary address value; and c) a memory address value of the second twiddle factor is generated from the temporary address value.

Description

Description
MEMORY ADDRESS GENERATING METHOD AND TWIDDLE FACTOR GENERATOR USING THE SAME
Technical Field
[1] The present invention relates to a fast Fourier transform (FFT) system, and more particularly, to a memory address generating method for reducing a memory area and a twiddle factor generator using the memory address generating method.
Background Art
[2] An orthogonal frequency division multiplexing (OFDM) method is used in wireless communication systems including an IEEE 802.11 wireless local area network (WLAN) and an IEEE 802.16 wireless metropolitan area network (MAN), and in digital broadcasting systems including a digital multimedia broadcasting (DMB) system. In this case, a fast Fourier transform (FFT) processor is one of the most important constituent elements in the OFDM system.
[3] An FFT algorithm is used to operate a discrete Fourier transform operation at a high speed, and the discrete Fourier transform (DFT) operation is given as Math Figure 1.
[4] MathFigure 1
\ -l
X(k ) =∑x(rι} - Wf , k = 0, 1, 2, ..., JV - I
n=O
where, W^ = e ~J^r , N = 2'
[5] Here, X( ) denotes a result of the Fourier transform, x(n) denotes a FFT input data row, and W denotes a twiddle factor, which are formed as complex numbers. In this case, the twiddle factor is a periodic function used to convert a time domain signal to a frequency domain signal. The FFT algorithm is performed to realize Math Figure 1.
[6] Various methods for realizing the FFT algorithm have been suggested, which
include a Radix-2 method and a Radix-4 method. Here, a configuration and a controlling operation of the Radix-4 method is more complicated compared to that of the Radix-2, but the Raix-4 method is more widely used since it has better multiplication performance. In the Radix-4 FFT algorithm, complex multiplication of the twiddle factor is performed, and twiddle factor values are stored in a memory.
[7] An algorithm by M. Hasan and T.Arslan has been suggested to reduce the memory area of the twiddle factors in the FFT processor. In the algorithm, since all twiddle factors are formed in blocks by using a symmetry characteristic of the twiddle factor in the Radix-2 FFT processor, N_
2
twiddle factors are reduced to
8
twiddle factors.
[8] However, the above algorithm is used in the Radix-2 method. In addition, it is required to respectively apply different memory address calculations and output Math Figures for the respective divided blocks. That is, a memory address calculation and a realizing configuration that are commonly applied to the respective blocks are not suggested.
[9] The above information disclosed in this Background section is only for enhancement of understanding of the background of the invention and therefore it may contain information that does not form the prior art that is already known in this country to a person of ordinary skill in the art.
Disclosure of Invention
Technical Problem
[10] The present invention has been made in an effort to provide a device for reducing a memory area required to store twiddle factors when a Radix-4 fast Fourier transform (FFT) system is realized, and a method thereof.
Technical Solution
[11] An exemplary twiddle factor generator for generating a twiddle factor in a fast
Fourier transform (FFT) system includes a memory address calculator, a twiddle factor storage unit, and a controller. The memory address calculator generates a temporary address value for calculating a twiddle factor address value, generates a twiddle factor memory address value based on the temporary address value, and outputs a control signal based on the generated temporary address value for the twiddle factor. The twiddle factor storage unit stores a twiddle factor value corresponding to the twiddle factor memory address value, the twiddle factor value is generated based on a previously generated twiddle factor, and the twiddle factor storage unit outputs the twiddle factor value as a real part and an imaginary part. The controller outputs the twiddle factor value to the FFT system based on the control signal output from the memory address calculator.
[12] In an exemplary method for generating a memory address of a twiddle factor in a fast Fourier transform (FFT) system according to an embodiment of the present invention: a temporary address value of the twiddle factor is obtained; a control signal for controlling the FFT system is generated based on the generated temporary address value of the twiddle factor; and a twiddle factor memory address value is output after generating the twiddle factor memory address value based on the generated temporary address value and the control signal.
Advantageous Effects
[13] According to the exemplary embodiment of the present invention, since the number of memories for storing the twiddle factors is reduced to
8
when the Radix-4 FFT processor is realized, an IC chip area may be minimized, and power consumption may be reduced.
[14] In addition, since the address of the twiddle factor is calculated by the suggested
Math Figures and algorithm, the control signal may be formed by a simplified switch.
Brief Description of the Drawings
[15] FIG. 1 shows a diagram representing a signal flow of a conventional Radix-4 fast
Fourier transform butterfly operation.
[16] FIG. 2 shows a diagram representing a configuration of a conventional Radix-
4-square single-path delay feedback (R4SDF) FFT processor (N=256)
[17] FIG. 3 shows a diagram representing twiddle factor sequences of the conventional
Radix-4 FFT system (N=256).
[18] FIG. 4 shows a diagram representing a complex coordinate of twiddle factors of a
Radix_4 FFT system according to an exemplary embodiment of the present invention
(N=64).
[19] FIG. 5 shows a diagram of a configuration of a twiddle factor generator for
generating the twiddle factor of the Radix_4 FFT algorithm according to the exemplary embodiment of the present invention.
[20] FIG. 6 shows a flowchart representing a method for generating a twiddle factor according to the exemplary embodiment of the present invention.
[21] FIG. 7 shows a diagram representing variations of a control signal of the twiddle factor generator according to a time variation.
Best Mode for Carrying Out the Invention
[22] In the following detailed description, only certain exemplary embodiments of the present invention have been shown and described, simply by way of illustration. As those skilled in the art would realize, the described embodiments may be modified in various different ways, all without departing from the spirit or scope of the present invention. Accordingly, the drawings and description are to be regarded as illustrative in nature and not restrictive. Like reference numerals designate like elements throughout the specification. [23] Throughout this specification and the claims that follow, unless explicitly described to the contrary, the word "comprise", and variations such as "comprises" or
"comprising", will be understood to imply the inclusion of stated elements but not the exclusion of any other elements.
[24] A signal flow of a conventional Radix-4 fast Fourier transform (FFT) butterfly operation will be described with reference to FIG. 1. A configuration and a controlling operation of the Radix-4 method are more complicated compared to those of the Radix-2, but the Raix-4 method is more widely used since it has better multiplication performance. Characteristics of a Radix-4 FFT algorithm are shown as following Math Figures. Firstly, a discrete Fourier transform (DFT) Math Figure given as Math Figure 1 is divided into four groups, which is given as Math Figure 2.
[25] MathFigure 2
Λ* / 4-l Λr '2-1 3ΛT ' 4-1 N-I
X(k) WS
W n*k
Figure imgf000006_0001
Figure imgf000006_0002
[26] Math Figure 3 is obtained by dividing output results X(k) of a Fourier transform operation of Math Figure 2 into four sub-groups.
[27] MathFigure 3
N 1 4-1 N N 3N
X(Ak) = Σ x(n) + x\ Π Λ \ + x\ n — 1 + jc n w π N°wπ Nknι 4
H=O 2
X(Ak + 1) = w rr Nnwrr Nkn> 4
Figure imgf000006_0003
X(4k + 2) =
Figure imgf000006_0004
Figure imgf000006_0005
[28] A butterfly basic signal flow of the Radix-4 FFT algorithm is shown as FIG. 1
based on Math Figure 3. FIG. 1 shows a diagram representing a signal flow of a conventional Radix-4 FFT butterfly operation.
[29] As shown in FIG. 1, after performing a butterfly operation of each end, a complex twiddle factor W is multiplied. In this case, in the Radix-4 FFT algorithm, four groups formed, and
TV0 W" W2" W3" are respectively multiplied N/4 times. That is, when realizing the conventional Radix-4 FFT, the twiddle factors previously stored in the memory are used, a memory address storing the twiddle factor at a time when the twiddle factor is multiplied is read, and complex multiplication is performed with input data.
[30] To realize the Radix-4 FFT, FFT realizing methods are provided, such as a Radix-4 single-path delay feedback (R4SDF), a Radix-4 multi-path delay commutator
(R4MDC), and a Radix-4 single-path delay commutator (R4SDC). In the various methods, the twiddle factor multiplication is performed in the same manner, and the twiddle factor is generally stored in the memory.
[31] In an exemplary embodiment of the present invention, a device for reducing a
memory area by using the R4SDF method and a method thereof are suggested. Firstly, a configuration of a R4SDF FFT processor will be described with reference to FIG. 2.
[32] FIG. 2 shows a diagram of a configuration of a conventional R4SDF FFT processor
(N=256).
[33] As shown in FIG. 2, a butterfly unit 11 of the R4SDF FFT processor uses input data and a feedback register to perform complex adding and complex subtracting operations. A calculation result of the butterfly unit 11 is multiplied with a twiddle factor value by a complex multiplier 14, and is transmitted to a subsequent butterfly unit. A twiddle factor storage memory 13 storing the twiddle factors stores complex twiddle values for respective four
W0 W" W2" W3"
cases.
[34] In a like manner of other FFT algorithms, in the Radix-4 FFT processor, the
complex multiplication of the twiddle factor is performed, and the twiddle factor values are stored in the twiddle factor storage memory 13 to use. In this case, as a size N of the FFT operation is increased, the number of the twiddle factors is increased, and therefore it is require to increase the memory area. The increased memory area widely covers an integrated circuit (IC) area, and power consumption is increased. When the N-point FFT operation is performed in the conventional Radix-4 FFT processor, it is required to provide 3N/4 twiddle factor memories.
[35] FIG. 3 shows a diagram representing twiddle factor sequences of the conventional
Radix-4 FFT algorithm (N=256).
[36] The R4SDF is exemplified in the exemplary embodiment of the present invention, but it is not limited thereto, and the Radix-4 FFT algorithms may be applied. [37] Referring to FlG. 3, four twiddle factor cases of Radix-4 are sequentially multiplied during a period for performing the N-point FFT operation. An index increases by 0 in a 0 twiddle factor case, an index increases by 1 in a 1 twiddle factor case, an index increases by 2 in a 2 twiddle factor case, and an index increases by 3 in a 3 twiddle factor case. In Radix-4 FFT processor according to the exemplary embodiment of the present invention, the multiplication is sequentially performed in an order of the 0 twiddle factor case, the 1 twiddle factor case, the 2 twiddle factor case, and the 3 twiddle factor case.
[38] When performing the N-point FFT operation (N=256), 256 twiddle factors are multiplied. The 64 twiddle factors from
W Vy 2056
to
W0
in the 0 twiddle factor case, and the 64 twiddle factors from
W0
to n 256
in the 1 twiddle factor case are input to complex multiplier 14. The 64 twiddle factors from
r r 27556
to
in the 2 twiddle factor case, and the 64 twiddle factors from
VY 256
to
in the 3 twiddle factor case are input to the complex multiplier 14. Here, when a different number is provided as N, the twiddle factor sequence is formed the same above, but a subfix of the twiddle factor is changed and the number of each twiddle factor case becomes N/4.
[39] Twiddle factor values according to an exemplary embodiment of the present
invention will be described with reference to FlG. 4. [40] FlG. 4 shows a diagram representing a complex coordinate of twiddle factors of a
Radix-4 FFT system according to the exemplary embodiment of the present invention (N=64).
[41] Numbers shown in FlG. 4 indicate twiddle factor indexes (N=64). For example, 15 denotes
VV 64
. Referring to FlG. 4, the twiddle factors according to the exemplary embodiment of the present invention have symmetric characteristics.
[42] For example, the twiddle factors 6 and 7 and the twiddle factors 9 and 10 are
symmetrical based on the twiddle factor 8. That is, a real number value and an imaginary number value of the twiddle factor 7 are switched, and signs thereof are changed to obtain the twiddle factor 9.
[43] In addition, the twiddle factor 18 and the twiddle factor 14 are symmetrical based on an imaginary axis. Since the twiddle factors 2 and 4 are symmetrical based on the twiddle factor 8, the twiddle factor 18 may be obtained from the twiddle factor 2.
[44] By using the symmetry characteristic of the twiddle factor, the twiddle factors
(N=64) may be induced from the twiddle factors 0 to 8. That is, the number of twiddle factor memories may be reduced to
^ + 1
8
by storing the twiddle factors 0 to 8 in a memory, according to the exemplary embodiment of the present invention.
[45] The twiddle factors (N=64) may be obtained from the twiddle factor memories
(N=256). For example,
yY 64 — yy 256
. That is, the twiddle factor 15 (N=64) is equal to the twiddle factor 60 (N=256). Accordingly, in the FFT configuration (N=256) shown in FIG. 2, the twiddle factors used in the butterfly unit may be obtained from 33 (=
^ + I
8
) twiddle factor memories stored in the twiddle factor storage memory 13 subsequent to the first butterfly unit.
[46] Table 1 Order 0 1 2 4 h' R 1 0 1 1 1 2 Ki 1 4 I F.
0 twiddle factor cabe Original twiddle [actor number ϋ 0 0 0 0 0 C 0 Q 0 0 0 0 o 0
Induce d twiddle fnctor number 0 0 0 0 0 0 C 0 0 0 0 0 0 0 0 0
1 twiddle factor case Original twiddle factor number 0 1 2 3 1 Ci 7 S 10 1 1 12 13 1 1 I Fj
Induced twiddle tnetoi number 0 1 9, 4 o S n 4 3 2 1
2 twiddle factor Oi minal twiddle [actor number ϋ 4 8 10 12 14 16 18 20 22 24 26 28 30
Induce el twiddle fnctor number (1 I 8 (j 1 2 () 2 1 () 8 () 1 2
3 twiddle factor case ( Jricinnl twiddle tπctoi number 0 3 R 1 2 I F) I S 2 1 24 27 no 33 36 3 P 42 4F)
Induced twiddle factor number 0 6 7 4 1 8 5 1 4 7 6 3
[47] Table 1 shows twiddle factors 0 to 8 induced by using the symmetrical characteristics of the twiddle factors (N=64) shown in FlG. 4. Math Figure 4 is used to induce the twiddle factors (i.e., a memory address of the twiddle factor) shown in Table 1.
[48] MathFigure 4
[49] Here,
A
n _ Imp
denotes a temporary calculation value of an address of the twiddle factor, and a memory address A n of the induced twiddle factor is determined according to three cases shown in Math Figure 5. S denotes a sign value alternately having -1 and 1, and an initial value thereof is set to 1.
[50] N denotes a parameter indicating the respective twiddle factor cases, and it has values of 0, 1, 2, and 3 when a corresponding operation is performed. That is, to obtain an n temporary address value
Λ
n _ tmp
, the sign value of the twiddle factor and the parameter of the twiddle factor case are multiplied, and an address value of an (n-1)* twiddle factor that is a previous twiddle factor address value is added.
[51] MathFigure 5
CD When D > An tmp > 0 , An = An tmp .
® When An tmp > Ω , An = 2D - An_tmp , and S = - 1
@ When Ann _ tmp ≤ O , An = -A n _ tmp , and S = I
[52] Here, D denotes a minimum symmetric point of the twiddle factor. When the N- point FFT is performed, D = N/8. That is, when N=64, D= 8 in HG. 8. The twiddle factors shown in Table 1 are sequentially obtained by Math Figure 4 and Math Figure 5.
[53] That is, a temporary address value of an n twiddle factor obtained by Math Figure
4 and the minimum symmetric point of a (n-1)* twiddle factor are compared. When the temporary address value is equal to or greater than the minimum symmetric point, the memory address value of the n* twiddle factor is set by doubling the minimum symmetric point of the twiddle factor and subtracting the temporary address value of the n* twiddle factor. In addition, when the temporary address value of the n* twiddle factor is lower than 0, the memory address value of the n twiddle factor is set by reversing the sign of the temporary address value of the n* twiddle factor.
[54] A device for generating the twiddle factor will be described with reference to FIG.
5.
[55] FIG. 5 shows a diagram of a configuration of a twiddle factor generator for
generating the twiddle factor of the Radix-4 FFT algorithm according to the exemplary embodiment of the present invention.
[56] As shown in FIG. 5, the twiddle factor generator for generating the twiddle factor includes a twiddle factor storage unit 100, a memory address calculator 200, and a controller 300.
[57] The twiddle factor storage unit 100 stores the twiddle factors required to perform the N-point FFT algorithm, and separates the twiddle factor into a real part and an imaginary part. In this case,
^ + I
8
storage spaces are required as described with reference to FIG. 4. For example, when the N-point FFT algorithm is performed (N=256), the number of twiddle factors is 33, and the number of storage spaces is 33.
[58] The memory address calculator 200 operates Math Figure 4 and Math Figure 5.
That is, the memory address calculator 200 generates a memory address of the twiddle factor stored in the twiddle factor storage unit 100.
[59] As described in FIG. 4, the twiddle factor to be actually output is obtained by
switching the real part and the imaginary part of a value induced from the twiddle factor storage unit 100, or switching signs thereof, which may be easily performed by two control signals according to the value
A
n _ tmp
of the memory address calculator 200.
[60] The controller 300 includes switches 310 and 360, and sign inverters 320, 330, 340, and 350. The switch 310 (also, referred to as a "first switch") switches the real and imaginary parts of the twiddle factor output by the twiddle factor storage unit 100 when A > D, A = 2D - A , and S= -1 in the case (D shown in Math Figure 5. In n_tmp n n_tmp
the case ®, the real part and the imaginary part are not switched.
[61] The switch 360 (also, referred to a "second switch") operates the sign inverters 330 and 350. That is, when A n_tmp < 0 in the case (D shown in Math Figure 5, the sign inverters 330 and 350 are driven. That is, the second switch 360 is maintained in an initial state at a start point of each case, and sequentially operates the sign inverters 330 and 350 when the case (D shown in Math Figure 5 occurs.
[62] The sign inverters 320, 330, 340, and 350 receive operation signals from the
memory address calculator 200, and invert signs of signals from the switch 310 to output final twiddle factors as shown in FIG. 5. Here, control signals are required to operate the sign inverters 320, 330, 340, and 350, and there are two types of control signals output from the memory address calculator 200. The control signal may be generated according to the temporary value
A
n Imp
of the twiddle factor calculated by the memory address calculator 200.
[63] For example, the sign inverters 320 and 340 alternately output signals having the sign of the original signal, the inverted sign, and the sign of the original signal when the control signal corresponding to the case (D shown in Math Figure 2 is generated. Hereinafter, the control signal that is output from an upper terminal of the memory address calculator 200 shown in FIG. 5 will be referred to as a "first control signal". That is, the first switch 310 switches the real part and the imaginary part output from the twiddle factor storage unit 100 according to the first control signal, and sign inverters 320 and 340 invert the sign thereof. In this case, a negative sign is multiplied when the first control signal is initially generated, and a positive sign is multiplied when a subsequent first control signal is generated.
[64] The control signal (hereinafter, referred to as a "second control signal") output from a lower terminal of the memory address calculator 200 shown in FIG. 5 is activated in the case (D shown in Math Figure 5. The activated second control signal operates the second switch 360 and the sign inverters 330 and 350 to invert the sign of the signal output from the switch 310. Here, the sign inverters 330 and 350 invert the sign of the signal input thereto.
[65] The second switch 360 operates when the second control signal is generated. The second control signal may be generated twice to the maximum during one twiddle factor case. When the second control signal is initially generated, the second switch 360 is connected to the sign inverter 330 to invert the sign of the output signal. When the second control signal is subsequently generated, the switch 360 is connected to the sign inverter 350 to invert the sign of the signal output as the imaginary part. When one twiddle factor case is finished, the state of the sign inverters 330 and 350 is turned back to an original state thereof, and the sign inverters 330 and 350 output an input signal without switching the sign.
[66] The sign inverters 320, 330, 340, and 350, the switches 310 and 360, and the first and second control signals are initialized when the respective twiddle factor cases are started.
[67] In the cases (D and ® shown in Math Figure 5, W(n)_real and W(n)_imag are output as values of which signs are inverted or the real and imaginary parts are switched. In the case ® shown in Math Figure 5, the control operations of the switch 360 and the sign inverters 320, 330, 340, and 350 are not performed.
[68] That is, when the case (D shown in Math Figure 5 is initially generated and the
switch 310 operates, the real and imaginary parts may be switched and the signs may be inverted. When the subsequent temporary twiddle factor calculation value corresponds to the case ®, the switch 310 and the sign inverters 320, 330, 340, and 350 are maintained to output the value of which the real part and the imaginary part are switched and the signs are inverted. The output values are input to complex multiplier 14shown in FIG. 1, and remaining FFT operations are performed.
[69] A method for finally generating the twiddle factor by the twiddle factor generator described in FIG. 5 will be described with reference to FIG. 6.
[70] FIG. 6 shows a flowchart representing a method for generating a twiddle factor according to the exemplary embodiment of the present invention.
[71] As shown in FIG. 6, a temporary address value of an n* twiddle factor is induced by using Math Figure 4 in step SlOO. The temporary value of the twiddle factor is induced by multiplying a sign value of the twiddle factor and a parameter value indicating the twiddle factor case, and adding an address value of an (n-1) twiddle factor.
[72] When the temporary address value of the nth twiddle factor is induced in step S 100, the corresponding temporary address value is determined in step SIlO based on the three cases shown in Math Figure 5.
[73] When the temporary address value is given as
D > An tmp > 0
(i.e., the case ® shown in Math Figure 5), the temporary address value is set as an n twiddle factor value, and the address value is transmitted to the twiddle factor storage unit 100 storing the N/8+1 complex twiddle factor values in step S 120. When the twiddle factor value is output as the real part and the imaginary part based on the transmitted twiddle factor address value, the output twiddle factor is transmitted as the final twiddle factor value without changing the real and imaginary parts and the signs in step S 130. That is, the real and imaginary parts and the signs of a previous stage are output.
[74] When the temporary address value is given as
Figure imgf000014_0001
in step SIlO (i.e., the case (D shown in Math Figure 5), the memory address calculator 200 establishes a memory address value of the n twiddle factor by doubling the minimum symmetric point of the twiddle factor and subtracting the temporary address value in step S 140. Subsequently, the memory address calculator 200 generates the first control signal in step S 150.
[75] The generated first control signal operates the first switch 310 and the sign inverters
320 and 340 to switch the real part and the imaginary part of the n twiddle factor output from the twiddle factor storage unit 100 in step S 160. The twiddle factor, in which the real part and the imaginary part are switched, is output as the final twiddle factor value in step S 130.
[76] When the temporary address value is given as
^n tmp < o
(i.e., the case (D shown in Math Figure 5) in step SIlO, the memory address calculator 200 inverts the sign of the temporary address value, establishes the temporary address value having the inverted sign as an n twiddle factor address value, and transmits the nΛ twiddle factor address value to the twiddle factor storage unit 100 in step S 170. Subsequently, the memory address calculator 200 generates the second control signal in step S 180.
[77] The generated second control signal operates the sign inverters 330 and 350 to invert the signs of the real and imaginary parts of the n* twiddle factor output from the twiddle factor storage unit 100, in step S 190. The twiddle factor, of which the sign of the real part or the imaginary part is inverted, is output as the final twiddle factor value in step S 130.
[78] Variations of the control signal, which is described in FIG. 5, according to a time variation will be described with reference to FIG. 7.
[79] FIG. 7 shows a diagram representing variations of the control signal of the twiddle factor generator according to a time variation.
[80] Since all twiddle factor values are
in the 0 twiddle factor case as shown in Table 1, descriptions thereof will be omitted. Referring to FIG. 7, in the 1, 2, and 3 twiddle factor cases, the real and imaginary parts are switched and signs of the real and imaginary parts are inverted in the case ®, and the signs of the real part and the imaginary part are sequentially inverted once in the case (D.
[81] As shown in FlG. 7, the 9 twiddle factor values are set (i.e., 0 to 8) according to the minimum symmetric point of the twiddle factor when N=64 in the exemplary embodiment of the present invention, but they are not limited thereto,
[82] In addition, a dotted line shows that the ® or (D case is generated according to the calculation of Math Figure 4 and Math Figure 5 and shows a time for generating the first control signal or the second control signal according to the ® or (D case. Accordingly, after the dotted line, a type of an output signal is changed.
[83] Referring to FlG. 7, in the 1 twiddle factor case (i.e., the index of the twiddle factor is 1), the first control signal is generated when a ninth twiddle factor is calculated. In the 3 twiddle factor case (i.e., the index of the twiddle factor is 3), the first control signal and the second control signal are alternately applied in a line manner of the 1 and 2 twiddle factor cases.
[84] In the 2 twiddle factor case (i.e., the index of the twiddle factor is 2), four twiddle factor values are calculated, the first control signal is generated, and a fifth twiddle factor value is calculated. After the first signal is generated and the four twiddle factor values are calculated, the second control signal is generated, and the ninth twiddle factor value is calculated.
[85] In further detail, when the fourth twiddle factor value is 6, A is 4 (refer to the 2 n-l
twiddle factor case shown in Table 1), S is 1, and N is 2. A , which is a temporary
Q n-tmp
address value of the fourth twiddle factor, is 6 (i.e., 4+1
2). In this case, since a result value 6 corresponds to the ® shown in Math Figure 5, the temporary address value 6 is set as a memory address value of the fourth twiddle factor.
[86] When a fifth twiddle factor value is 8, A is 6, S is 1, N is 2. A , which is the n-l Q n_tmp
temporary address value of the fifth twiddle factor, is 8 (i.e., 6 + 1
2). In this case, since the result value 8 corresponds to the ® case shown in Math Figure 5, the memory address calculator 200 generates the first control signal. The generated first control signal operates the first switch 310 to switch the real and imaginary parts and to invert the signs. In the twiddle factor values in the 3 twiddle factor case shown in FlG. 7, the memory address value thereof is determined in a like manner of the 2 twiddle factor case.
[87] The above-described methods and apparatuses are not only realized by the
exemplary embodiment of the present invention, but, on the contrary, are intended to be realized by a program for realizing functions corresponding to the configuration of the exemplary embodiment of the present invention or a recording medium for recording the program.
[88] While this invention has been described in connection with what is presently
considered to be practical exemplary embodiments, it is to be understood that the invention is not limited to the disclosed embodiments, but, on the contrary, is intended to cover various modifications and equivalent arrangements included within the spirit and scope of the appended claims.
[89]
[90]

Claims

Claims
[1] A twiddle factor generator for generating a twiddle factor in a fast Fourier
transform (FFT) system, the twiddle factor generator comprising: a memory address calculator for generating a temporary address value for calculating a twiddle factor address value, generating a twiddle factor memory address value based on the temporary address value, and outputting a control signal based on the generated temporary address value for the twiddle factor; a twiddle factor storage unit for storing a twiddle factor value corresponding to the twiddle factor memory address value, the twiddle factor value generated based on a previously generated twiddle factor, and outputting the twiddle factor value as a real part and an imaginary part; and
a controller for outputting the twiddle factor value to the FFT system based on the control signal output from the memory address calculator.
[2] The twiddle factor generator of claim 1, wherein the controller comprises:
a first switch for switching the real part and the imaginary part of the twiddle factor based on the control signal and outputting the switched real and imaginary parts of the second twiddle factor;
a sign inverter for inverting signs of the real and imaginary parts of the twiddle factor output from the twiddle factor storage unit and signs of the switched real and imaginary parts of the twiddle factor; and
a second switch for performing connection on the sign inverter to invert the signs of the real part and the imaginary part of the twiddle factor.
[3] The twiddle factor generator of claim 1, wherein the memory address calculator calculates an address value of the twiddle factor based on the temporary twiddle factor address value obtained by multiplying a sign value of the twiddle factor and a parameter value indicating a twiddle factor case, and adding an address value of the twiddle factor that is calculated before the temporary twiddle factor address value to the multiplied value.
[4] The twiddle factor generator of claim 3, wherein the twiddle factor case
comprises 0 to 3 twiddle factor cases, and the plurality of twiddle factor values in the respective twiddle factor cases are sequentially output from the memory address calculator
[5] The twiddle factor generator of claim 4, wherein the control signal is divided as a first control signal and a second control signal based on the temporary address value of the twiddle factor and a minimum symmetric point of the previously generated twiddle factor.
[6] The twiddle factor generator of claim 5, wherein the first control signal is activated when the temporary address value of the twiddle factor is equal to or greater than the minimum symmetric point of the previously generated twiddle factor, and the second control signal is activated when the temporary address value of the twiddle factor is equal to or less than 0.
[7] The twiddle factor generator of claim 6, wherein, when the first control signal is activated, the memory address value of the twiddle factor is set by subtracting the temporary address value of the twiddle factor from the minimum symmetric point of the previously generated twiddle factor.
[8] The twiddle factor generator of claim 6, wherein, when the second control signal is activated, the memory address value of the twiddle factor is set by inverting the sign of the temporary address value of the twiddle factor.
[9] The twiddle factor generator of claim 6, wherein the real and imaginary parts of the twiddle factor output from the switch are switched when the first control signal is activated, and a sign of any one of the real part and the imaginary part of the twiddle factor output from the twiddle factor storage unit is inverted when the second control signal is activated.
[10] The twiddle factor generator of claim 1, wherein the twiddle factor storage unit has a dimension obtained by dividing a dimension of the FFT by the minimum symmetric point of the first twiddle factor and adding 1 thereto.
[11] The twiddle factor generator of claim 1, wherein the FFT system performs an
FFT operation in a Radix-4 method.
[12] A method for generating a memory address of a twiddle factor in a fast Fourier transform (FFT) system, the method comprising:
obtaining a temporary address value of the twiddle factor;
generating a control signal for controlling the FFT system based on the generated temporary address value of the twiddle factor; and
outputting a twiddle factor memory address value after generating the twiddle factor memory address value based on the generated temporary address value and the control signal.
[13] The method of claim 12, wherein, in the generating of the temporary address value, a sign value of the twiddle factor is multiplied by a parameter value indicating a twiddle factor case, and an address value of a previously generated twiddle factor that is calculated before the temporary address value of the second twiddle factor is added to the multiplied value to generate the temporary address value of the twiddle factor, wherein the twiddle factor case comprises 0 to 4 twiddle factor cases, and the respective twiddle factor cases comprises the plurality of parameter values.
[14] The method of claim 12, wherein, in the generating of the control signal, the control signal is generated as a first control signal when the temporary address value is equal to or greater than a minimum symmetric point value, and it is generated as a second control signal when the temporary address value is equal to or less than 0, wherein the minimum symmetric point value is a minimum symmetric point of a previously generated twiddle factor that is used to obtain the twiddle factor.
[15] The method of claim 14, wherein, the outputting of the memory address value comprises, when the first control signal is generated, setting the memory address value of the twiddle factor by subtracting the temporary address value from the minimum symmetric point value.
[16] The method of claim 14, wherein, the outputting of the memory address value comprises, when the second control signal is generated, setting the address value of the twiddle factor by inverting a sign of the temporary address value.
[17] The method of claim 14, wherein, in the outputting of the memory address value, when the temporary address value is less than the minimum symmetric point or greater than 0, the temporary address value is set as the memory address value of the second twiddle factor.
[18] The method of claim 12, wherein the FFT system performs an FFT operation in a
Radix-4 method.
PCT/KR2006/005217 2005-12-08 2006-12-06 Memory address generating method and twiddle factor generator using the same WO2007066964A1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US12/096,774 US8458241B2 (en) 2005-12-08 2006-12-06 Memory address generating method and twiddle factor generator using the same

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
KR10-2005-0119889 2005-12-08
KR20050119889 2005-12-08
KR1020060118116A KR20070061357A (en) 2005-12-08 2006-11-28 Memory address generating method and twiddle factor generator using the same
KR10-2006-0118116 2006-11-28

Publications (1)

Publication Number Publication Date
WO2007066964A1 true WO2007066964A1 (en) 2007-06-14

Family

ID=38123062

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/KR2006/005217 WO2007066964A1 (en) 2005-12-08 2006-12-06 Memory address generating method and twiddle factor generator using the same

Country Status (1)

Country Link
WO (1) WO2007066964A1 (en)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5491652A (en) * 1994-10-21 1996-02-13 United Microelectronics Corporation Fast Fourier transform address generator
US6609140B1 (en) * 1999-11-30 2003-08-19 Mercury Computer Systems, Inc. Methods and apparatus for fast fourier transforms
US20050182806A1 (en) * 2003-12-05 2005-08-18 Qualcomm Incorporated FFT architecture and method
US7062523B1 (en) * 2000-08-01 2006-06-13 Analog Devices, Inc. Method for efficiently computing a fast fourier transform

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5491652A (en) * 1994-10-21 1996-02-13 United Microelectronics Corporation Fast Fourier transform address generator
US6609140B1 (en) * 1999-11-30 2003-08-19 Mercury Computer Systems, Inc. Methods and apparatus for fast fourier transforms
US7062523B1 (en) * 2000-08-01 2006-06-13 Analog Devices, Inc. Method for efficiently computing a fast fourier transform
US20050182806A1 (en) * 2003-12-05 2005-08-18 Qualcomm Incorporated FFT architecture and method

Similar Documents

Publication Publication Date Title
JP7074363B2 (en) Homomorphic processing unit (HPU) to accelerate secure computation under homomorphic encryption
JP4022546B2 (en) Mixed-radix modulator using fast Fourier transform
US6035313A (en) Memory address generator for an FFT
US8917588B2 (en) Fast Fourier transform and inverse fast Fourier transform (FFT/IFFT) operating core
WO2010108371A1 (en) Circuit and method for implementing fft/ifft transform
CN111737638A (en) Data processing method based on Fourier transform and related device
JP4160564B2 (en) Fast Fourier transform apparatus with improved processing speed and processing method thereof
WO2008132510A2 (en) Fft processor
WO2002091221A3 (en) Address generator for fast fourier transform processor
JP2006221648A (en) Fast fourier transformation processor and fast fourier transformation method capable of reducing memory size
US8458241B2 (en) Memory address generating method and twiddle factor generator using the same
Chi et al. A cost-effective memory-based real-valued FFT and Hermitian symmetric IFFT processor for DMT-based wire-line transmission systems
US9164959B1 (en) Discrete fourier transform calculation method and apparatus
US6728742B1 (en) Data storage patterns for fast fourier transforms
US8484273B1 (en) Processing system and method for transform
WO2007066964A1 (en) Memory address generating method and twiddle factor generator using the same
JPH08320858A (en) Unit and method for fourier transformation arithmetic operation
TW200811672A (en) Optimized multi-mode DFT implementation
Li et al. A unified computing kernel for MDCT/IMDCT in modern audio coding standards
Wu et al. Efficient VLSI architecture of Bluestein’s FFT for fully homomorphic encryption
JP3962331B2 (en) Method, circuit arrangement and use thereof for performing a fast Fourier transform
TW201227351A (en) Recursive modified discrete cosine transform and inverse discrete cosine transform system with a computing kernel of RDFT
Cho et al. R2²SDF FFT Implementation with Coefficient Memory Reduction Scheme
Long et al. A low-complexity generalized memory addressing scheme for continuous-flow fast Fourier transform
CN111291315A (en) Data processing method, device and equipment

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application
WWE Wipo information: entry into national phase

Ref document number: 12096774

Country of ref document: US

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 06823924

Country of ref document: EP

Kind code of ref document: A1