wavelet
- To: mathgroup at smc.vnet.net
- Subject: [mg104966] wavelet
- From: clansa <dauphinester at gmail.com>
- Date: Sun, 15 Nov 2009 05:56:20 -0500 (EST)
With the package Wavelet
I have made this little program that is OK with 256 or 512 data, but
the graphics (PlotCoefficients, and ListPlot of the cumulative
energy don't work with 1024 data and more.
(*D=E9composition en ondelettes*)
(*La s=E9rie =E9tudi=E9e doit avoir 32, 64, \
128, 256, 512, 1024,... valeurs*)
(*Importation des donn=E9es*)
\
ClearAll["Global`*"]
d = Import[SystemDialogInput["FileOpen"]];
d = Flatten[d];
Print["longueur de la s=E9rie = ", n1 = Length[d]]
(*Choisir ordre du filtre et niveau de d=E9composition*)
\
Needs["Wavelets`Wavelets`"]
a = N[ChoiceDialog[
"Choisir l'ordre du filtre", {1 -> "1", 2 -> "2", 3 -> "3",
4 -> "4", 5 -> "5", 6 -> "6", 7 -> "7"}]];
a = ToExpression[a];
ab = N[ChoiceDialog[
"Choisir le niveau de d=E9composition maximum au-dela de 2", {3 ->
"3", 4 -> "4", 5 -> "5", 6 -> "6", 7 -> "7"}]];
ab = ToExpression[ab];
(*Il faut entrer le nom du filtre pour calculer les coefficients \
d'ondelettes et de multiresolution, Daubechies par d=E9faut*)
d2 = DaubechiesFilter[a, 25];
cv = N[WaveletTransform[d, d2, ab], 25];
Dimensions[cv];
Length /@ cv
Print[]
Print["Coefficients d'ondelettes = "];
ListPlot[cv, ImageSize -> {500, 400}]
PlotCoefficients[cv, Frame -> True]
(*=E9tude de l'=E9nergie absolue cumul=E9e et de l'=E9nergie relative cumul=
=E9e
\
pour tous les niveaux*)
Print[]
Print[]
et = CumulativeEnergy[cv] // N;
e = N[et/Flatten[cv].Flatten[cv]];
ListPlot[et, ImageSize -> {500, 400}, PlotRange -> All,
Joined -> True,
PlotLabel -> "=E9nergie totale absolue cumul=E9e"] ListPlot[e,
ImageSize -> {500, 400}, PlotRange -> All, Joined -> True,
PlotLabel -> "=E9nergie totale relative cumul=E9e"]
(*Calculs statistiques simples sur les coefficients d'ondelettes*)
\
Print[]
Print["Entropie des coefficients d'ondelette par niveau "];
entropcv = Table[Entropy[cv[[n1]]], {n1, 1, ab + 1}] // N