Current File : //usr/lib64/python2.7/site-packages/numpy/fft/helper.pyo
�
E�`Qc@s�dZdddgZddlmZmZmZmZmZmZddl	j
jZddl
Z
dd�Zdd�Zd	d
�ZdS(s)
Discrete Fourier Transforms - helper.py
tfftshiftt	ifftshifttfftfreqi����(tasarraytconcatenatetarangettaketintegertemptyNc	Cs�t|�}t|j�}|dkr6t|�}n$t|ttjf�rZ|f}n|}x\|D]T}|j|}|dd}t	t
||�t
|�f�}t|||�}qgW|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(RtlentshapetNonetranget
isinstancetinttntRRRR(	txtaxesttmptndimtytktntp2tmylist((s6/usr/lib64/python2.7/site-packages/numpy/fft/helper.pyR
s,

!c	Cs�t|�}t|j�}|dkr6t|�}n$t|ttjf�rZ|f}n|}x`|D]X}|j|}||dd}t	t
||�t
|�f�}t|||�}qgW|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
RRR
RRRRRR(	RRRRRRRRR((s6/usr/lib64/python2.7/site-packages/numpy/fft/helper.pyRHs!

!g�?cCszd||}t|t�}|ddd}td|dt�}|||*t|dddt�}|||)||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(RRR(RtdtvaltresultstNtp1R((s6/usr/lib64/python2.7/site-packages/numpy/fft/helper.pyRws#

(t__doc__t__all__t
numpy.coreRRRRRRtnumpy.core.numerictypestcoretnumerictypesRttypesRRRR(((s6/usr/lib64/python2.7/site-packages/numpy/fft/helper.pyt<module>s.;/