马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?我要加入
x
例子原型来自《matlab7.0从入门到精通》 求是科技编著。对其例子略作删改,正弦信号中高斯白噪声的滤除、信号直流成分和线性成分的去除(使用detrend函数,记得论坛上有去均值和趋势项的程序。二者十分相似)。拿来和大家分享:@) ,同时希望大家都能把自己感觉不多的例子和笔记拿出来分享。共同学习,一起进步!
clear
b=ones(1,5)./5;%均值模板
t=0:0.1:10;
x=40*sin(t)+6*randn(size(t));%正弦加高斯白噪声
y=2*t+0.5*randn(size(t));%带线性成分的随机信号
z=3+0.5*randn(size(t));%带直流成分的随机信号
X=filter(b,1,x);
X1=medfilt1(x,10);
Y=detrend(y);%去除线性成分
Z=detrend(z,'constant');%去除直流成分
a=get(0);
figure('position',a.ScreenSize);%figure('position',a.MonitorPositions);
%最大化窗口,便于显示
hold on;
subplot(311),plot(t,x,t,X,'r.',t,X1,'g*')
axis([0 10 -60 60]);
legend('原始数据','均值滤波','一维中值滤波','Location','best');
title('高斯噪声的滤除效果');
subplot(312),plot(t,y,t,Y,'r.');
legend('原始数据','去除线性成分后','Location','best');
title('使用detrend去除线性成分')
subplot(313),plot(t,z,t,Z,'k-');
legend('原始数据','去除直流成分后','Location','best');
title('使用detrend去除直流成分') |