o
    h&                     @   s$   d dl ZdgZg dZdddZdS )    Ndemo_signal)BlocksBumps	HeaviSineDopplerRampHiSineLoSineLinChirpTwoChirp	QuadChirpMishMashWernerSorrows	HypChirps	LinChirpsChirpsGaborsineoneoverxzPiece-RegularzPiece-PolynomialRiemannr   c           0   	   C   s  |   dkrtS |dur)|dk s|d dkrtdtd| dd|  d| }ddg}|   } | |v r@|dur@td|  |du rO| |vrOtd	|  | d
krxg d}g d}d}t||D ]\}}||dt||   d 7 }qb|S | dkrg d}g d}g d}	d}t|||	D ]\}}}
||dt|| |
  d  7 }q|S | dkrdtdtj	 |  t|d  td|  }|S | dkrt
|d|  tdtj	 d |d   }|S | dkr||dk }|S | dkrttj	|d  | }|S | dkrttj	|d  | }|S | dkr-ttj	| |d |  }|S | d krNttj	| ||  ttj	d! | ||   }|S | d"krettj	d! | ||d   }|S | d#krttj	d! | ||d   }|ttj	|d  | 7 }|ttj	| |d$ |  7 }|S | d%krttj	| |d |d   }|ttj	|d  |  }|ttj	| ||   }g d}g d}g d}t|||D ]\}}}
||dt|| |
  d  7 }q|S | d&krd'| tj	 d( }d)| tj	 d( }td*|d+ d | }t|}t|}t|d,|  d-|k  |d.k  }t|d,|  d-|k  |d/k  }ttd0| }|d }t|}td|d t| }dttj	 d ||d  tj	   d |d|< |d| ddd1 ||| |< t|}|d| |tt|d2 d |tt|d2  d < || | }|S | d3krd4| tj	 d( }d5| tj	 d( }td|d | }t
|d|  d|  }|t||d  t|| ||d     }|S | d6krtd|d | d2 tj	 }t|d | d( }d7| d( }td|d | tj	 }t||d!  }|ddd1 }t| |d | d8 }t|d  d | d( }t|d |d | }t|d9 |d9 | }td|d | }|| td:tj	 | | d(  }|| td;tj	 | | d(  } || | |  }t|}td|d9 d t|d9  }dttj	 d ||d9 d  tj	   d |d|d9 < |d|d9  ddd1 |d<| d9 |< || }|S | dkrkd=}t| |d d) | }td|d | }t|d  d8 }td| d d| d | }t|d |d | }d!||  td>|d?  tj	 |  }d!||  td>|d  tj	 |  }|| }|S | dkrd(}tj| d |d td@}dA||dk< ||d  }tdB| }|d=dC }|S | dDkrt|}tt|dE }!tt|d< }"tt|d) }#tt|d! }$tt|d }%tt|d8 }&dFtd| }td|!d |! }td|  }td|"d |" }td| td }'td|$d |$ }dG}(dHt|d |d   d|(d    })|)d|" |d|"< d|)|"|#  ||"|#< |)|#|$ ||#|$< ||$|% ||$|%< |||%|%|! < |||%d|!  d |%|! d d1< t|%d|!  d!|&  |% d|!  |&  dI ||%d|!  |& |%d|!  d!|&  < |%d|!  d!|&  }*|'||*|*|" < |d)|#  }+||+d dd1 |d)|# |< t|| },|,| }|S | dJkrt|}tt|d) }#tt|d2 }-tt|d8 }&td|#d |# }d8|d! |d  d  }dKd|d!  |  d4 }d2|d!  dL }d?|d  d9|  d? } d8|d  }'t|-d8 })||d|#< ||d|# d |#d d1< ||d|# d!|# < | |d!|# d|# < |'|#dd1 |d|# d)|# < |d)|#  }+||+d dd1 |d)|# |< t|-d2 ||&|&|- < t|&dM |||- ||& |- < t|| },||, }|S | dNkrttt
|}.td|.d }/|/|/9 }/t|}dOtd|.d  ||/d < ttj|}|S tdP|  dQt )Ru8  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.

    Examples
    --------
    >>> import pywt
    >>> camera = pywt.data.camera()
    >>> doppler = pywt.data.demo_signal('doppler', 1024)
    >>> available_signals = pywt.data.demo_signal('list')
    >>> print(available_signals)
    ['Blocks', 'Bumps', 'HeaviSine', 'Doppler', 'Ramp', 'HiSine', 'LoSine', 'LinChirp',
     'TwoChirp', 'QuadChirp', 'MishMash', 'WernerSorrows', 'HypChirps', 'LinChirps',
     'Chirps', 'Gabor', 'sineoneoverx', 'Piece-Regular', 'Piece-Polynomial', 'Riemann']

    listN   r   zn must be an integer >= 1gaborr   z-Parameter n must be set to None when name is z*Parameter n must be provided when name is blocks)皙?gp=
ף?333333?gq=
ףp?g      ?g?g)\(??gRQ?g(\?gQ?)          @333333@gr"   r!      bumps)r   r    r   r   r    @r"   r#   g@gffffff@r&   ){Gzt?r'   g~jtx?{Gz?r(   gQ?r(   r(   r'   gMb?r'   r   	heavisineg333333?g
ףp=
?dopplerg?g?rampgGz?hisineg_vO?losinegioT?linchirpg      ?twochirpr   	quadchirpmishmashg      ?wernersorrows	hypchirps   i   r    gjt?gMbP?g?r   g(\?g      ?r   
   	linchirpsd      chirps         2   i^     i   y              ?   )dtyper(   g      ?i   zpiece-regular   ir   i   zpiece-polynomial(   -      riemanng      ?zunknown name: z.  name must be one of: )lower_implemented_signals
ValueErrornparangezipsignabssinpisqrtzerosintroundonesceilcosexpslicefloatfixr   sum
zeros_likerealfftifft)0namentn_hard_codedt0shsft0hwswposhgtwthpalphabetaf1f2menvelopetmpenvbaA1ixgi1i2jf3f4n_12n_7n_5n_3n_2n_20f5fmaf6kdiffbiasn_10sqnidx r   U/var/www/html/scripts/venv/lib/python3.10/site-packages/pywt/data/_wavelab_signals.pyr      s  1  & $  4  .    
  
  
  
4  
   
    
 &  


""
4"

2o
0i
$$
",*T
((J
C

(""($

"

)r   N)numpyrK   __all__rI   r   r   r   r   r   <module>   s   