ivan@78
|
1 function x = SoftTh(y,thld)
|
ivan@78
|
2 % x = SoftTh(y,thld);
|
ivan@78
|
3 %
|
ivan@78
|
4 % SOFTTH soft thresholds the input signal y with the threshold value
|
ivan@78
|
5 % thld.
|
ivan@78
|
6 %
|
ivan@78
|
7 % Input:
|
ivan@78
|
8 % y : 1D or 2D signal to be thresholded
|
ivan@78
|
9 % thld : Threshold value
|
ivan@78
|
10 %
|
ivan@78
|
11 % Output:
|
ivan@78
|
12 % x : Soft thresholded output (x = sign(y)(|y|-thld)_+)
|
ivan@78
|
13 %
|
ivan@78
|
14 % HERE'S AN EASY WAY TO RUN THE EXAMPLES:
|
ivan@78
|
15 % Cut-and-paste the example you want to run to a new file
|
ivan@78
|
16 % called ex.m, for example. Delete out the % at the beginning
|
ivan@78
|
17 % of each line in ex.m (Can use search-and-replace in your editor
|
ivan@78
|
18 % to replace it with a space). Type 'ex' in matlab and hit return.
|
ivan@78
|
19 %
|
ivan@78
|
20 %
|
ivan@78
|
21 % Example:
|
ivan@78
|
22 % y = makesig('Doppler',8);
|
ivan@78
|
23 % thld = 0.2;
|
ivan@78
|
24 % x = SoftTh(y,thld)
|
ivan@78
|
25 % x = 0 0 0 -0.0703 0 0.2001 0.0483 0
|
ivan@78
|
26 %
|
ivan@78
|
27 % See also: HardTh
|
ivan@78
|
28 %
|
ivan@78
|
29 % Reference:
|
ivan@78
|
30 % "De-noising via Soft-Thresholding" Tech. Rept. Statistics,
|
ivan@78
|
31 % Stanford, 1992. D.L. Donoho.
|
ivan@78
|
32 %
|
ivan@78
|
33
|
ivan@78
|
34 %File Name: SoftTh.m
|
ivan@78
|
35 %Last Modification Date: 8/15/95 17:49:48
|
ivan@78
|
36 %Current Version: SoftTh.m 2.4
|
ivan@78
|
37 %File Creation Date: Mon Mar 7 10:38:45 1994
|
ivan@78
|
38 %Author: Haitao Guo <harry@jazz.rice.edu>
|
ivan@78
|
39 %
|
ivan@78
|
40 %Copyright (c) 2000 RICE UNIVERSITY. All rights reserved.
|
ivan@78
|
41 %Created by Haitao Guo, Department of ECE, Rice University.
|
ivan@78
|
42 %
|
ivan@78
|
43 %This software is distributed and licensed to you on a non-exclusive
|
ivan@78
|
44 %basis, free-of-charge. Redistribution and use in source and binary forms,
|
ivan@78
|
45 %with or without modification, are permitted provided that the following
|
ivan@78
|
46 %conditions are met:
|
ivan@78
|
47 %
|
ivan@78
|
48 %1. Redistribution of source code must retain the above copyright notice,
|
ivan@78
|
49 % this list of conditions and the following disclaimer.
|
ivan@78
|
50 %2. Redistribution in binary form must reproduce the above copyright notice,
|
ivan@78
|
51 % this list of conditions and the following disclaimer in the
|
ivan@78
|
52 % documentation and/or other materials provided with the distribution.
|
ivan@78
|
53 %3. All advertising materials mentioning features or use of this software
|
ivan@78
|
54 % must display the following acknowledgment: This product includes
|
ivan@78
|
55 % software developed by Rice University, Houston, Texas and its contributors.
|
ivan@78
|
56 %4. Neither the name of the University nor the names of its contributors
|
ivan@78
|
57 % may be used to endorse or promote products derived from this software
|
ivan@78
|
58 % without specific prior written permission.
|
ivan@78
|
59 %
|
ivan@78
|
60 %THIS SOFTWARE IS PROVIDED BY WILLIAM MARSH RICE UNIVERSITY, HOUSTON, TEXAS,
|
ivan@78
|
61 %AND CONTRIBUTORS AS IS AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING,
|
ivan@78
|
62 %BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
|
ivan@78
|
63 %FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL RICE UNIVERSITY
|
ivan@78
|
64 %OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
|
ivan@78
|
65 %EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
|
ivan@78
|
66 %PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
|
ivan@78
|
67 %OR BUSINESS INTERRUPTIONS) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
|
ivan@78
|
68 %WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
|
ivan@78
|
69 %OTHERWISE), PRODUCT LIABILITY, OR OTHERWISE ARISING IN ANY WAY OUT OF THE
|
ivan@78
|
70 %USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
ivan@78
|
71 %
|
ivan@78
|
72 %For information on commercial licenses, contact Rice University's Office of
|
ivan@78
|
73 %Technology Transfer at techtran@rice.edu or (713) 348-6173
|
ivan@78
|
74 %
|
ivan@78
|
75 %Change History:
|
ivan@78
|
76 %
|
ivan@78
|
77
|
ivan@78
|
78 x = abs(y);
|
ivan@78
|
79 x = sign(y).*(x >= thld).*(x - thld);
|