自动生成目录,用#号+空格区分;

  • 离散小波()
      • 创建离散小波对象
    • 离散小波变换
    • 单层小波变换
    • 1.一维离散信号处理
    • 2.二维离散信号处理
    • 3.n维离散信号处理
  • 连续小波()
    • 创建连续小波对象
  • 重点
    • 1.找到你想用的小波
    • 2.绘制小波函数
      • 离散类型小波
      • 连续类型小波
  • 小波重建
    • 1.一维离散重建
    • 2.二维重建
    • 3.n维重建
  • 维度计算
    • coefficients的数量
    • 分解重构

保姆级人工翻译机
*号表示参量可选择不写

离散小波()

创建离散小波对象

Wavelet(name, filter_bank=None)

通过wavelist()查找库中已有的小波名,并调用。
如若要自定义一个小波对象,必须使用filter_bank参数,并以一个列表形式说明四个滤波器的值。
Methods 定义如下:

__len__(self, /)#返回长度len(self)
__new__(*args, **kwargs)#从builtins.type创建并返回一个新对象,可通过help(type)查看详情
__reduce__ = __reduce_cython__(...)
__repr__(self, /)#返回repr(self)
__setstate__ = __setstate_cython__(...)
__str__(self, /)#返回str(self)
get_filters_coeffs(...)#获得滤波器参数
get_reverse_filters_coeffs(...)#获得逆滤波器参数
wavefun(...)#注意区分离散和连续的wavefun()的返回值有区别哦!

对象属性
symmetry:对称性
orthogonal:正交性
biorthogonal:双正交性
family_name:小波家族 族名
这里举个小栗子

import pywt
import matplotlib.pyplot as plt
wavelet=pywt.Wavelet('db2')
print (wavelet.family_name)

显示结果>>>Daubechies
接着上面讲属性哈~

short_family_name:家族 族名简称
family_number:小波家族里排行老几
name
number:
这两个不用我多说了吧~
filter_bank:返回包含四个列表的一个元组,列表数据分别是四个小波滤波器的系数(dec_lo, dec_hi, rec_lo, rec_hi)
inverse_filter_bank:同上,这个是四个逆滤波器的系数(rec_lo[::-1], rec_hi[::-1], dec_lo[::-1], dec_hi[::-1])
rec_hi:单单查看高通重建滤波器的系数
Highpass reconstruction filter
rec_lo:单单查看低通重建滤波器的系数
rec_len:查看重建滤波器的长度
以此类推,查看分解滤波器的系数,长度就不用我多说了吧

vanishing_moments_phi:尺度函数消失矩的数量
vanishing_moments_psi :小波函数消失矩的数量

离散小波变换

单层小波变换

dwt(data, wavelet, mode='symmetric', axis=-1)

data : 数据集
wavelet : 要使用的小波名
*mode : 信号扩展模式,详见 Modes (默认为: ‘symmetric’)
*axis: 整型数据,用于计算离散小波变换的轴线,如若未给出则使用最后的轴线值。

返回值
(cA, cD) : 元组形式,近似(Approximation)系数和细节系数
注意:返回系数的长度取决于所选模式。
周期化(periodization)模式(“per”):len(cA) == len(cD) == ceil(len(data) / 2)
其余模式:
len(cA) == len(cD) == floor((len(data) + wavelet.dec_len - 1) / 2)

1.一维离散信号处理

wavedec(data, wavelet, mode='symmetric', level=None, axis=-1)

data:就是你要输入的一维数据集啦
wavelet:调用小波的 简称
*mode:信号扩展模式,详见 Modes (默认为: ‘symmetric’)
*level:分解等级,如果写 level=None,则默认使用 dwt_max_level function.
*axis:计算离散小波变换的轴线,Axis over which to compute the DWT. If not given, the last axis is used.

返回值:[cA_n, cD_n, cD_n-1, …, cD_2, cD_1]
列表形式,n与分解level相关(例如level=5时,有6个返回值),CA_n是平均系数(approximation coefficients),CD_n~CD_1是细节系数(details coefficients)

2.二维离散信号处理

dwt2(data, wavelet, mode='symmetric', axes=(-2, -1))

data : 数据集
wavelet : 要使用的小波名
*mode : 信号扩展模式,详见 Modes (默认为: ‘symmetric’)
*axis: 整型数据,用于计算离散小波变换的轴线,如若未给出则使用最后的轴线值。

返回值
(cA, (cH, cV, cD)) : 元组形式,近似(Approximation)系数和水平(horizontal) 、垂直(vertical)、斜线(diagonal)细节系数

wavedec2(data, wavelet, mode='symmetric', level=None, axes=(-2, -1))

data:当然是要输入二维数据集啦
wavelet:调用小波的简称,除此之外,这里还可以使用一个二维元组使用不同的小波应用在不同轴线上。
*mode:信号扩展模式,详见 Modes (默认为: ‘symmetric’),这里也可以使用一个二维元组对不同轴线上数据使用不同模式。
*level:分解等级,如果写 level=None,则默认使用 dwt_max_level function.
*axis:二维整数型元组类型

返回值:[cAn, (cHn, cVn, cDn), … (cH1, cV1, cD1)]
CAn仍然是n级分解的平均系数(approximation coefficients),剩下的元组数值都是细节系数(details coefficients),其中cHaxes[0]相关,而cVaxes[1]相关。

3.n维离散信号处理

wavedecn(data, wavelet, mode='symmetric', level=None, axes=None)

返回值:[cAn, {details_level_n}, … {details_level_1}]
从二维可同理推得。

连续小波()

创建连续小波对象

ContinuousWavelet(name)

这部分和创建离散小波对象是很相似的,在这里就不做赘述了,直接上
Methods 定义如下:

__len__(self, /)#返回长度len(self)
__new__(*args, **kwargs)#从builtins.type创建并返回一个新对象,可通过help(type)查看详情
__reduce__ = __reduce_cython__(...)
__repr__(self, /)#返回repr(self)
__setstate__ = __setstate_cython__(...)
__str__(self, /)#返回str(self)
get_filters_coeffs(...)#获得滤波器参数
get_reverse_filters_coeffs(...)#获得逆滤波器参数
wavefun(...)#注意区分离散和连续的wavefun()的返回值有区别哦!

对象属性
symmetry:对称性
orthogonal:正交性
biorthogonal:双正交性
family_name:小波家族 族名
short_family_name:家族 族名简称
family_number:小波家族里排行老几
name
number
除了以上属性是和离散相似的,连续小波还有自己比较特殊的
lower_bound:
upper_bound
dt
complex_cwt

针对 shan, fbsp, cmor这三族小波。还可查看带宽频率和中心频率属性
bandwidth_frequency
center_frequency
针对fbsp小波,还可查看其参数顺序 属性
fbsp_order

突然蹦出来的栗子

>>> wavelet=pywt.Wavelet('db3')
>>> wavelet
pywt._extensions._pywt.Wavelet(name='db3', filter_bank=([0.03522629188570953, -0.08544127388202666, -0.13501102001025458, 0.45987750211849154, 0.8068915093110925, 0.33267055295008263],[-0.33267055295008263, 0.8068915093110925, -0.45987750211849154, -0.13501102001025458, 0.08544127388202666, 0.03522629188570953], [0.33267055295008263, 0.8068915093110925, 0.45987750211849154, -0.13501102001025458, -0.08544127388202666, 0.03522629188570953], [0.03522629188570953, 0.08544127388202666, -0.13501102001025458, -0.45987750211849154, 0.8068915093110925, -0.33267055295008263]))
>>> print(wavelet)
Wavelet db3Family name:    DaubechiesShort name:     dbFilters length: 6Orthogonal:     TrueBiorthogonal:   TrueSymmetry:       asymmetricDWT:            TrueCWT:            False
>>>

重点

1.找到你想用的小波

     wavelist(family=None, kind='all')

罗列出所有可用小波
由于笔者电脑中安装的是版本是
所以family中只能查看 ‘haar’, ‘db’, ‘sym’, ‘coif’, ‘bior’, ‘rbio’, ‘dmey’, ‘gaus’,
‘mexh’, ‘morl’, ‘cgau’, ‘shan’, ‘fbsp’, ‘cmor’ 这些小波家族。
*kind: 从这三种选,‘all’, ‘continuous’, ‘discrete’;默认为all

>>> import pywt
>>> pywt.wavelist('coif')
['coif1', 'coif2', 'coif3', 'coif4', 'coif5', 'coif6', 'coif7', ...
>>> pywt.wavelist(kind='continuous')
['cgau1', 'cgau2', 'cgau3', 'cgau4', 'cgau5', 'cgau6', 'cgau7', ...

2.绘制小波函数

离散类型小波

wavefun(self, level=8)

*level : 整型,默认level=8

返回值:
[phi, psi, x] : 就是一个数列
分别是正交小波的尺度函数( scaling function),小波函数(wavelet function)和x轴。
或者
[phi_d, psi_d, phi_r, psi_r, x] : 同样是一个二维列表
分别是双正交小波的 关于分解和重构的尺度函数( scaling function),小波函数(wavelet function)和x轴。

连续类型小波

 wavefun(self, level=8, length=None)

*level :整型,默认level为8
*length : 整型,因为length=2level,level与length二选一即可。

返回值:数列组合
psi : array_like
Wavelet function computed for grid xval
xval : array_like
grid going from lower_bound to upper_bound

注意事项:
B样条:B-spline wavelet ('fbsp') 有
bandwidth_frequency, center_frequencyfbsp_order 参数可选。

香农:Shannon wavelet ('shan') 有bandwidth_frequencycenter_frequency 参数可选。

Morlet wavelet ('cmor') 有 bandwidth_frequency
and center_frequency 参数可选。
#绘制尺度函数和小波函数图形

#绘制尺度函数和小波函数图形
import pywt
import matplotlib.pyplot as plt
wavelet=pywt.ContinuousWavelet('gaus8')
#wavelet.upper_bound=5
#wavelet.lower_bound=-5
[psi,xval] = wavelet.wavefun( level=10)#或者写length=1024
plt.plot(xval,psi)
plt.title("Gaussian Wavelet of order 1024")
plt.show()

小波重建

1.一维离散重建

waverec(coeffs, wavelet, mode='symmetric', axis=-1)

2.二维重建

waverec2(coeffs, wavelet, mode='symmetric', axes=(-2, -1))

3.n维重建

waverecn(coeffs, wavelet, mode='symmetric', axes=None)

维度计算

coefficients的数量

wavedecn_size(shapes)处理wavedecn_shapes()wavedecn()的返回值

分解重构

upcoef(part, coeffs, wavelet, level=1, take=0)downcoef(part, data, wavelet, mode='symmetric', level=1)

[Python]小波分析库Pywavelets的常用 API相关推荐

  1. python做小波分析_浅谈Python小波分析库Pywavelets的一点使用心得

    本文介绍了Python小波分析库Pywavelets,分享给大家,具体如下: # -*- coding: utf-8 -*- import numpy as np import math import ...

  2. python第三方库有哪些常用的、请列举15个-你想要的Python面试都在这里了【315+道题】...

    第一部分 Python基础篇(80题) 1.为什么学习Python? 1.python是脚本语言,作为程序员至少应该掌握一本通用脚本语言,因为脚本语言与编译语言的开发测试过程不同,可以极大的提高编程效 ...

  3. js find的用法_React常用库Immutable.js常用API

    JavaScript 中的对象一般是可变的(Mutable),因为使用了引用赋值,新的对象简单的引用了原始对象,改变新的对象将影响到原始对象.如 foo={a: 1}; bar=foo; bar.a= ...

  4. python第三方库有哪些常用的、请列举15个-python基础面试常见题

    Python是目前市面上,我个人认为是最简洁.最优雅.最有前途.最全能的编程语言,没有之一. 2.通过什么途径学习的Python? 通过自学,包括网上查看一些视频,购买一些相关专业的书籍. 3.Pyt ...

  5. python自动化库_Python自动化测试常用库整理

    基本库: sys 程序和Python解析器的交互 os 启动新进程:操作文件和目录 re 正则表达式,字符串匹配 string 基本字符串操作 inspect 提供自省和反射功能 importlib ...

  6. python第三方库安装最常用的方式是_Python安装第三方库常用方法

    在学习Python过程中,经常要用到很多第三方库,面对各种不同情况,Python为我们提供了多种安装方法: 一.pip安装: pip安装相信大家都不陌生了,在安装第三方库中,pip是最常使用的一种方法 ...

  7. python第三方库有哪些常用的、请列举15个-不吹不擂,你想要的Python面试都在这里了【315+道题】...

    来源:Python编程 ID:LovePython 各位大佬暂时先来315道题尝尝吧,后面有时间再继续补充. 有缘人如果看到这些题,不妨留言一下答案,来证明下你到底有多水,哈哈哈哈哈哈哈哈哈哈哈 第一 ...

  8. python第三方库有哪些常用的、请列举15个-阿里巴巴Python开发工程师面试题

    作为Python工程师,进入大公司是开启职业新起点的关键,今天达内python培训学院的学员特别分享了其在阿里巴巴面试Python工程师的题目和经历,希望对广大Python工程师的求职者有一个帮助. ...

  9. python多线程库_Python多线程常用包对比

    python由于本身的特质,不能实现真正的多核并行运算,但是有一些第三方库较好地模拟了在多核环境下的并行运算,例如pp包以及multiprocessing,那么哪种更能充分利用多核心呢? 这里我简单做 ...

最新文章

  1. 实战:基于OpenCV进行长时间曝光(内含彩蛋)
  2. OTA和Recovery系统升级流程介绍
  3. python zipfile 文件压缩和文件
  4. 如何使用UI技术提升租房类APP的看房体验?
  5. Dapper基础知识三
  6. [css] 你对伪类了解多少?分为几大类?
  7. TDengine安装教程
  8. FreeEIM通讯软件无论是画面风格还是游戏内容
  9. 103.二叉树的锯齿形层次遍历:DFS解法
  10. Python编写API接口
  11. torchtext 中文语料加载
  12. centos在图形界面和命令行之间切换的快捷键是什么?
  13. vmware linux虚拟机中添加硬盘
  14. 山东大学项目实训审计系统(七)数据可视化
  15. 一纸读懂另类数据 | 未央研究
  16. SAP那些事-理论篇-1- SAP初次亲密接触
  17. Google Colab 读取/存储 google drive(谷歌云盘)内的文件
  18. html页面中如何添加背景音乐
  19. 了解常见的网络设备及其功能
  20. 职业学校计算机知识,中等职业学校计算机教学大纲.doc

热门文章

  1. AI绘画——ChilloutMix模型(现实真人,实现写实逼真的图像)
  2. 【Sqlite】sqlite安装与与使用图文详解
  3. 我的ASP.NET MVC5工程中textarea的宽度为啥最大只能280px?
  4. 表格使用格式刷卡顿的一种解决办法
  5. 设计多选按钮ListChooseView
  6. 工具推荐|不用任何软件,如何成为P图大师?
  7. java实现尾递归优化,你们都知道递归,尾递归呢?什么又是尾递归优化?
  8. 计算机64位地址总线,64位CPU和数据/地址总线的关系
  9. 友盟小米收不到推送消息_友盟推送SDK集成测试、常见问题以及注意事项总结
  10. 解析底层原理!阿里P7级别面试经验总结,2年以上经验必看