Different results with approximation coefficients with ndwt and swt
이전 댓글 표시
Should one expect that the results generated from swt and ndwt to match?
I am attempting the following but as one can see, the results are different. Is there anyway to obtain similar denoising characteristics using ndwt as one can obtain with swt?
load noissin;
x = noissin(1:512);
W = ndwt(x,4,'db4','mode','per');
a = indwt(W, 'a', 4);
[swa,swd] = swt(x,4,'db4');
mzero = zeros(size(swd));
b = iswt(swa,mzero,'db4');
subplot(211),plot(a);
subplot(212),plot(b);
채택된 답변
추가 답변 (1개)
Wayne King
2013년 9월 25일
0 개 추천
Hi Dave, there is a bug in ndwt.m. This has been reported. swt() is correct. Are you not able to use swt() due to length constraints?
The bug in ndwt.m is that the subband filtering only works correctly for the first stage and not subsequently. You can see the results of this bug in the fact that your 'a' vector above has high frequency oscillations when in fact, the approximation coefficients at that level, level 4, should be very smooth (containing no high frequencies)
댓글 수: 3
Dave
2013년 9월 26일
Wayne King
2013년 9월 26일
편집: Wayne King
2013년 9월 26일
The thing to do here Dave is extend your data vector to a length compatible with the swt() and then truncate it upon output. You have to be a little smart about the way you extend it. Do you have a sample data file you can provide? If you do that and tell me the level of the multiresolution analysis you want and the wavelet you want to use, I can show you an example of how to do that.
Dave
2013년 9월 26일
카테고리
도움말 센터 및 File Exchange에서 Wavelet Toolbox에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!