Documentation Center

  • Trial Software
  • Product Updates

wthrmngr

Threshold settings manager

Syntax

THR = wthrmngr(OPTION,METHOD,VARARGIN)

Description

THR = wthrmngr(OPTION,METHOD,VARARGIN) returns a global threshold or level dependent thresholds depending on OPTION. The inputs, VARARGIN, depend on the OPTION and METHOD values.

This file returns the thresholds used throughout the Wavelet Toolbox™ software for de-noising and compression tools (command line files or GUI tools).

Valid options for the METHOD parameter are listed in the table below.

METHODDescription
'scarcehi'See wdcbm or wdcbm2 when used with 'high' predefined value of parameter M.
'scarceme'See wdcbm or wdcbm2 when used with 'medium' predefined value of parameter M.
'scarcelo'See wdcbm or wdcbm2 when used with 'low' predefined value of parameter M.
'sqtwolog'See 'sqtwolog' option in thselect, and see also wden.
'sqtwologuwn'See 'sqtwolog' option in thselect, and see also wden when used with 'sln' option.
'sqtwologswn'See 'sqtwolog' option in thselect, and see also wden when used with 'mln' option.
'rigsure'See 'rigsure' option in thselect, and see also wden.
'heursure'See 'heursure' option in thselect, and see also wden.
'minimaxi'See 'minimaxi' option in thselect, and see also wden.
'penalhi'See wbmpen or wpbmpen when used with 'high' value of parameter ALPHA.
'penalme'See wbmpen or wpbmpen when used with 'medium' value of parameter ALPHA.
'penallo'See wbmpen or wpbmpen when used with 'low' value of parameter ALPHA.
'rem_n0'This option returns a threshold close to 0. A typical THR value is median(abs(coefficients)).
'bal_sn'This option returns a threshold such that the percentages of retained energy and number of zeros are the same.
'sqrtbal_sn'This option returns a threshold equal to the square root of the value such that the percentages of retained energy and number of zeros are the same.

Discrete Wavelet 1-D Options

For 1–D wavelet transforms, the expansion coefficients are in the vector C and the lengths of the expansion coefficient vectors are stored in L.

Compression using a global threshold.

X is the signal to be compressed and [C,L] is the wavelet decomposition structure of the signal to be compressed.

THR = wthrmngr('dw1dcompGBL','rem_n0',X)
THR = wthrmngr('dw1dcompGBL','bal_sn',X)

Compression using level dependent thresholds.

X is the signal to be compressed and [C,L] is the wavelet decomposition structure of the signal to be compressed.

ALFA is a sparsity parameter (see wdcbm for more information).

THR = wthrmngr('dw1dcompLVL','scarcehi',C,L,ALFA) 
      ALFA must be such that 2.5 < ALFA < 10
THR = wthrmngr('dw1dcompLVL','scarceme',C,L,ALFA) 
      ALFA must be such that 1.5 < ALFA < 2.5
THR = wthrmngr('dw1dcompLVL','scarcelo',C,L,ALFA) 
      ALFA must be such that 1 < ALFA < 2

De-noising using level dependent thresholds.

[C,L] is the wavelet decomposition structure of the signal to be de-noised, SCAL defines the multiplicative threshold rescaling (see wden for more information) and ALFA is a sparsity parameter (see wbmpen for more information).

THR = wthrmngr('dw1ddenoLVL','sqtwolog',C,L,SCAL)
THR = wthrmngr('dw1ddenoLVL','rigrsure',C,L,SCAL)
THR = wthrmngr('dw1ddenoLVL','heursure',C,L,SCAL)
THR = wthrmngr('dw1ddenoLVL','minimaxi',C,L,SCAL)
THR = wthrmngr('dw1ddenoLVL','penalhi',C,L,ALFA) 
      ALFA must be such that 2.5 < ALFA < 10
THR = wthrmngr('dw1ddenoLVL','penalme',C,L,ALFA) 
      ALFA must be such that 1.5 < ALFA < 2.5
THR = wthrmngr('dw1ddenoLVL','penallo',C,L,ALFA) 
      ALFA must be such that 1 < ALFA < 2

Discrete Stationary Wavelet 1-D Options

De-noising using level dependent thresholds.

SWTDEC is the stationary wavelet decomposition structure of the signal to be de-noised, SCAL defines the multiplicative threshold rescaling (see wden for more information) and ALFA is a sparsity parameter (see wbmpen for more information).

THR = wthrmngr('sw1ddenoLVL',METHOD,SWTDEC,SCAL)
THR = wthrmngr('sw1ddenoLVL',METHOD,SWTDEC,ALFA)

The options for METHOD are the same as in the 'dw1ddenoLVL'case.

Discrete Wavelet 2-D Options

For 2–D wavelet transforms, the expansion coefficients are in the vector C and the size of the coefficient matrices at each level is stored in S.

Compression using a global threshold.

X is the image to be compressed and [C,S] is the wavelet decomposition structure of the image to be compressed.

THR = wthrmngr('dw2dcompGBL','rem_n0',X)
THR = wthrmngr('dw2dcompGBL','bal_sn',C,S)
THR = wthrmngr('dw2dcompGBL','sqrtbal_sn',C,S)

Compression using level dependent thresholds.

X is the image to be compressed and [C,S] is the wavelet decomposition structure of the image to be compressed. ALFA is a sparsity parameter (see wdcbm2 for more information).

THR = wthrmngr('dw2dcompLVL','scarcehi',C,S,ALFA) 
      ALFA must be such that 2.5 < ALFA < 10
THR = wthrmngr('dw2dcompLVL','scarceme',C,S,ALFA) 
      ALFA must be such that 1.5 < ALFA < 2.5
THR = wthrmngr('dw2dcompLVL','scarcelo',C,S,ALFA) 
      ALFA must be such that 1 < ALFA < 2

De-noising using level dependent thresholds.

[C,S] is the wavelet decomposition structure of the image to be de-noised, SCAL defines the multiplicative threshold rescaling (see wden for more information) and ALFA is a sparsity parameter (see wbmpen for more information).

THR = wthrmngr('dw2ddenoLVL','penalhi',C,S,ALFA) 
      ALFA must be such that 2.5 < ALFA < 10
THR = wthrmngr('dw2ddenoLVL','penalme',C,S,ALFA) 
      ALFA must be such that 1.5 < ALFA < 2.5
THR = wthrmngr('dw2ddenoLVL','penallo',C,S,ALFA) 
      ALFA must be such that 1 < ALFA < 2
THR = wthrmngr('dw2ddenoLVL','sqtwolog',C,S,SCAL)
THR = wthrmngr('dw2ddenoLVL','sqrtbal_sn',C,S)

Discrete Stationary Wavelet 2-D Options

De-noising using level dependent thresholds.

SWTDEC is the stationary wavelet decomposition structure of the image to be de-noised, SCAL defines the multiplicative threshold rescaling (see wden for more information) and ALFA is a sparsity parameter (see wbmpen for more information).

THR = wthrmngr('sw2ddenoLVL',METHOD,SWTDEC,SCAL)
THR = wthrmngr('sw2ddenoLVL',METHOD,SWTDEC,ALFA)

The options for METHOD are the same as in the 'dw2ddenoLVL' case.

Discrete Wavelet Packet 1-D Options

Compression using a global threshold.

X is the signal to be compressed and WPT is the wavelet packet decomposition structure of the signal to be compressed.

THR = wthrmngr('wp1dcompGBL','bal_sn',WPT)
THR = wthrmngr('wp1dcompGBL','rem_n0',X)

De-noising using a global threshold.

WPT is the wavelet packet decomposition structure of the signal to be de-noised.

THR = wthrmngr('wp1ddenoGBL','sqtwologuwn',WPT)
THR = wthrmngr('wp1ddenoGBL','sqtwologswn',WPT)
THR = wthrmngr('wp1ddenoGBL','bal_sn',WPT)
THR = wthrmngr('wp1ddenoGBL','penalhi',WPT) 
      see wbmpen with ALFA = 6.25
THR = wthrmngr('wp1ddenoGBL','penalme',WPT) 
      see wbmpen with ALFA = 2
THR = wthrmngr('wp1ddenoGBL','penallo',WPT) 
      see wbmpen with ALFA = 1.5

Discrete Wavelet Packet 2-D Options

Compression using a global threshold.

X is the image to be compressed and WPT is the wavelet packet decomposition structure of the image to be compressed.

THR = wthrmngr('wp2dcompGBL','bal_sn',WPT)
THR = wthrmngr('wp2dcompGBL','rem_n0',X)
THR = wthrmngr('wp2dcompGBL','sqrtbal_sn',WPT)

De-noising using a global threshold.

WPT is the wavelet packet decomposition structure of the image to be de-noised.

THR = wthrmngr('wp2ddenoGBL','sqtwologuwn',WPT)
THR = wthrmngr('wp2ddenoGBL','sqtwologswn',WPT)
THR = wthrmngr('wp2ddenoGBL','sqrtbal_sn',WPT)
THR = wthrmngr('wp2ddenoGBL','penalhi',WPT) 
      see wbmpen with ALFA = 6.25
THR = wthrmngr('wp2ddenoGBL','penalme',WPT) 
      see wbmpen with ALFA = 2
THR = wthrmngr('wp2ddenoGBL','penallo',WPT) 
      see wbmpen with ALFA = 1.5

Examples

Level-Independent Threshold — Stationary Wavelet Transform

This example uses a level-independent threshold based on the finest-scale wavelet coefficients to implement hard thresholding with the stationary wavelet transform.

Load the noisy blocks signal. Obtain the stationary wavelet transform down to level 5 using the Haar wavelet.

load noisbloc;
L = 5;
swc = swt(noisbloc,L,'db1');

Make a copy of the wavelet transform coefficients. Determine the Donoho-Johnstone universal threshold based on the first-level detail coefficients. Using the 'sln' option, wthrmngr returns a 1-by-L vector with every element equal to the same value. Take the mean of the vector to obtain a scalar threshold.

swcnew = swc;
ThreshSL = mean(wthrmngr('sw1ddenoLVL','sqtwolog',swc,'sln'));

Use the universal threshold to implement hard thresholding. The same threshold is applied to the wavelet coefficients at every level.

for jj = 1:L
swcnew(jj,:) = wthresh(swc(jj,:),'h',ThreshSL);
end

Invert the stationary wavelet transform on the thresholded coefficients, swcnew. Plot the original signal and the denoised signal for comparison.

noisbloc_denoised = iswt(swcnew,'db1');
plot(noisbloc); hold on;
plot(noisbloc_denoised,'r','linewidth',2);

Level-Dependent Threshold — Stationary Wavelet Transform

This example uses a level-dependent threshold derived from the wavelet coefficients at each scale to implement hard thresholding with the stationary wavelet transform.

Load the noisy blocks signal. Obtain the stationary wavelet transform down to level 5 using the Haar wavelet.

load noisbloc;
L = 5;
swc = swt(noisbloc,L,'db1');

Make a copy of the wavelet transform coefficients. Determine the Donoho-Johnstone universal threshold based on the detail coefficients for each scale. Using the 'mln' option, wthrmngr returns a 1-by-L vector with each element of the vector equal to the universal threshold for the corresponding scale.

swcnew = swc;
ThreshML = wthrmngr('sw1ddenoLVL','sqtwolog',swc,'mln');

Use the universal thresholds to implement hard thresholding. The thresholds are applied in a scale-dependent manner.

for jj = 1:L
swcnew(jj,:) = wthresh(swc(jj,:),'h',ThreshML(jj));
end

Invert the stationary wavelet transform on the thresholded coefficients, swcnew. Plot the original signal and the denoised signal for comparison.

noisbloc_denoised = iswt(swcnew,'db1');
plot(noisbloc); hold on;
plot(noisbloc_denoised,'r','linewidth',2);

Image Compression— Birgé-Massart Thresholds

This example compresses an image using the Birgé-Massart strategy.

Load the image and add white Gaussian noise.

load sinsin
x = X+18*randn(size(X));

Obtain the 2-D discrete wavelet transform down to level 2 using the Daubechies' least-asymmetric wavelet with 8 vanishing moments. Obtain the compression thresholds using the Birgé-Massart strategy with alpha equal to 2.

[C,L] = wavedec2(x,2,'sym8');
alpha = 2;
THR = wthrmngr('dw2dcompLVL','scarcehi',C,L,alpha);

Compress the image and display the result.

 Xd = wdencmp('lvd',X,'sym8',2,THR,'s');
image(X); title('Original image');
figure;
image(x); title('Noisy image');
figure;
image(Xd); title('Denoised image');
Was this topic helpful?