Пример #1
0
def plot(data, w, title):
	print title
	w = pywt.Wavelet(w)
	a = data
	ca = []
	cd = []
        for i in xrange(5):
                (a, d) = pywt.dwt(a, w, mode)
                ca.append(a)
                cd.append(d)

	rec_a = []
	rec_d = []

	for i, coeff in enumerate(ca):
            coeff_list = [coeff, None] + [None]*i
            rec_a.append(pywt.waverec(coeff_list, w))
            
	for i, coeff in enumerate(cd):
            coeff_list = [None, coeff] + [None]*i
            rec_d.append(pywt.waverec(coeff_list, w))
			
	pylab.figure()
	ax_main = pylab.subplot(len(rec_a)+1,1,1)
	pylab.title(title)
	ax_main.plot(data)
	pylab.xlim(0, len(data)-1)

	for i, y in enumerate(rec_a):
		#print len(data), len(x), len(data) / (2**(i+1))
		ax = pylab.subplot(len(rec_a)+1, 2, 3+i*2)
		ax.plot(y, 'r')
		pylab.xlim(0, len(y)-1)
		pylab.ylabel("A%d" % (i+1))

	for i, y in enumerate(rec_d):
		ax = pylab.subplot(len(rec_d)+1, 2, 4+i*2)
		ax.plot(y, 'g')
		pylab.xlim(0, len(y)-1)
		#pylab.ylim(min(0,1.4*min(x)), max(0,1.4*max(x)))
		pylab.ylabel("D%d" % (i+1))
Пример #2
0
def plot(data, w, title):
    print title
    w = pywt.Wavelet(w)
    a = data
    ca = []
    cd = []
    for i in xrange(5):
        (a, d) = pywt.dwt(a, w, mode)
        ca.append(a)
        cd.append(d)

    rec_a = []
    rec_d = []

    for i, coeff in enumerate(ca):
        coeff_list = [coeff, None] + [None] * i
        rec_a.append(pywt.waverec(coeff_list, w))

    for i, coeff in enumerate(cd):
        coeff_list = [None, coeff] + [None] * i
        rec_d.append(pywt.waverec(coeff_list, w))

    pylab.figure()
    ax_main = pylab.subplot(len(rec_a) + 1, 1, 1)
    pylab.title(title)
    ax_main.plot(data)
    pylab.xlim(0, len(data) - 1)

    for i, y in enumerate(rec_a):
        #print len(data), len(x), len(data) / (2**(i+1))
        ax = pylab.subplot(len(rec_a) + 1, 2, 3 + i * 2)
        ax.plot(y, 'r')
        pylab.xlim(0, len(y) - 1)
        pylab.ylabel("A%d" % (i + 1))

    for i, y in enumerate(rec_d):
        ax = pylab.subplot(len(rec_d) + 1, 2, 4 + i * 2)
        ax.plot(y, 'g')
        pylab.xlim(0, len(y) - 1)
        #pylab.ylim(min(0,1.4*min(x)), max(0,1.4*max(x)))
        pylab.ylabel("D%d" % (i + 1))
Пример #3
0
#!/usr/bin/env python
# -*- coding: utf-8 -*-

from supreme.lib import pywt

data = range(16)
wavelet = 'db4'
level = 2
mode = 'cpd'

print "original data:"
print data
print

# dec = [cA(n-1) cD(n-1) cD(n-2) ... cD(2) cD(1)]
dec = pywt.wavedec(data, wavelet, mode, level)

print "decomposition:"

print "cA%d:" % (len(dec)-1)
print [("%.4f" % val) for val in dec[0]]

for i,d in enumerate(dec[1:]):
	print "cD%d:" % (len(dec)-1-i)
	print [("%.4f" % val) for val in d]

print
print "reconstruction:"

print [("%.4f" % val) for val in pywt.waverec(dec, wavelet, mode)]