USH570H - Fast Fourier transform data address pre-scrambler circuit - Google Patents

Fast Fourier transform data address pre-scrambler circuit Download PDF

Info

Publication number
USH570H
USH570H US06/880,861 US88086186A USH570H US H570 H USH570 H US H570H US 88086186 A US88086186 A US 88086186A US H570 H USH570 H US H570H
Authority
US
United States
Prior art keywords
radix
fft
sub
address
binary
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
US06/880,861
Inventor
Theodore T. Tylaska
Thomas C. Choinski
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.)
US Department of Navy
Original Assignee
US Department of Navy
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 US Department of Navy filed Critical US Department of Navy
Priority to US06/880,861 priority Critical patent/USH570H/en
Assigned to UNITED STATES OF AMERICA, THE, AS REPRESENTED BY THE SECRETARY OF THE NAVY reassignment UNITED STATES OF AMERICA, THE, AS REPRESENTED BY THE SECRETARY OF THE NAVY ASSIGNMENT OF ASSIGNORS INTEREST. Assignors: CHOINSKI, THOMAS C., TYLASKA, THEODORE T.
Application granted granted Critical
Publication of USH570H publication Critical patent/USH570H/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
    • G06F17/141Discrete Fourier transforms
    • G06F17/142Fast Fourier transforms, e.g. using a Cooley-Tukey type algorithm

Definitions

  • the present invention relates to a signal processing apparatus and more particularly to a circuit realization of a complicated data sorting or scrambling scheme which is necessary prior to executing various fast Fourier transform (FFT) computations.
  • FFT fast Fourier transform
  • the fast Fourier transform is an algorithm which reduces the number of computation steps from N 2 to NlogN where N is the size of the transform. This saving in computations amounts to a factor of 200 reduction for the size transforms typically used in signal processing systems.
  • a significant difficulty in using the FFT is that the selection order in which the data samples are accessed is complicated.
  • a radix-2, decimation-in-time algorithm can be used to describe the data ordering problem.
  • a key step in the derivation is to sort a naturally ordered input sequence of N points into a subsequence which contains the N/2 even numbered samples and into another subsequence which contains the N/2 odd number samples.
  • the subsequence of even numbered samples is itself sorted into an even group and an odd group.
  • Each of these resulting subsequences include N/4 points each.
  • the odd samples from the first sort are also sorted into an even and an odd group.
  • the sorting process of breaking each group into a new even group and a new odd group continues until there are only two samples left in each group, and they are already sorted into even and odd because there are only two samples left.
  • the software implementation requires coding the sorting procedure in a language such as FORTRAN. Such sorting is time consuming however because nested loops with variable indices are needed to keep track of which subsequence is being sorted together with its length.
  • the firmware procedure consists of pre-determining where each data point ends up after sorting and then storing the appropriate address in a read only memory (ROM). The ROM is then accessed while executing the FFT computation to determine the location of the appropriate data sample.
  • ROM read only memory
  • this look-up-table scheme requires a unique ROM for each different length FFT or different radix FFT to be computed.
  • the hardware approach to re-ordering the data consists of a scheme known as "bit fiddling".
  • the binary address of a naturally ordered data sample is put in a register and each of the bits are interchanged about the center bit of the register.
  • this bit interchange is accomplished by hardwiring the bits to different positions in the "fiddle" register.
  • the problem associated with this hardware approach is that the bits are always interchanged about the center bit of the register.
  • a different size register is required for each size of FFT encounterd and, the interchange is only applicable to radix-2 FFTs.
  • FIG. 1 shows an address register bit reversal scheme for a radix-2 FFT.
  • FIG. 2 shows an address register bit reversal scheme for a radix-4 FFT.
  • FIG. 3 shows an address register bit reversal scheme for a mixed radix FFT with radix-2 stage performed first.
  • FIG. 4 shows an address register bit reversal scheme for a mixed radix FFT with radix-2 stage performed last.
  • FIG. 5 shows a radix-2 digit reversed counter block diagram.
  • FIG. 6 shows a radix-4 digit reversed counter block diagram.
  • FIG. 7 shows a mixed radix 2/4 digit reversed counter block diagram.
  • FIG. 8 shows a radix selectable digit reversed counter block diagram.
  • FIGS. 9A, B and C show a circuit diagram for the radix selectable data pre-scrambler circuit of FIG. 8.
  • FlG. 10 shows a block diagram of an FFT processor memory system.
  • the location of an original sample point can be determined by performing a bit reversal procedure for radix-2 FFT's i.e., if (J 2 J 1 J 0 ) 2 is the binary address representation of an original sample point, that sample point ends up at address (J 0 J 1 J 2 ) 2 after the sorting in the various stages required to derive the FFT.
  • the sorting process continues for log 4 (N) stages.
  • the re-ordering of the original data can be accomplished by digit reversing the base 4 digits or by pair-wise reversing the binary bit representations of the sample index. For example, if (J 3 J 2 J 1 J 0 ) 2 is the binary representation of the original sequence, the sorted sequence will be ordered as (J 1 J 0 J 3 J 2 ) 2 .
  • a radix-4 stage would be derived followed by another radix-4 stage, followed by a radix-2 stage.
  • the actual computation would proceed with the radix-2 stage first, followed by the two radix-4 stages
  • Let (J 4 J 3 J 2 J 1 J 0 ) 2 be the binary representation of the original data sequence.
  • the input data would be sorted by 4's then by 4's again, and finally by 2's into even and odds.
  • the interchange procedure would be (J 2 J 1 J 0 J 4 J 3 ) 2 , then (J 0 J 2 J 1 J 4 J 3 ) 2 where the entities J 4 J 3 and J 2 J 1 are treated as pairs which remain in fixed positions relative to each other.
  • N n m n m-1 n m-2 . . . n 1
  • n i are the factors that make up N.
  • the natural order of these n points is given by an address J where
  • N is the number of data points to be transformed
  • m is the number of factors of N
  • the present invention implements the pre-scrambling scheme represented by J'.
  • the particular embodiment of the invention is specifically shown for radix-2, radix-4 and radix-2/4 FFT algorithms.
  • the results from these three applications is then combined in an FFT data pre-scrambler circuit which is used as an address pointer for accessing data in the proper order.
  • the data pre-scrambler selectively operates in a radix-2, radix-4, or radix-2/4 mode.
  • FIG. 1 shows a radix-2 FFT data pre-scrambling scheme.
  • J and J' are
  • each radix-2 digit in the binary address sequence is reversed.
  • the most significant bit (MSB) is exchanged with the least significant bit (LSB).
  • the second most significant bit is exchanged with the second least significant bit, and so on.
  • the binary representation of the address is reversed as shown in FIG. 1 for a 16-bit binary address pointer.
  • FIG. 2 shows a radix-4 FFT data pre-scrambling scheme.
  • the higher radix FFT algorithms and in particular the radix-4 FFT are more efficient than the radix-2 FFT.
  • FIG. 3 shows a mixed radix-2/4 data pre-scrambling scheme.
  • the radix-2 stage can be put anywhere in an FFT flow graph, but its location will effect the digit reversal procedure. If the radix-2 stage is performed first in the FFT flow graph then J and J' will be calculated to be
  • FIG. 3 shows the digit reversal procedure for a 16-bit address pointer given a mixed radix-2/4 case when the radix-2 stage is performed first. Note that all the digit exchanges are performed with groups of 2-binary bits except for the MSB of J.
  • FIG. 4 shows the digit reversal procedure for the binary representation of a 16-bit address when the radix-2 stage is performed last. All the exchanges are performed with groups of two binary bits except for the LSB of J.
  • the design of the data pre-scrambling circuits are straightforward once the proper address digit reversal procedure for the radix of interest has been determined.
  • the design centers around a straight binary counter with its most significant bits interchanged with its LSB bits.
  • the counter cycles its count from zero to N-1.
  • the binary bits outputed from the counter are used to generate the pre-scrambled address, the bits being physically routed to an address pointer using the mapping procedures depicted in FIGS. 1 through 4.
  • FIGS. 1 through 4 Separate block diagrams for hard wired radix-2, radix-4 and radix-2/4 counters 10, 12 and 14 respectively are shown in FIGS. 5, 6 and 7 respectively.
  • FIG. 8 shows the block diagram for a generalized digit re-ordering counter 16 which is capable of providing any one of the three above cited radix selections via two external select pins S0 and S1.
  • Selectable radix FFT data pre-scrambler 16 is realized by inserting a radix multiplexer (switching network) 18 between binary counter 20 and tri-state buffers 22 which feed the reversed address to the data address bus.
  • Binary counter 20 is a 16-bit straight binary counter further comprising 16 J-K flip-flops 24 and interconnecting AND gates 26 arranged so as to produce, as the output thereof, sequential 16-bit binary addresses.
  • Multiplexing circuit 18 comprises sixteen sets of NAND gates, one set for each address bit of counter 20. A most significant bit NAND set 28, a least significant bit NAND set 30 and fourteen intermediate bit NAND sets 32 are provided and interconnected as shown.
  • the re-ordered radix-2, radix-4 or radix-2/4 address bits from counter 20 are fed to the appropriate output address tri-state buffers 22 by selecting the values on select lines S0 and S1 from Table 2 below, which lines selectively reroute the address bits from counter 20 to output buffers 22 as shown in FIGS. 1-7.
  • the pre-scrambler circuit is included as part of an FFT processor system 100 such as the one shown in FIG. 10. Only the portions of the processor system needed to demonstrate the relation of FFT pre-scrambler circuit 16 to system 100 is shown.
  • a straight binary counter 102 is used generate a block of time-series input data addresses in natural order.
  • a base address offset register 104 is used in conjunction with counter 102 to determine in which area of memory 106 the input data is sequentially stored. The base address from register 104 is combined with the count from counter 102 in adder 108 and stored in memory address register 110 for use during memory write operations.
  • the tri-state buffer output end of counter 102 is selectively energized while the tri-state buffers of pre-scrambler circuit 16 are placed in a high impedance state by inverter 112.
  • the tri-state control (counter mode select) is placed at logic "0" and the pre-scrambler circuit generated addresses are then stored in address register 110 and used by the FFT processor to read the data in the selectively scrambled order during its FFT calculations.
  • the selectable radix, FFT data address pre-scrambler circuit shown in FIG. 9 can be implemented using toggle flip-flops instead of JK flip-flips, and pass transistor switches in place of the NAND gate multiplexing circuit.
  • the radix selectable data pre-scrambler circuit can also be altered to accommodate smaller or larger FFT sizes if the desired sizes are known to have fixed ranges for the particular application.
  • the specific circuit shown in FIG. 9 will work for any FFT size between 4 and 64K.

Abstract

A fast Fourier transform (FFT) data address pre-scrambler technique and cuit for selectively generating pre-scrambled bit reversed, data address sequences needed to perform radix-2, radix-4 and mixed radix-2/4 fast Fourier transforms.

Description

STATEMENT OF GOVERNMENT INTEREST
The invention described herein may be manufactured and used by or for the Government of the United States of America for governmental purposes without the payment of any royalties thereon or therefor.
BACKGROUND OF THE INVENTION
(1) Field of the Invention
The present invention relates to a signal processing apparatus and more particularly to a circuit realization of a complicated data sorting or scrambling scheme which is necessary prior to executing various fast Fourier transform (FFT) computations.
(2) Description of the Prior Art
It is well known that the fast Fourier transform is an algorithm which reduces the number of computation steps from N2 to NlogN where N is the size of the transform. This saving in computations amounts to a factor of 200 reduction for the size transforms typically used in signal processing systems. A significant difficulty in using the FFT however is that the selection order in which the data samples are accessed is complicated.
A radix-2, decimation-in-time algorithm can be used to describe the data ordering problem. A key step in the derivation is to sort a naturally ordered input sequence of N points into a subsequence which contains the N/2 even numbered samples and into another subsequence which contains the N/2 odd number samples. Next, the subsequence of even numbered samples is itself sorted into an even group and an odd group. Each of these resulting subsequences include N/4 points each. Similarly the odd samples from the first sort are also sorted into an even and an odd group. The sorting process of breaking each group into a new even group and a new odd group continues until there are only two samples left in each group, and they are already sorted into even and odd because there are only two samples left. Once the original data set is reordered in the above fashion, the computation of the FFT can proceed.
The problem becomes one of determining where each data sample in the original sequence ends up in the sorted sequence. In the past, this reordering or pre-scrambling of data has been accomplished by software, firmware and hardware methods.
The software implementation requires coding the sorting procedure in a language such as FORTRAN. Such sorting is time consuming however because nested loops with variable indices are needed to keep track of which subsequence is being sorted together with its length.
The firmware procedure consists of pre-determining where each data point ends up after sorting and then storing the appropriate address in a read only memory (ROM). The ROM is then accessed while executing the FFT computation to determine the location of the appropriate data sample. However, this look-up-table scheme requires a unique ROM for each different length FFT or different radix FFT to be computed.
The hardware approach to re-ordering the data consists of a scheme known as "bit fiddling". The binary address of a naturally ordered data sample is put in a register and each of the bits are interchanged about the center bit of the register. Usually this bit interchange is accomplished by hardwiring the bits to different positions in the "fiddle" register. The problem associated with this hardware approach is that the bits are always interchanged about the center bit of the register. Thus a different size register is required for each size of FFT encounterd and, the interchange is only applicable to radix-2 FFTs.
SUMMARY OF THE INVENTION
Accordingly, it is a general purpose and object of the present invention to provide a data address pre-scrambler circuit prior to performing FFT computations. It is a further object that the pre-scrambler circuit be adaptable for multi-radix use. Another object is that the circuit work for a wide range of FFT sizes. Still another object is to speed up the FFT computation process.
These objects are accomplished with the present invention by providing an FFT data pre-scrambler circuit for generating reordered address sequences needed to perform radix-26, radix-4 and mixed radix 2/4 fast Fourier transforms.
BRIEF DESCRIPTION OF THE DRAWINGS
A more complete understanding of the invention and many of the attendant advantages thereto will be readily appreciated as the same becomes better understood by reference to the following detailed description when considered in conjunction with the accompanying drawings wherein:
FIG. 1 shows an address register bit reversal scheme for a radix-2 FFT.
FIG. 2 shows an address register bit reversal scheme for a radix-4 FFT.
FIG. 3 shows an address register bit reversal scheme for a mixed radix FFT with radix-2 stage performed first.
FIG. 4 shows an address register bit reversal scheme for a mixed radix FFT with radix-2 stage performed last.
FIG. 5 shows a radix-2 digit reversed counter block diagram.
FIG. 6 shows a radix-4 digit reversed counter block diagram.
FIG. 7 shows a mixed radix 2/4 digit reversed counter block diagram.
FIG. 8 shows a radix selectable digit reversed counter block diagram.
FIGS. 9A, B and C show a circuit diagram for the radix selectable data pre-scrambler circuit of FIG. 8.
FlG. 10 shows a block diagram of an FFT processor memory system.
DESCRIPTION OF THE PREFERRED EMBODIMENT
The concept behind the data pre-scrambler integrated circuit can be explained by describing the sorts needed for an 8 point, radix-2 FFT. Table 1(a) below gives the original binary ordering, 1(b) below gives the ordering after the first sort, and 1(c) below gives the ordering after the second sort. A third sort is not necessary.
              TABLE 1                                                     
______________________________________                                    
Successive Sort of Input Samples for a Radix-2 FFT                        
J.sub.2 J.sub.1 J.sub.0                                                   
           J.sub.1 J.sub.0 J.sub.2                                        
                          J.sub.0 J.sub.1 J.sub.2                         
______________________________________                                    
000         000                  000                                      
                                           Even                           
001        010                  100                                       
            100                  010                                      
010                       Even             Odd                            
011        110                  110                                       
100         001                  001                                      
                                           Even                           
101        011                  101                                       
            101            011                                            
110                                        Odd                            
111        111                  111                                       
______________________________________                                    
(a)        (b)            (c)                                             
Original Order                                                            
           First Sort     Second Sort                                     
______________________________________                                    
Note that after the first sort, all the even points end up in the first half of the sorted sequence and all the odd points end up in the second half of the sequence. The same reordering is obtained by considering the most significant bit (MSB) J2 in the original binary ordering, to be the least significant bit (LSB), and the least significant two bits J1 J0, to be the most significant two bits, i.e., (J1 J0 J2)2. The second sort shown in column (c) separates the even sequence from the first sort into even and odd sequences, and the odd sequence from the first sort is also separated into even and odd sequences. Observe that the result of the re-ordering is obtained by making the most significant bit J1 of the J1 J0 bit pair, the least significant bit of the pair to obtain J0 J1. A third sort is not necessary since there are only two samples in the resulting subsequence and they are already in even, then odd order.
After sorting, the location of an original sample point can be determined by performing a bit reversal procedure for radix-2 FFT's i.e., if (J2 J1 J0)2 is the binary address representation of an original sample point, that sample point ends up at address (J0 J1 J2)2 after the sorting in the various stages required to derive the FFT.
This process generalizes for the radix-4 case by sorting the original N point sequence into four sequences composed of the sample points 4r, 4r+1, 4r+2, and 4r+3, where r=0, 1, . . . (N/4-1). Then each of these four resulting subsequences is independently sorted the same way, i.e., the subsequence 4r is sorted into 4q, 4q+1, 4q+2, 4q+3, where q=0, 1, . . . (N/16-1).
The sorting process continues for log4 (N) stages. The re-ordering of the original data can be accomplished by digit reversing the base 4 digits or by pair-wise reversing the binary bit representations of the sample index. For example, if (J3 J2 J1 J0)2 is the binary representation of the original sequence, the sorted sequence will be ordered as (J1 J0 J3 J2)2.
If the original sample contained N=43 points then three sorts would be required. The last sort need not be actually performed since there would be only 4 points in the 16 resulting subsequences, and they are already naturally sorted. If the binary representation of the original sequence was (J5 J4 J3 J2 J1 J0)2 the samples would end up in the location represented by (J1 J0 J3 J2 J5 J4)2 from which the radix-4 FFT computations would be done.
For the mixed radix case, the sorted ordering of the data can be obtained by either interchanging bits or pairs of bits, e.g., suppose 32=2(4)2 data points are to be transformed by performing a decimation-in-time transform of radix-2 first, followed by two radix-4 transforms. In the derivation of a 2-4-4 transform, a radix-4 stage would be derived followed by another radix-4 stage, followed by a radix-2 stage. However, the actual computation would proceed with the radix-2 stage first, followed by the two radix-4 stages Let (J4 J3 J2 J1 J0)2 be the binary representation of the original data sequence. The input data would be sorted by 4's then by 4's again, and finally by 2's into even and odds. The interchange procedure would be (J2 J1 J0 J4 J3)2, then (J0 J2 J1 J4 J3)2 where the entities J4 J3 and J2 J1 are treated as pairs which remain in fixed positions relative to each other.
The digit interchanges thus far described can be generalized to include mixed radix FFT's where the number of points to be transformed can be represented by N=nm nm-1 nm-2 . . . n1 where ni are the factors that make up N. The natural order of these n points is given by an address J where
J=j.sub.m n.sub.m-1 n.sub.m-2 . . . n.sub.1 +j.sub.m-1 n.sub.m-2 n.sub.m-3 . . . n.sub.1 +. . . +j.sub.2 n.sub.1 +j.sub.1            (1)
where N is the number of data points to be transformed, m is the number of factors of N, ji are the respective digits of j and i=1, . . . ,m. After sorting by n1, then sorting each of the resulting subsequences by n2, then sorting each of those resulting subsequences by n3, etc., the original set of order points whose address is given by J ends up in a new location whose address is given by
J'=j.sub.1 n.sub.2 n.sub.3 . . . n.sub.m +j.sub.2 n.sub.3 n.sub.4 . . . n.sub.m +. . . +j.sub.m-1 n.sub.m +j.sub.m.               (2)
It can be seen that the same result can be obtained by reversing the order of the digits ji in the representation of the new address J'; thus the result of the multiple sorting can be represented by J'.
The present invention implements the pre-scrambling scheme represented by J'. The particular embodiment of the invention is specifically shown for radix-2, radix-4 and radix-2/4 FFT algorithms. The results from these three applications is then combined in an FFT data pre-scrambler circuit which is used as an address pointer for accessing data in the proper order. The data pre-scrambler selectively operates in a radix-2, radix-4, or radix-2/4 mode.
FIG. 1 shows a radix-2 FFT data pre-scrambling scheme. The bit reversal procedure indicated by equations (1) and (2) can be best exemplified when N is a power of 2 (i.e., N=2m) and a radix-2 FFT algorithm is used to perform the transform. For this case J and J' are
J=j.sub.m 2.sup.(m-1) +. . . +j.sub.2 2+j.sub.1            (3)
J'=j.sub.1 2.sup.(m-1) +j.sub.2 2.sup.(m-2) +. . . +j.sub.m (4)
Thus, the order of each radix-2 digit in the binary address sequence is reversed. The most significant bit (MSB) is exchanged with the least significant bit (LSB). Likewise, the second most significant bit is exchanged with the second least significant bit, and so on. In effect, the binary representation of the address is reversed as shown in FIG. 1 for a 16-bit binary address pointer.
FIG. 2 shows a radix-4 FFT data pre-scrambling scheme. The higher radix FFT algorithms and in particular the radix-4 FFT are more efficient than the radix-2 FFT. The radix-4 FFT requires N=4m. So J and J' will be
J=j.sub.m 4.sup.(m-1) +. . . j.sub.2 4+j.sub.l             (5)
J'=j.sub.1 4.sup.(m-1) +j.sub.2 4(m-2)+. . . +j.sub.m      (6)
where j i= 0,1,2,3 and i=1, 2, . . . ,m. If a binary number is used to represent the address J, the bit reversal procedure switches radix-4 digits (i.e., groups of 2 binary bits) of the address. Therefore, the two most significant binary bits (the most significant radix-4 digit) is exchanged with two least significant binary bits (the least significant radix-4 digit), and so on. In each exchange of groups of two binary bits the significance of each bit within the group must be preserved as shown in FIG. 2 for a 16-bit binary address pointer.
FIG. 3 shows a mixed radix-2/4 data pre-scrambling scheme. Mixed radix-2/4 FFT algorithms allow users to take advantage of the efficiency of the radix-4 algorithm for data sets which are powers of 2 but not powers of 4. If N is a power of 2 it can be factored so N=(2)4.sup.(m-1). Therefore, the FFT can be performed with one radix-2 stage and the remaining stages as radix-4 stages. The radix-2 stage can be put anywhere in an FFT flow graph, but its location will effect the digit reversal procedure. If the radix-2 stage is performed first in the FFT flow graph then J and J' will be calculated to be
J=j.sub.m (2)4.sup.(m-1) +. . . +j.sub.2 2+j.sub.1         (7)
J'=j.sub.1 4.sup.(m-1) +j.sub.2 4.sup.(m-2) +. . . +j.sub.m (8)
where ji =0,1,2,3 for i=0,1, . . . , (m-1) and jm =0,1. FIG. 3 shows the digit reversal procedure for a 16-bit address pointer given a mixed radix-2/4 case when the radix-2 stage is performed first. Note that all the digit exchanges are performed with groups of 2-binary bits except for the MSB of J.
When the radix-2 stage is performed in the last stage of the FFT signal flow graph the addressing digit reversal procedure will define J and J' to be
J=j.sub.m 4.sup.(m-1) +. . . +j.sub.2 4 +j.sub.1           (9)
J'=j.sub.1 (2)4.sup.(m-2) +j.sub.2 4.sup.(m-3) +. . . j.sub.m (10)
where ji =0,1,2,3 for i=2,3, . . . ,m and j1 =0,1. FIG. 4 shows the digit reversal procedure for the binary representation of a 16-bit address when the radix-2 stage is performed last. All the exchanges are performed with groups of two binary bits except for the LSB of J.
The design of the data pre-scrambling circuits are straightforward once the proper address digit reversal procedure for the radix of interest has been determined. The design centers around a straight binary counter with its most significant bits interchanged with its LSB bits. The counter cycles its count from zero to N-1. The binary bits outputed from the counter are used to generate the pre-scrambled address, the bits being physically routed to an address pointer using the mapping procedures depicted in FIGS. 1 through 4. Separate block diagrams for hard wired radix-2, radix-4 and radix-2/4 counters 10, 12 and 14 respectively are shown in FIGS. 5, 6 and 7 respectively.
FIG. 8 shows the block diagram for a generalized digit re-ordering counter 16 which is capable of providing any one of the three above cited radix selections via two external select pins S0 and S1. Selectable radix FFT data pre-scrambler 16 is realized by inserting a radix multiplexer (switching network) 18 between binary counter 20 and tri-state buffers 22 which feed the reversed address to the data address bus.
An exemplary logic schematic for a radix selectable, digit reversed counter 16 depicted in FIG. 8 is given in FIGS. 9A, B and C. Binary counter 20 is a 16-bit straight binary counter further comprising 16 J-K flip-flops 24 and interconnecting AND gates 26 arranged so as to produce, as the output thereof, sequential 16-bit binary addresses. Multiplexing circuit 18 comprises sixteen sets of NAND gates, one set for each address bit of counter 20. A most significant bit NAND set 28, a least significant bit NAND set 30 and fourteen intermediate bit NAND sets 32 are provided and interconnected as shown. The re-ordered radix-2, radix-4 or radix-2/4 address bits from counter 20 are fed to the appropriate output address tri-state buffers 22 by selecting the values on select lines S0 and S1 from Table 2 below, which lines selectively reroute the address bits from counter 20 to output buffers 22 as shown in FIGS. 1-7.
              TABLE 2                                                     
______________________________________                                    
Radix Selection Logic                                                     
RADIX              S1    S0                                               
______________________________________                                    
Radix-2/4          0     0                                                
Radix-4            0     1                                                
Radix-2            1     0                                                
X                  1     1                                                
______________________________________                                    
It is noted that alternate multiplexing circuits may be used and such are well within the skills of one schooled in the art of logic circuit design.
In operation the pre-scrambler circuit is included as part of an FFT processor system 100 such as the one shown in FIG. 10. Only the portions of the processor system needed to demonstrate the relation of FFT pre-scrambler circuit 16 to system 100 is shown. A straight binary counter 102 is used generate a block of time-series input data addresses in natural order. A base address offset register 104 is used in conjunction with counter 102 to determine in which area of memory 106 the input data is sequentially stored. The base address from register 104 is combined with the count from counter 102 in adder 108 and stored in memory address register 110 for use during memory write operations. The tri-state buffer output end of counter 102 is selectively energized while the tri-state buffers of pre-scrambler circuit 16 are placed in a high impedance state by inverter 112. After the block of time-series data has been stored, the tri-state control (counter mode select) is placed at logic "0" and the pre-scrambler circuit generated addresses are then stored in address register 110 and used by the FFT processor to read the data in the selectively scrambled order during its FFT calculations.
What has thus been described is an FFT data address pre-scrambler technique and circuit for generating prescrambled address sequences needed to selectively perform radix-2, radix-4 or mixed radix-2/4 fast Fourier transforms.
Obviously many modifications and variations of the present invention may become apparent in light of the above teachings. For example, the selectable radix, FFT data address pre-scrambler circuit shown in FIG. 9 can be implemented using toggle flip-flops instead of JK flip-flips, and pass transistor switches in place of the NAND gate multiplexing circuit. The radix selectable data pre-scrambler circuit can also be altered to accommodate smaller or larger FFT sizes if the desired sizes are known to have fixed ranges for the particular application. The specific circuit shown in FIG. 9 will work for any FFT size between 4 and 64K.
In light of the above, it is therefore understood that within the scope of the appended claims, the invention may be practiced otherwise than as specifically described.

Claims (5)

What is claimed is:
1. An apparatus, used in conjunction with an FFT processing system, for selectively re-ordering the memory address digits of pre-stored data samples, comprising:
binary counter means for generating a contiguous sequence of multi-digit memory addresses;
radix multiplexing means, connected to said binary counter means, for receiving said sequence of multi-digit memory addresses and re-ordering said digits of said sequence of memory addresses based on a pre-selected radix such that said re-ordered memory addresses facilitate FFT calculations using said pre-stored data samples; and
output means, connected to said multiplexing means, for receiving said re-ordered memory addresses from said multiplexing means and transmitting said addresses over the address bus of said system during said FFT calculations.
2. An apparatus according to claim 1 wherein said binary counter means further comprises sixteen output bit address lines thereby producing addresses ranging sequentially from 0 to 216 -1.
3. An apparatus according to claim 2 wherein said radix multiplexing means further comprises;
radix select means, having binary input lines S0 and S1, for selecting one among radix-2, radix-4 and mixed radix-2/4 logic paths based on the chosen state of said binary input lines; and
a plurality of NAND gate sets, one set for each said address digit and connected to said radix select means, for being selectively activated by said radix select means so as to configure said apparatus for said preselected radix.
4. An apparatus according to claim 3 wherein said output means further comprises a plurality tri-state buffers, one each connected to each said NAND gate set.
5. An apparatus according to claim 4 wherein said plurality of NAND gate sets further comprise a MSB gate set, a LSB gate set and a plurality of intermediate gate sets.
US06/880,861 1986-06-03 1986-06-03 Fast Fourier transform data address pre-scrambler circuit Abandoned USH570H (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US06/880,861 USH570H (en) 1986-06-03 1986-06-03 Fast Fourier transform data address pre-scrambler circuit

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US06/880,861 USH570H (en) 1986-06-03 1986-06-03 Fast Fourier transform data address pre-scrambler circuit

Publications (1)

Publication Number Publication Date
USH570H true USH570H (en) 1989-01-03

Family

ID=25377278

Family Applications (1)

Application Number Title Priority Date Filing Date
US06/880,861 Abandoned USH570H (en) 1986-06-03 1986-06-03 Fast Fourier transform data address pre-scrambler circuit

Country Status (1)

Country Link
US (1) USH570H (en)

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0459412A2 (en) * 1990-05-28 1991-12-04 Nec Corporation Numerical data processor
US5293330A (en) * 1991-11-08 1994-03-08 Communications Satellite Corporation Pipeline processor for mixed-size FFTs
US5473556A (en) * 1992-04-30 1995-12-05 Sharp Microelectronics Technology, Inc. Digit reverse for mixed radix FFT
US6247034B1 (en) * 1997-01-22 2001-06-12 Matsushita Electric Industrial Co., Ltd. Fast fourier transforming apparatus and method, variable bit reverse circuit, inverse fast fourier transforming apparatus and method, and OFDM receiver and transmitter
US20020013796A1 (en) * 2000-07-28 2002-01-31 Michael Byrne Method of processing data
US6351758B1 (en) * 1998-02-13 2002-02-26 Texas Instruments Incorporated Bit and digit reversal methods
US20030200414A1 (en) * 2002-03-15 2003-10-23 Thomas Harley Address generators for mapping arrays in bit reversed order
WO2012013044A1 (en) * 2010-07-29 2012-02-02 中兴通讯股份有限公司 Fast fourier transform (fft)/discrete fourier transform (dft) order-reversing method and device thereof

Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3731284A (en) 1971-12-27 1973-05-01 Bell Telephone Labor Inc Method and apparatus for reordering data
US3810112A (en) 1972-12-18 1974-05-07 Bell Lab Inc Shift-shuffle memory system with rapid sequential access
US3961750A (en) 1974-04-05 1976-06-08 Signetics Corporation Expandable parallel binary shifter/rotator
US4128872A (en) 1977-06-20 1978-12-05 Motorola, Inc. High speed data shifter array
US4149263A (en) 1977-06-20 1979-04-10 Motorola, Inc. Programmable multi-bit shifter
US4181976A (en) 1978-10-10 1980-01-01 Raytheon Company Bit reversing apparatus
US4396994A (en) 1980-12-31 1983-08-02 Bell Telephone Laboratories, Incorporated Data shifting and rotating apparatus
US4490809A (en) 1979-08-31 1984-12-25 Fujitsu Limited Multichip data shifting system
US4653019A (en) 1984-04-19 1987-03-24 Concurrent Computer Corporation High speed barrel shifter
US4665538A (en) 1984-07-24 1987-05-12 Nec Corporation Bidirectional barrel shift circuit

Patent Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3731284A (en) 1971-12-27 1973-05-01 Bell Telephone Labor Inc Method and apparatus for reordering data
US3810112A (en) 1972-12-18 1974-05-07 Bell Lab Inc Shift-shuffle memory system with rapid sequential access
US3961750A (en) 1974-04-05 1976-06-08 Signetics Corporation Expandable parallel binary shifter/rotator
US4128872A (en) 1977-06-20 1978-12-05 Motorola, Inc. High speed data shifter array
US4149263A (en) 1977-06-20 1979-04-10 Motorola, Inc. Programmable multi-bit shifter
US4181976A (en) 1978-10-10 1980-01-01 Raytheon Company Bit reversing apparatus
US4490809A (en) 1979-08-31 1984-12-25 Fujitsu Limited Multichip data shifting system
US4396994A (en) 1980-12-31 1983-08-02 Bell Telephone Laboratories, Incorporated Data shifting and rotating apparatus
US4653019A (en) 1984-04-19 1987-03-24 Concurrent Computer Corporation High speed barrel shifter
US4665538A (en) 1984-07-24 1987-05-12 Nec Corporation Bidirectional barrel shift circuit

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0459412A2 (en) * 1990-05-28 1991-12-04 Nec Corporation Numerical data processor
EP0459412A3 (en) * 1990-05-28 1993-08-25 Nec Corporation Numerical data processor
US5293330A (en) * 1991-11-08 1994-03-08 Communications Satellite Corporation Pipeline processor for mixed-size FFTs
US5473556A (en) * 1992-04-30 1995-12-05 Sharp Microelectronics Technology, Inc. Digit reverse for mixed radix FFT
US6247034B1 (en) * 1997-01-22 2001-06-12 Matsushita Electric Industrial Co., Ltd. Fast fourier transforming apparatus and method, variable bit reverse circuit, inverse fast fourier transforming apparatus and method, and OFDM receiver and transmitter
US6351758B1 (en) * 1998-02-13 2002-02-26 Texas Instruments Incorporated Bit and digit reversal methods
US20020013796A1 (en) * 2000-07-28 2002-01-31 Michael Byrne Method of processing data
US20030200414A1 (en) * 2002-03-15 2003-10-23 Thomas Harley Address generators for mapping arrays in bit reversed order
US20050256917A1 (en) * 2002-03-15 2005-11-17 Harley Thomas R Address generators integrated with parallel FFT for mapping arrays in bit reversed order
US7047268B2 (en) * 2002-03-15 2006-05-16 Texas Instruments Incorporated Address generators for mapping arrays in bit reversed order
WO2012013044A1 (en) * 2010-07-29 2012-02-02 中兴通讯股份有限公司 Fast fourier transform (fft)/discrete fourier transform (dft) order-reversing method and device thereof

Similar Documents

Publication Publication Date Title
US4393457A (en) Method and apparatus for sequencing addresses of a fast Fourier transform array
US4085447A (en) Right justified mask transfer apparatus
US6035313A (en) Memory address generator for an FFT
JP2950703B2 (en) Address generator, inverted field sequence generator and digit inverted sequence signal generating method for digit inversion for fast Fourier transform
EP0180239B1 (en) Content-addressable memory
JP3749022B2 (en) Parallel system with fast latency and array processing with short waiting time
US3517173A (en) Digital processor for performing fast fourier transforms
EP0953175B1 (en) Method and apparatus for fft computation
US5122979A (en) Method and a digital electronic device for the evaluation of an extremum of a set of binary encoded data words
US5034910A (en) Systolic fast Fourier transform method and apparatus
USH570H (en) Fast Fourier transform data address pre-scrambler circuit
US5778416A (en) Parallel process address generator and method
US4477878A (en) Discrete Fourier transform with non-tumbled output
US4594687A (en) Address arithmetic circuit of a memory unit utilized in a processing system of digitalized analogue signals
US3943347A (en) Data processor reorder random access memory
KR100692997B1 (en) Fast fourier transform apparatus
US6728742B1 (en) Data storage patterns for fast fourier transforms
US4974188A (en) Address sequence generation by means of reverse carry addition
Arambepola Discrete Fourier transform processor based on the prime-factor algorithm
US6460061B1 (en) 2-dimensional discrete cosine transform using a polynomial transform
JPS61210478A (en) Vector processing device
JPH08137832A (en) Butterfly arithmetic circuit and fast fourier transforming device using same
Corinthios Optimal parallel and pipelined processing through a new class of matrices with application to generalized spectral analysis
Muniappan et al. Walsh spectrum measurement in natural, dyadic, and sequency ordering
JPH0214363A (en) Fast fourier transform method and arithmetic apparatus therefor

Legal Events

Date Code Title Description
AS Assignment

Owner name: UNITED STATES OF AMERICA, THE, AS REPRESENTED BY T

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST.;ASSIGNORS:TYLASKA, THEODORE T.;CHOINSKI, THOMAS C.;REEL/FRAME:004935/0648

Effective date: 19860626

STCF Information on status: patent grant

Free format text: PATENTED CASE