pywt installation learning

Install:

conda install -c conda-forge pywavelets


github address, which contains demo

https://github.com/PyWavelets/pywt


This is a study note

https://blog.csdn.net/nanbei2463776506/article/details/64124841


This is a demo:

#!/usr/bin/env python
# -*- coding: utf-8 -*-
import sys


import matplotlib.pyplot as plt
import numpy as np
import pywt

try:
    wavelet = pywt.Wavelet('sym5')
    try:
        level =5# int(sys.argv[2])
except IndexError as e:    
        level = 10
except ValueError as e:
    print("Unknown wavelet")
    raise SystemExit
except IndexError as e:
    raise SystemExit
data = wavelet.wavefun(level)
if len(data) == 2:


    x = data[1]
    psi = data[0]
    fig = plt.figure()
    if wavelet.complex_cwt:
        plt.subplot(211)
        plt.title(wavelet.name+' real part')
        mi, ma = e.g. real (psi) .min (), e.g. real (psi) .max ()
        margin = (ma - mi) * 0.05
        plt.plot(x,np.real(psi))
        plt.ylim(mi - margin, ma + margin)
        plt.xlim (x [ 0 ], x [- 1 ])
        plt.subplot(212)
        plt.title(wavelet.name+' imag part')
        mi, ma = np.imag (psi) .min (), np.imag (psi) .max ()
        margin = (ma - mi) * 0.05
         plt.plot (x, np.imag (psi))
        plt.ylim(mi - margin, ma + margin)
        plt.xlim (x [ 0 ], x [- 1 ])
     else :
        mi, ma = psi.min (), psi.max ()
        margin = (ma - mi) * 0.05
        plt.plot(x,psi)
        plt.title(wavelet.name)
        plt.ylim(mi - margin, ma + margin)
        plt.xlim (x [ 0 ], x [- 1 ])
 else :
    funcs, x = data[:-1], data[-1]
    labels = ["scaling function (phi)", "wavelet function (psi)",
              "r. scaling function (phi)", "r. wavelet function (psi)"]
    colors = ("r", "g", "r", "g")
    fig = plt.figure()
    for i, (d, label, color) in enumerate(zip(funcs, labels, colors)):
        mi, ma = d.min (), d.max ()
        margin = (ma - mi) * 0.05
        ax = fig.add_subplot((len(data) - 1) // 2, 2, 1 + i)

        ax.plot(x, d, color)
        ax.set_title(label)
        ax.set_ylim(mi - margin, ma + margin)
        ax.set_xlim(x[0], x[-1])

plt.show()

Guess you like

Origin http://43.154.161.224:23101/article/api/json?id=325858352&siteId=291194637