随便写一写,随便写一写
多元小波降噪模型为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
声明:本站部分文章内容及图片转载于互联 、内容不代表本站观点,如有内容涉及侵权,请您立即联系本站处理,非常感谢!