Ńň \ĐKc@swdZdddgZddklZlZlZlZlZlZddk Z dd„Z dd„Z d d „Z dS( s) Discrete Fourier Transforms - helper.py tfftshiftt ifftshifttfftfreqi˙˙˙˙(tasarrayt concatenatetarangettaketintegertemptyNc CsĄt|ƒ}t|iƒ}|djot|ƒ}n|}x\|D]T}|i|}|dd}tt||ƒt|ƒfƒ}t|||ƒ}qEW|S(ss Shift the zero-frequency component to the center of the spectrum. This function swaps half-spaces for all axes listed (defaults to all). Note that ``y[0]`` is the Nyquist component only if ``len(x)`` is even. Parameters ---------- x : array_like Input array. axes : int or shape tuple, optional Axes over which to shift. Default is None, which shifts all axes. Returns ------- y : ndarray The shifted array. See Also -------- ifftshift : The inverse of `fftshift`. Examples -------- >>> freqs = np.fft.fftfreq(10, 0.1) >>> freqs array([ 0., 1., 2., 3., 4., -5., -4., -3., -2., -1.]) >>> np.fft.fftshift(freqs) array([-5., -4., -3., -2., -1., 0., 1., 2., 3., 4.]) Shift the zero-frequency component only along the second axis: >>> freqs = np.fft.fftfreq(9, d=1./9).reshape(3, 3) >>> freqs array([[ 0., 1., 2.], [ 3., 4., -4.], [-3., -2., -1.]]) >>> np.fft.fftshift(freqs, axes=(1,)) array([[ 2., 0., 1.], [-4., 3., 4.], [-1., -3., -2.]]) iiN(RtlentshapetNonetrangeRRR( txtaxesttmptndimtytktntp2tmylist((s6/usr/lib64/python2.6/site-packages/numpy/fft/helper.pyR s,   !c CsĽt|ƒ}t|iƒ}|djot|ƒ}n|}x`|D]X}|i|}||dd}tt||ƒt|ƒfƒ}t|||ƒ}qEW|S(sĘ The inverse of fftshift. Parameters ---------- x : array_like Input array. axes : int or shape tuple, optional Axes over which to calculate. Defaults to None, which shifts all axes. Returns ------- y : ndarray The shifted array. See Also -------- fftshift : Shift zero-frequency component to the center of the spectrum. Examples -------- >>> freqs = np.fft.fftfreq(9, d=1./9).reshape(3, 3) >>> freqs array([[ 0., 1., 2.], [ 3., 4., -4.], [-3., -2., -1.]]) >>> np.fft.ifftshift(np.fft.fftshift(freqs)) array([[ 0., 1., 2.], [ 3., 4., -4.], [-3., -2., -1.]]) iiN(RR R R R RRR( R RRRRRRRR((s6/usr/lib64/python2.6/site-packages/numpy/fft/helper.pyREs!   !gđ?cCs¤t|tiƒpt|tƒpt‚d||}t|tƒ}|ddd}td|dtƒ}|||*t|d ddtƒ}|||)||S(s| Return the Discrete Fourier Transform sample frequencies. The returned float array contains the frequency bins in cycles/unit (with zero at the start) given a window length `n` and a sample spacing `d`:: f = [0, 1, ..., n/2-1, -n/2, ..., -1] / (d*n) if n is even f = [0, 1, ..., (n-1)/2, -(n-1)/2, ..., -1] / (d*n) if n is odd Parameters ---------- n : int Window length. d : scalar Sample spacing. Returns ------- out : ndarray The array of length `n`, containing the sample frequencies. Examples -------- >>> signal = np.array([-2, 8, 6, 4, 1, 0, 3, 5], dtype=float) >>> fourier = np.fft.fft(signal) >>> n = signal.size >>> timestep = 0.1 >>> freq = np.fft.fftfreq(n, d=timestep) >>> freq array([ 0. , 1.25, 2.5 , 3.75, -5. , -3.75, -2.5 , -1.25]) gđ?iiitdtype(t isinstancettypestIntTypeRtAssertionErrorRtintR(RtdtvaltresultstNtp1R((s6/usr/lib64/python2.6/site-packages/numpy/fft/helper.pyRrs"*  (t__doc__t__all__t numpy.coreRRRRRRRR RRR(((s6/usr/lib64/python2.6/site-packages/numpy/fft/helper.pyts .  9 -