wavelte packet reconstruction

7 ビュー (過去 30 日間)
thangam
thangam 2011 年 10 月 22 日
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

採用された回答

Wayne King
Wayne King 2011 年 10 月 29 日
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);

その他の回答 (7 件)

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

サインインしてコメントする。


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

Wayne King
Wayne King 2011 年 10 月 27 日
Then just modify the terminal nodes.
  1 件のコメント
thangam
thangam 2011 年 10 月 29 日
ya i got idea. thanks for your kind help sir.

サインインしてコメントする。


thangam
thangam 2011 年 10 月 27 日
is there any procedure to modify those nodes sir
  1 件のコメント
Wayne King
Wayne King 2011 年 10 月 29 日
wpthcoef

サインインしてコメントする。

カテゴリ

Help Center および File ExchangeSignal Analysis についてさらに検索

Community Treasure Hunt

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

Start Hunting!

Translated by