Estimación de la magnitud de la estimación de coherencia al cuadrado, Cxy, de
    señales de tiempo discreto X e Y usando el método de Welch.

    `` Cxy = abs (Pxy) ** 2 / (Pxx * Pyy) ``, donde `Pxx` y` Pyy` son potencia
    Estimaciones espectrales de la densidad de X e Y, y `Pxy` es la cruz
    estimación de densidad espectral de X e Y.

    Parámetros
    ----------
    x: array_like
        Series temporales de valores de medición
    y: array_like
        Series temporales de valores de medición
    fs: float, opcional
        Frecuencia de muestreo de las series de tiempo `x` y` y`. Predeterminados
        a 1,0.
    window: str o tuple o array_like, opcional
        Ventana deseada para usar. Si `window` es una cadena o tupla, es
        pasó a `get_window` para generar los valores de la ventana, que son
        DFT-incluso por defecto. Vea `get_window` para una lista de ventanas y
        parámetros requeridos. Si `window` es array_like, se utilizará
        directamente como la ventana y su longitud debe ser nperseg. Predeterminados
        a una ventana de Hann.
    nperseg: int, opcional
        Longitud de cada segmento. El valor predeterminado es Ninguno, pero si la ventana es str o
        tupla, se establece en 256, y si window es array_like, se establece en el
        longitud de la ventana.
    noverlap: int, opcional
        Número de puntos a superponer entre segmentos. Si `Ninguno`,
        `` noverlap = nperseg // 2``. El valor predeterminado es `Ninguno '.
    nfft: int, opcional
        Longitud de la FFT utilizada, si se desea una FFT con relleno cero. Si
        `None`, la longitud FFT es` nperseg`. El valor predeterminado es `Ninguno '.
    detrend: str o función o `Falso`, opcional
        Especifica cómo detrendir cada segmento. Si `detrend` es un
        string, se pasa como el argumento `type` al` detrend`
        función. Si es una función, toma un segmento y devuelve un
        segmento detrendido. Si `detrend` es` False`, no hay detrending
        hecho. El valor predeterminado es 'constante'.
    eje: int, opcional
        Eje a lo largo del cual se calcula la coherencia para ambas entradas; el
        el valor predeterminado está sobre el último eje (es decir, "eje = -1").

    Devoluciones
    -------
    f: ndarray
        Conjunto de frecuencias de muestreo.
    Cxy: ndarray
        Magnitud cuadrada coherencia de x e y.

    Ver también
    --------
    periodograma: Periodograma simple, opcionalmente modificado
    lombscargle: Periódromo Lomb-Scargle para datos desigualmente muestreados
    welch: Densidad espectral de potencia según el método de Welch.
    csd: Densidad espectral cruzada por el método de Welch.

    Notas
    --------
    Una cantidad adecuada de superposición dependerá de la elección de la ventana
    y en sus requisitos. Para la ventana Hann predeterminada, una superposición de
    50% es una compensación razonable entre la estimación exacta del
    potencia de la señal, mientras que no sobre contar ninguno de los datos. Más estrecho
    las ventanas pueden requerir una superposición mayor.

    .. versionadded :: 0.16.0

    Referencias
    ----------
    [1] P. Welch, "El uso de la transformada rápida de Fourier para la
           Estimación de los espectros de potencia: Un método basado en el promedio del tiempo
           sobre periodograms cortos, modificados ", IEEE Trans. Audio
           Electroacoust. vol. 15, págs. 70 - 73, 1967.
    [2] Stoica, Petre, y Randolph Moses, "Análisis Espectral de
           Señales "Prentice Hall, 2005

    Ejemplos
    --------
    >>> de la señal de importación de scipy
    >>> import matplotlib.pyplot como plt

    Genere dos señales de prueba con algunas características comunes.

    >>> fs = 10e3
    >>> N = 1e5
    >>> amp = 20
    >>> freq = 1234.0
    >>> noise_power = 0.001 * fs / 2
    >>> time = np.arange (N) / fs
    >>> b, a = signal.butter (2, 0.25, 'low')
    >>> x = np.random.normal (escala = np.sqrt (noise_power), size = time.shape)
    >>> y = signal.lfilter (b, a, x)
    >>> x + = amp * np.sin (2 * np.pi * freq * time)
    >>> y + = np.random.normal (escala = 0.1 * np.sqrt (noise_power), size = time.shape)

    Calcule y trace la coherencia.

    >>> f, Cxy = señal.coherencia (x, y, fs, nperseg = 1024)
    >>> plt.semilogy (f, Cxy)
    >>> plt.xlabel ('frecuencia [Hz]')
    >>> plt.ylabel ('Coherencia')
    >>> plt.show ()