US20040128335A1 - Fast fourier transform (FFT) butterfly calculations in two cycles - Google Patents
Fast fourier transform (FFT) butterfly calculations in two cycles Download PDFInfo
- Publication number
- US20040128335A1 US20040128335A1 US10/665,415 US66541503A US2004128335A1 US 20040128335 A1 US20040128335 A1 US 20040128335A1 US 66541503 A US66541503 A US 66541503A US 2004128335 A1 US2004128335 A1 US 2004128335A1
- Authority
- US
- United States
- Prior art keywords
- result
- cycle
- imaginary
- data input
- real
- Prior art date
- Legal status (The legal status 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 status listed.)
- Abandoned
Links
- 238000000034 method Methods 0.000 claims description 16
- 101001030591 Homo sapiens Mitochondrial ubiquitin ligase activator of NFKB 1 Proteins 0.000 description 9
- 102100038531 Mitochondrial ubiquitin ligase activator of NFKB 1 Human genes 0.000 description 9
- 238000010586 diagram Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000007796 conventional method Methods 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
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
-
- 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
- G06F17/141—Discrete Fourier transforms
- G06F17/142—Fast Fourier transforms, e.g. using a Cooley-Tukey type algorithm
Definitions
- a digital signal processor is a computer that is designed to optimize digital signal processing tasks.
- a non-exhaustive list of examples of such processing tasks includes Fast Fourier Transform (FFT) calculations, digital filters, image processing, and speech recognition.
- FFT Fast Fourier Transform
- FIG. 1 is a simplified block diagram illustration of an exemplary digital signal processor (DSP) to perform Fast Fourier Transform (FFT) calculations, according to an embodiment of the invention
- FIG. 2 is a tabular illustration of the contents of registers of the exemplary DSP of FIG. 1 over several cycles;
- FIG. 3 is another tabular illustration of the contents of registers of the exemplary DSP of FIG. 1 over several cycles.
- FIG. 1 is a simplified block diagram illustration of an exemplary digital signal processor (DSP) 2 to perform Fast Fourier Transform (FFT) calculations, according to an embodiment of the invention.
- DSP 2 may perform other calculations, but these are not described so as not to obscure the description of the embodiments of the invention.
- DSP 2 may include two three-input arithmetic logic units (ALU) 10 and 12 , each capable of receiving three inputs and performing any combination of addition and subtraction on the three inputs in response to program instructions to yield a combined result.
- DSP 2 may also include multipliers 14 and 16 , labeled MUL 1 and MUL 2 , to perform multiplication on real and imaginary sinusoidal data inputs B R and B I and coefficients W R and W I using conventional techniques. Results from multipliers 14 and 16 may be stored in registers 18 and 20 respectively, labeled P 0 and P 1 , from which the results may then be input to ALUs 10 and 12 .
- DSP 2 may also include two registers 22 and 24 , labeled Zr 0 and Zr 1 , to receive real cosinusoidal data input A R , and two registers 26 and 28 , labeled Zi 0 and Zi 1 , to receive imaginary cosinusoidal data input A I .
- DSP 2 may also include a multiplexer 30 to selectably provide data from registers Zr 0 , ZrI and Zi 1 to ALUs 10 and 12 .
- DSP 2 may optionally concatenate a rounding constant C to the multiplexed data, shown at reference numeral 35 , to form a low-ordered portion of the concatenated input to ALUs 10 and 12 .
- DSP 2 may also include two registers 34 and 36 , labeled A 0 and A 1 , to receive output from ALU 10 , and two registers 38 and 40 , labeled A 2 and A 3 , to receive output from ALU 12 .
- DSP 2 may also include a register 42 , labeled A 0 hp, to receive a high-ordered portion of the data stored in A 0 , and a register 44 , labeled A 2 hp, to receive a high-ordered portion of the data stored in A 2 .
- DSP 2 may also include a multiplexer 46 to selectably provide data from A 0 hp or A 2 hp.
- DSP 2 may also include a multiplexer 48 to selectably provide data from A 1 or A 3 .
- DSP 2 may include additional components that are not shown in FIG. 1 so as not to obscure the description of embodiments of the invention.
- FIG. 1 is a tabular illustration of the contents of registers of DSP 2 over several cycles.
- registers Zr 0 and Zi 0 , and registers Zr 1 and Zi 1 may store the first real cosinusoidal data input (A R [1]) and the first imaginary cosinusoidal data input (A I [1]), respectively, register P 0 may store the product of the first real sinusoidal data input (B R [1]) and the first real coefficient (W R [1]), and register P 1 may store the product of the first imaginary sinusoidal data input (B I [1]) and the first imaginary coefficient (W I [1]).
- CYCLE #1 During a first cycle, labeled CYCLE #1, the following actions may occur:
- multiplexer 30 may retrieve the contents of Zr 1 (A R [1]), the rounding constant C may optionally be concatenated to that value, and the possibly concatenated output of multiplexer 30 may be provided to ALUs 10 and 12 ;
- ALU 10 may add the possibly concatenated output to the contents of register P 0 (B R [1]*W R [1]) and subtract therefrom the contents of register P 1 (B I [1]*W I [1]) and store the result (OUT 0 [1]) in register A 0 ;
- ALU 12 may add the possibly concatenated output to the contents of register P 1 and subtract therefrom the contents of register P 0 and store the result (OUT 2 [1]) in register A 2 ;
- registers Zr 0 and Zi 0 may receive the real and imaginary cosinusoidal data inputs for the second FFT butterfly (A R [2] and A I [2], respectively);
- multiplier MUL 1 may multiply the first real sinusoidal data input (B R [1]) with the first imaginary coefficient (W I [1]) and store the product in register P 0
- multiplier MUL 2 may multiply the first imaginary sinusoida data input (B I [1]) with the first real coefficient (W R [1]) and store the product in register P 1 .
- CYCLE #2 During a second cycle, labeled CYCLE #2, the following actions may occur:
- multiplexer 30 may retrieve the contents of Zi 1 (A I [1]), the rounding constant C may optionally be concatenated to that value, and the possibly concatenated output of multiplexer 30 may be provided to ALUs 10 and 12 ;
- ALU 10 may add the possibly concatenated output to the contents of register P 0 (B R [1]*W I [1]) and the contents of register P 1 (B I [1]*W R [1]) and store the result (OUT 1 [1]) in register A 1 ;
- ALU 12 may subtract both the contents of register P 0 and the contents of register P 1 from the possibly concatenated output and store the result (OUT 3 [1]) in register A 3 ; and
- multiplier MUL 1 may multiply the second real sinusoidal data input (B R [2]) with the second real coefficient (W R [2]) and store the product in register P 0
- multiplier MUL 2 may multiply the second imaginary sinusoidal data input (B I [2]) with the second imaginary coefficient (W I [2]) and store the product in register P 1 ;
- multiplexer 30 may retrieve the contents of Zr 1 (A R [2]), the rounding constant C may optionally be concatenated to that value, and the possibly concatenated output of multiplexer 30 may be provided to ALUs 10 and 12 ;
- ALU 10 may add the possibly concatenated output to the contents of register P 0 (B R [2]*W R [2]) and subtract therefrom the contents of register P 1 (B I [2]*W I [2]) and store the result (OUT 0 [2]) in register A 0 ;
- ALU 12 may add the possibly concatenated output to the contents of register P 1 and subtract therefrom the contents of register P 0 and store the result (OUT 2 [2] ) in register A 2 ;
- registers Zr 0 and Zi 0 may receive the real and imaginary cosinusoidal data inputs for the third FFT butterfly (A R [3] and A I [3], respectively);
- multiplier MUL 1 may multiply the second real sinusoidal data input (B R [2]) with the second imaginary coefficient (W I [2]) and store the product in register P 0
- multiplier MUL 2 may multiply the second imaginary sinusoidal data input (B I [2]) with the second real coefficient (W R [2]) and store the product in register P 1 .
- a high-ordered portion of registers A 0 and A 2 may be copied to registers A 0 hp and A 2 hp, respectively;
- multiplexer 30 may retrieve the contents of Zi 1 (A I [2]), the rounding constant C may optionally be concatenated to that value, and the possibly concatenated output of multiplexer 30 may be provided to ALUs 10 and 12 ;
- ALU 10 may add the possibly concatenated output to the contents of register P 0 (B R [2]*W I [2]) and the contents of register P 1 (B I [2]*W R [2]) and store the result (OUT 1 [2]) in register A 1 ;
- ALU 12 may subtract both the contents of register P 0 and the contents of register P 1 from the possibly concatenated output and store the result (OUT 3 [2]) in register A 3 ; and
- multiplier MUL 1 may multiply the third real sinusoidal data input (B R [3]) with the third real coefficient (W R [3]) and store the product in register P 0
- multiplier MUL 2 may multiply the third imaginary sinusoidal data input (B I [3]) with the third imaginary coefficient (W I [3]) and store the product in register P 1 ;
- registers Zr 0 A R [3]
- Zi 0 A I [3]
- CYCLE #5 a fifth cycle, labeled CYCLE #5, the following actions may occur:
- multiplexer 30 may retrieve the contents of Zr 1 (A R [3]), the rounding constant C may optionally be concatenated to that value, and the possibly concatenated output of multiplexer 30 may be provided to ALUs 10 and 12 ;
- ALU 10 may add the possibly concatenated output to the contents of register P 0 (B R [3]*W R [3]) and subtract therefrom the contents of register P 1 (B I [3]*W I [3]) and store the result (OUT 0 [3]) in register A 0 ;
- ALU 12 may add the possibly concatenated output to the contents of register P 1 and subtract therefrom the contents of register P 0 and store the result (OUT 2 [3]) in register A 2 ;
- registers Zr 0 and Zi 0 may receive the real and imaginary cosinusoidal data inputs for the fourth FFT butterfly (A R [4] and A I [4], respectively);
- multiplier MUL 1 may multiply the third real sinusoidal data input (B R [3]) with the third imaginary coefficient (W I [3]) and store the product in register P 0
- multiplier MUL 2 may multiply the third imaginary sinusoidal data input (B I [3]) with the third real coefficient (W R [3]) and store the productin register P 1 .
- a high-ordered portion of registers A 0 and A 2 may be copied to registers A 0 hp and A 2 hp, respectively;
- multiplexer 30 may retrieve the contents of Zi 1 (A I [3]), the rounding constant C may optionally be concatenated to that value, and the possibly concatenated output of multiplexer 30 may be provided to ALUs 10 and 12 ;
- ALU 10 may add the possibly concatenated output to the contents of register P 0 (B R [3]*W I [3]) and the contents of register P 1 (B I [3]*W R [3]) and store the result (OUT 1 [3]) in register A 1 ;
- ALU 12 may subtract both the contents of register P 0 and the contents of register P 1 from the possibly concatenated output and store the result (OUT 3 [3]) in register A 3 ; and
- multiplier MUL 1 may multiply the fourth real sinusoidal data input (B R [4]) with the fourth real coefficient (W R [4]) and store the product in register P 0
- multiplier MUL 2 may multiply the fourth imaginary sinusoidal data input (B I [4]) with the fourth imaginary coefficient (W I [4]) and store the product in register P 1 ;
- registers Zr 0 A R [4]
- Zi 0 A I [4]
- CYCLES #7 and #9 are similar to those of CYCLES #1, #3, and #5, while the actions of CYCLE #8 are similar to those of CYCLES #2, #4 and #6. Subsequent cycles are performed until all the input data has been fully processed.
- Registers Zr 0 and Zi 0 receive the real and imaginary cosinusoidal data inputs for the FFT butterfly (A R and A I , respectively) in each “first cycle” (CYCLE #1, CYCLE #3, etc.), and maintain their values in each “second cycle” (CYCLE #2, CYCLE #4, etc.).
- Registers Zr 1 and Zi 1 receive the contents of registers Zr 0 and Zi 0 respectively in each “second cycle” and maintain their values in each “first cycle”.
- multiplier MUL 1 multiplies the real sinusoidal data input (B R ) with the imaginary coefficient (W I ) and stores the product in register P 0
- multiplier MUL 2 multiplies the imaginary sinusoidal data input (B I ) with the real coefficient (W R ) and stores the product in register P 1
- multiplier MUL 1 multiplies the real sinusoidal data input (B R ) with the real coefficient (W R ) and stores the product in register P 0
- multiplier MUL 2 multiplies the imaginary sinusoidal data input (B I ) with the imaginary coefficient (W I ) and stores the product in register P 1 .
- multiplexer 30 may retrieve the contents of Zr 1 (A R ), the rounding constant C may optionally be concatenated to that value, and the possibly concatenated output of multiplexer 30 may be provided to ALUs 10 and 12 ;
- ALU 10 may add the possibly concatenated output to the contents of register P 0 (B R *W R ) and subtract therefrom the contents of register P 1 (B I *W I ) and store the result (OUT 0 ) in register A 0 .
- ALU 12 may add the possibly concatenated output to the contents of register P 1 and subtract therefrom the contents of register P 0 and store the result (OUT 2 ) in register A 2 .
- Registers A 0 and A 2 maintain their values in each “second cycle”.
- registers A 0 and A 2 may be copied to registers A 0 hp and A 2 hp, respectively.
- Registers A 0 hp and A 2 hp maintain their values in each “first cycle”.
- multiplexer 30 may retrieve the contents of Zi 1 (A I ), the rounding constant C may optionally be concatenated to that value, and the possibly concatenated output of multiplexer 30 may be provided to ALUs 10 and 12 ;
- ALU 10 may add the possibly concatenated output to the contents of register P 0 (B R *W I ) and the contents of register P 1 (B I *W R ) and store the result (OUT 1 ) in register A 1 .
- ALU 12 may subtract both the contents of register P 0 and the contents of register P 1 from the possibly concatenated output and store the result (OUT 3 ) in register A 3 .
- Registers A 1 and A 3 maintain their values in each “first cycle”.
- DSP 2 may include multiplexer 46 to selectably provide data from registers A 0 hp or A 2 hp, and multiplexer 48 to selectably provide data from registers A 1 or A 3 . Therefore, in any given cycle, data may be read from A 0 hp and A 1 , or from A 0 hp and A 3 , or from A 2 hp and A 1 , or from A 2 hp and A 3 . In the following examples, data is read from registers A 0 hp and A 1 in one cycle and from registers A 2 hp and A 3 in the next cycle.
- FIG. 3 is another tabular illustration of the contents of registers of the exemplary DSP of FIG. 1 over several cycles.
- FIG. 3 is identical to FIG. 2, except that FIG. 3 shows an alternate manner for reading the FFT calculation results.
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)
- Algebra (AREA)
- Databases & Information Systems (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Discrete Mathematics (AREA)
- Complex Calculations (AREA)
Abstract
A digital signal processor (DSP) including two multipliers and two three-input arithmetic logic units is able to perform a sequence of Fast Fourier Transform butterfly calculations such that results of a butterfly calculation in said sequence are available two cycles after results of an immediately previous butterfly calculation in said sequence are available.
Description
- This application is a continuation of U.S. patent application Ser. No. 09/587,617, filed Jun. 5, 2000, which is hereby incorporated by reference.
- A digital signal processor (DSP) is a computer that is designed to optimize digital signal processing tasks. A non-exhaustive list of examples of such processing tasks includes Fast Fourier Transform (FFT) calculations, digital filters, image processing, and speech recognition.
- Embodiments of the invention are illustrated by way of example and not limitation in the figures of the accompanying drawings, in which like reference numerals indicate corresponding, analogous or similar elements, and in which:
- FIG. 1 is a simplified block diagram illustration of an exemplary digital signal processor (DSP) to perform Fast Fourier Transform (FFT) calculations, according to an embodiment of the invention;
- FIG. 2 is a tabular illustration of the contents of registers of the exemplary DSP of FIG. 1 over several cycles; and
- FIG. 3 is another tabular illustration of the contents of registers of the exemplary DSP of FIG. 1 over several cycles.
- It will be appreciated that for simplicity and clarity of illustration, elements shown in the figures have not necessarily been drawn to scale. For example, the dimensions of some of the elements may be exaggerated relative to other elements for clarity.
- In the following detailed description, numerous specific details are set forth in order to provide a thorough understanding of embodiments of the invention. However it will be understood by those of ordinary skill in the art that the embodiments of the invention may be practiced without these specific details. In other instances, well-known methods, procedures, components and circuits have not been described in detail so as not to obscure the embodiments of the invention.
- FIG. 1 is a simplified block diagram illustration of an exemplary digital signal processor (DSP)2 to perform Fast Fourier Transform (FFT) calculations, according to an embodiment of the invention. DSP 2 may perform other calculations, but these are not described so as not to obscure the description of the embodiments of the invention.
DSP 2 may include two three-input arithmetic logic units (ALU) 10 and 12, each capable of receiving three inputs and performing any combination of addition and subtraction on the three inputs in response to program instructions to yield a combined result.DSP 2 may also includemultipliers multipliers registers ALUs - DSP2 may also include two
registers registers multiplexer 30 to selectably provide data from registers Zr0, ZrI and Zi1 toALUs DSP 2 may optionally concatenate a rounding constant C to the multiplexed data, shown atreference numeral 35, to form a low-ordered portion of the concatenated input toALUs - DSP2 may also include two
registers ALU 10, and tworegisters ALU 12. DSP 2 may also include aregister 42, labeled A0 hp, to receive a high-ordered portion of the data stored in A0, and aregister 44, labeled A2 hp, to receive a high-ordered portion of the data stored in A2. - DSP2 may also include a
multiplexer 46 to selectably provide data from A0 hp or A2 hp. DSP 2 may also include amultiplexer 48 to selectably provide data from A1 or A3. - DSP2 may include additional components that are not shown in FIG. 1 so as not to obscure the description of embodiments of the invention.
- An exemplary FFT butterfly calculation will now be described with respect to FIG. 1 and FIG. 2, which is a tabular illustration of the contents of registers of
DSP 2 over several cycles. - Each FFT butterfly calculation, indexed by k, is to result in four outputs:
- OUT0[k]=A R [k]+B R [k]*W R [k]−B I [k]*W I [k]
- OUT1[k]=A I [k]+B R [k]*W I [k]+B I [k]*W R [k]
- OUT2[k]=A R [k]−B R [k]*W R [k]+B I [k]*W I [k]
- OUT3[k]=A I [k]−B R [k]*W I [k]−B I [k]*W R [k]
- where, if the optional rounding constant is used, then AR [k] (AI [k]) is replaced by AR [k]* C (AI [k]*C) in the equations above, and the following description will demonstrate one example of how these four outputs for a particular butterfly calculation may be calculated in two cycles.
- In an exemplary initial state, registers Zr0 and Zi0, and registers Zr1 and Zi1 may store the first real cosinusoidal data input (AR [1]) and the first imaginary cosinusoidal data input (AI [1]), respectively, register P0 may store the product of the first real sinusoidal data input (BR [1]) and the first real coefficient (WR [1]), and register P1 may store the product of the first imaginary sinusoidal data input (BI [1]) and the first imaginary coefficient (WI [1]).
-
CYCLE # 1 - During a first cycle, labeled
CYCLE # 1, the following actions may occur: - a)
multiplexer 30 may retrieve the contents of Zr1 (AR [1]), the rounding constant C may optionally be concatenated to that value, and the possibly concatenated output ofmultiplexer 30 may be provided toALUs ALU 10 may add the possibly concatenated output to the contents of register P0 (BR [1]*WR [1]) and subtract therefrom the contents of register P1 (BI [1]*WI [1]) and store the result (OUT0 [1]) in register A0;ALU 12 may add the possibly concatenated output to the contents of register P1 and subtract therefrom the contents of register P0 and store the result (OUT 2 [1]) in register A2; - b) registers Zr0 and Zi0 may receive the real and imaginary cosinusoidal data inputs for the second FFT butterfly (AR [2] and AI [2], respectively); and
- c) multiplier MUL1 may multiply the first real sinusoidal data input (BR [1]) with the first imaginary coefficient (WI [1]) and store the product in register P0, and multiplier MUL2 may multiply the first imaginary sinusoida data input (BI [1]) with the first real coefficient (WR [1]) and store the product in register P1.
-
CYCLE # 2 - During a second cycle, labeled
CYCLE # 2, the following actions may occur: - a) a high-ordered portion of registers A0 and A2 (containing outputs of the first FFT butterfly calculation) may be copied to registers A0 hp and A2 hp, respectively;
- b)
multiplexer 30 may retrieve the contents of Zi1 (AI [1]), the rounding constant C may optionally be concatenated to that value, and the possibly concatenated output ofmultiplexer 30 may be provided toALUs ALU 10 may add the possibly concatenated output to the contents of register P0 (BR [1]*WI [1]) and the contents of register P1 (BI [1]*WR [1]) and store the result (OUT1 [1]) in register A1;ALU 12 may subtract both the contents of register P0 and the contents of register P1 from the possibly concatenated output and store the result (OUT3 [1]) in register A3; and - c) multiplier MUL1 may multiply the second real sinusoidal data input (BR [2]) with the second real coefficient (WR [2]) and store the product in register P0, and multiplier MUL2 may multiply the second imaginary sinusoidal data input (BI [2]) with the second imaginary coefficient (WI [2]) and store the product in register P1; and
- d) the contents of registers Zr0 (AR [2]) and Zi0 (AI [2]) may be input to registers Zr1 and Zi1.
- It should be noted that at the end of
CYCLE # 2, the four outputs of the first FFT butterfly calculation, (OUT0 [1], OUT1 [1], OUT2 [1], OUT3 [1]) have been calculated and are stored in registers A0 (and A0 hp), A1, A2 (and A2 hp) and A3, respectively. -
CYCLE # 3 - During a third cycle, labeled
CYCLE # 3, the following actions may occur: - a)
multiplexer 30 may retrieve the contents of Zr1 (AR [2]), the rounding constant C may optionally be concatenated to that value, and the possibly concatenated output ofmultiplexer 30 may be provided toALUs ALU 10 may add the possibly concatenated output to the contents of register P0 (BR [2]*WR [2]) and subtract therefrom the contents of register P1 (BI [2]*WI [2]) and store the result (OUT0 [2]) in register A0;ALU 12 may add the possibly concatenated output to the contents of register P1 and subtract therefrom the contents of register P0 and store the result (OUT2 [2] ) in register A2; - b) registers Zr0 and Zi0 may receive the real and imaginary cosinusoidal data inputs for the third FFT butterfly (AR [3] and AI [3], respectively); and
- c) multiplier MUL1 may multiply the second real sinusoidal data input (BR [2]) with the second imaginary coefficient (WI [2]) and store the product in register P0, and multiplier MUL2 may multiply the second imaginary sinusoidal data input (BI [2]) with the second real coefficient (WR [2]) and store the product in register P1.
-
CYCLE # 4 - During a fourth cycle, labeled
CYCLE # 4, the following actions may occur: - a) a high-ordered portion of registers A0 and A2 (containing outputs of the second FFT butterfly calculation) may be copied to registers A0 hp and A2 hp, respectively;
- b)
multiplexer 30 may retrieve the contents of Zi1 (AI [2]), the rounding constant C may optionally be concatenated to that value, and the possibly concatenated output ofmultiplexer 30 may be provided toALUs ALU 10 may add the possibly concatenated output to the contents of register P0 (BR [2]*WI [2]) and the contents of register P1 (BI [2]*WR [2]) and store the result (OUT1 [2]) in register A1;ALU 12 may subtract both the contents of register P0 and the contents of register P1 from the possibly concatenated output and store the result (OUT3 [2]) in register A3; and - c) multiplier MUL1 may multiply the third real sinusoidal data input (BR [3]) with the third real coefficient (WR [3]) and store the product in register P0, and multiplier MUL2 may multiply the third imaginary sinusoidal data input (BI [3]) with the third imaginary coefficient (WI [3]) and store the product in register P1; and
- d) the contents of registers Zr0 (AR [3]) and Zi0 (AI [3]) may be input to registers Zr1 and Zi1, respectively.
- It should be noted that at the end of
CYCLE # 4, the four outputs of the second FFT butterfly calculation, (OUT0 [2], OUT1[2], OUT2 [2], OUT3 [2]) have been calculated and are stored in registers A0 (and A0 hp), A1, A2 (and A2 hp) and A3, respectively. -
CYCLE # 5 - During a fifth cycle, labeled
CYCLE # 5, the following actions may occur: - a)
multiplexer 30 may retrieve the contents of Zr1 (AR [3]), the rounding constant C may optionally be concatenated to that value, and the possibly concatenated output ofmultiplexer 30 may be provided toALUs ALU 10 may add the possibly concatenated output to the contents of register P0 (BR [3]*WR [3]) and subtract therefrom the contents of register P1 (BI [3]*WI [3]) and store the result (OUT0 [3]) in register A0;ALU 12 may add the possibly concatenated output to the contents of register P1 and subtract therefrom the contents of register P0 and store the result (OUT2 [3]) in register A2; - b) registers Zr0 and Zi0 may receive the real and imaginary cosinusoidal data inputs for the fourth FFT butterfly (AR [4] and AI [4], respectively); and
- c) multiplier MUL1 may multiply the third real sinusoidal data input (BR [3]) with the third imaginary coefficient (WI [3]) and store the product in register P0, and multiplier MUL2 may multiply the third imaginary sinusoidal data input (BI [3]) with the third real coefficient (WR [3]) and store the productin register P1.
-
CYCLE # 6 - During a sixth cycle, labeled
CYCLE # 6, the following actions may occur: - a) a high-ordered portion of registers A0 and A2 (containing outputs of the third FFT butterfly calculation) may be copied to registers A0 hp and A2 hp, respectively;
- b)
multiplexer 30 may retrieve the contents of Zi1 (AI [3]), the rounding constant C may optionally be concatenated to that value, and the possibly concatenated output ofmultiplexer 30 may be provided toALUs ALU 10 may add the possibly concatenated output to the contents of register P0 (BR [3]*WI [3]) and the contents of register P1 (BI [3]*WR [3]) and store the result (OUT1 [3]) in register A1;ALU 12 may subtract both the contents of register P0 and the contents of register P1 from the possibly concatenated output and store the result (OUT3 [3]) in register A3; and - c) multiplier MUL1 may multiply the fourth real sinusoidal data input (BR [4]) with the fourth real coefficient (WR [4]) and store the product in register P0, and multiplier MUL2 may multiply the fourth imaginary sinusoidal data input (BI [4]) with the fourth imaginary coefficient (WI [4]) and store the product in register P1; and
- d) the contents of registers Zr0 (AR [4]) and Zi0 (AI [4]) may be input to registers Zr1 and Zi1, respectively.
- It should be noted that at the end of
CYCLE # 6, the four outputs of the third FFT butterfly calculation, (OUT0 [3], OUT1 [3], OUT2 [3], OUT3 [3]) have been calculated and are stored in registers A0 (and A0 hp), A1, A2 (and A2 hp) and A3, respectively. - Subsequent Cycles
- The actions of
CYCLES # 7 and #9 are similar to those ofCYCLES # 1, #3, and #5, while the actions ofCYCLE # 8 are similar to those ofCYCLES # 2, #4 and #6. Subsequent cycles are performed until all the input data has been fully processed. - Data Propagation
- Consequently, the data propagation in the structure shown in FIG. 1 may be considered as follows:
- a) Registers Zr0 and Zi0 receive the real and imaginary cosinusoidal data inputs for the FFT butterfly (AR and AI, respectively) in each “first cycle” (
CYCLE # 1,CYCLE # 3, etc.), and maintain their values in each “second cycle” (CYCLE # 2,CYCLE # 4, etc.). - b) Registers Zr1 and Zi1 receive the contents of registers Zr0 and Zi0 respectively in each “second cycle” and maintain their values in each “first cycle”.
- c) In each “first cycle”, multiplier MUL1 multiplies the real sinusoidal data input (BR) with the imaginary coefficient (WI) and stores the product in register P0, and multiplier MUL2 multiplies the imaginary sinusoidal data input (BI) with the real coefficient (WR) and stores the product in register P1. In each “second cycle”, multiplier MUL1 multiplies the real sinusoidal data input (BR) with the real coefficient (WR) and stores the product in register P0, and multiplier MUL2 multiplies the imaginary sinusoidal data input (BI) with the imaginary coefficient (WI) and stores the product in register P1.
- d) In each “first cycle”
multiplexer 30 may retrieve the contents of Zr1 (AR), the rounding constant C may optionally be concatenated to that value, and the possibly concatenated output ofmultiplexer 30 may be provided toALUs ALU 10 may add the possibly concatenated output to the contents of register P0 (BR*WR) and subtract therefrom the contents of register P1 (BI*WI) and store the result (OUT0) in register A0.ALU 12 may add the possibly concatenated output to the contents of register P1 and subtract therefrom the contents of register P0 and store the result (OUT2) in register A2. Registers A0 and A2 maintain their values in each “second cycle”. - e) In each “second cycle”, a high-ordered portion of registers A0 and A2 may be copied to registers A0 hp and A2 hp, respectively. Registers A0 hp and A2 hp maintain their values in each “first cycle”.
- f) In each “second cycle”
multiplexer 30 may retrieve the contents of Zi1 (AI), the rounding constant C may optionally be concatenated to that value, and the possibly concatenated output ofmultiplexer 30 may be provided toALUs ALU 10 may add the possibly concatenated output to the contents of register P0 (BR*WI) and the contents of register P1 (BI*WR) and store the result (OUT1) in register A1.ALU 12 may subtract both the contents of register P0 and the contents of register P1 from the possibly concatenated output and store the result (OUT3) in register A3. Registers A1 and A3 maintain their values in each “first cycle”. - Reading FFT Calculation Results to Memory
- As mentioned hereinabove,
DSP 2 may includemultiplexer 46 to selectably provide data from registers A0 hp or A2 hp, andmultiplexer 48 to selectably provide data from registers A1 or A3. Therefore, in any given cycle, data may be read from A0 hp and A1, or from A0 hp and A3, or from A2 hp and A1, or from A2 hp and A3. In the following examples, data is read from registers A0 hp and A1 in one cycle and from registers A2 hp and A3 in the next cycle. - The reading of the FFT calculation results OUT0 [k] and OUT1 [k] during a “first cycle”](
CYCLE # 3, #5, #7, #9, etc.) is indicated in FIG. 2 by diagonal lines, where the values read are the values in registers A0 hp and A1 at the end of the previous “first cycle” (CYCLE # 2, #4, #6, #8, etc., respectively). - The reading of the FFT calculation results OUT2 [k] and OUT3 [k] during a “second cycle” (
CYCLE # 4, #6, #8, etc.) is indicated in FIG. 2 by diagonal lines, where the values read are the values in registers A2 hp and A3 at the end of the previous “first cycle” (CYCLE # 3, #5, #7, etc., respectively). - Consequently, it should be noted that all four FFT calculation results from a single butterfly may be read in two cycles.
- FIG. 3 is another tabular illustration of the contents of registers of the exemplary DSP of FIG. 1 over several cycles. FIG. 3 is identical to FIG. 2, except that FIG. 3 shows an alternate manner for reading the FFT calculation results.
- The reading of the FFT calculation results OUT2 [k] and OUT3 [k] during a “first cycle” (
CYCLE # 3, #5, #7, etc.) is indicated in FIG. 3 by diagonal lines, where the values read are the values in registers A2 hp and A3 at the end of the previous “second cycle” (CYCLE # 2, #4, #6, etc., respectively). - The reading of the FFT calculation results OUT0 [k] and OUT1 [k] during a “second cycle” (
CYCLE # 4, #6, #8, etc.) is indicated in FIG. 3 by diagonal lines, where the values read are the values in registers A0 hp and A1 at the end of the previous “first cycle” (CYCLE # 3, #5, #7, etc., respectively). - Consequently, it should be noted that all four FFT calculation results from a single butterfly may be read in two cycles.
- It should also be noted that other manners for reading the FFT calculation results in two or more cycles are also applicable to the embodiments of the present invention. For example, the manner shown in FIG. 2 may be used for some pairs of consecutive cycles and the manner shown in FIG. 3 may be used for other pairs of consecutive cycles.
- While certain features of the invention have been illustrated and described herein, many modifications, substitutions, changes, and equivalents will now occur to those of ordinary skill in the art. It is, therefore, to be understood that the appended claims are intended to cover all such modifications and changes as fall within the true spirit of the invention.
Claims (13)
1. A method comprising:
performing a sequence of Fast Fourier Transform butterfly calculations such that results of a butterfly calculation in said sequence are available two cycles after results of an immediately previous butterfly calculation in said sequence are available.
2. A method to calculate four results of a Fast Fourier Transform butterfly calculation in two cycles, the calculation involving real and imaginary cosinusoidal data inputs, real and imaginary sinusoidal data inputs, and real and imaginary coefficients, the method comprising:
in a first cycle:
adding a first value to a first product of a real sinusoidal data input and a real coefficient and subtracting therefrom a second product of an imaginary sinusoidal data input and an imaginary coefficient to produce a first result; and
adding said first value to said second product and subtracting therefrom said first product to produce a second result; and
in a second cycle:
adding a second value to a third product of said real sinusoidal data input and said imaginary coefficient and to a fourth product of said imaginary sinusoidal data input and said real coefficient to produce a third result; and
subtracting from said second value said third product and said fourth product to produce a fourth result.
3. The method of claim 2 , wherein said first value is a real cosinusoidal data input and said second value is an imaginary cosinusoidal data input.
4. The method of claim 2 , the method further comprising:
in said first cycle:
concatenating a rounding constant to a real cosinusoidal data input to produce said first value; and
in said second cycle:
concatenating said rounding constant to an imaginary cosinusoidal data input to produce said second value.
5. The method of claim 2 , the method further comprising:
in said first cycle:
multiplying said real sinusoidal data input and said imaginary coefficient to produce said third product; and
multiplying said imaginary sinusoidal data input and said real coefficient to produce said fourth product.
6. The method of claim 2 , the method further comprising:
in said second cycle:
multiplying a real sinusoidal data input of a next butterfly calculation and a real coefficient of said next butterfly calculation to produce a first product for said next butterfly calculation; and
multiplying an imaginary sinusoidal data input of said next butterfly calculation and an imaginary coefficient of said next butterfly calculation to produce a second product for said next butterfly calculation.
7. The method of claim 2 , the method further comprising:
writing to memory said first result, said second result, said third result and said fourth result within two cycles.
8. The method of claim 2 , the method further comprising:
writing said first result and said third result to memory in a particular cycle and said second result and said fourth result to memory in a next cycle.
9. A digital signal processor comprising:
a first multiplier and a second multiplier, where in a first cycle said first multiplier is to multiply a real sinusoidal data input of a Fast Fourier Transform butterfly calculation and an imaginary coefficient of said butterfly calculation and said second multiplier is to multiply an imaginary sinusoidal data input of said butterfly calculation and a real coefficient of said butterfly calculation, and where in a second cycle said first multiplier is to multiply a real sinusoidal data input of a next butterfly calculation and a real coefficient of said next butterfly calculation and said second multiplier is to multiply an imaginary sinusoidal data input of said next butterfly calculation and an imaginary coefficient of said next butterfly calculation;
a first three-input arithmetic logic unit, where in a first cycle said first arithmetic logic unit is to subtract an output of said second multiplier from an output of said first multiplier and to add thereto a first value to produce a first result, and where in a second cycle said first arithmetic logic unit is to add the output of said first multiplier and the output of said second multiplier to a second value to produce a second result; and
a second three-input arithmetic logic unit, where in a first cycle said second arithmetic logic unit is to subtract an output of said first multiplier from an output of said second multiplier and to add thereto said first value to produce a third result, and where in a second cycle said second arithmetic logic unit is to subtract the output of said first multiplier and the output of said second multiplier from said second value to produce a fourth result.
10. The digital signal processor of claim 9 , wherein said first value is a real cosinusoidal data input of said butterfly calculation and said second value is an imaginary cosinusoidal data input of said butterfly calculation.
11. The digital signal processor of claim 9 , wherein said first value is a concatenation of a rounding constant to a real cosinusoidal data input of said butterfly calculation and said second value is a concatenation of said rounding constant to an imaginary cosinusoidal data input of said butterfly calculation.
12. The digital signal processor of claim 9 , further comprising:
means for writing to memory said first result, said second result, said third result and said fourth result within two cycles.
13. The digital signal processor of claim 12 , wherein said means for writing includes at least:
means for writing said first result and said third result to memory in a particular cycle; and
means for writing said second result and said fourth result to memory in a next cycle.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US10/665,415 US20040128335A1 (en) | 2000-06-05 | 2003-09-22 | Fast fourier transform (FFT) butterfly calculations in two cycles |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US09/587,617 US6625630B1 (en) | 2000-06-05 | 2000-06-05 | Two cycle FFT |
US10/665,415 US20040128335A1 (en) | 2000-06-05 | 2003-09-22 | Fast fourier transform (FFT) butterfly calculations in two cycles |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US09/587,617 Continuation US6625630B1 (en) | 2000-06-05 | 2000-06-05 | Two cycle FFT |
Publications (1)
Publication Number | Publication Date |
---|---|
US20040128335A1 true US20040128335A1 (en) | 2004-07-01 |
Family
ID=24350516
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US09/587,617 Expired - Lifetime US6625630B1 (en) | 2000-06-05 | 2000-06-05 | Two cycle FFT |
US10/665,415 Abandoned US20040128335A1 (en) | 2000-06-05 | 2003-09-22 | Fast fourier transform (FFT) butterfly calculations in two cycles |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US09/587,617 Expired - Lifetime US6625630B1 (en) | 2000-06-05 | 2000-06-05 | Two cycle FFT |
Country Status (4)
Country | Link |
---|---|
US (2) | US6625630B1 (en) |
EP (1) | EP1162545A3 (en) |
JP (1) | JP2002032358A (en) |
KR (1) | KR20010110202A (en) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070073796A1 (en) * | 2005-09-23 | 2007-03-29 | Newlogic Technologies Ag | Method and apparatus for fft computation |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2002037259A1 (en) * | 2000-11-01 | 2002-05-10 | Bops, Inc. | Methods and apparatus for efficient complex long multiplication and covariance matrix implementation |
US7010558B2 (en) * | 2001-04-19 | 2006-03-07 | Arc International | Data processor with enhanced instruction execution and method |
KR100416641B1 (en) * | 2001-07-20 | 2004-02-05 | 학교법인대우학원 | The Calculation Methods and Cricuits for High-Speed FFT on Programmable Processors |
US20030212721A1 (en) * | 2002-05-07 | 2003-11-13 | Infineon Technologies Aktiengesellschaft | Architecture for performing fast fourier transforms and inverse fast fourier transforms |
US6704760B2 (en) * | 2002-04-11 | 2004-03-09 | Interdigital Technology Corporation | Optimized discrete fourier transform method and apparatus using prime factor algorithm |
US7873815B2 (en) * | 2004-03-04 | 2011-01-18 | Qualcomm Incorporated | Digital signal processors with configurable dual-MAC and dual-ALU |
KR100585967B1 (en) * | 2004-12-14 | 2006-06-01 | 한국전자통신연구원 | Apparatus of selectively performing fast hadamard transform and fast fourier transform, and cck modulation and demodulation apparatus using it |
CN113378108B (en) * | 2020-02-25 | 2023-04-18 | 珠海市煊扬科技有限公司 | Fast Fourier transform circuit of audio processing device |
KR102376492B1 (en) | 2020-08-05 | 2022-03-21 | 아스텔 주식회사 | Fast Fourier transform device and method using real valued as input |
Citations (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3673399A (en) * | 1970-05-28 | 1972-06-27 | Ibm | Fft processor with unique addressing |
US3702393A (en) * | 1970-10-21 | 1972-11-07 | Bell Telephone Labor Inc | Cascade digital fast fourier analyzer |
US4501149A (en) * | 1982-10-29 | 1985-02-26 | Asahi Kasei Kogyo Kabushiki Kaisha | Micro fracture detector |
US4612626A (en) * | 1983-12-27 | 1986-09-16 | Motorola Inc. | Method of performing real input fast fourier transforms simultaneously on two data streams |
US5038311A (en) * | 1990-08-10 | 1991-08-06 | General Electric Company | Pipelined fast fourier transform processor |
US5042000A (en) * | 1988-03-23 | 1991-08-20 | Du Pont Pixel Systems Limited | Integral transform method |
US5373460A (en) * | 1993-03-11 | 1994-12-13 | Marks, Ii; Robert J. | Method and apparatus for generating sliding tapered windows and sliding window transforms |
US5548543A (en) * | 1994-12-08 | 1996-08-20 | Stanford University | Computationally efficient linear-phase finite impulse response filter |
US5941940A (en) * | 1997-06-30 | 1999-08-24 | Lucent Technologies Inc. | Digital signal processor architecture optimized for performing fast Fourier Transforms |
US5987490A (en) * | 1997-11-14 | 1999-11-16 | Lucent Technologies Inc. | Mac processor with efficient Viterbi ACS operation and automatic traceback store |
US5994787A (en) * | 1996-09-19 | 1999-11-30 | Toyota Jidosha Kabushiki Kaisha | Control system for a power supply changeover switch |
US6155728A (en) * | 1997-07-02 | 2000-12-05 | Citizen Watch Co., Ltd. | Printer |
US6317770B1 (en) * | 1997-08-30 | 2001-11-13 | Lg Electronics Inc. | High speed digital signal processor |
US6366937B1 (en) * | 1999-03-11 | 2002-04-02 | Hitachi America Ltd. | System and method for performing a fast fourier transform using a matrix-vector multiply instruction |
US6385635B1 (en) * | 1998-04-23 | 2002-05-07 | Nec Corporation | Product sum operation device capable of carrying out fast operation |
US6549925B1 (en) * | 1998-05-18 | 2003-04-15 | Globespanvirata, Inc. | Circuit for computing a fast fourier transform |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4748579A (en) * | 1985-08-14 | 1988-05-31 | Gte Laboratories Incorporated | Method and circuit for performing discrete transforms |
US4996661A (en) * | 1988-10-05 | 1991-02-26 | United Technologies Corporation | Single chip complex floating point numeric processor |
US5694347A (en) * | 1991-12-19 | 1997-12-02 | Hughes Electronics | Digital signal processing system |
-
2000
- 2000-06-05 US US09/587,617 patent/US6625630B1/en not_active Expired - Lifetime
-
2001
- 2001-06-01 EP EP01304852A patent/EP1162545A3/en not_active Withdrawn
- 2001-06-05 JP JP2001169011A patent/JP2002032358A/en active Pending
- 2001-06-05 KR KR1020010031351A patent/KR20010110202A/en not_active Application Discontinuation
-
2003
- 2003-09-22 US US10/665,415 patent/US20040128335A1/en not_active Abandoned
Patent Citations (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3673399A (en) * | 1970-05-28 | 1972-06-27 | Ibm | Fft processor with unique addressing |
US3702393A (en) * | 1970-10-21 | 1972-11-07 | Bell Telephone Labor Inc | Cascade digital fast fourier analyzer |
US4501149A (en) * | 1982-10-29 | 1985-02-26 | Asahi Kasei Kogyo Kabushiki Kaisha | Micro fracture detector |
US4612626A (en) * | 1983-12-27 | 1986-09-16 | Motorola Inc. | Method of performing real input fast fourier transforms simultaneously on two data streams |
US5042000A (en) * | 1988-03-23 | 1991-08-20 | Du Pont Pixel Systems Limited | Integral transform method |
US5038311A (en) * | 1990-08-10 | 1991-08-06 | General Electric Company | Pipelined fast fourier transform processor |
US5373460A (en) * | 1993-03-11 | 1994-12-13 | Marks, Ii; Robert J. | Method and apparatus for generating sliding tapered windows and sliding window transforms |
US5548543A (en) * | 1994-12-08 | 1996-08-20 | Stanford University | Computationally efficient linear-phase finite impulse response filter |
US5994787A (en) * | 1996-09-19 | 1999-11-30 | Toyota Jidosha Kabushiki Kaisha | Control system for a power supply changeover switch |
US5941940A (en) * | 1997-06-30 | 1999-08-24 | Lucent Technologies Inc. | Digital signal processor architecture optimized for performing fast Fourier Transforms |
US6155728A (en) * | 1997-07-02 | 2000-12-05 | Citizen Watch Co., Ltd. | Printer |
US6317770B1 (en) * | 1997-08-30 | 2001-11-13 | Lg Electronics Inc. | High speed digital signal processor |
US6463451B2 (en) * | 1997-08-30 | 2002-10-08 | Lg Electronics Inc. | High speed digital signal processor |
US5987490A (en) * | 1997-11-14 | 1999-11-16 | Lucent Technologies Inc. | Mac processor with efficient Viterbi ACS operation and automatic traceback store |
US6385635B1 (en) * | 1998-04-23 | 2002-05-07 | Nec Corporation | Product sum operation device capable of carrying out fast operation |
US6549925B1 (en) * | 1998-05-18 | 2003-04-15 | Globespanvirata, Inc. | Circuit for computing a fast fourier transform |
US6366937B1 (en) * | 1999-03-11 | 2002-04-02 | Hitachi America Ltd. | System and method for performing a fast fourier transform using a matrix-vector multiply instruction |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070073796A1 (en) * | 2005-09-23 | 2007-03-29 | Newlogic Technologies Ag | Method and apparatus for fft computation |
Also Published As
Publication number | Publication date |
---|---|
EP1162545A3 (en) | 2005-01-26 |
EP1162545A2 (en) | 2001-12-12 |
US6625630B1 (en) | 2003-09-23 |
KR20010110202A (en) | 2001-12-12 |
JP2002032358A (en) | 2002-01-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6366936B1 (en) | Pipelined fast fourier transform (FFT) processor having convergent block floating point (CBFP) algorithm | |
US6502117B2 (en) | Data manipulation instruction for enhancing value and efficiency of complex arithmetic | |
JP4064989B2 (en) | Device for performing multiplication and addition of packed data | |
JPH10214176A (en) | Device for quickly calculating transcendental function | |
US5457805A (en) | Microcomputer enabling high speed execution of product-sum operation | |
US5452466A (en) | Method and apparatus for preforming DCT and IDCT transforms on data signals with a preprocessor, a post-processor, and a controllable shuffle-exchange unit connected between the pre-processor and post-processor | |
US8239442B2 (en) | Computing module for efficient FFT and FIR hardware accelerator | |
US6463451B2 (en) | High speed digital signal processor | |
US20040128335A1 (en) | Fast fourier transform (FFT) butterfly calculations in two cycles | |
WO2002091221A3 (en) | Address generator for fast fourier transform processor | |
JP4402654B2 (en) | Result segmentation in SIMD data processing system | |
JP2725544B2 (en) | DCT and inverse DCT operation device and operation method thereof | |
US7774397B2 (en) | FFT/IFFT processor | |
Takala et al. | Butterfly unit supporting radix-4 and radix-2 FFT | |
US20030212722A1 (en) | Architecture for performing fast fourier-type transforms | |
JP3709291B2 (en) | Fast complex Fourier transform method and apparatus | |
US20030212721A1 (en) | Architecture for performing fast fourier transforms and inverse fast fourier transforms | |
US9311274B2 (en) | Approach for significant improvement of FFT performance in microcontrollers | |
Khan et al. | High performance discrete cosine transform operator using multimedia oriented subword parallelism | |
JPS63133268A (en) | Pipeline type fft butterfly calculator | |
JP2953918B2 (en) | Arithmetic unit | |
Tarkas et al. | Implementation of Radix-2 Butterfly Using Distributed Arithmetic Algorithm (DAA) | |
KR100451147B1 (en) | High-speed multiplier, realized in small size so as to be used as a multiplier engine of a processor and designed in single structure having regularity | |
JP2697619B2 (en) | N-point FFT dedicated processor | |
Bowlyn et al. | A novel distributed arithmetic approach for computing a radix-2 FFT butterfly implementation |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
AS | Assignment |
Owner name: DSP GROUP LTD., ISRAEL Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:VINITZKY, GIL;REEL/FRAME:014849/0252 Effective date: 20000605 |
|
STCB | Information on status: application discontinuation |
Free format text: ABANDONED -- FAILURE TO RESPOND TO AN OFFICE ACTION |