Denoising using Wavelet problem

조회 수: 3 (최근 30일)
mir  khadim
mir khadim 2022년 2월 9일
댓글: Walter Roberson 2022년 4월 10일
The inbuilt MATLAB function "wdenoise" does not output the denoised signal. I used the following syntax
f8_clean = wdenoise(f8,5,'Wavelet','db4')
where "f8" is my noisy input signal, "5" is the level of decomposition, and "db4" is the chosen wavelet. The output signal "f8_clean" is supposed to be noise free to some extent, but it exactly matches with my input signal "f8".
What am i doing wrong?

답변 (1개)

Walter Roberson
Walter Roberson 2022년 2월 9일
Perhaps your noise is just very small and your signal is very regular? And perhaps you only checked to 4 digits?
format long g
t = linspace(0,1/100, 2500);
f8 = sin(t*2*pi*17) + randn(size(t))/100000;
f8_clean = wdenoise(f8,5,'Wavelet','db4');
[maxdiff, maxidx] = max(abs(f8-f8_clean))
maxdiff =
3.77285063186683e-05
maxidx =
996
[f8(maxidx), f8_clean(maxidx)]
ans = 1×2
0.412549466538199 0.412587195044517
  댓글 수: 4
Adam Reed
Adam Reed 2022년 4월 9일
I am having the same problem. I check the MSE for the denoised signal and it is on the order of 10^-26.
Walter Roberson
Walter Roberson 2022년 4월 10일
What shows up if you plot the difference between the original signal and the denoised signal?

댓글을 달려면 로그인하십시오.

카테고리

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