wavelte packet reconstruction

조회 수: 14 (최근 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

카테고리

Help CenterFile Exchange에서 Signal Analysis에 대해 자세히 알아보기

Community Treasure Hunt

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

Start Hunting!

Translated by