【20220207】【信号处理】三次样条插值原理详解 | 您所在的位置:网站首页 › 插值法需要满足什么条件 › 【20220207】【信号处理】三次样条插值原理详解 |
方程组的求解本文不做介绍。 一、三次样条插值 1. 定义三次样条插值(Cublic Spline Interpolation),简称 Spline 插值,是通过一系列样本点的光滑曲线,数学上通过求解三弯矩方程组得出曲线函数组。 (参考:三次样条插值) 2. 解决什么问题?通过采集数据,通常有两种做法:拟合或差值。拟合不要求曲线通过所有的样本点,讲究神似,即整体趋势一致;插值讲究形似,即要求曲线穿过每个样本点。插值生成的高阶曲线很容易出现龙格库塔现象,所以一般采用分段插值。三次样条插值就是分段插值的一种方式。 二、原理详解 假设在区间 [a, b] 上有 n+1 个样本点,即 [a, b] 区间被划分成 n 个区间 (1)在每个分段区间上,插值函数都是一个三次方程; (2)满足插值条件,即每个样本点都被某段插值函数穿过; (3)曲线光滑,即插值函数二阶及二阶以下导函数连续。 如果 S(x) 是 f(x) 的三次样条插值函数,则必须满足: (1)插值条件: (2)连续性条件: (3)一阶导数连续条件: (4)二阶导数连续条件: (参考:三次样条插值算法详解.ppt) 2. 三次样条方程组每个子区间内有 4 个未知数,一共有 n 个区间,所以一共有 4n 个未知数需要求解,则至少需要 4n 个约束条件。 (1)一阶导数连续 除了两个端点,所有 n-1 个内部点的一阶导数连续,即左右两个三次函数的一阶导数在当前样本点处的值相等,即满足 (2)二阶导数连续 除了两个端点,所有 n-1 个内部点的二阶导数连续,即左右两个三次函数的二阶导数在当前样本点处的值相等,即满足 (3)每个样本点处连续 a. 除了两个端点,所有 n-1 个内部点都满足 b. 两个端点分别满足第一个和最后一个三次函数方程,共有 2 个方程。 (4)边界条件 以上三个条件共有 4n-2 个限制条件了,还差 2 个条件即可求解方程参数,这两个方程我们通过边界条件得到。 有三种边界条件:自然边界、固定边界、非节点处边界。 自然边界:端点二阶导数为零,即 (参考:三次样条(cubic spline)插值) 三、和线性插值对比 (1)线性插值平面上两个点可以确定一条直线,这就是线性插值的原理。所以线性插值生成的曲线是折线,即每相邻两点之间均是直线。 缺点:曲线不够光滑,会导致函数的一阶导函数不连续。 Matlab 命令是 interp1。 (参考:MATLAB插值函数interp1) (参考:interp1) (2)三次样条插值 三次样条插值是用三次函数曲线来代替线性插值的直线,即每相邻两点之间均是表达式为 Matlab 命令是 spline。 优点:高次插值不收敛且不稳定;低次插值既收敛又稳定,但是低次插值光滑性差,如分段线性插值一阶导数不存在。总之,m 次样条函数最优。 (参考:三次样条插值法) (参考:spline) (参考:三次样条插值算法详解.ppt) (参考:Matlab数值分析实例:三次样条插值) (参考:Python实现线性插值和三次样条插值) |
CopyRight 2018-2019 实验室设备网 版权所有 |