US20040128335A1 - Fast fourier transform (FFT) butterfly calculations in two cycles - Google Patents

Fast fourier transform (FFT) butterfly calculations in two cycles Download PDF

Info

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
Application number
US10/665,415
Inventor
Gil Vinitzky
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
DSP Group Ltd
Original Assignee
Individual
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Individual filed Critical Individual
Priority to US10/665,415 priority Critical patent/US20040128335A1/en
Assigned to DSP GROUP LTD. reassignment DSP GROUP LTD. ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: VINITZKY, GIL
Publication of US20040128335A1 publication Critical patent/US20040128335A1/en
Abandoned legal-status Critical Current

Links

Images

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
    • 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

  • 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

    CROSS-REFERENCE TO RELATED APPLICATIONS
  • 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.[0001]
  • BACKGROUND OF THE INVENTION
  • 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. [0002]
  • BRIEF DESCRIPTION OF THE DRAWINGS
  • 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: [0003]
  • 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; [0004]
  • FIG. 2 is a tabular illustration of the contents of registers of the exemplary DSP of FIG. 1 over several cycles; and [0005]
  • FIG. 3 is another tabular illustration of the contents of registers of the exemplary DSP of FIG. 1 over several cycles.[0006]
  • 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. [0007]
  • DETAILED DESCRIPTION OF THE INVENTION
  • 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. [0008]
  • FIG. 1 is a simplified block diagram illustration of an exemplary digital signal processor (DSP) [0009] 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 MUL1 and MUL2, to perform multiplication on real and imaginary sinusoidal data inputs BR and BI and coefficients WR and WI using conventional techniques. Results from multipliers 14 and 16 may be stored in registers 18 and 20 respectively, labeled P0 and P1, from which the results may then be input to ALUs 10 and 12.
  • DSP [0010] 2 may also include two registers 22 and 24, labeled Zr0 and Zr1, to receive real cosinusoidal data input AR, and two registers 26 and 28, labeled Zi0 and Zi1, to receive imaginary cosinusoidal data input AI. DSP 2 may also include a multiplexer 30 to selectably provide data from registers Zr0, ZrI and Zi1 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 [0011] 2 may also include two registers 34 and 36, labeled A0 and A1, to receive output from ALU 10, and two registers 38 and 40, labeled A2 and A3, to receive output from ALU 12. DSP 2 may also include a register 42, labeled A0 hp, to receive a high-ordered portion of the data stored in A0, and a register 44, labeled A2 hp, to receive a high-ordered portion of the data stored in A2.
  • DSP [0012] 2 may also include a multiplexer 46 to selectably provide data from A0 hp or A2 hp. DSP 2 may also include a multiplexer 48 to selectably provide data from A1 or A3.
  • DSP [0013] 2 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 [0014] DSP 2 over several cycles.
  • Each FFT butterfly calculation, indexed by k, is to result in four outputs: [0015]
  • 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 A[0016] R [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 Zr[0017] 0 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]).
  • [0018] CYCLE #1
  • During a first cycle, labeled [0019] CYCLE #1, the following actions may occur:
  • a) [0020] 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 of multiplexer 30 may be provided to ALUs 10 and 12; 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 Zr[0021] 0 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 MUL[0022] 1 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.
  • [0023] CYCLE #2
  • During a second cycle, labeled [0024] CYCLE #2, the following actions may occur:
  • a) a high-ordered portion of registers A[0025] 0 and A2 (containing outputs of the first FFT butterfly calculation) may be copied to registers A0 hp and A2 hp, respectively;
  • b) [0026] 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 of multiplexer 30 may be provided to ALUs 10 and 12; 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 MUL[0027] 1 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 Zr[0028] 0 (AR [2]) and Zi0 (AI [2]) may be input to registers Zr1 and Zi1.
  • It should be noted that at the end of [0029] 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.
  • [0030] CYCLE #3
  • During a third cycle, labeled [0031] CYCLE #3, the following actions may occur:
  • a) [0032] 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 of multiplexer 30 may be provided to ALUs 10 and 12; 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 Zr[0033] 0 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 MUL[0034] 1 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.
  • [0035] CYCLE #4
  • During a fourth cycle, labeled [0036] CYCLE #4, the following actions may occur:
  • a) a high-ordered portion of registers A[0037] 0 and A2 (containing outputs of the second FFT butterfly calculation) may be copied to registers A0 hp and A2 hp, respectively;
  • b) [0038] 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 of multiplexer 30 may be provided to ALUs 10 and 12; 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 MUL[0039] 1 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 Zr[0040] 0 (AR [3]) and Zi0 (AI [3]) may be input to registers Zr1 and Zi1, respectively.
  • It should be noted that at the end of [0041] 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.
  • [0042] CYCLE #5
  • During a fifth cycle, labeled [0043] CYCLE #5, the following actions may occur:
  • a) [0044] 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 of multiplexer 30 may be provided to ALUs 10 and 12; 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 Zr[0045] 0 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 MUL[0046] 1 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.
  • [0047] CYCLE #6
  • During a sixth cycle, labeled [0048] CYCLE #6, the following actions may occur:
  • a) a high-ordered portion of registers A[0049] 0 and A2 (containing outputs of the third FFT butterfly calculation) may be copied to registers A0 hp and A2 hp, respectively;
  • b) [0050] 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 of multiplexer 30 may be provided to ALUs 10 and 12; 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 MUL[0051] 1 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 Zr[0052] 0 (AR [4]) and Zi0 (AI [4]) may be input to registers Zr1 and Zi1, respectively.
  • It should be noted that at the end of [0053] 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 [0054]
  • The actions of [0055] 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.
  • Data Propagation [0056]
  • Consequently, the data propagation in the structure shown in FIG. 1 may be considered as follows: [0057]
  • a) Registers Zr[0058] 0 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 Zr[0059] 1 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 MUL[0060] 1 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” [0061] 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 of multiplexer 30 may be provided to ALUs 10 and 12; 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 A[0062] 0 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” [0063] 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 of multiplexer 30 may be provided to ALUs 10 and 12; 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 [0064]
  • As mentioned hereinabove, [0065] DSP 2 may include multiplexer 46 to selectably provide data from registers A0 hp or A2 hp, and multiplexer 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 OUT[0066] 0 [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 OUT[0067] 2 [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. [0068]
  • 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. [0069]
  • The reading of the FFT calculation results OUT[0070] 2 [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 OUT[0071] 0 [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. [0072]
  • 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. [0073]
  • 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. [0074]

Claims (13)

What is claimed is:
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.
US10/665,415 2000-06-05 2003-09-22 Fast fourier transform (FFT) butterfly calculations in two cycles Abandoned US20040128335A1 (en)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

Patent Citations (17)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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