# 2D FFT window function

Started by 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

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
>