DSPRelated.com
Forums

2D FFT window function

Started by gobruins March 6, 2009
I have some questions about length of windowing functions applied to 1D and
2D FFT. For a N point 1D FFT, it is very straightforward, I can generate a
N point window function, and multiply it with the signal before doing FFT.
But for N*N point 2D FFT, what length of window function should I use?
Should I generate a N*N point window same to the one used in 1D FFT, or a N
point window and repeat the waveform for N times to form a N*N point
window? Which one should I use?

also for 1D FFT, in the time domain, y=sig*win, and in frequency domain
this becomes Y=conv( FFT(sig), FFT(win) )

how to explain this for 2D FFT?

Thanks


On 6 Mar, 14:04, "gobruins" <chunmei.k...@gmail.com> wrote:
> I have some questions about length of windowing functions applied to 1D and > 2D FFT. For a N point 1D FFT, it is very straightforward, I can generate a > N point window function, and multiply it with the signal before doing FFT. > But for N*N point 2D FFT, what length of window function should I use?
Try and formulate the 2D DFT in terms of 1D DFTs (it can be done, as the 2D DFT is separable), and you might find the answer. Rune
On Mar 6, 5:04 am, "gobruins" <chunmei.k...@gmail.com> wrote:
> I have some questions about length of windowing functions applied to 1D and > 2D FFT. For a N point 1D FFT, it is very straightforward, I can generate a > N point window function, and multiply it with the signal before doing FFT. > But for N*N point 2D FFT, what length of window function should I use? > Should I generate a N*N point window same to the one used in 1D FFT, or a N > point window and repeat the waveform for N times to form a N*N point > window? Which one should I use? > > also for 1D FFT, in the time domain, y=sig*win, and in frequency domain > this becomes Y=conv( FFT(sig), FFT(win) ) > > how to explain this for 2D FFT? > > Thanks
For 1D in the time domain I think you mean y = sig .* win Most windows are low pass filter prototypes. There is considerable information available on generating 2D filters from 1D filters. Three of the possibilities are 1) Separable formed as products of 1D filters, win2D = win1D * win1D' 2) Rotationally symmetric formed by rotating the 1D window shape 3) McClellan transformed to generate 2D from a 1D prototype Google is your friend. Dale B. Dalrymple
>On Mar 6, 5:04 am, "gobruins" <chunmei.k...@gmail.com> wrote: >> I have some questions about length of windowing functions applied to 1D
and
>> 2D FFT. For a N point 1D FFT, it is very straightforward, I can
generate a
>> N point window function, and multiply it with the signal before doing
FFT.
>> But for N*N point 2D FFT, what length of window function should I use? >> Should I generate a N*N point window same to the one used in 1D FFT, or
a N
>> point window and repeat the waveform for N times to form a N*N point >> window? Which one should I use? >> >> also for 1D FFT, in the time domain, y=sig*win, and in frequency
domain
>> this becomes Y=conv( FFT(sig), FFT(win) ) >> >> how to explain this for 2D FFT? >> >> Thanks > >For 1D in the time domain I think you mean > >y = sig .* win > >Most windows are low pass filter prototypes. There is considerable >information available on generating 2D filters from 1D filters. Three >of the possibilities are > >1) Separable formed as products of 1D filters, win2D = win1D * win1D' > >2) Rotationally symmetric formed by rotating the 1D window shape > >3) McClellan transformed to generate 2D from a 1D prototype > >Google is your friend. > >Dale B. Dalrymple > >Thanks a lot!
I followed on 1), and seems I can get the right spectrum.