wavelte packet reconstruction

8 Ansichten (letzte 30 Tage)
thangam
thangam am 22 Okt. 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

Akzeptierte Antwort

Wayne King
Wayne King am 29 Okt. 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);

Weitere Antworten (7)

Wayne King
Wayne King am 22 Okt. 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 am 23 Okt. 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 am 23 Okt. 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 am 23 Okt. 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 Kommentare
Wayne King
Wayne King am 23 Okt. 2011
wavedec() does not give you a wavelet packet transform. That gives you a wavelet transform, so which did you do?
thangam
thangam am 27 Okt. 2011
just for example i gave that one sir.
actually i am doing with wpt = wpdec(y,3,'db3'); sir

Melden Sie sich an, um zu kommentieren.


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

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

Melden Sie sich an, um zu kommentieren.


thangam
thangam am 27 Okt. 2011
is there any procedure to modify those nodes sir

Community Treasure Hunt

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

Start Hunting!

Translated by