Hi Nadav

You can also read the interesting discussion at

http://projects.scipy.org/numpy/ticket/748

which also contains some padding code.

I still disagree with the conclusion, but oh well :)

Cheers
Stéfan

2009/3/6 Nadav Horesh <[email protected]>:
> I found the solution I needed for my peculiar case after reading your email
> based of the following stages:
>
> I have a N x N frequency-domain matrix Z
>
> 1. Use fftshift to obtain a DC centered matrix
>    Note: fftshift(fft(a)) replaces np.fft.fft(np.power(-1,np.arange(64))*a)
>    Zs = np.fft.fftshift(Z)
> 2. pad Zs with zeros
>    scale = int(ceil(float(N)/M))
>    MM = scale*M
>    Ztemp = np.zeros((MM,MM), dtype=complex)
>    Ztemp[(MM-N)//2:(N-MM)//2,(MM-N)//2:(N-MM)//2] = Zs
> 3. Shift back to a "normal order"
>    Ztemp = np.fft.ifftshift(Ztemp)
> 4. Transform to the "time domain" and sub-sample
>    z = np.fft.ifft2(Ztemp)[::scale, ::scale]
>
> I went this was since I needed the aliasing, otherwise I could just truncate
> Zs to size MxM.
_______________________________________________
Numpy-discussion mailing list
[email protected]
http://mail.scipy.org/mailman/listinfo/numpy-discussion

Reply via email to