Methods and apparatus for performing reduced complexity discrete fourier transforms using interpolation

Information

  • Patent Grant
  • 8015226
  • Patent Number
    8,015,226
  • Date Filed
    Friday, September 21, 2007
    16 years ago
  • Date Issued
    Tuesday, September 6, 2011
    12 years ago
Abstract
Methods and apparatus are provided for performing reduced complexity discrete Fourier transforms using interpolation An input sequence of length N is transformed by extending the input sequence to an extended input sequence of length M, where M is greater than N (a power of two greater than N); performing a discrete Fourier Transform (DFT), such as a power-of-two DFT, on the extended input sequence to obtain an interpolated sequence; and applying a conversion matrix to the interpolated sequence to obtain a DFT output for the input sequence of length N. The input sequence of length N can be extended to an extended input sequence of length M, for example, by employing a zero padding technique, a cyclic extension technique, a windowing of a cyclic extended sequence technique or a resampling-based interpolation technique to extend the input sequence. The conversion matrix is substantially a sparse matrix.
Description
FIELD OF THE INVENTION

The present invention relates generally to Fourier transform techniques, and more particularly, to techniques for performing a discrete Fourier transform with reduced computational complexity


BACKGROUND OF THE INVENTION

The Fourier transform maps functions to other functions. Generally, the Fourier transform decomposes a function into a continuous spectrum of its frequency components. Likewise, the inverse Fourier transform synthesizes a function from its spectrum of frequency components. The discrete Fourier transform (DFT) is a transform for Fourier analysis of finite-domain discrete-time signals.


The DFT of a vector r of length N is defined as follows:








y
k

=



1

N







n
=
0


N
-
1








-


2

π







N



kn




r
n






where





k



=
0


,





,

N
-
1.






See, for example, E. C. Ifeachor and B. W. Jervis, “Digital Signal Processing: A Practical Approach,” Addison-Wesley, June 1993; or http://en.wikipedia.org/wiki/Discerete_fourier_transform. Evaluating these sums directly would take on the order of N2 arithmetical operations. A fast Fourier transform (FFT) algorithm reduces the complexity to an order of N log N operations. In general, such algorithms depend upon the factorization of N, so for most values of N, the FFT complexity is on the order of N log N.


One popular FFT implementation is the Cooley-Tukey algorithm. Generally, the Cooley-Tukey algorithm recursively breaks down a DFT of any composite size N equal to N1·N2 into many smaller DFTs of sizes N1 and N2, along with order of N multiplications by complex toots of unity The most well-known use of the Cooley-Tukey algorithm divides the transform into two pieces of size N/2 at each step, and is therefore limited to power-of-two sizes. In general, however, any factorization can be used, such as radix-2 and mixed-radix algorithms.


While such existing FFT algorithms efficiently decompose a function of length N into a discrete spectrum of its frequency components for many values of N, brute force DFTs must still generally be used when N is a large prime number. A need therefore exists for improved methods and apparatus that approximate the DFT result for a large prime number.


SUMMARY OF THE INVENTION

Generally, methods and apparatus are provided for performing reduced complexity discrete Fourier transforms using interpolation. According to a first aspect of the invention, an input sequence of length N is transformed by extending the input sequence to an extended input sequence of length M, where M is greater than N (a power of two greater than N); performing a discrete Fourier Transform (DFT), such as a power-of-two DFT, on the extended input sequence to obtain an interpolated sequence; and applying a conversion matrix to the interpolated sequence to obtain a DFT output for the input sequence of length N.


The input sequence of length N can be extended to an extended input sequence of length M, for example, by employing a zero padding technique, a cyclic extension technique, a windowing of a cyclic extended sequence technique or a resampling-based interpolation technique to extend the input sequence According to another aspect of the invention, the conversion matrix is substantially a sparse matrix.


A more complete understanding of the present invention, as well as further features and advantages of the present invention, will be obtained by reference to the following detailed description and drawings.





BRIEF DESCRIPTION OF THE DRAWINGS


FIG. 1 illustrates the evaluation of a DFT on a finite-domain discrete-time input signal, to decompose the input function into a continuous spectrum of its frequency components;



FIG. 2 is a flow chart describing an exemplary implementation of a DFT method 200 incorporating features of the present invention;



FIG. 3 illustrates the square of the magnitude of the elements in an exemplary row of a conversion matrix Q;



FIG. 4 illustrates the square of the magnitude of all the elements in the conversion matrix Q; and



FIGS. 5 through 8 are tables illustrating the complexity analysis for the computation of exemplary 839 (N) point DFTs using the four exemplary sequence extension approaches.





DETAILED DESCRIPTION

The present invention provides methods and apparatus for performing reduced complexity discrete Fourier transforms using interpolation. FIG. 1 illustrates the evaluation of a DFT 100 on a finite-domain discrete-time input signal, to decompose the input function into a discrete spectrum of its frequency components. As previously indicated, the DFT 100 of a vector r of length N can be defined as follows:











y
k

=



1

N







n
=
0


N
-
1








-


2

π







N



kn




r
n






where





k



=
0


,





,

N
-
1.





(
1
)







Equation 1 can also be written as follows:

yN×1=FN×NrN×1

where all the elements of matrix F are defined by









-


2

πⅈ

N



kn






for k=0, . . . , N−1 and n=0, . . . , N−1.


Evaluating DFT based on equation (2) would take O(N2) arithmetic operations. However, by using a radix-2 algorithm, the DFT can be evaluated by O(N×log2N) operations.


Simplification of DFT by Interpolation

The present invention recognizes that a DFT can be obtained with reduced complexity using interpolation. FIG. 2 is a flow chart describing an exemplary implementation of a DFT method 200 incorporating features of the present invention. As shown in FIG. 2, the DFT method 200 initially obtains the finite-domain discrete-time input signal of length N, during step 210 The DFT method 200 then extends the finite-domain discrete-time input signal to a length M during step 220. In four exemplary embodiments discussed herein, the extension may be performed using a zero padding, cyclic extension, windowing of a cyclic extended sequence and resample based interpolation technique. For example, when N is not a power of two, the input signal can be extended to a length M, which is a power of two greater than N.


During step 230, the DFT method 200 performs a DFT, such as a power-of-two DFT, on the extended input signal to obtain interpolated sequence. Finally during step 240, a conversion matrix is applied to the interpolated sequence to obtain the ideal DFT output.


The DFT method 200 may also be expressed using the following pseudo-code:


Step 1: Extend non-power-of-two sequence (r) of length N to a power-of-two sequence of length M by performing zero padding or cyclic extension (r′)


Step 2: Perform Radix-2 FFT operation on r′.


Step 3: Compute a conversion matrix (Q) and apply Q to obtain the DFT of r (i.e., x=Qr′=Fr where F is the DFT matrix).


Step 4: Obtain an approximation of x (x′) using a simplified version of Q (Qt). Qt has only T nonzero elements per row.

x′=Qtr′


Zero Padding


As indicated above, the DFT method 200 extends the finite-domain discrete-time input signal of length N to a length M. In an exemplary zero padding embodiment, for values of N that ate not equal to a power of two, zeros are added to the end of the input sequence so that total length of the sequence is equal to a power of two. This leads to an interpolated DFT result in accordance with the present invention. Equation 2 can be written as follows, where M is a number equal to a power of two:

yM×1=WM×MrM×1  (3)


The same result can also be obtained using the following equation:

yM×1=ZM×MUzM×NrN×1  (4)

where all of the elements of matrix Z (an FFT of the input sequence) are defined by









-


2

πⅈ

M



km






and k=0, . . . , M−1, m=0, . . . , M−1 and







U

zM
×
N


=

[




I

N
×
N







0

M
-

N
×
N






]






where I and 0 are the identity and null matrices. Thus, equations 3 and 4 provide the FFT of the extended input sequence.


The DFT of the original sequence (having a length N that is not a power of two), can be obtained from y (the FFT of the extended input sequence) utilizing a conversion matrix Q Conversion matrix, Q, is used to convert any power of two DFT sequence to a non power of two DFT sequence.















y

N
×
1


=




Q

N
×
M




y

M
×
1









=




Q

N
×
M




Z

M
×
M




U

zM
×
N




r

N
×
1









=




Q

N
×
M




W

zM
×
N




r

N
×
1











(
5
)







From Equations (2) and (5),

F=QWz  (6)


Alternatively, equation (6) can be expressed as follows:

Q=FWz

where Wz is the pseudo inverse of Wz and is defined by (WzHWz)−1WzH and WzH is the complex conjugate of the transposed matrix of Wz. WzHWz is an identity matrix. Therefore, Wz=WzH and Q=FWzH The elements in Q can be computed using the following equation:










q

m
,
n


=


1

MN







l
=
0


N
-
1






2








l


(


m
M

-

n
N


)










(
7
)








where m=0, . . . , M−1 and n=0, . . . , N−1


The term









l
=
0


N
-
1






2








l


(


m
M



n
N


)









represents a geometric progression (GP) of N elements. The sum of p elements of a GP is defined as follows:













p
=
0


P
-
1








af
p


=

a



1
-

f
P



1
-
f







(
8
)







Hence, the elements of matrix Q can be defined as shown in the following equation:










q

(

m
,
n

)


=


1

MN





1
-



j





AN




1
-



j





A









(
9
)








where







A
=

2


π


(


m
M

-

n
N


)




,





m=0, . . . , M−1 and n=0, . . . , N−1 except fox q(1,1) which is equal to N. The magnitude of q is defined as








q


=




1
-

cos


(
NA
)




1
-

cos


(
A
)





.






FIG. 3 is a plot 300 illustrating the square of the magnitude of the elements in the exemplary 420th row of the conversion matrix Q. It is noted that the pattern observed in the magnitude square of Q elements for all the rows is similar to the plot 300 shown in FIG. 3FIG. 4 is a plot 400 illustrating the square of the magnitude of all the elements in the conversion matrix Q, for exemplary values of N equal to 839 and M equal to 1024. As shown in FIG. 4, the conversion matrix Q is essentially a sparse matrix having the magnitude primarily concentrated on the diagonal, with the other elements having near-zero values. Thus, there are relatively few elements in the matrix, resulting in a reasonable number of computations.


Cyclic Extension of the Sequence

As indicated above, the DFT method 200 extends the finite-domain discrete-time input signal of length N to a length M. In an exemplary cyclic extension embodiment, for values of N that are not equal to a power of two, a cyclic extension can be performed on the sequence to make its length equal to power of two. This operation can be performed, for example, by multiplying the input sequence with a matrix Uc, as follows:










U

cM
×
N


=

[




I

N
×
N








I

M
-

N
×
M

-
N








0

M
-

N
×
2

N

-
M






]





(
10
)







The interpolated sequence obtained by performing a power-of-two DFT on the cyclic extended sequence is given by the following equation:

ycM×1=ZcM×MUcM×NrN×1=WcM×NrN×1  (11)


Zc can be represented as ZcM×M=[zc1 zc2 . . . zcM] where zc1, zc2, . . . and zcM are vectors each of length M representing each column in Z. Then, Wc can be expressed as follows:















W

cM
×
N


=




Z

cM
×
M




U

cM
×
N









=



[


z

c





1


+


z

cN
+
1








z

c





2



+


z

cN
+
2














z

cM
-
N



+


z
cM







z

cM
-
N
+
1








⋯z
cM



]









(
12
)







The DFT of the original input sequence can be obtained by multiplying yc′ by the conversion matrix Q as follows:















y

N
×
1


=




Q

c





N
×
M




y

c





M
×
1









=




Q

c





N
×
M




W

c





M
×
N




r

N
×
1











(
13
)







From equations (2) and (13),

F=QcWc.


Alternatively,

Qc=FWc.

where Wc is the pseudo inverse of Wc and is defined by (WcHWc)−1WcH and WcH is the complex conjugate of the transposed matrix of Wc. WcHWc is a diagonal matrix where the first M−N elements along the diagonal are equal to ½ and the value of the remaining elements is 1. In addition:









(


W
c
H



W
c


)


-
1




W
c
H


=


[




z

c





1


+

z


c





N

+
1



2





z

c





2


+

z


c





N

+
2



2















z

cM
-
N


+

z
cM


2







z

cM
-
N
+
1




z
cM


]

H





The conversion matrix Qc for the cyclic extension embodiment may be expressed as follows:















Q
c

=





F


(


W
c
H



W
c


)



-
1




W
c
H








=




F


[




z

c





1


+

z

cN
+
1



2





z

c





2


+

z

cN
+
2



2















z

cM
-
N


+

z
cM


2



z

cM
-
N
+
1




z
cN


]


H









(
14
)







The elements of the conversion matrix Q is given by the following equation:












q

cm
,
n



=

{



1

MN







l
=
0


M
-
N
-
1












2








l


(


m
M

-

n
N


)




+



2



(

(




(

l
+
N

)


m

M



nl
N


)





2



+




l
=

M
-
N



N
-
1










2


jπl


(


m
M

-

n
N


)











(
15
)








wherein m=0, . . . , M−1 and n=0, . . . , N−1.


Equation (15) can be split into three parts, each of which is a Geometric Progression (GP) as follows:










q

cm
,
n


=


1

MN






[



1
2

×


1
-



j






A


(

M
-
N

)






1
-



j





A





+


1
2

×


1
-




j


(

A
+

Nm
M


)




(

M
-
N

)





1
-



j


(

A
+

Nm
M


)






+





j






A


(

M
-
N

)




-



j





AN




1
-



j





A





]







(
16
)







Windowing of a Cyclic Extended Sequence

As indicated above, the DFT method 200 extends the finite-domain discrete-time input signal of length N to a length M. In an exemplary windowing of a cyclic extended sequence, for values of N that are not equal to a power of two, a cyclic extension can be performed on the sequence to make its length equal to power of two and more. A windowing operation can be performed on the cyclic extended sequence to obtain the sequence of required length. Here, for example, for an 839 point DFT, the length of the cyclic extension is chosen to be 2048. This operation can be performed by multiplying the sequence with a matrix Uw, defined as follows:










U

wM
×
N


=

[




I

N
×
N







I

N
×
N








I

M
-

N
×
M

-
N








0

M
-

N
×
2

N

-
M






]





(
17
)







The interpolated sequence obtained by performing power-of-two DFT on the windowed cyclic extended sequence is given as follows:

ywM×1=ZwM×MDM×MUwM×NrN×1  (18)

where Uw is the matrix to define the cyclic extension of the sequence given by Equation (19) and D (shown below in Equation (20)) is the matrix used to apply a windowing operation on the cyclic extended input sequence:










U

wM
×
N


=

[




I

N
×
N







I

N
×
N








I

M
-

N
×
M

-
N








0

M
-

2

N
×
3

N

-
M






]





(
19
)







D

M
×
M


=

[




d
1































d
2








0







































0








d

M
-
1
































d
M




]





(
20
)







The DFT of the original sequence can be obtained by multiplying yw′ by the conversion matrix Qw as follows:















y

wN
×
1


=




Q

w





N
×
M




y

w





M
×
1










=




Q

w





N
×
M




Z

w





M
×
M




D

w





M
×
M




U

w





M
×
N




r

N
×
1











(
21
)







From equations (2) and (21),

F=QwZwDwUw.


Alternatively:

Qw=F(ZwDwUw)

where (ZwDwUw) is the pseudo inverse of (ZwDwUw) and is defined by ((ZwDwUw)H(ZwDwUw))−1(ZwDwUw)H.















Q
w

=




F


(


Z
w



D
w



U
w


)










=





F


(


U
w
H



D
w
H



Z
w
H



Z
w



D
w



U
w


)



-
1




U
w
H



D
w
H



Z
w
H








=





F


(


U
w
H



D
w
2



U
w


)



-
1




U
w
H



D
w
H



Z
w
H










(
22
)








where (UwHDw2Uw)−1 is defined as follow:




















(


U
w
H



D
w
2



U
w


)


-
1


=




[




[




I
1




0
1




I
1




0
1




I
3






0
2




I
2




0
2




I
2




0
3




]







[




D
1
2



0


0


0


0




0



D
2
2



0


0


0




0


0



D
3
2



0


0




0


0


0



D
4
2



0




0


0


0


0



D
5
2




]



[




I
4




0
5






0
4




I
5






I
4




0
5






0
4




I
5






I
6




0
6




]





]


-
1










=



[





(


D
1
2

+

D
3
2

+

D
5
2


)


-
1




0




0




(


D
2
2

+

D
4
2


)


-
1





]









(
23
)








where I1, I2, I3, I4, I5, & I6 are identity matrices of sizes M−2N×N/2, 3N−M×N/2, M−2N×M−2N, N/2×M−2N, N/2×2N & 2N×2N, 01, 02, 03, 04, 05, & 06 are null matrices of sizes M−2N×N/2, 3N−M×N/2, 3N−M×M−2N, N/2×M−2N, N/2×2N & 2N×2N, D12, D22, D32, D42 are the diagonal matrices of D of sizes N/2×N/2 and D52, M−2N×M−2N, respectively.


The conversion matrix Qc may be expressed as follows:









Q
=



F


[





(


D
1
2

+

D
3
2

+

D
5
2


)


-
1




0




0




(


D
2
2

+

D
4
2


)


-
1





]




[




D
1
2



0



D
3
2



0



D
5
2





0



D
2
2



0



D
4
2



0



]




Z
H






(
24
)







Resample Based Interpolation

As indicated above, the DFT method 200 extends the finite-domain discrete-time input signal of length N to a length M. In an exemplary resample based interpolation, for any non power of 2 sequence (r) of length N, a cyclic extension can be performed on the sequence to make its length equal to power of 2 (M) and mote. The transformed sequence (y′) is obtained by performing FFT on r. To obtain an approximation of y. Resample is performed on y′ with special attention paid to eliminate the edge effect. Resample is the combination of interpolation and decimation to change the sampling rate by a rational factor. The resample function samples the input sequence at N/M times the original sample rate using a polyphase implementation. During a resampling process, anti-aliasing (low pass) FIR filter via Kaiser window is used to compensate for the filter delay. The filter length can be changed and with increase in the filter length the accuracy increases at the expense of additional computation complexity. This operation is performed offline and only the filter taps (twice the filter length) need to be stored and can be used for on chip computations.


The resampling operation can be expressed in matrix form as follows

yrN×1=DN×MNHMN×MNUMN×MyM×1

where UMN×M is the upsample-by-N matrix, HMN×MN is the interpolation lowpass filter and DN×MN is the downsample-by-M matrix:







[




y

r
0












y

r

N
-
1






]

=



[




1






0

1
×

(

MN
-
1

)















0

1
×

(
kM
)








1






0

1
×

(

MN
-
kM
-
1

)















0

1
×

(


(

N
-
1

)


M

)








1






0

1
×

(

M
-
1

)







]



[




h
0




h

-
1





h

-
2








h
1






h
1




h
0




h

-
1








h
2






h
2




h
1




h
0







h
3























h

MN
-
1





h

MN
-
2





h

MN
-
3








h
0




]







[




1





0











0





0






0


(

N
-
1

)

×
M







0





1











0





0






0


(

N
-
1

)

×
M












0





0











0





1






0


(

N
-
1

)

×
M





]



[




y
0












y

M
-
1





]









where index k=0 . . . N−1 is the row index for matrix DN×MN. The elements of HMN×MN are defined as hn=hn+NM and hn=0, for LN≦|n|≦MN/2 Therefore, it can be observed that most of the entries in H matrix are zeros.







[




y

r
0












y

r

N
-
1






]

=




[




h
0




h

-
N





h

2

N








h


-

(

M
-
1

)



N







h
M




h

M
-
N





h

M
-

2

N









h

M
-


(

M
-
1

)


N








h

2

M





h


2

M

-
N





h


2

M

-

2

N









h


2

M

-


(

M
-
1

)


N

























h


(

N
-
1

)


M





h



(

N
-
1

)


M

-
N





h



(

N
-
1

)


M

-

2

N









h



(

N
-
1

)


M

-


(

M
-
1

)


N






]





[




y
0











y

M
-
1





]








Approximation of Conversion Matrix Q

In a further variation of the present invention, rather than considering all of the elements in each row of conversion matrix Q, it is sufficient to use some elements (taps) around the point at which the magnitude of Q is maximum. Therefore, the conversion matrix can be approximated to Q′ of size N×T. These elements contribute maximum energy when compared to other elements in that row. The magnitude of Q attains its maximum value when A approaches zero. This happens at mmax equal to M×n/N. The sum of all the elements in each row of Q is one, i.e.,












m
=
0

M



Q


(

n
,
m

)





=
1





By considering only T elements in each row of Q, some part of the energy is lost. The amount of energy captured by selecting a few elements in each row can as be expressed as follows,











E
C



(
n
)


=






m
max

-
v



m
max

+
v











Q


(

n
,
m

)




2






m
=
0

M






Q


(

n
,
m

)




2







(
25
)








where v=(T−1)/2, T is number of taps and mmax is the column location of each row at which the square of the magnitude of Q is maximum. For a given M and N, only the required elements in Q (T elements in each row) can be computed offline and stored in a look up table, which can be used for on chip computations The number of MAC operations required for the computation of an N-point DFT for cyclic and zero padded input sequences is M×log2M+T×N and for windowing cyclic extended input sequences, the number of required MAC operations is M×log2M+T×N+M. For small values of T, this number is considerably less than the N2 operations required for a brute force implementation of N-point DFT


The complexity analysis for the computation of the exemplary 839 (N) point DFTs using the four exemplary sequence extension approaches are shown in FIGS. 5 through 8. It is noted that the savings in computational complexity is with respect to a classical DFT computation. The output SNR is the ratio of the mean of the signal power divided by the mean of the noise power. The error is the error energy of the difference between the actual and approximated DFT signals. The variable ‘bits’ in the tables of FIGS. 5-8 represent the accuracy of the approximated signal in comparison to the actual DFT signal and is defined as SNR(dB)/6. The mean and variance of the input data are also shown in FIGS. 5-8.


From FIGS. 5-8, it can be observed that resample based interpolation gives the best performance among the four exemplary embodiments. For example, when the number of taps is 15, more than 20 bit accuracy is obtained. This accuracy is obtained with more than 96% savings in the computational complexity compared to a direct 839-point DFT operation.


While exemplary embodiments of the present invention have been described with respect to digital logic blocks or software algorithms (or a combination thereof), as would be apparent to one skilled in the art, various functions may be implemented in the digital domain as processing steps in a software program, in hardware by circuit elements or state machines, or in combination of both software and hardware. Such software may be employed in, for example, a digital signal processor, micro-controller, or general-purpose computer. Such hardware and software may be embodied within circuits implemented within an integrated circuit


Thus, the functions of the present invention can be embodied in the form of methods and apparatuses for practicing those methods. One or more aspects of the present invention can be embodied in the for of program code, for example, whether stored in a storage medium, loaded into and/or executed by a machine, or transmitted over some transmission medium, wherein, when the program code is loaded into and executed by a machine, such as a computer, the machine becomes an apparatus for practicing the invention. When implemented on a general-purpose processor, the program code segments combine with the processor to provide a device that operates analogously to specific logic circuits. The invention can also be implemented in one or more of an integrated circuit, a digital signal processor, a microprocessor, and a micro-controller.


As is known in the art, the methods and apparatus discussed herein may be distributed as an article of manufacture that itself comprises a computer readable medium having computer readable code means embodied thereon. The computer readable program code means is operable, in conjunction with a computer system, to carry out all or some of the steps to perform the methods or create the apparatuses discussed herein. The computer readable medium may be a recordable medium (e.g., floppy disks, hard drives, compact disks, memory cards, semiconductor devices, chips, application specific integrated circuits (ASICs)) or may be a transmission medium (e.g., a network comprising fiber-optics, the world-wide web, cables, or a wireless channel using time-division multiple access, code-division multiple access, or other radio-frequency channel). Any medium known or developed that can store information suitable for use with a computer system may be used. The computer-readable code means is any mechanism for allowing a computer to read instructions and data, such as magnetic variations on a magnetic media or height variations on the surface of a compact disk.


The computer systems and servers described herein each contain a memory that will configure associated processors to implement the methods, steps, and functions disclosed herein. The memories could be distributed or local and the processors could be distributed or singular The memories could be implemented as an electrical, magnetic or optical memory, or any combination of these or other types of storage devices. Moreover, the term “memory” should be construed broadly enough to encompass any information able to be read from or written to an address in the addressable space accessed by an associated processor. With this definition, information on a network is still within a memory because the associated processor can retrieve the information from the network.


It is to be understood that the embodiments and variations shown and described herein are merely illustrative of the principles of this invention and that various modifications may be implemented by those skilled in the art without departing from the scope and spirit of the invention.

Claims
  • 1. A method for transforming an input sequence of length N, comprising: extending said input sequence to an extended input sequence of length M, where M is greater than N;performing a discrete Fourier Transform (DFT) on said extended input sequence to obtain an interpolated sequence; andapplying a conversion matrix to said interpolated sequence to obtain a DFT output for said input sequence of length N, wherein one or more of said extending, performing and applying steps are performed by a hardware device.
  • 2. The method of claim 1, wherein M is a power of two greater than N.
  • 3. The method of claim 1, wherein said extending step further comprises the step of employing a zero padding technique to extend said input sequence.
  • 4. The method of claim 1, wherein said extending step further comprises the step of employing a cyclic extension technique to extend said input sequence.
  • 5. The method of claim 1, wherein said extending step further comprises the step of employing a windowing of a cyclic extended sequence technique to extend said input sequence.
  • 6. The method of claim 1, wherein said extending step further comprises the step of employing a resample-based interpolation technique to extend said input sequence.
  • 7. The method of claim 1, wherein said conversion matrix is substantially a sparse matrix.
  • 8. A system for transforming an input sequence of length N, comprising: a memory; andat least one processor, coupled to the memory, operative to:extend said input sequence to an extended input sequence of length M, where M is greater than N;perform a discrete Fourier Transform (DFT) on said extended input sequence to obtain an interpolated sequence; andapply a conversion matrix to said interpolated sequence to obtain a DFT output for said input sequence of length N.
  • 9. The system of claim 8, wherein M is a power of two greater than N.
  • 10. The system of claim 8, wherein said input sequence is extended by employing a zero padding technique to extend said input sequence.
  • 11. The system of claim 8, wherein said input sequence is extended by employing a cyclic extension technique to extend said input sequence.
  • 12. The system of claim 8, wherein said input sequence is extended by employing a windowing of a cyclic extended sequence technique to extend said input sequence.
  • 13. The system of claim 8, wherein said conversion matrix is substantially a sparse matrix.
  • 14. A circuit for transforming an input sequence of length N, comprising: a first logic block for extending said input sequence to an extended input sequence of length M, where M is greater than N;a second logic block for performing a discrete Fourier Transform (DFT) on said extended input sequence to obtain an interpolated sequence; anda third logic block for applying a conversion matrix to said interpolated sequence to obtain a DFT output for said input sequence of length N.
  • 15. The circuit of claim 14, wherein M is a power of two greater than N.
  • 16. The circuit of claim 14, wherein said input sequence is extended by employing a zero padding technique to extend said input sequence.
  • 17. The circuit of claim 14, wherein said input sequence is extended by employing a cyclic extension technique to extend said input sequence.
  • 18. The circuit of claim 14, wherein said input sequence is extended by employing a windowing of a cyclic extended sequence technique to extend said input sequence.
  • 19. The circuit of claim 14, wherein said conversion matrix is substantially a sparse matrix.
  • 20. An article of manufacture for transforming an input sequence of length N, comprising a machine readable medium containing one or more programs which when executed implement the steps of: extending said input sequence to an extended input sequence of length M, where M is greater than N;performing a discrete Fourier Transform (DFT) on said extended input sequence to obtain an interpolated sequence; andapplying a conversion matrix to said interpolated sequence to obtain a DFT output for said input sequence of length N.
US Referenced Citations (3)
Number Name Date Kind
5253192 Tufts Oct 1993 A
20080243983 Xu Oct 2008 A1
20080294709 Sathe et al. Nov 2008 A1
Related Publications (1)
Number Date Country
20090083352 A1 Mar 2009 US