多元小波降噪方法

随便写一写,随便写一写

多元小波降噪模型为X(t)=F(t)+e(t)

Name Size Bytes Class Attributes

covar 4×4 128 double

x 1024×4 32768 double

x_orig 1024×4 32768 double

其中x为带噪声的信号,covar为噪声协方差矩阵,x_orig为原始信号。

绘制原始信号和带噪声的信号

kp = 0;for i = 1:4     subplot(4,2,kp+1), plot(x_orig(:,i)); axis tight;    title(['Original signal ',num2str(i)])    subplot(4,2,kp+2), plot(x(:,i)); axis tight;    title(['Observed signal ',num2str(i)])    kp = kp + 2;end

噪声协方差矩阵: covar

通过简单的多元阈值去除噪声,降噪策略基于单变量小波降噪方法并融合主成分分析,具体算法见如下论文:

M. Aminghafari, N. Cheze and J-M. Poggi (2006), “Multivariate denoising using wavelets and principal component analysis,” Computational Statistics & Data Analysis, 50, pp. 2381-2398.

设置降噪参数

level = 5;%分解层数wname = 'sym4';%选取小波tptr  = 'sqtwolog';%阈值计算sorh  = 's';%软阈值方法

设置PCA参数

npc_app = 4;npc_fin = 4;

执行多元小波降噪,降噪结果如下

clfkp = 0;for i = 1:4     subplot(4,3,kp+1), plot(x_orig(:,i)); axis tight;     title(['Original signal ',num2str(i)])    subplot(4,3,kp+2), plot(x(:,i)); axis tight;    title(['Observed signal ',num2str(i)])    subplot(4,3,kp+3), plot(x_den(:,i)); axis tight;    title(['Denoised signal ',num2str(i)])    kp = kp + 3;end

?通过保留更少的主成分来改进第一个结果,使用 Kaiser 规则自动选择保留的主成分的数量

npc_app = 'kais';npc_fin = 'kais';

看一下保留主成分的数量

?因为信号是两个原始信号的组合,Kaiser 规则自动检测到只有2个主成分

看一下估计的噪声协方差矩阵

?看一下基于Kaiser 规则降噪后的效果

kp = 0;for i = 1:4     subplot(4,3,kp+1), plot(x_orig(:,i)); axis tight;    title(['Original signal ',num2str(i)])    subplot(4,3,kp+2), plot(x(:,i)); axis tight;    title(['Observed signal ',num2str(i)])    subplot(4,3,kp+3), plot(x_den(:,i)); axis tight;    title(['Denoised signal ',num2str(i)])    kp = kp + 3;end

多元小波降噪方法 – 哥廷根数学学派的文章 – 知乎
https://zhuanlan.zhihu.com/p/558075972

代码如下

https://mianbaoduo.com/o/bread/Yp6ZlZxx

声明:本站部分文章内容及图片转载于互联 、内容不代表本站观点,如有内容涉及侵权,请您立即联系本站处理,非常感谢!

(0)
上一篇 2022年8月18日
下一篇 2022年8月18日

相关推荐