首页 > 代码库 > matlab学习之降噪平滑算法
matlab学习之降噪平滑算法
平滑降噪测试,代码如下
% 平滑降噪% FFT变换和小波变换clcclfclearlength_of_sig=128;x=linspace(0,2*pi,length_of_sig);% signal=5*sin(x)+2*sin(5*x)+randn(x);书上的这个是错的,随机数里的参数要求是整数raw=5*sin(x)+2*sin(5*x);signal=5*sin(x)+2*sin(5*x)+randn(1,length_of_sig);jiequ=16;transf=fft(signal);filter_transf(1:jiequ)=transf(1:jiequ);filter_transf(length_of_sig-jiequ:length_of_sig)=transf(length_of_sig-jiequ:length_of_sig);filter_signal=ifft(filter_transf);% before_hist=real(transf);% after_hist=hist(before_hist);% after_hist=histogram(before_hist);[xd1,cxd1,lxd1] = wden(signal,‘sqtwolog‘,‘h‘,‘sln‘,3,‘db3‘);[xd2,cxd2,lxd2] = wden(signal,‘sqtwolog‘,‘s‘,‘one‘,2,‘db3‘);plot(x,signal,‘k--‘)hold on;% plot(x,raw,‘r‘)‘无噪声信号‘,plot(x,filter_signal,‘b‘)plot(x,xd1); plot(x,xd2); legend(‘无噪声信号+噪声‘,‘FFT恢复信号‘,... ‘小波1恢复信号‘,‘小波2恢复信号‘)% 从结果看来小波2和FFT效果都不错。
参考:
1、matlab教程,例1.6 傅里叶变换与信号分析,之后发现改教程是基于matlab5.2的。
2、七中滤波方法测试matlab实现(转)
matlab学习之降噪平滑算法
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。