数据导入到MATLAB之后,通常需要对数据进行一些预处理,例如平滑处理(或去噪)、标准化变换和极差归一化变换等。
数据的平滑处理
在对时间序列进行统计分析时,往往需要对数据进行平滑处理。主要工具有smooth函数、smoothts函数和medfilt1函数。
MATLAB曲线拟合工具箱中提供了smooth函数,用来对数据进行平滑处理,其调用格式如下:
yy=smooth(y)
利用移动平均滤波器对列向量y进行平滑处理,返回与y登场的列向量yy。移动平均滤波器的默认窗宽为5,yy元素的计算方法如下:
yy(1)=y(1);
yy(2)=(y(1)+y(2)+y(3))/3
yy(3)=(y(1)+y(2)+y(3)+y(4)+y(5))/5;
yy(4)=(y(2)+y(3)+y(4)+y(5)+y(6))/5;
yy(5)=(y(3)+y(4)+y(5)+y(6)+y(7))/5;
...
yy=smooth(y,span) %用span参数制定移动平均滤波器的窗宽,span为奇数
yy=smooth(y,method) %用method参数指定平滑数据的方法
%‘moving’,移动平均法
举例:产生一列正弦波信号,加入噪声序号,然后调用smooth函数对加入噪声的正弦波进行滤波(平滑处理)。
t=linspace(0,2*pi,500) %产生一个从0到2pi的向量,长度为500
y=100*sin(t) %产生