I have a signal X(n) of length 24. But I want to find 1024 point FFT of this signal. I can do this by padding 1000 0s in x(n). But this requires huge memory which actually will be having only 24 valid data points.

Is there any way I can avoid this extra padding and yet be able to perform FFT. To be very specifica I am using CUFFT for finding FFT on the GPU. The padding 1000 0s means I have to allocate this extra memory on the GPU and also do copying operations from GPU to CPU and CPU to GPU etc.

Any hint?

-
What is the reason for doing a 1024 point FFT on only 24 points ? Why not just use a smaller FFT, e.g. 32 or 64 points ? Are you using this for interpolation or something like that ? –  Paul R Jan 24 '13 at 15:12

From a programming point of view I don't see any possibility of avoiding the copy operation for 1024 values because the CUFFT library expects a pointer to an array containing NX (FFT size) values. If you don't initialize all of them, the result of the FFT operation will be random.