what is the function of W, Nsig and Ssig in this program?
Afficher commentaires plus anciens
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
Réponses (2)
Walter Roberson
le 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
le 1 Avr 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.
Catégories
En savoir plus sur Oceanography and Hydrology dans Centre d'aide et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!