ウェーブレット分解を使用する分野は初めてです。そして、Pythonで(を使用して)1Dデータを(非常に少ない係数で)分解および再構築しようとしていpywt
ます。このドキュメンテーションcA
から、512 個の係数 (またはのサイズ) でデータを再構築する以下のコードを書きましたがcD
、合理的なデータ再構築を生成すると見なされる係数の数を選択 (制限) する方法であるべきだと思います。
%matplotlib inline
import pylab as plt
import pywt
# Data
data = ll[5].x0
n = len(data)
w = 'db1'
(cA, cD) = pywt.dwt(data, w, 'sp1') # Decomposition
# Perfect Reconstruction of data
perfect_reconstruction = pywt.upcoef('a',cA[:],w,take=n) + pywt.upcoef('d',cD[:],w,take=n)
reconstructed = pywt.upcoef('a',cA[:],w,take=n) # Approximate Reconstruction of data
x = np.arange(1.008,1.008+1024*0.001,0.001)
plt.figure(figsize=(20,8))
plt.subplot2grid((2,1),(0,0))
plt.title('Perfect Reconstruction of data - %s with rms error of 1.39 x e$^{-15}$'%w, fontsize=20)
plt.plot(x,data,'-',label='Data')
plt.plot(x,perfect_reconstruction,'-r',label='Reconstructed data')
plt.legend(loc='best',fontsize='x-large')
plt.xticks(fontsize = 14)
plt.yticks(fontsize = 14)
plt.subplot2grid((2,1),(1,0))
plt.title('Approximate Reconstruction of data - %s with rms error of 1.30 x e$^{-3}$'%w, fontsize=20)
plt.plot(x,data,'-',label='Data')
plt.plot(x,reconstructed,'-r',label='Reconstructed data')
plt.legend(loc='best',fontsize='x-large')
plt.xticks(fontsize = 14)
plt.yticks(fontsize = 14)
plt.show()
私の目標は数式を見つけることですこれは、分解後の係数が少ないデータを最もよく表しています。