def gaussian(M, std, sym=True):
if M < <NUM_LIT:1>:<EOL><INDENT>return np.array([])<EOL><DEDENT>if M == <NUM_LIT:1>:<EOL><INDENT>return np.ones(<NUM_LIT:1>, '<STR_LIT:d>')<EOL><DEDENT>odd = M % <NUM_LIT:2><EOL>if not sym and not odd:<EOL><INDENT>M = M + <NUM_LIT:1><EOL><DEDENT>n = np.arange(<NUM_LIT:0>, M) - (M - <NUM_LIT:1.0>) / <NUM_LIT><EOL>sig2 = <NUM_LIT:2> * std * std<EOL>w = np.exp(-n ** <NUM_LIT:2> / sig2)<EOL>if not sym and not odd:<EOL><INDENT>w = w[:-<NUM_LIT:1>]<EOL><DEDENT>return w<EOL>
r"""Return a Gaussian window.

    Parameters
    ----------
    M : int
        Number of points in the output window. If zero or less, an empty
        array is returned.
    std : float
        The standard deviation, sigma.
    sym : bool, optional
        When True (default), generates a symmetric window, for use in filter
        design.
        When False, generates a periodic window, for use in spectral analysis.

    Returns
    -------
    w : ndarray
        The window, with the maximum value normalized to 1 (though the value 1
        does not appear if `M` is even and `sym` is True).

    Notes
    -----
    The Gaussian window is defined as

    .. math::  w(n) = e^{ -\frac{1}{2}\left(\frac{n}{\sigma}\right)^2 }

    Examples
    --------
    Plot the window and its frequency response:

    >>> from scipy import signal
    >>> from scipy.fftpack import fft, fftshift
    >>> import matplotlib.pyplot as plt

    >>> window = signal.gaussian(51, std=7)
    >>> plt.plot(window)
    >>> plt.title(r"Gaussian window ($\sigma$=7)")
    >>> plt.ylabel("Amplitude")
    >>> plt.xlabel("Sample")

    >>> plt.figure()
    >>> A = fft(window, 2048) / (len(window)/2.0)
    >>> freq = np.linspace(-0.5, 0.5, len(A))
    >>> response = 20 * np.log10(np.abs(fftshift(A / abs(A).max())))
    >>> plt.plot(freq, response)
    >>> plt.axis([-0.5, 0.5, -120, 0])
    >>> plt.title(r"Frequency response of the Gaussian window ($\sigma$=7)")
    >>> plt.ylabel("Normalized magnitude [dB]")
    >>> plt.xlabel("Normalized frequency [cycles per sample]")