a
    {kÙ`ö  ã                   @   sR   d Z ddlZdd„ Zddd„Zdd„ Zed	krNe d
d¡ dd¡Z	e
ee	ƒƒ dS )z#Miscellaneous processing utilities.é    Nc                 C   s   t j t  t j | ¡¡d ¡S )Né   )ÚnpZfftZfftshiftÚabs)Úsignal© r   úb/nfs/NAS7/SABIOD/METHODE/ermites/ermites_venv/lib/python3.9/site-packages/tftb/processing/utils.pyÚget_spectrum   s    r   c                 C   s¾   | j \}}|du rt |¡}|du r.t |¡}|  d¡| dd…df d  | dd…|d f d  |d |d   } | d|d … | dd…  }|dd… |d|d …  d }t || ¡S )a™  integrate_2d

    :param mat:
    :param x:
    :param y:
    :type mat:
    :type x:
    :type y:
:return:
:rtype:
    :Example:
    >>> from __future__ import print_function
    >>> from tftb.generators import altes
    >>> from tftb.processing import Scalogram
    >>> x = altes(256, 0.1, 0.45, 10000)
    >>> tfr, t, f, _ = Scalogram(x).run()
    >>> print("%.3f" % integrate_2d(tfr, t, f))
    2.000
    Né   r   ç       @)Úshaper   ÚarangeÚsum)ÚmatÚxÚyÚmÚnZdmatZdyr   r   r   Úintegrate_2d   s    


F r   c                 C   sÚ   | j d d d }| d | d  d }| d | d  | j d d  }t | |d ¡}| | ||  }t t dg¡|t dg¡f¡}|d| j d d … |d| j d …  d | }|d  |7  < |d  |8  < |S )a¡  Calculate derivative of a window function.

    :param window: Window function to be differentiated. This is expected to be
    a standard window function with an odd length.
    :type window: array-like
    :return: Derivative of the input window
    :rtype: array-like
    :Example:
    >>> from scipy.signal import hann
    >>> import matplotlib.pyplot as plt                   #doctest: +SKIP
    >>> window = hann(210)
    >>> derivation = derive_window(window)
    >>> plt.subplot(211), plt.plot(window)                #doctest: +SKIP
    >>> plt.subplot(212), plt.plot(derivation) #doctest: +SKIP

    .. plot:: docstring_plots/processing/utils/derive_window.py
    r   r	   r
   éÿÿÿÿr   N)r   r   r   ZhstackÚarray)ZwindowZlhZstep_heightZrampÚbaseZdwr   r   r   Úderive_window2   s     0r   Ú__main__r	   é   é   é   )NN)Ú__doc__Únumpyr   r   r   r   Ú__name__r   Zreshaper   Úprintr   r   r   r   Ú<module>	   s   
 