资源描述:
《matlab数据平滑程序》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、Matlab数据平滑程序一、matlab自带平滑函数clear,clctic,t=linspace(0,2*pi,500)';%产生一个从0到2*pi的向量,长度500y=100*sin(t);%产生正弦波信号%产生500行1列的服从N(0,15*15)分布的随机数,作为噪声信号noise=normrnd(0,15,500,1);y=y+noise;%将噪声信号加入正弦波信号figure;%新建一个图形窗口plot(t,y);%绘制加噪波形图xlabel('t');%为X轴加标签ylabel('y=sin(t)+噪声');%为Y轴加标签yy
2、1=smooth(y,50);%利用移动平均法对y做平滑处理figure;%新建一个图形窗口plot(t,y,'k:');%绘制加噪波形图holdon;plot(t,yy1,'k','linewidth',3);%绘制平滑后波形图xlabel('t');ylabel('moving');legend('加噪波形','平滑后波形');yy2=smooth(y,50,'lowess');%利用lowess方法y做平滑处理figure;plot(t,y,'k');plot(t,y,'k:');holdon;plot(t,yy2,'k','line
3、width',3);xlabel('t');ylabel('lowess方法平滑后得到的值');legend('加噪波形','平滑后波形');yy3=smooth(y,50,'rlowess');%利用rlowess方法y做平滑处理figure;plot(t,y,'k:');holdon;plot(t,yy3,'k','linewidth',3);xlabel('t');ylabel('rlowess');legend('加噪波形','平滑后波形');yy4=smooth(y,50,'loess');%利用loess方法y做平滑处理figu
4、re;plot(t,y,'k:');holdon;plot(t,yy4,'k','linewidth',3);xlabel('t');ylabel('loess');legend('加噪波形','平滑后波形');yy5=smooth(y,50,'sgolay',3);%利用sgolay方法y做平滑处理figure;plot(t,y,'k:');holdon;plot(t,yy5,'k','linewidth',3);xlabel('t');ylabel('sgolay');legend('加噪波形','平滑后波形');toc他们依次平滑后生
5、成的曲线二、七点平滑法的matlab数据平滑clear,clctic,t=linspace(0,2*pi,500)';y=100*sin(t);noise=normrnd(0,15,500,1);y=y+noise;figure;plot(t,y,'k:');holdon;forj=0:10000y1(1)=(39.0*y(1)+8.0*y(2)-4.0*y(3)-4.0*y(4)+1.0*y(5)+4*y(6)-2*y(7))/42.0;y1(2)=(8.0*y(2)+19.0*y(3)+16.0*y(4)+6.0*y(5)+4.0*y(
6、6)-7*y(7)+4*y(8))/42.0;y1(3)=(-4.0*y(3)+16.0*y(4)+19.0*y(5)+12.0*y(6)+2.0*y(7)-4*y(8)+1*y(9))/42.0;fori=4:497y1(i)=(-2*(y(i-3)+y(i+3))+3.0*(y(i-2)+1*y(i+2))+6.0*(y(i-1)+1*y(i+1))+7*y(i))/21.0;endy1(498)=(-4.0*y(498)+16.0*y(497)+19.0*y(496)+12.0*y(495)+2.0*y(494)-4*y(493)+1
7、*y(492))/42.0;y1(499)=(8.0*y(499)+19.0*y(498)+16.0*y(497)+6.0*y(496)+4.0*y(495)-7*y(494)+4*y(493))/42.0;y1(500)=(39.0*y(500)+8.0*y(499)-4.0*y(498)-4.0*y(497)+1.0*y(496)+4*y(495)-2*y(494))/42.0;y=y1;endplot(t,y1,'k','linewidth',3);title('七点迭代平滑法图片')xlabel('t')ylabel('平滑后计数'
8、)gridtoc