I gefragt, ob es eine Implementierung für die Energie für die 1-D-Wavelet in Python, das gleiche wie die Matlab ‚[Ea, Ed] = Wenergy (C, L) ". Ich habe versucht, auf meinem eigenen zu schreiben, aber ich bin nicht sicher davon: Die Formel lautet:Energie für 1-D-Wavelet in Python
Wo Dj das Detail Vektor soll, und j = 1,2, ... , ld und N1 ist die Datenlänge auf der Dekompositionsebene.
import json
import pywt
f=open('DataFile.txt','r')
D=json.load(f)
f.close()
#create the wavelet function
db1 = pywt.Wavelet('db13')
#calculate the number of necessary decompositions
NbrDecomp= pywt.dwt_max_level(len(D), db1)+1
#Initialize an empty list to receive the Detail and Approximation
Vector = [None] * NbrDecomp
#we use the Wavelet decomposition in the pywt module
Vector = pywt.wavedec(D, db1)
#Now Vector = [Approxiamtion N, Details N, Details N-1,.....]
#Where N would be the number of decompositions
Nach der Definition der Energie auf der Ebene k:
Energy(k)=np.sqrt(sum([x**2 for x in Vecktor[len(Vektor)-N-1-k]])/len(Vektor))
die Umsetzung richtig ist?
Gibt es einen Grund, warum Sie NumPy's Quadratwurzel verwenden, wenn die Stock 'sqrt' Funktion aus dem' math' pac ist Kage in Python wird es tun? Keiner Ihrer Datentypen war ursprünglich 'numpy' Arrays, deshalb sehe ich keinen Sinn darin, ein 'numpy'-Array auszugeben (zumindest nicht in dieser aktuellen Version des Codes), wenn Sie' numpy 'wahrscheinlich nicht nutzen werden. s Datendarstellung. – rayryeng
Ihre doppelte 'Vector' Definition ist überflüssig, Sie können eine Liste nicht vorbelegen und sie vollständig überschreiben. –
Entfernen Sie den Quadratwurzelbegriff – ejectamenta