U
    ?h%  ã                   @   sT   d dl mZ d dlZdgZdddddd	d
dddddddddddddgZddd„ZdS )é    )ÚdivisionNÚdemo_signalZBlocksÚBumpsZ	HeaviSineZDopplerZRampZHiSineZLoSineZLinChirpZTwoChirpZ	QuadChirpZMishMashZWernerSorrowsZ	HypChirpsZ	LinChirpsZChirpsZGaborÚsineoneoverxzPiece-RegularzPiece-PolynomialZRiemannc           0      C   sp  |   ¡ dkrtS |dk	rR|dk s,|d dkr4tdƒ‚t d| dd|  d| ¡}ddg}|   ¡ } | |kr‚|dk	r‚td | ¡ƒ‚n|dkr | |kr td	 | ¡ƒ‚| d
krdddddddddddg}dddddddddddg}d}t||ƒD ]&\}}||dt || ¡  d 7 }qìnT| d kr´dddddddddddg}dddddd!ddd"d#d!g}d$d$d%d&d&d'd&d&d$d(d$g}	d}t|||	ƒD ].\}}}
||dt || |
 ¡ d  7 }q€n¸| d)krödt 	dtj
 | ¡ t |d* ¡ t d+| ¡ }nv| d,kr2t |d|  ¡t 	dtj
 d- |d.  ¡ }n:| d/krL||d0k }n | d1krrt 	tj
|d2  | ¡}nú| d3kr˜t 	tj
|d4  | ¡}nÔ| d5krÂt 	tj
| |d6 |  ¡}nª| d7krt 	tj
| ||  ¡t 	tj
d | ||  ¡ }nh| d8kr2t 	tj
d | ||d   ¡}n:| d9krœt 	tj
d | ||d   ¡}|t 	tj
|d2  | ¡7 }|t 	tj
| |d: |  ¡7 }
nÐ| d;krŒt 	tj
| |d |d   ¡}|t 	tj
|d2  | ¡ }|t 	tj
| ||  ¡ }dddddddddddg}dddddd!ddd"d#d!g}d$d$d%d&d&d'd&d&d$d(d$g}t|||ƒD ].\}}}
||dt || |
 ¡ d  7 }qX	nà| d<krd=| tj
 d> }d| tj
 d> }t d?|d@ d ¡| }t |¡}t |¡}t 	|dA|  ¡d|k  |dBk  }t 	|dA|  ¡d|k  |dCk  }tt d| ¡ƒ}|d }t |¡}t d|d ¡t |¡ }dt 	tj
 d ||d  tj
  ¡ d |d|…< |d|… dddD… ||| |…< t |¡}|d|… |tt |dE ¡ƒd |tt |dE ¡ƒ d …< || | }nX| dFkr¤dG| tj
 d> }dH| tj
 d> }t d|d ¡| }t |d|  d|  ¡}|t ||d  ¡t || ||d   ¡  }nÈ| dIkr”t d|d ¡| dE tj
 }t |d | d> ¡}dJ| d> }t d|d ¡| tj
 }t ||d  ¡}|dddD… }t | |d ¡| dK }t |d  d | d> ¡}t|d |d | ƒ}t|dL |dL | ƒ}t d|d ¡| }|| t dMtj
 | | d> ¡ }|| t dNtj
 | | d> ¡ } || | |  }t |¡}t d|dL d ¡t |dL ¡ }dt 	tj
 d ||dL d  tj
  ¡ d |d|dL …< |d|dL … dddD… |dO| dL |…< || }nØ| dk	rtdP}t | |d ¡d | }t d|d ¡| }t |d  dK ¡}td| d d| d | ƒ}t|d |d | ƒ}d||  t dQ|dR  tj
 | ¡ }d||  t dQ|d  tj
 | ¡ }|| }nø| dk	rÒd>}tj| d |d tdS}d&||dk< ||d  }t 	dT| ¡}|dPdU… }nš| dVkr2t |¡}tt |dW ¡ƒ}!tt |dO ¡ƒ}"tt |d ¡ƒ}#tt |d ¡ƒ}$tt |d ¡ƒ}%tt |dK ¡ƒ}&dXtd |ƒ }t d|!d ¡|! }t d| ¡ }t d|"d ¡|" }t d| ¡t d¡ }'t d|$d ¡|$ }d}(dYt |d6 |d6   d|(d   ¡ })|)d|"… |d|"…< d6|)|"|#…  ||"|#…< |)|#|$… ||#|$…< ||$|%… ||$|%…< |||%|%|! …< |||%d|!  d |%|! d dD…< t |%d|!  d|&  |% d|!  |& ¡ dZ ||%d|!  |& |%d|!  d|&  …< |%d|!  d|&  }*|'||*|*|" …< |d|#  }+||+d ddD… |d|# |…< t |¡| },|,| }n:| d[krìt |¡}tt |d ¡ƒ}#tt |dE ¡ƒ}-tt |dK ¡ƒ}&t d|#d ¡|# }dK|d |d  d  }d\d|d  |  dG }dE|d  d] }dR|d  dL|  dR } dK|d  }'t |-¡dK })||d|#…< ||d|# d |#d dD…< ||d|# d|# …< | |d|# d|# …< |'|#ddD… |d|# d|# …< |d|#  }+||+d ddD… |d|# |…< t |-¡dE ||&|&|- …< t |&¡d^ |||- ||& |- …< t |¡| },||, }n€| d_kr\tt t |¡¡ƒ}.t d|.d ¡}/|/|/9 }/t |¡}d`t d|.d ¡ ||/d < t tj |¡¡}ntda | t¡ƒ‚|S )buL  Simple 1D wavelet test functions.

    This function can generate a number of common 1D test signals used in
    papers by David Donoho and colleagues (e.g. [1]_) as well as the wavelet
    book by StÃ©phane Mallat [2]_.

    Parameters
    ----------
    name : {'Blocks', 'Bumps', 'HeaviSine', 'Doppler', ...}
        The type of test signal to generate (`name` is case-insensitive). If
        `name` is set to `'list'`, a list of the available test functions is
        returned.
    n : int or None
        The length of the test signal. This should be provided for all test
        signals except `'Gabor'` and `'sineoneoverx'` which have a fixed
        length.

    Returns
    -------
    f : np.ndarray
        Array of length ``n`` corresponding to the specified test signal type.

    References
    ----------
    .. [1] D.L. Donoho and I.M. Johnstone.  Ideal spatial adaptation by
           wavelet shrinkage. Biometrika, vol. 81, pp. 425â€“455, 1994.
    .. [2] S. Mallat. A Wavelet Tour of Signal Processing: The Sparse Way.
           Academic Press. 2009.

    Notes
    -----
    This function is a partial reimplementation of the `MakeSignal` function
    from the [Wavelab](https://statweb.stanford.edu/~wavelab/) toolbox. These
    test signals are provided with permission of Dr. Donoho to encourage
    reproducible research.

    ÚlistNé   r   zn must be an integer >= 1Zgaborr   z/Parameter n must be set to None when name is {}z,Parameter n must be provided when name is {}Úblocksgš™™™™™¹?g¤p=
×£À?g333333Ã?gq=
×£pÍ?g      Ð?gš™™™™™Ù?g)\Âõ(Ü?gÍÌÌÌÌÌä?gR¸…ëQè?gö(\Âõè?gìQ¸…ëé?é   éûÿÿÿé   éüÿÿÿé   gÍÌÌÌÌÌÀgÍÌÌÌÌÌ @g333333@gÍÌÌÌÌÌÀé   ZbumpsgÍÌÌÌÌÌ@gÍÌÌÌÌÌ@gffffff@g{®Gázt?gú~j¼t“x?g{®Gáz„?g¸…ëQ¸ž?gü©ñÒMb€?Z	heavisineg333333Ó?g
×£p=
ç?ZdopplergÍÌÌÌÌÌð?gš™™™™™©?Zrampg®Gáz®×?ZhisinegÙ_vOæ?Zlosinegioð…ÉTÕ?Zlinchirpg      à?ZtwochirpZ	quadchirpZmishmashg      À?ZwernersorrowsZ	hypchirpsé   i   gj¼t“ð?gü©ñÒMbP?gš™™™™™é?gÃõ(\Âå?g      è?éÿÿÿÿé
   Z	linchirpséd   éú   Zchirpsé   é   é   é2   i^  é   i   y              ð?é   )Zdtypeg      ø?i   zpiece-regularé   iñÿÿÿiºÿÿÿé   zpiece-polynomialé(   é-   é–   Zriemanng      ð?z*unknown name: {}.  name must be one of: {})ÚlowerÚ_implemented_signalsÚ
ValueErrorÚnpZarangeÚformatÚzipÚsignÚabsÚsinÚpiÚsqrtZzerosÚintÚroundZonesÚceilÚcosÚexpÚsliceÚfloatZfixr   ÚsumZ
zeros_likeÚrealZfftZifft)0ÚnameÚnÚtZn_hard_codedZt0sÚhsÚfÚt0ÚhÚwsÚwÚposZhgtZwthÚpÚalphaÚbetaÚf1Úf2ÚmÚenvelopeÚtmpÚenvÚbÚaÚA1ZixÚgÚi1Úi2ÚjZf3Zf4Zn_12Zn_7Zn_5Zn_3Zn_2Zn_20Zf5ÚfmaZf6ÚkÚdiffZbiasZn_10ZsqnÚidx© rQ   úL/var/www/html/venv/lib/python3.8/site-packages/pywt/data/_wavelab_signals.pyr      s~   &ÿÿ
$
*
8
2



 
8
$
 $
 *


""
4"

ÿ2
4
$$
"* ÿ*
((


(""ÿÿ(

"


 ÿÿ)r   N)Ú
__future__r   Únumpyr"   Ú__all__r    r   rQ   rQ   rQ   rR   Ú<module>   s0   ì