请问如何在matlab中对信号进行去噪操作。最好用函数的形式,方便其他程序调用

如题所述

去噪有很多种方法,现在小波去噪最为常用,在matlab中有自带的函数进行小波去噪,简单易行。最常用且简单的是阈值去噪,用函数ddencmp()生成信号的默认阈值,然后利用函数wdencmp()进行去噪。如:
%对含噪信号s进行3层小波分解
[c,l]=wavedec(s,3,'db1'); %s为含噪信号,3为小波分解层数,db1为采用的小波基

%获取信号默认值
[thr,sorh,keepapp]=ddencmp('den','wv',s);
%参数den代表去噪,wv代表小波,s代表含有噪声的信号

%实现去噪过程
s2=wdencmp('gbl',c,l,'db1',3,thr,sorh,keepapp);
%参数gbl表示采用全局去噪
温馨提示:答案为网友推荐,仅供参考
第1个回答  2012-07-10
matlab 只是一个编程工具,像c,c++,Java,等,去噪算法是根据噪声的类型,图像的类型进行设计的,不是万能的,现在对自然图像去噪的两大经典算法:DL:KSVD, BM:BM3D
相似回答