Matlab学习【6】数据插值 & 曲线拟合(精)

一、插值运算

一般地,从各种试验得来的数据总是有一定的数量,而利用插值技术能够从有限的数据中获取系统整体的状态,因此,数据插值在各行各业,特别是信号处理领域内有着广泛的应用。

MATLAB提供了常用的各种数据插值计算的函数——
Alt
注:较常用的就是进行基本插值的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看不懂了…

二、曲线拟合

曲线拟合需要从一些离散的数据中推导出两者之间的数学解析关系,而数据插值是通过原始数据计算一些新的离散数据点
Alt
打印出原始数据图——
Alt
Alt
Alt
Alt
Alt
除了多项式以外,还可以猜测原始数据的多项式是由指数函数组成的
Alt
于是,为了求得系数,可以在MATLAB的命令行中键入下面的指令:

X = [ones(size(t)) exp(-t) t.*exp(-t)]
A = X\y

这样得到的多项式应该为:
Alt
Alt
Alt
对比上面两个例子可以看出——在两次的曲线拟合结果中,利用指数函数拟合的结果比较好。故选择指数函数的拟合结果!

此外,还有一种曲线拟合的方法是多项式拟合
在MATLAB中,进行多项式拟合主要使用两个函数:polyfit和polyval。

polyfit函数主要用来进行拟合计算,它的基本语法为

p = polyfit(x,y,n)
%其中,x和y为参与曲线拟合计算的原始数据,n为进行拟合计算的多项式次数,函数的返回值是多项式的系数,也就是说,函数的运算结果为多项式的系数向量。

Alt

发布了9 篇原创文章 · 获赞 6 · 访问量 2102

猜你喜欢

转载自blog.csdn.net/RickieLim/article/details/104304997