首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >三次样条插值在MATLAB中的应用

三次样条插值在MATLAB中的应用
EN

Stack Overflow用户
提问于 2011-10-27 12:37:19
回答 1查看 3.3K关注 0票数 1

我使用MATLAB中的interp1函数对信号中的一些缺失数据进行插值,它的工作原理就像一种魅力。但是,我想知道这个函数是如何工作的。

我检查了函数interp1的代码,它使用函数spline。函数spline的代码非常难理解,所以我搜索了它,维基百科对它进行了搜索,我(通常)知道它是如何工作的,自由度,以及函数如何使用多项式(通常是三阶)来生成曲线中缺失的部分。

如果我有一个由20个数字组成的数组,而8-12将丢失(零):

4 5 2 3 5 4 3 0 0 0 4 2 4 3

这个函数是如何确定哪些数字合适的呢?它是否是一个特定宽度的窗口,在数据上移动,比如处理1-5、2-6、3-7等等?还是使用丢失数据的左边和右边的2或3个数字?

我不是在寻找数学解释,我只是想知道它是如何发挥它的魔力的:)

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-10-27 15:28:51

我仍然不知道这是否会回答你的问题,但我会尽力看看。

我将尽量清楚易懂,所以为了简单起见,我可能会故意把一些(也许是重要的)细节搁置一边。

有时人们不知道函数的解析表达式,就知道函数在一组点上的价值。在一个不在集合的点上知道函数的值的任务称为内插/外推。插值的基本原理是从它在最近邻处的值计算函数在期望点处的值。

你能想到的最简单的方法是线性插值。给定点上未知函数的值是最近相邻值的距离加权平均值。这仅仅意味着,如果兴趣点在A点的距离1,与点B的距离9,则此时的函数值为10 %B和90 %A,这相当于在每个点之间画直线,其中你知道函数的值。

这种方法的问题在于它产生了函数的不连续估计。当对描述自然现象的函数建模时,这是很烦人的,因为这些函数通常是连续的。

在其它插值方法中,三次样条插值可以解决这一问题。原理是相同的,除了在每一点之间有一条线外,你有一个三次多项式。对多项式的一些约束使得多项式具有唯一性:即它的第一和第二导数必须与相邻多项式连续。这保证了插值函数的“光滑性”。

因此,对我来说,三次样条插值的“魔力”来自于“光滑性”的假设,即这种方法可以正确地插值描述自然现象的函数。

如果这个答案没有用或者过于简单化,我会删除它。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7915921

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档