wavelte packet reconstruction

7 vues (au cours des 30 derniers jours)
thangam
thangam le 22 Oct 2011
hi,
actually i decomposed the signal with wpdec() and measured each node using wpcoef now i have to adjust those signals before reconstruction.
anybody pls help me in which manner the signal can be adjusted before reconstruction to get the better signal.
thank u in advance

Réponse acceptée

Wayne King
Wayne King le 29 Oct 2011
Yes, you can use wpthcoef(), that does what you want.
Unless you have a very specific way you want to modify them beside hard or soft thresholding. If that is the case:
Read the terminal node coefficients with
cfs = read(T,'data');
Keep the approximation coefficients
tnodes = leaves(T);
app_coefs = read(T,'data',tnodes(1));
Change cfs the way you want. Let coefs be the changed coefficients.
Put the new coefficients in a tree.
Tnew = write(T,'data',coefs);
Place the approximation coefficients back.
Tnew = write(T,'data', tnodes(1),app_coefs);

Plus de réponses (7)

Wayne King
Wayne King le 22 Oct 2011
Hi, You can use wpthcoef or wpdencmp for denoising. Or you can simply modify the terminal nodes of your original tree, then create a new tree and use write to write your new coefficients to the terminal nodes.

thangam
thangam le 23 Oct 2011
thanks for ur kind reply sir. ya actually i tried wpdencoef and wpthcoef and i got some output.
but i need to adjust each node signal separately and i adjusted some of the nodes and modified new coefficients by write command. but i did not get clear output. in some of the nodes while adjusting it shows invalid node value. so pls give me an for the procedure to adjust the each node signal sir.

Wayne King
Wayne King le 23 Oct 2011
Hi, It doesn't make sense in a wavelet packet tree to adjust each node separately because the higher levels nodes depend on the terminal nodes. It's not like a wavelet tree where you can modify just the detail coefficients.
You should decompose the signal down to whatever level you wish and just modify the terminal nodes. By definition, everything above it will be modified.

thangam
thangam le 23 Oct 2011
thanks for ur help sir.
so i used 3 level([c,l] = wavedec(x,3,'db1');) means then
Is i have to change all the nodes of 7, 8, 9, 10, 11, 12, 13, 14 sir.
Actually i changed those nodes by giving some values, and the signal was got modified but i did not get clear output. so in which manner i have to adjust the nodes either by defining threshold values by any command or any other process sir.
thank u in advance sir
  2 commentaires
Wayne King
Wayne King le 23 Oct 2011
wavedec() does not give you a wavelet packet transform. That gives you a wavelet transform, so which did you do?
thangam
thangam le 27 Oct 2011
just for example i gave that one sir.
actually i am doing with wpt = wpdec(y,3,'db3'); sir

Connectez-vous pour commenter.


thangam
thangam le 27 Oct 2011
just for example i gave that one sir.
actually i am doing with wpt = wpdec(y,3,'db3'); sir

Wayne King
Wayne King le 27 Oct 2011
Then just modify the terminal nodes.
  1 commentaire
thangam
thangam le 29 Oct 2011
ya i got idea. thanks for your kind help sir.

Connectez-vous pour commenter.


thangam
thangam le 27 Oct 2011
is there any procedure to modify those nodes sir
  1 commentaire
Wayne King
Wayne King le 29 Oct 2011
wpthcoef

Connectez-vous pour commenter.

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by