def test_wavelets(): os.environ['SSQ_GPU'] = '0' for wavelet in ('morlet', ('morlet', {'mu': 4}), 'bump'): wavelet = Wavelet(wavelet) wavelet = Wavelet(('morlet', {'mu': 5})) wavelet.viz(name='overview') wavelet.info(nondim=1) wavelet.info(nondim=0) #### Visuals ############################################################# for name in wavelet.VISUALS: if 'anim:' in name: # heavy-duty computations, skip animating kw = {'testing': True} else: kw = {} try: wavelet.viz(name, N=256, **kw) except TypeError as e: if "positional argument" not in str(e): raise TypeError(e) try: wavelet.viz(name, scale=10, N=256, **kw) except TypeError as e: if "positional argument" not in str(e): raise TypeError(e) wavelet.viz(name, scales='log', N=256, **kw) _ = utils.cwt_scalebounds(wavelet, N=512, viz=3) #### misc ################################################################ wavelet = Wavelet(lambda x: x) _ = wavelets._xifn(scale=10, N=128)
# downsampling factor for higher scales (used only if `scaletype='log-piecewise'`) downsample = 4 # show this many of lowest-frequency wavelets show_last = 20 #%%## Make scales ############################################################ # `cwt` uses `p2up`'d N internally M = p2up(N)[0] wavelet = Wavelet(wavelet, N=M) min_scale, max_scale = cwt_scalebounds(wavelet, N=len(x), preset=preset) scales = make_scales(N, min_scale, max_scale, nv=nv, scaletype=scaletype, wavelet=wavelet, downsample=downsample) #%%# Visualize scales ######################################################## viz(wavelet, scales, scaletype, show_last, nv) wavelet.viz('filterbank', scales=scales) #%%# Show applied ############################################################ Tx, Wx, ssq_freqs, scales, *_ = ssq_cwt(x, wavelet, scales=scales, padtype=padtype) imshow(Wx, abs=1, title="abs(CWT)") imshow(Tx, abs=1, title="abs(SSQ_CWT)")
def test_anim(): # bare minimally (still takes long, but covers many lines of code) wavelet = Wavelet(('morlet', {'mu': 6})) wavelet.viz('anim:time-frequency', N=8, scales=np.linspace(10, 20, 3))