hthr = 2logn^05; eta = sumabsx^2-n1n; crit = lognlog2^15n^05; thr = thselectxrigrsure; thrthr hthr = hthr; threta crit = hthr;代码详细解释
- hthr = (2*log(n)).^0.5;
计算阈值 hthr,其中 n 为信号长度。该阈值用于控制小波阈值去噪的效果,具体作用将在后面解释。
- eta = sum(abs(x).^2-n,1)./n;
计算信号 x 的能量,去掉信号长度 n 的影响。eta 用于判断信号是否过于嘈杂,具体作用将在后面解释。
- crit = (log(n)/log(2))^(1.5)/(n.^0.5);
计算阈值 crit,用于判断信号是否过于嘈杂。如果 eta 小于 crit,则认为信号过于嘈杂,需要使用 hthr 替代阈值。
- thr = thselect(x,'rigrsure');
使用 Rigorous Sure Thresholding 方法选择合适的小波阈值 thr。
- thr(thr > hthr) = hthr;
如果计算得到的小波阈值 thr 大于 hthr,则将其替换为 hthr。这是因为太大的小波阈值可能会使信号过度平滑,损失信号的细节信息。
- thr(eta < crit) = hthr;
如果 eta 小于 crit,则将小波阈值 thr 替换为 hthr。这是因为信号过于嘈杂,使用 hthr 可以更好地去除噪声,保留信号的主要特征
原文地址: https://www.cveoy.top/t/topic/fh6F 著作权归作者所有。请勿转载和采集!