← Back to Patent Explorer
US4604721A Expired / Lapsed US ⏱️ 0.0 years remaining

Computer and method for high speed prime factor transform

Assignee: Northrop Grumman Corp
•
Filing: 1985-02-27
•
Granted: 1986-08-05
•
Expires: 2005-02-27
📄 Original PDF 🌐 Google Patents 🔄 Sync Now

Abstract

Abstract A special purpose computer and method of computation for performing an N-length discrete Fourier transform (DFT) using a sum and difference conjugate prime factor transform. The transform length N is selected as equal to the product of L mutually prime factors N 1 , N 2 , . . . , N 1 , . . . , N L . For each one of the L mutually prime factors N i , an N i -length DFT is performed. Each N i -length DFT transform is performed using a data processing element called a kernel. Each kernel includes one or more memory elements for reordering data and a computational element. The computational element includes adder circuit means for forming the sum term, SUM(n) i equal to the quantity x(n i )+x(N i -n i ) and the difference term, DIFF(n i ) equal to x(n i )-x(N i -n i ).

Inventors

  • 👤 Joseph H. Gray

Bibliographic Details

Application Number —
Jurisdiction US
Data Source google_patents
Last Synchronized 2026-11-06 03:17
CPC Classifications
G; G06; G06F; G06F17/00; G06F17/10; G06F17/14; G06F17/141; G06F17/144

Claims Analysis

Total Claims: 19
Claim 1
Independent Claim 384 words
A computer for performing an N-length discrete Fourier transform of N initial data values, where the number N equals the product of a number L of mutually prime factors N 1 , N 2 , . . . N i , N i +1, . . . N L , comprising: (a) a set of one or more kernels; (b) each kernel being adapted to perform a discrete Fourier transform characterized by a transform length equal to one or more of said prime factors N i ; (c) wherein for each value of i in the range from 1 to L, said set of kernels includes a kernel adapted to perform a N i -length transform; (d) wherein each kernel includes: first reorder means for receiving N input data values and reordering them into (N/N i ) groups, with each group consisting of N i input data values x(n), n=0, 1, 2, . . . N i -1, computational means for performing a sum and difference conjugate N i -length discrete Fourier transform upon each of the (N/N i ) groups of N i reordered input data values x(n), thereby producing (N/N i ) groups of N i transformed data values X(k), for k=0, 1, 2, . . . N i -1, and second reorder means for reordering the (N/N i ) groups of N i transformed data values X(k) into N output data values, wherein N i equals any of said transform lengths for which that kernel is adapted to perform a discrete Fourier transform; (e) means for connecting said N initial data values to the kernel performing the N 1 -length transform so that said initial data values are received as the N input data values of the N 1 -length transform; and (f) for each value of i in the range from 1 to L-1, means for connecting the N output data values produced by the kernel performing the N i -length transform to the kernel performing the N i+1 -length transform so that said output data values are received as the N input data values of the N i+1 -length transform; (g) whereby the N output data values produced by the kernel performing the N L -length transform are the N-length discrete Fourier transform of the N initial data values.
Claim 2
Dependent Claim 384 words
A computer for performing an N-length discrete Fourier transform of N initial data values, where the number N equals the product of a number L of mutually prime factors N 1 , N 2 , . . . N i , N i +1, . . . N L , comprising: (a) a set of one or more kernels; (b) each kernel being adapted to perform a discrete Fourier transform characterized by a transform length equal to one or more of said prime factors N i ; (c) wherein for each value of i in the range from 1 to L, said set of kernels includes a kernel adapted to perform a N i -length transform; (d) wherein each kernel includes: first reorder means for receiving N input data values and reordering them into (N/N i ) groups, with each group consisting of N i input data values x(n), n=0, 1, 2, . . . N i -1, computational means for performing a sum and difference conjugate N i -length discrete Fourier transform upon each of the (N/N i ) groups of N i reordered input data values x(n), thereby producing (N/N i ) groups of N i transformed data values X(k), for k=0, 1, 2, . . . N i -1, and second reorder means for reordering the (N/N i ) groups of N i transformed data values X(k) into N output data values, wherein N i equals any of said transform lengths for which that kernel is adapted to perform a discrete Fourier transform; (e) means for connecting said N initial data values to the kernel performing the N 1 -length transform so that said initial data values are received as the N input data values of the N 1 -length transform; and (f) for each value of i in the range from 1 to L-1, means for connecting the N output data values produced by the kernel performing the N i -length transform to the kernel performing the N i+1 -length transform so that said output data values are received as the N input data values of the N i+1 -length transform; (g) whereby the N output data values produced by the kernel performing the N L -length transform are the N-length discrete Fourier transform of the N initial data values.
Claim 3
Dependent Claim 39 words
A computer according to claim 1, wherein at least one of the kernels is further adapted to sequentially perform discrete Fourier transforms characterized by respective transform lengths equal to two or more of said prime factors N i .
Claim 4
Dependent Claim 247 words
A computer according to claim 1, wherein the computational means includes (a) an adder circuit for adding and subtracting pairs of the N i input data values x(n) to produce N sum values SUM(n)=x(n)+x(N i -n) and M difference values DIFF(n)=x(n)-x(N i -n) for n=1, 2, . . . M, where M=(N i -1)/2; (b) a first multiplier/accumulator circuit for producing M output values ACC 1 (k), k=1, 2, . . . M, by multiplying each SUM(n) value by a cosine which is a function of k and accumulating the resulting products as follows: ##EQU20## (c) a second multiplier/accumulator circuit for producing M output values ACC 2 (k), for k=1, 2, . . . M, by (1) multiplying each DIFF(n) value by a value which is a sine function of n and k, and (2) accumulating the resulting products as follows: ##EQU21## (d) an accumulator circuit for producing a value ACC 3 equal to the sum of the M sum values SUM(n), n=1, 2, . . . M; and (e) a circuit for producing the N i transformed data values X(k), for k=0, 1, 2, . . . N i -1, by combining the output values of the first and second multiplier/accumulators ACC 1 (n) and ACC 2 (n) and the output value of the accumulator ACC 3 as follows, wherein M=(N i -1)/2: X(k=0)=x(n=0)+ACC.sub.3 ; X(k)=X(n=0)+ACC.sub.1 (k)+jACC.sub.2 (k), for k=1, 2, . . . M; X(N.sub.i -k)=X(n=0)+ACC.sub.1 (k)-jACC.sub.2 (k), for k=1, 2, . . . M.
Claim 5
Dependent Claim 48 words
A computer according to claim 1, wherein the length N of the discrete Fourier transform is 4095, the number L of mutually prime factors is 4, and the four factors N 1 , N 2 , N 3 and N 4 are 5, 7, 9 and 13, respectively.
Claim 6
Dependent Claim 294 words
A computer for performing an N-length discrete Fourier transform of N initial data values, where the number N equals the product of a number L of mutually prime factors N 1 , N 2 , . . . N i , N i +1, . . . N L , comprising: (a) L kernels designated the 1st kernel, 2nd kernel, . . . i-th kernel, (i+1)-th kernel, . . . and the L-th kernel; (b) wherein the i-th kernel , for i ranging from 1 to L, produces N output data values; (c) wherein the 1st kernel receives as its N input data values the N initial data values; (d) wherein the i-th kernel, for i ranging from 2 to L, receives as its N input data values the N output data values produced by the preceding (i-1)-th kernel; and (e) wherein the i-th kernel, for i ranging from 1 to L, includes first reorder means for reordering the N input data values received by the i-th kernel into (N/N i ) groups, with each group consisting of N i input data values x(n), n=0, 1, 2, . . . N i -1, computational means for performing a sum and difference conjugate N i -length discrete Fourier transform upon each of the (N/N i ) groups of N i reordered input data values x(n), thereby producing (N/N i ) groups of N i transformed data values X(k), for k=0, 1, 2, . . . N i -1, and second reorder means for reordering the (N/N i ) groups of N i transformed data values X(k) into N output data values; (f) whereby the N output data values produced by the L-th kernel are the N-length discrete Fourier transform of the N initial data values.
Claim 7
Dependent Claim 294 words
A computer for performing an N-length discrete Fourier transform of N initial data values, where the number N equals the product of a number L of mutually prime factors N 1 , N 2 , . . . N i , N i +1, . . . N L , comprising: (a) L kernels designated the 1st kernel, 2nd kernel, . . . i-th kernel, (i+1)-th kernel, . . . and the L-th kernel; (b) wherein the i-th kernel , for i ranging from 1 to L, produces N output data values; (c) wherein the 1st kernel receives as its N input data values the N initial data values; (d) wherein the i-th kernel, for i ranging from 2 to L, receives as its N input data values the N output data values produced by the preceding (i-1)-th kernel; and (e) wherein the i-th kernel, for i ranging from 1 to L, includes first reorder means for reordering the N input data values received by the i-th kernel into (N/N i ) groups, with each group consisting of N i input data values x(n), n=0, 1, 2, . . . N i -1, computational means for performing a sum and difference conjugate N i -length discrete Fourier transform upon each of the (N/N i ) groups of N i reordered input data values x(n), thereby producing (N/N i ) groups of N i transformed data values X(k), for k=0, 1, 2, . . . N i -1, and second reorder means for reordering the (N/N i ) groups of N i transformed data values X(k) into N output data values; (f) whereby the N output data values produced by the L-th kernel are the N-length discrete Fourier transform of the N initial data values.
Claim 8
Dependent Claim 48 words
A computer according to claim 5, wherein the length N of the discrete Fourier transform is 4095, the number L of mutually prime factors is 4, and the four factors N 1 , N 2 , N 3 and N 4 are 5, 7, 9 and 13, respectively.
Claim 9
Dependent Claim 81 words
The computer of claim 5 wherein: (a) the first reorder means of the i-th kernel includes (1) a random access memory for storing the N input data values received by the i-th kernel at N respective addresses within the memory, and (2) address selection means for selecting the addresses of the input data values in the order in which the reordered data values are to be received by the computational means; (b) the second reorder means of the i-th kernel includes
Claim 10
Dependent Claim 287 words
(1) a random access memory for storing the N transformed data values produced by the computational means at N respective addresses within the memory, and (2) address selection means for selecting the addresses at which successive transformed data values are stored in the memory; and (c) the respective address selection means of the first and second reorder means each include an address register for storing the address selected by the address selection means, a first register for storing a first increment, a second register for storing a second increment, a third register for storing a first quantity equal to the first increment minus N, a fourth register for storing a second quantity equal to the second increment minus N, first adder means for adding the address in said address register to said first increment for N i -1 values in each group of N i data values and for adding the address in said address register to said second increment on the remaining one of the N i values in each group, second adder means for adding the address in said address register to the first quantity for N i -1 values in each group and for adding the address in said address register to the second quantity for the remaining one of the N i values in each group, and means for selecting a starting address as the first address for said address register means and means for selecting each next address for said address register means from said second adder whenever the sum from said second adder does not have a negative sign and means for selecting the next address from said first adder whenever the sum from said second adder has a negative sign.
Claim 11
Dependent Claim 287 words
(1) a random access memory for storing the N transformed data values produced by the computational means at N respective addresses within the memory, and (2) address selection means for selecting the addresses at which successive transformed data values are stored in the memory; and (c) the respective address selection means of the first and second reorder means each include an address register for storing the address selected by the address selection means, a first register for storing a first increment, a second register for storing a second increment, a third register for storing a first quantity equal to the first increment minus N, a fourth register for storing a second quantity equal to the second increment minus N, first adder means for adding the address in said address register to said first increment for N i -1 values in each group of N i data values and for adding the address in said address register to said second increment on the remaining one of the N i values in each group, second adder means for adding the address in said address register to the first quantity for N i -1 values in each group and for adding the address in said address register to the second quantity for the remaining one of the N i values in each group, and means for selecting a starting address as the first address for said address register means and means for selecting each next address for said address register means from said second adder whenever the sum from said second adder does not have a negative sign and means for selecting the next address from said first adder whenever the sum from said second adder has a negative sign.
Claim 12
Dependent Claim 114 words
The computer of claim 7 wherein for said first reorder means said first register stores said first increment as the value R i determined for each N i -length discrete Fourier transform such that when the input index is designated as n and is given by: n=(n.sub.1 R.sub.1 +n.sub.2 R.sub.2 +n.sub.3 R.sub.3 +. . . +n.sub.i R.sub.i . . . +n.sub.L R.sub.L) mod N where, i=1, 2, . . . , L where each value of R i is selected to have a value such that, ##EQU22## where, i=1, 2, . . . , L m=1, 2, . . . , L and where said second register stores said second increment equal to 1.
Claim 13
Dependent Claim 37 words
The computer of claim 8 wherein for said second reorder means said first register stores said first increment equal to N/N i and said second register stores said second increment equal to N+1-R i +N/N i .
Claim 14
Dependent Claim 130 words
The computer of claim 7 wherein the length N of the discrete Fourier transform is 4095, the number L of mutually prime factors is 4, and the four factors N 1 , N 2 , N 3 and N 4 are 5, 7, 9 and 13, respectively; wherein for said first reorder means, for the N 1 -, N 2 -, N 3 -, and N 4 -length transforms, said first increments are 3276, 1170, 0910, and 2835, respectively, and said second increments are each 1; and wherein for said second reorder means for the N 1 -, N 2 -, N 3 -, and N 4 -length transforms said first increments are 819, 585, 455, and 315, respectively, and said second increments are 1639, 3511, 3641, and 1576, respectively.
Claim 15
Dependent Claim 114 words
The computer of claim 7 wherein for said second reorder means said first register stores said first increment as the value R i determined for each N i -length discrete Fourier transform such that when the input index is designated as n and is given by: n=(n.sub.1 R.sub.1 +n.sub.2 R.sub.2 +n.sub.3 R.sub.3 +. . . n.sub.i R.sub.i . . . +n.sub.L R.sub.L) mod N where, i=1, 2, . . . , L where each value of R i is selected to have a value such that, ##EQU23## where, i=1, 2, . . . , L m=1, 2, . . . , L and where said second register stores said second increment equal to 1.
Claim 16
Dependent Claim 37 words
The computer of claim 11 wherein for said first reorder means said first register stores said first increment equal to N/N i and said second register stores said second increment equal to N+1-R i +N/N i .
Claim 17
Dependent Claim 52 words
The computer of claim 5 wherein said first reorder means includes a random access first memory, first means for writing said input data into said first memory in one sequence and first means for reading said data from said first memory in another sequence thereby forming another order for said input data.
Claim 18
Dependent Claim 90 words
The computer of claim 13 wherein said first reorder means further includes a random access second memory, second means for writing said input data into said second memory in said one sequence, and second means for reading said data from said second memory in said another sequence thereby forming said another order for said input data, and means for controlling said first and second memories such that said first memory is writing when said second memory is reading and said first memory is reading when said second memory is writing.
Claim 19
Dependent Claim 248 words
A computer according to claim 5, wherein the computational means includes (a) an adder circuit for adding and subtracting pairs of the N i input data values x(n) to produce M sum values SUM(n)=x(n)+x(N i -n) and M difference values DIFF(n)=x(n)-x(N i -n) for n=1, 2, . . . M, where M=(N i -1)/2; (b) a first multiplier/accumulator circuit for producing M output values ACC 1 (k), k=1, 2, . . . M, by multiplying each SUM(n) value by a cosine value which is a function of k and accumulating the resulting products as follows: ##EQU24## (c) a second multiplier/accumulator circuit for producing M output values ACC 2 (k), for k=1, 2, . . . M, by (1) multiplying each DIFF(n) value by a value which is a sine funtion of n and k, and (2) accumulating the resulting products as follows: ##EQU25## (d) an accumulator circuit for producing a value ACC 3 equal to the sum of the M sum values SUM(n), n=1, 2, . . . M; and (e) a circuit for producing the N i transformed data values X(k), for k=0, 1, 2, . . . N i -1, by combining the output values of the first and second multiplier/accumulators ACC 1 (n) and ACC 2 (n) and the output value of the accumulator ACC 3 as follows, wherein M=(N i -1)/2: X(k=0)=x(n=0)+ACC.sub.3 ; X(k)=X(n=0)+ACC.sub.1 (k)+jACC.sub.2 (k), for k=1, 2, . . . M; X(N.sub.i -k)=X(n=0)+ACC.sub.1 (k)-jACC.sub.2 (k), for k=1, 2, . . . M.

References Cited (Backward Citations)

US4092723A Cited
US4156920A Cited
US4293921A Cited

USPTO Annuity & Maintenance Windows

Annuity Stage Window Opens Payment Deadline Surcharge Period Until Estimated Fee Status
3.5 Years (Year 4) 1989-08-04 1990-02-03 1990-08-05 $2000.00 Window Closed / Lapsed
7.5 Years (Year 8) 1993-08-04 1994-02-03 1994-08-05 $3760.00 Window Closed / Lapsed
11.5 Years (Year 12) 1997-08-04 1998-02-03 1998-08-05 $7700.00 Window Closed / Lapsed

Assigned Categories & Tags

No categories assigned to this patent yet.

Assign Category Tag