一、插值运算
一般地,从各种试验得来的数据总是有一定的数量,而利用插值技术能够从有限的数据中获取系统整体的状态,因此,数据插值在各行各业,特别是信号处理领域内有着广泛的应用。
MATLAB提供了常用的各种数据插值计算的函数——
注:较常用的就是进行基本插值的interp系列函数。其中interp1和interp1q函数比较起来,后者在处理X为单调递增的向量,Y为列向量或者行数同X向量长度的矩阵进行插值计算的时候,速度较快,而且仅能进行线性插值。
★ interp1函数一般的用法为
yi = interp1(x, y, xi, method)
%其中:x和y为原始数据。xi为需要计算的插值点。
method可以为插值计算指定相应的算法,为字符串类型,其取值可以为nearest、linear、spline、cubic、pchip、v5cubic。
在interp系列函数中,method参数的几种不同取值分别对应了不同的插值计算方法。例如linear为线性插值算法,它也是系统默认的插值算法,而spline为三次样条插值算法。
%具体操作上网自学,这里ppt看不懂了…
二、曲线拟合
曲线拟合需要从一些离散的数据中推导出两者之间的数学解析关系,而数据插值是通过原始数据计算一些新的离散数据点。
打印出原始数据图——
除了多项式以外,还可以猜测原始数据的多项式是由指数函数组成的
于是,为了求得系数,可以在MATLAB的命令行中键入下面的指令:
X = [ones(size(t)) exp(-t) t.*exp(-t)]
A = X\y
这样得到的多项式应该为:
对比上面两个例子可以看出——在两次的曲线拟合结果中,利用指数函数拟合的结果比较好。故选择指数函数的拟合结果!
此外,还有一种曲线拟合的方法是多项式拟合。
在MATLAB中,进行多项式拟合主要使用两个函数:polyfit和polyval。
polyfit函数主要用来进行拟合计算,它的基本语法为
p = polyfit(x,y,n)
%其中,x和y为参与曲线拟合计算的原始数据,n为进行拟合计算的多项式次数,函数的返回值是多项式的系数,也就是说,函数的运算结果为多项式的系数向量。
|
请发表评论