《matlab大数据平滑程序.doc》由会员分享,可在线阅读,更多相关《matlab大数据平滑程序.doc(9页珍藏版)》请在三一办公上搜索。
1、Matlab 数据平滑程序一、matlab自带平滑函数clear,clctic,t=linspace(0,2*pi,500);%产生一个从0到2*pi的向量,长度500y=100*sin(t);%产生正弦波信号%产生500行1列的服从N0,15*15分布的随机数,作为噪声信号noise=normrnd(0,15,500,1);y=y+noise;%将噪声信号参加正弦波信号figure;%新建一个图形窗口plot(t,y);%绘制加噪波形图xlabel(t);%为X轴加标签ylabel(y=sin(t)+噪声);%为Y轴加标签 yy1=smooth(y,50);%利用移动平均法对y做平滑处理fi
2、gure;%新建一个图形窗口plot(t,y,k:);%绘制加噪波形图hold on;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:);hold on;plot(t,yy2,k,linewidth,3);xlabel(t);ylabel(lowess方法平滑后得到的值);legend(加噪波形,平滑后波形);yy3=smooth(y,50,rl
3、owess);%利用rlowess方法y做平滑处理figure; plot(t,y,k:);hold on; plot(t,yy3,k,linewidth,3);xlabel(t); ylabel(rlowess); legend(加噪波形,平滑后波形); yy4=smooth(y,50,loess);%利用loess方法y做平滑处理figure;plot(t,y,k:);hold on;plot(t,yy4,k,linewidth,3);xlabel(t);ylabel(loess);legend(加噪波形,平滑后波形); yy5=smooth(y,50,sgolay,3);%利用sgola
4、y方法y做平滑处理figure;plot(t,y,k:);hold on;plot(t,yy5,k,linewidth,3); xlabel(t); ylabel(sgolay);legend(加噪波形,平滑后波形);toc他们依次平滑后生成的曲线二、七点平滑法的matlab数据平滑clear,clc tic,t=linspace(0,2*pi,500);y=100*sin(t);noise=normrnd(0,15,500,1);y=y+noise;figure;plot(t,y,k:);hold on;for j=0:10000 y1(1)=(39.0*y(1)+8.0*y(2)-4.0*
5、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)-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; for i=4:497 y1(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; end y1(498)=(-4
6、.0*y(498)+16.0*y(497)+19.0*y(496)+12.0*y(495)+2.0*y(494)-4*y(493)+1*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(平滑后计数) grid toc