what is the function of W, Nsig and Ssig in this program?
Show older comments
function y = dtdwt(x)
windowsize = 7;
windowfilt = ones(1,windowsize)/windowsize;
% Number of Stages
J = 6;
I=sqrt(-1);
L = length(x);
N = L+2^J;
x = symextend(x,2^(J-1));
load nor_dualtree
[Faf, Fsf] = AntonB;
[af, sf] = dualfilt1;
W = dual2D(x, J, Faf, af);
W = normcoef(W,J,nor);
% Noise variance estimation using robust median estimator..
tmp = W{1}{1}{1}{1};
Nsig = median(abs(tmp(:)))/0.6745;
for scale = 1:J-1
for dir = 1:2
for dir1 = 1:3
Y_coef_real = W{scale}{1}{dir}{dir1};
Y_coef_imag = W{scale}{2}{dir}{dir1};
Y_parent_real = W{scale+1}{1}{dir}{dir1};
Y_parent_imag = W{scale+1}{2}{dir}{dir1};
Y_parent_real = expand(Y_parent_real);
Y_parent_imag = expand(Y_parent_imag);
Wsig = conv2(windowfilt,windowfilt,(Y_coef_real).^2,'same');
Ssig = sqrt(max(Wsig-Nsig.^2,eps));
% Threshold value estimation
T = sqrt(3)*Nsig^2./Ssig;
% Bivariate Shrinkage
Y_coef = Y_coef_real+I*Y_coef_imag;
Y_parent = Y_parent_real + I*Y_parent_imag;
Y_coef = bishrink(Y_coef,Y_parent,T);
W{scale}{1}{dir}{dir1} = real(Y_coef);
W{scale}{2}{dir}{dir1} = imag(Y_coef);
end
end
end
Especially i want to know about W,AntonB,nor dualtree, eps, Nsig, Ssig
Answers (2)
Walter Roberson
on 25 Mar 2013
max(Wsig-Nsig.^2,eps)
is the same as
temp = Wsig-Nsig.^2;
temp(temp < eps) = eps;
and then using temp as the value.
Why one would want to do that? Well, it avoids division by 0.
Wayne King
on 1 Apr 2013
0 votes
W is simply the dual-tree wavelet transform.
Nsig is the "universal threshold" for wavelet denoising based on the level-1 detail coefficients.
Categories
Find more on Oceanography and Hydrology in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!