,,浅谈Python小波分析库Pywavelets的一点使用心得

,,浅谈Python小波分析库Pywavelets的一点使用心得

这篇文章主要介绍了浅谈计算机编程语言小波分析库巴拉圭小波的一点使用心得,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

本文介绍了计算机编程语言小波分析库巴拉圭小波,分享给大家,具体如下:

# -*-编码:utf-8 -*-

将numpy作为铭牌导入

导入数学

将matplotlib.pyplot作为plt导入

进口熊猫作为螺纹中径

导入日期时间

从scipy导入插值

从熊猫进口数据框,系列

将numpy作为铭牌导入

导入pywt

data=np.linspace(1,4,7)

# pywt。阈值方法讲解:

# pywt.threshold数据,值,模式='软,替代=0)

#数据:数据集,值:阈值,模式:比较模式默认柔软,替代品:替代值,默认0,浮动类型

#数据:[ 1。1.5 2.2.5 3.3.5 4.]

#输出:[ 6。6.0.0.5 1.1.5 2.]

#柔软因为数据中一小于2,所以使用6替换,因为数据中第二个1.5小于2也被替换,2不小于2所以使用当前值减去2,2.5大于2,所以2.5-2=0.5.

print(pywt.threshold(data,2,' soft ',6))

#数据:[ 1。1.5 2.2.5 3.3.5 4.]

#硬数据中绝对值小于阈值2的替换为6,大于2的不替换

print (pywt.threshold(data,2,' hard ',6))

#数据:[ 1。1.5 2.2.5 3.3.5 4.]

#数据中数值小于阈值的替换为6,大于等于的不替换

print (pywt.threshold(data,2,’更大',6))

打印(数据)

#数据:[ 1。1.5 2.2.5 3.3.5 4.]

#数据中数值大于阈值的,替换为6

print (pywt.threshold(data,2,' less ',6))

[6.6.0.0.5 1.1.5 2.]

[6.6.2.2.5 3.3.5 4.]

[6.6.2.2.5 3.3.5 4.]

[1.1.5 2.2.5 3.3.5 4.]

[1.1.5 2.6.6.6.6.]

#!/usr/bin/env python

# -*-编码:utf-8 -*-

将numpy作为铭牌导入

将matplotlib.pyplot作为plt导入

导入pywt

导入pywt.data

ecg=pywt.data.ecg()

data1=NP。连接。阿兰格(1400),

阿兰热(398,600英镑),

NP . arange(6011024))

x=np.linspace(0.082,2.128,num=1024)[:-1]

数据2=NP。sin(40 * NP。log(x))* NP。符号((NP。log(x)))

mode=pywt .模式。平滑

定义绘图_信号_分解(数据,w,标题):

''分解并绘制信号s

S=一个Dn Dn-1.D1

'''

w=pywt .小波(w)#选取小波函数

a=数据

ca=[]#近似分量

cd=[]#细节分量

对于范围(5)中的我:

(a,d)=pywt.dwt(a,w,mode)#进行5阶离散小波变换

ca.append(a)

附加(四)

rec_a=[]

rec_d=[]

对于我,柯夫在列举(ca):

coeff_list=[coeff,None] [None] * i

rec _ a . appendwaverec(coeff _ list,w))#重构

对于我,柯夫在列举(光盘):

coeff_list=[None,coeff] [None] * i

如果i==3:

print(len(coeff))

print(len(coeff_list))

rec _ d . appendwaverec(coeff _ list,w))

图=plt .图()

ax _ main=fig . add _ subplot(len(rec _ a)1,1,1)

ax_main.set_title(标题)

ax_main.plot(数据)

ax_main.set_xlim(0,len(data) - 1)

对于枚举中的I,y(rec _ a):

ax=fig.add_subplot(len(rec_a) 1,2,3 i * 2)

ax.plot(y,' r ')

ax.set_xlim(0,len(y) - 1)

ax.set_ylabel('A%d' % (i 1))

对于枚举中的I,y(rec _ d):

ax=fig.add_subplot(len(rec_d) 1,2,4 i * 2)

ax.plot(y,' g ')

ax.set_xlim(0,len(y) - 1)

ax.set_ylabel('D%d' % (i 1))

#plot_signal_decomp(数据1,' coif5 ',' DWT:信号不规则)

#plot_signal_decomp(data2,' sym5 ',

# 'DWT:频率和相位变化-对称5 ')

plot_signal_decomp(ecg,' sym5 ',' DWT: Ecg sample - Symmlets5 ')

plt.show()

72

5

将数据序列进行小波分解,每一层分解的结果是上次分解得到的低频信号再分解成低频和高频两个部分。如此进过普通层分解后源信号X被分解为:X=D1 D2 … DN AN其中D1,D2,…,DN分别为第一层、第二层到等普通层分解得到的高频信号,安为第普通层分解得到的低频信号。

这就是本文的全部内容。希望对大家的学习有帮助,支持我们。

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: