Claims
- 1. A method for performing a discrete Fourier Transformation of an input signal {x(i), 0.ltoreq.i.ltoreq.N} of a number N of input data values, N being the product of the factors L and M, on a computer processor having a memory and a computing unit with several computing elements, that are able to compute in parallel, to produce an output signal, which method comprises the steps of:
- (a) reordering the input signal elements x(i) in a matrix x(l,m), 0.ltoreq.l.ltoreq.L-1, 0.ltoreq.m.ltoreq.M-1, according to the factors L and M;
- (b) converting the input signals to a logarithmic domain;
- (c) computing in parallel for all q or all l an (L.times.M)(M.times.M) matrix operation: ##EQU17## (d) computing the scale vector:
- G(l,q)=W.sub.N.sup.lq F(l,q),0.ltoreq.q.ltoreq.M-1,0.ltoreq.l.ltoreq.L-1;
- (e) computing the (M.times.L)(L.times.L) matrix operation: ##EQU18## (f) converting the results of the matrix operation to inverse log signals, wherein matrices W contain elements ##EQU19## and X(p,q) contains the elements of the Fourier Transform X(k) of the input signal x(i).
- 2. The method of claim 1, comprising the additional step
- (e) reordering X(p,q) to yield the Fourier Transform X(k) of the input signal x(i).
- 3. The method of claim 1, wherein step (c) is computed in parallel for all q or for all l.
- 4. The method of claim 1, wherein step (d) is computed in parallel for all q or for all l.
- 5. The method of claim 1, wherein steps (b) and (c) are computed in parallel for all q in one computing unit clock cycle.
- 6. The method of claim 1, wherein step (c) is computed by a scale processor.
- 7. The method of claim 1, with an additional matrix transposing step before or after step (c).
- 8. The method of claim 7, wherein the additional matrix transposing step is performed by external DMA.
- 9. The method of claim 1, performed on a computer processor having computing elements with a cache memory, wherein matrix elements are stored in this cache memory.
- 10. The method of claim 9, wherein the matrix elements W.sub.M.sup.mq, W.sub.N.sup.lq, and W.sub.L.sup.lp are stored in the cache memory.
- 11. The method of claim 9, wherein the computed matrix elements G(l,q) of step (c) are stored in the cache memory.
- 12. The method of claim 1, wherein the signal processor comprises more than one computing units with several computing elements each that are able to compute in parallel.
- 13. The method of claim 12, wherein steps (b) and (d) are performed on different computing units.
- 14. The method of claim 13, wherein the computed matrix elements of step (d) are stored in the cache memory.
- 15. The method of claim 1, wherein step (d) is treated as a set of M separate L-point Fourier Transformations and the method is recursively applied in that old step (d) is replaced by new steps (a') to (d') with L=N' and for each q
- {G(l,q),0.ltoreq.l.ltoreq.L-1}={x'(i'),0.ltoreq.i'.ltoreq.N'}.
- 16. The method of claim 15, wherein the recursion is repeated.
- 17. The method of claim 1, wherein L=M=N and the number of computing elements is equal to 2N.
- 18. The method of claim 1, wherein L=M=N and the number of computing elements is equal to 4N.
- 19. A signal processor comprising:
- a memory for storing an input signal {x(i), 0.ltoreq.i.ltoreq.N} of a number N of input data values, N being the product of the factors L and M, in a matrix x(l,m),0.ltoreq.l.ltoreq.L-1, 0.ltoreq.m.ltoreq.M-1, according to the factors L and M;
- a log converter to perform logarithmic conversion on the input data values;
- a computing unit response to the log converter and having several processing elements for computing in parallel for all q or all l an (L.times.M)(M.times.M) matrix operation: ##EQU20## and scaling means coupled to the memory for computing the scale operation:
- G(l,q)=W.sub.N.sup.lq F(l,q),0.ltoreq.q.ltoreq.M-1,0.ltoreq.l.ltoreq.L-1;
- an inverse log converter response to the scaling means to perform inverse-logarithmic conversions,
- wherein matrices W contain elements ##EQU21## take on parameter values indicated in the equations.
- 20. The signal processor of claim 19, wherein the memory receives and stores the elements G(l,q), and the elements of the (M.times.L)(L.times.L) matrix operation: ##EQU22## which are computed by the computing unit.
- 21. The signal processor of claim 19, wherein each processing element has a computing element for performing multiplications on input data points.
- 22. The signal processor of claim 19, wherein each computing element is adapted to perform multiplications as additions in the logarithmic domain.
- 23. The signal processor of claim 19, wherein each processing element has an accumulator for summing data.
- 24. The signal processor of claim 19, comprising a second memory connected to the computing unit to receive and store the elements G(l,q), and a second computing unit for performing the (M.times.L)(L.times.L) matrix operation: ##EQU23##
- 25. The signal processor of claim 19, further comprising multiple computing units for computing in parallel for all q or all l the (L '.times.M')(M'.times.M') matrix operation: where N'=M'*L' is greater than N=M*L.
RELATED INVENTIONS
The present invention is related to the commonly assigned U.S. applications:
The subject matter of the above--identified related inventions is hereby incorporated by reference into the disclosure of this invention.
US Referenced Citations (4)