1-D 小波降噪函数 WDEN:自动降噪和阈值选择

function [xd,cxd,lxd,thrs] = wden(in1,in2,in3,in4,in5,in6,in7)

功能: 该函数使用小波变换进行一维信号的自动降噪,支持多种阈值选择规则和阈值估计方法,并提供 MODWT 和 DWT 两种降噪方式。

输入参数:

  • in1: 输入信号 x 或 DWT 系数 c
  • in2: 阈值选择规则 tptr,支持的选项有:
    • 'modwtsqtwolog': 使用最大重叠离散小波变换 (MODWT) 进行降噪,并使用 Donoho 和 Johnstone 的通用阈值和层级依赖阈值。
    • 'rigrsure': 使用 Stein 的无偏风险原理。
    • 'heursure': Stein 的无偏风险的启发式变体。
    • 'sqtwolog': 使用 Donoho 和 Johnstone 的通用阈值,并使用 DWT。
    • 'minimaxi': 使用极小极大阈值。
  • in3: 阈值处理类型 sorh,可取值为 's' 或 'h'。
  • in4: 阈值估计方法 scal,可取值为:
    • 'one': 不进行重缩放。
    • 'sln': 使用基于第一层系数的噪声估计进行重缩放。
    • 'mln': 使用层级依赖的噪声估计进行重缩放。
    • 'mln' 是 MODWT 降噪的唯一支持选项。
  • in5: 小波变换的层数 n
  • in6: 小波函数名称 w,对于 MODWT 降噪,w 必须对应正交小波。
  • in7: 仅当 in1xtptr 为 'modwtsqtwolog' 时需要输入,表示 MODWT 的变换矩阵 W

输出参数:

  • xd: 去噪后的信号。
  • cxd: 去噪后的 DWT 或 MODWT 系数。
  • lxd: 仅在使用 DWT 时返回,表示每一层的系数个数。
  • thrs: 各层的阈值。

代码详解:

  1. 判断输入参数并进行错误检查。
  2. 如果 tptr 为 'modwtsqtwolog',则调用 modwtdenoise1D 函数进行 MODWT 去噪,并直接返回结果。
  3. 对于 DWT 去噪,先进行小波分解,得到 cl
  4. 根据阈值估计方法,计算阈值的缩放系数 s
  5. 对每一层的系数进行阈值处理,得到 cxdthrs
  6. 进行小波重构,得到去噪后的信号 xd,并返回结果。

示例:

% 示例 1:使用 DWT 和 MODWT 降噪一个包含 2 Hz 正弦波和瞬变的信号
N = 1000;
t = linspace(0,1,N);
x = 4*sin(4*pi*t);
x = x - sign(t - .3) - sign(.72 - t);
y = x+0.15*randn(size(t));
xdDWT = wden(y,'sqtwolog','s','mln',3,'db2');
xdMODWT = wden(y,'modwtsqtwolog','s','mln',3,'db2');
subplot(2,1,1)
plot(xdDWT), title('DWT 降噪'); axis tight;
subplot(2,1,2)
plot(xdMODWT), title('MODWT 降噪'); axis tight;

% 示例 2:使用 Haar 小波和 MODWT 和 DWT 降噪一个块状信号
[x,xn] = wnoise('blocks',10,3);
xdMODWT = wden(xn,'modwtsqtwolog','s','mln',6,'haar');
xd = wden(xn,'sqtwolog','s','mln',6,'haar');
plot(x)
hold on
plot(xd,'r--')
plot(xdMODWT,'k-.')
legend('原始信号','DWT 降噪','MODWT 降噪')
hold off
norm(abs(x-xd),2), norm(abs(x-xd),Inf)
norm(abs(x-xdMODWT),2), norm(abs(x-xdMODWT),Inf)

参考:

  • THSELECT: 阈值选择函数。
  • MODWT: 最大重叠离散小波变换。
  • WAVEDEC: 小波分解函数。
  • WDENCMP: 降噪性能比较函数。
  • WFILTERS: 小波滤波器函数。
  • WTHRESH: 阈值处理函数。
1-D 小波降噪函数 WDEN:自动降噪和阈值选择

原文地址: https://www.cveoy.top/t/topic/nSCO 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录