2012年07月20日 星期五 21:55
signal x
db3 = pywt.Wavelet('db3')
cA2,cD2,cD1 = pywt.wavedec(x,db3,'cpd',2)
x2 = pywt.idwt(cA2,cD2,'db3','sym')
pl.plot(x,label=u'x')
pl.plot(x2,label=u'x2')
pl.legend()
pl.show()
得到的变换之后,x2的则变成的缩小版,横向缩短,图我贴不上来,我想实现的是对信号小波处理,并画出不同阶层分解和重构系数图像。问什么系数图像与x相比,总体轮廓没变,但是x轴压缩了呢
2012年07月20日 星期五 22:00
2012年07月21日 星期六 20:16
小波变换每次都要降低取样频率,因此小波变换之后,你只用一部分数据还原的话,数据的长度应该是变化的吧。
2012年07月22日 星期日 09:41
那要画出原始大小的图形,如果用多阶重构,图形没有达到滤波效果,而是与原图完全重合的,纯粹的恢复数据,在上面程序中,添加:
List = pywt.wavedec(x,db3,'cpd',7)
x7 = pywt.waverec(List,db3)
pl.plot(x7,label=u'x7')
并对于不同阶层的分解,重构,达到降噪的效果看不出来,反而其幅值增大了,像是被压缩了。重建函数与matlaB中wrcoef()小波重构函数输出的数据不同。是不是哪里概念理解错了呢?
2012年07月23日 星期一 16:54
import numpy as np
import pywt
import matplotlib.pyplot as plt
s =sign
dec_data = pywt.wavedec(s,'db3',level=4)
n = len(s)
for i in range(4):
plt.subplot(512+i)
plt.plot(pywt.upcoef('d', dec_data[4-i], 'db3', level=i+1))
plt.ylabel(i+1)
plt.subplot(511)
plt.plot(s)
plt.ylabel("sign")
plt.show()
2012年07月27日 星期五 15:32
Zeuux © 2024
京ICP备05028076号