matlab学习之降噪平滑算法

Posted qiangges2017

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了matlab学习之降噪平滑算法相关的知识,希望对你有一定的参考价值。

平滑降噪测试,代码如下

% 平滑降噪
% FFT变换和小波变换
clc
clf
clear
length_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学习之降噪平滑算法的主要内容,如果未能解决你的问题,请参考以下文章

数字信号去噪基于matlab粒子群算法优化VMD分解分量选择数字信号降噪含Matlab源码 1979期

音频降噪算法 附完整C代码

机器学习之Matlab实现贝叶斯分类器

机器学习之反向传播算法

蚁群算法---matlab代码

图像去噪基于matlab PM模型图像降噪含Matlab源码 2107期