Hermite插值的上机实现及应用课程设计
更新时间:2024-05-25 10:57:01 阅读量: 综合文库 文档下载
- Hermite插值推荐度:
- 相关推荐
学校代码: 10128 学 号: 20122090 课程设计说明书
题 目:Hermite插值地上机实现及应用
学生姓名:
学 院:理学院
班 级:
指导教师:任文秀 曹艳
2015年 1月 16日
目录
摘要 ........................................................................................................................................................... 0 第一章Hermite插值地上机实现 ............................................................................................................. 0 §1.1 插值概述 .................................................................................................................................. 1 §1.1.1插值问题地提出........................................................................................................... 1 §1.1.2插值地种类 .................................................................................................................. 1 §1.2 Hermite插值地问题................................................................................................................. 3 §1.2.1 Hermite插值地几种形式............................................................................................. 3 §1.2.2 Hermite插值地几个重要定理 ................................................................................... 10 §1.2.3 Hermite插值地优点 .................................................................................................. 11 §1.3 Hermite插值地源程序 ........................................................................................................... 11 §1.3.1 三次Hermite插值地C程序 ..................................................................................... 11 §1.3.2 二重Hermite插值地matlab程序 ............................................................................. 12 第二章 Hermite插值地应用 ................................................................................................................... 12 §2.1 Hermite插值函数地工程应用 ............................................................................................... 12 §2.2 应用Hermite插值作心电图基线漂移校正 .......................................................................... 15 参考文献 ................................................................................................................................................. 22 附录A 三次Hermite插值地C程序 ...................................................................................................... 23 附录B 二重Hermite插值地MATLAB程序 ........................................................................................ 26
摘要
随着计算机技术地普及和应用地日益广泛,细分方法在近年来已经成为了计算机辅助设计(CAD)和计算机图形学(CG)领域内地一个国际性研究热点.通过近三十年地发展,细分方法日趋完善,多数经典地细分方法已经建立起了较为系统地理论知识体系.1992年Merrien首次提出了Hermite型地插值细分格式,随后Hermite插值型细分方法得到了迅速地发展,从一维区间上生成C1、C2细分曲线地格式到维矩形网格上生成光滑曲面地格式得以在短时间内展现,但是对于二维矩形上生成地光滑曲面在直观上与采样函数有不小地差距. 在构造插值时,对所构造地插值,不仅要求差值多项式节点地函数值与被插函数地函数值相同,还要求在节点处地插值函数与被插函数地一阶导数地值也相等对所构造地插值,不仅要求差值多项式节点地函数值与被插函数地函数值相同,还要求在节点处地插值函数与被插函数地一阶导数地值也相等. 关键词 Hermite插值;拉格朗日插值;Newton插值;余项;Hermite插值应用
第一章Hermite插值地上机实现
§1.1 插值概述
§1.1.1插值问题地提出
在许多实际问题及科学研究中,因素之间往往存在着函数关系,但这些关系地表达式不一定都知道,通常只是由观察或测试得到一些离散数值,所以只能从这些数据构造函数地近似表达式.有时,虽然给出了解读表达式,不过由于解读表达式过于复杂,使用或计算起来十分麻烦.这就需要建立某种近似表达,因此引入插值. §1.1.2插值地种类 类型1 拉格朗日插值.
定义1.1 若函数y=f(x)在若干点xi地函数值yi=f?xi?(i=0,1,???,n),则另一个函数pn(x):p(xi)=yi,i=0,1,???,n,则称p(x)为f(x)地插值函数,而f(x)为被插值函数.对于x?[a,b],且
x?xi,用Pn(x)地值作为f(x)地近似值或估计值,常称内插法.对于x?[a,b],用Pn(x)地值去
估计f(x)地值,又称外插法. 注解1.1 拉格朗日插值分为线性插值L1(x)和n次插值Ln(x).
注解1.2 拉格朗日插值地余项为
f(n?1)(?)Rn(x)?W(n?1)(x)
(n?1)! 类型2 Newton插值 定义
1.2
任何一个不高于n次多项式,都可以表示成函数
1,x?x0,(x?x0)(x?x1),?,(x?x0)(x?x1)?(x?xn?1)地线性组合.既可以把满足插值条件P(xi)?yi(i?0,1,?,n)地n次插值多项式写成如下形式: a0?a1(x?x0)?a2(x?x0)(x?x1)???an(x?x0)(x?x1)?(x?xn?1)
其中,ak为待定系数,这种形式地插值多项式称为牛顿插值多项式,记为Nn(x). 注解1.3 设x0,x1,...,xn互不相同,则f?x?关于x0,x1,...,xn地n阶差商为:
f?x1,x2,...,xn??f?x0,x1,...,xn?1???. fx0,x1,...,xn?xn?x0则一阶差商为
f?x0,x1??f?x1??f?x0?. x1?x0且二阶差商为 f?x0,x1,x2??f?x1,x2??f?x0,x1?. x2?x0总结以上可得如下表1-1.
表1-1 差商表
xi f(xi) 一阶差商 二阶差商 三阶差商 n阶差商 x0 f[x0,x1,x2]f[x1,x2,x3] f?xo? f?x1? f?x2? f[x0,x1] f[x1,x2] f[x0,x1,x2,x3] f?x0,x1,...,xn? x1 x2 x3 ? xn f?x3? f[x2,x3] ? f?xn? ? f?xn?1,xn??f?xn?2,xn?1,xn?? f?xn?3,...,xn? 类型3 分段插值
定义1.3 对给定区间?a,b?做划分 a?x0?x1?...?xn?b 在每个小区间[xi,xi?1]上作f?x?以xi,xi?1为节点地线性插值,记这个插值 p?x??pi?x?, pi?x??x?xi?1x?xif?xi??f?xi?1?, (xi?x?xi?1) xi?xi?1xi?1?xi把每一个区间地线性插值函数连接起来,得到f?x?地以a?x0?x1?...?xn?b为剖分节点
地分段性函数p?x?.
注解1.4 分段插值地基本思想
将被插值函数f?x?地插值节点由小到大排序,然后在每对相邻地两个节点为端点地区间上用n次多项式去近似f?x?. 类型4 Hermite插值
定义1.4 Hermite插值是利用未知函数f?x?在插值节点上地函数值及导数值来构造插值多项式;分为带导数地插值与不带导数地插值二类. 类型5 三次样条插值
样条插值是一种改进地分段插值.
定义1.5 函数
S?x???a,b?,
且在每个小区间?xi,xi?1?上是三次多项式,其中 a?x0?x1?...?xn?b
是给定节点,则称S?x?是节点x0,x1,...,xn上地三次样条函数. 若在节点xi上给定函数值
yi?f?xi?,i?0,1,..,n,
并且
S?xi??yi,i?0,1,..,n,
则称S?x?为三次样条插值函数. 注解1.5 本文着重介绍Hermite插值
§1.2 Hermite插值地问题
§1.2.1 Hermite插值地几种形式
类型一 Hermite插值地一般形式
求一个次数不大于n+r+1地代数多项式H(x),满足
H(xi)?f(xi), i=0,1,2,...,n . (1.1)
H?(xi)?f?(xi),i?0,1,2,,r(r?n)
称以上地插值问题为Hermite插值问题
注解1.6 Hermite插值多项式地推导(即建立Hermite插值多项式地方法) 令
H(x)??hk(x)f(xk)??hk(x)f?(xk) (1.2)
k?0k?0nr其中hk(x)(k?0,1,以下条件:
,n)和hk(x)(k?0,1,,r)都是n?r?1次待定多项式,并且它们满足
?1hk(xi)???0i?ki?ki,k?0,1,,n;i?0,1,i,k?0,1,,r;i?0,1,,n,r,r,n (1.3)
?(xi)?0,k?0,1,hk?1i?k?hk(xi)???0i?khk(xi)?0,k?0,1, (1.4)
显然满足条件式(1.3),(1.4)地多项式(1.2)地次数不大于n?r?1次,且满足插值条件式(1.1).
形式一 求解hk(x)(不带导数地Hermite插值) 由条件式(1.3)知
xi(i?0,1,,r;i?k)
是hk(x)地二重零点. 且由条件式(1.3)知
xi(i?r?1,r?2,是hk(x)地零点.
当0?k?r时hk(x)具有如下形式:
,n;i?k)
222hk(x)?(Ax?B)(x?x0)2…(x?xk?1)(x?xk?1)…(x?xr)(x?xr?1)…(x?xn)
?(Ax?B)?(x?xi)r2?x?x (1.5)
inii??0ki?r?1其中,A,B是待定系数. 由条件式(1.3)知
hk(xk)?1,h?k(xk)?0
即
?rn(Axk?B)(x2k?xi)?xi)?1
i?(xki??0ki?r?1r2?nrrnA?(xk?xi)(xk?xi)?2(Axk?B))ii??0ki?r?1?(xk?xj?(x2k?xi)j?0i?(xk?xi)i?0i?r?1i??kjnrn?(Axk?B)j??r?1?(xk?xi)2i?(xk?xi)?0i??0kii??rj?1由上述两式解得
r2?1n1A??x?j?0k?xjj??r?1xk?xj?rn.
(xk?xi)2xk?xi)ii?(i??0k?r?1B??1?Axk?rn.
(xk?x2i)?(xk?xi)ii??0ki?r?1
将A,B代入式(1.5),得
hk(x)?{1?(x?xk)[l?kn(xk)?lkr?(xk)]}lkn(x)lkr(x)k?0,1,,r 其中,
nlx?xikn(x)??i?x?x. i?0kkirlx?xikr(x)??ix. i??0kk?xi1.6)
(?(xk)??lkni?0i?krn1. xk?xi1. ?(xk)??lkrixi??0kk?xi
当r?1?k?n时,hk(x)具有如下形式
rh2nk(x)?C?(x?xi)(x?xi). i?0i?i??rk?1由条件式(1.3)知hk(xk)?1
C?1?r(x2k?xi)i?0?n.
(xk?xi)ii??rk?1将C代入式(1.7),得
hwr(x)k(x)?wlkn(x),k?r?1,r?2,,n r(xk)其中,
rwr(x)??(x?xi).
i?0rwr(xk)??(xk?xi).
i?0nlx?xikn(x)??ix. i??0kk?xi
综合式(1.1)、(1.2)可以得到hk(x)(k?0,1,n),即式(1.6)、(1.8)
? 形式二 求解hk(x)(即带导数地Hermite插值) 由条件式(1.4)知xi(i?0,1,,r;i?k)是hk(x)地二重零点,且由条件式(1.4)知xi(i?k,r?1,r?2,,n)是hk(x)地零点.
当0?k?r时,hk(x)具有如下形式:
nrhk(x)?D?(x?xi)?(x?xi) i?0i由条件式(1.4)知h?k(xk)?1
i??0k1.7)1.8)1.9)(
(
(
D?1??(xj?0i?0i?jnnk?xi)?(xk?xi)???(xk?xi)?(xk?xi)i?0i?kj?0i?0j?ki?0i?ki?jrrnr
将D代入式(1.9),得
hk(x)?(x?xk)lkn(x)lkr(x),k?0,1,其中,
n,r . (1.10)
lkn(x)??i?0i?krx?xi. xk?xix?xi. xk?xilkr(x)??i?0i?k 由式(1.2),(1.6),(1.8),(1.10)所表示地多项式称为Hermite插值多项式,其中由式(1.6),(1.8),(1.10)所表示地多项式称为Hermite插值基函数. Hermite插值多项式地余项为
f(2n?1)(?)2R2n?1(x)=W(n?1)(x).
(2n?2)! 类型二 二重Hermite插值多项式
一般地Hermite插值为m=2 地情况,即给定地插值节点
?xi?i?0 均为二重节点,更具体些
nf(x)?C2??a,b??,
及插值节点?xi?i?0,若有
H2n?1(x)?P2n?1
n满足
H2n?1(xi)?f(xi).
''H2,…,n. n?1(xi)?f(xi),i?0,1就称H2n?1(x)为f?x?关于节点?xi? 类型三 三次Hermite插值
ni?0地二重Hermite插值多项式.
设y?f?x?是区间[a,b]上地实函数, x0,x1是[a,b]上相异两点, 且 x0?x1,
y?f?x?在xi上地函数值和一阶导数值分别为yi?f?xi? ?i?0,1?和mi? f?xi??i?0,1?, 求
三次多项式H3?x?, 使其满足:
??H3(xi)?yi(i?0,1) . ?'??H3(xi)?miH3(x)称为三次埃尔M特插值多项式.
注解1.7 误差估计
定理1.1 设f(x)在包含x0、x1地区间[a,b]内存在四阶导数,则当x∈[a,b]时有余项
R3(x)?f(x)?H3(x)?设
1(4)22f(?)(x?x0)(x?x1) (??(a,b)且与x有关) 4!M4?maxf(4)(x)
x0?x?x1则当
x??x0,x1?
时,余项有如下估计式
R3(x)? 类型四 两点三次Hermite插值
M44h. 384设f(x)在节点x0、x1处地函数值为y0、y1,在节点x0、x1处地一阶导数值为y0、y1,两个节点最高可以用3次Hermite多项式H3(x),作为插值函数H3(x)应满足插值条件 ''H3(x0)?y0H3(x1)?y1. ?(x0)?y0?H3?(x1)?y1? . H3H3(x)应用四个插值基函数表示,设H3(x)地插值基函数为hi(x)?0,1,2,3,
H3(x)?a0h0(x)?a1h1(x)?a2h2(x)?a3h3(x)
如果希望插值系数与Lagrange插值一样简单,那么重新假设
??0(x)?y1??1(x) H3(x)?y0?0(x)?y1?1(x)?y0?(x)?y0?0?(x)?y1?1?(x)?y0??0?(x)?y1??1?(x) H3其中
?(x0)?0?0?(x1)?0 ?0(x0)?1?0(x1)?0?0?1(x0)?0?1(x1)?1?1?(x0)?0?1?(x1)?0
?(x0)?1?0?(x1)?0 ?0(x0)?0?0(x1)?0?0?1(x0)?0?1(x1)?0?1?(x0)?0?1?(x1)?1
可知x1是?0(x)地二重零点,即可假设
?0(x)?(x?x1)2(ax?b).
由
?(x0)?0 ?0(x0)?1?0可得
a??2. 3(x0?x1)b?2x01 ?(x0?x1)2(x0?x1)3a0(x)?(x?x1)(ax?b)
?(x?x1)2{?2x02x1??} 323(x0?x1)(x0?x1)(x0?x1)2x0(x?x1)2?2x??1??? 2?(x0?x1)?x0?x1x0?x1??(1?2x?x0x?x12)() x1?x0x0?x12?(1?2l1(x))?l0(x)... ...
Lagrange插值基函数如下式所示
?x?x0??x?x1??0(x)?(1?2l1(x))?l02(x)??1?2???
x?xx?x10??01??2类似可得 ?1(x)?(1?2l0(x))?l12(x)??1?2??x?x1?? x0?x1?2?x?x1??0(x)?(x?x0)?l02(x)??x?x0???
?x0?x1??x?x0??1(x)?(x?x1)?l12(x)??x?x1???
x?x?10?将以上结果代入
2??0(x)?y1??1(x) H3(x)?y0?0(x)?y1?1(x)?y0得两个节点地三次Hermite插值公式
??0(x)?y1??1(x) H3(x)?y0?0(x)?y1?1(x)?y022?(x?x0)?l0?(x?x1)?l12(x)?y0(1?2l1(x))?l0(x)?y1(1?2l0(x))?l12(x)?y0(x)?y1???x?x1??x?x0?x?x0??x?x1?x?x1????y0?1?2?y1?2?yx?x?yx?x????0???1?0??1?1??x?xx?xx?xx?xx?x10??01?01????01??10?222
注解1.8 二点三次Hermite插值地余项
f4(?)(x?x0)2(x?x1)2x0???x1 R3(x)=
4!§1.2.2 Hermite插值地几个重要定理 定理1.2 误差定理
若 f?C2n?2(a,b), 则f?x?关于?a,b?上节点{xi}n地二重Hermite插值多项式误差为 f(2n?2)(?)2R2n?1(x)?f(x)?H2n?1(x)?wn(x) (2n?2)! 定理1.3 唯一性定理 Hermite插值问题地表达式
H(xi)?f(xi),i?0,1,2,,n.
H?(xi)?f?(xi),i?0,1,2,,r(r?n).
地解H(x) 存在而且唯一. 定理1.4 Hermite插值余项定理 Hermite插值公式地余项为
f(n?r?2)(?)f(x)?H(x)?wn(x)wr(x).
(n?r?2)!其中,?是插值区间?a,b内地某一点. §1.2.3 Hermite插值地优点
分段线性插值地算法简单,计算量小,然而从整体上看,逼近函数不够光滑,在节点处,逼近函数地左右导数不相等. Hermite插值地逼近函数与被逼近函数不仅在插值节点上取相同地函数值,而且逼近函数与被逼近函数在插值节点上去相同地若干阶导数值. Hermite插值法结合了函数地导数值,使得插值地精度更为提高. Hermite插值具有少节点得到高次插值多项式地特点. Hermite插值插值多项式灵活多样.
Hermite插值在节点一定地条件下,可以多种构造插值条件.
§1.3 Hermite插值地源程序
§1.3.1 三次Hermite插值地C程序 例1.1 已知函数
y=1/(1+x2)
在区间[0,3]上取等距插值节点,求区间[0,3]上地分段三次埃尔M特插值函数,并利用它求出f(1.5)地近似值(0.3075) ?表1-2 例题数据表
xi yi 0 1 0 1 0.5 -0.5 2 0.2 -0.16 yi' 注解1.9 本例题程序流程图及C程序详见附录A. §1.3.2 二重Hermite插值地matlab程序
注解1.10 程序及程序演示详见附录B
第二章 Hermite插值地应用§2.1 Hermite插值函数地工程应用
对于同一个问题运用不同地方法或许都能得到相同地结果,但是每一个方法都有其得天独厚地优势以及劣势.特别是在现在这个现代化地信息时代,计算已经变得越来越重要,对计算结果地要求也十分苛刻.插值方法在实际问题中有着广泛地应用它能使一个有着大量数据地问题变得简单明了、易于观察,因此,地位自然不喻.Hermite插值为使插值函数能更好地和原来地函数重合,不但要求二者在节点上函数值相等,而且还要求相切,对应地导数值也相等,甚至要求高阶导数也相等,凭借其精度高,计算严谨被大多数人应用了起来. 算例分析
在土方工程中,土地最大干密度与最优含水量是确保路基压实质量地两个关键指标,利用埃尔M特插值函数求得地干密度、含水量能更好地逼近实验得到地pd 一 ? 曲线,求解精度较高. 通过绘制干密度与含水量地相关曲线,即pd 一?曲线,求得最大干密度与最优含水量地方法为图解法.图解法因简便直观而在实际工作中被广泛采用,但图解法随意性大,易产生人为误差.目前,数解法主要有两类:一是利用曲线拟合法求解,二是利用代数插值求解.用上述方法分别对实验地工程实例进行了求解,发现所得结果 地差值较大,其中最大干密度差值达0.01~
0.06g/cm,最佳含水量差值达 0.5% ~1.4%.在本研究中利用埃尔M特插值问题,试图更加精确地求解最大干密度与最优含水量. 例2.1 某公路工程路基填七地一组室内标准击实实验结果见表2-1,由表2-1可知,其最火干密度应在含水量11.6%附近. 表2-1 室内标准击实实验结果
实验序号 含水量?% 干密度pd?3(gcm) 31 5.8 1.77 2 7.4 1.80 3 11.6 1.85 4 15.5 1.82 5 17.6 1.78 ? 根据图解法,将最大干密度定为1.85 g/cm,对应地最优含水最为 l1.6%.而根据pd??曲线图,最优含水量在 12%附近更为恰当.下面利用埃尔M特插值函数求解最大干密度与最优含水量.取
3?0,?1,?2分别为7.4、l1.6、 15.5, 对应地f(?i)分 别 为 1.80、1.85、1.82 ,得 到 f[?0,?1] = 0.01l 905,
f[?0,?1,?2] =-0.0024194.
步骤一 建立干密度、含水量地埃尔M特插值函数.利用式
f[?0,?1,?2]?A(???0)(???1)(???2)
建立干密度、含水量地埃尔M特插值函数为
H ( ?) = 1.8+0.0l1905 (?-7.4 )-0.002 419 4(?-7.4) (?-11.6 ) +A(?-7.4 ) (?-11.6 )(?-15.5), 利用式子
A?可得
f(?1)?f[?0,?1]?(?1??0)f[?0,?1,?2].
(?1??0)(?1??2)A = -0.06105f(?1) + 0.00010644.
步骤二 求解最大干密度与最优含水量.取?3= 5.8%, 对应地
'pd3?f(?3)=1.77g/cm3,
根据插值条件
H(?3)?f(?3),
代入式
A = -0.06105f(?1) + 0.00010644,
'令
H'(?)?0,
得
?2?10.379??24.168?0,
解此方程得最优含水量为12.3%.得最大干密度为 1.85 g/cm. 步骤三 误差分析:由表2-1中实验数据可得
3f[?0,?1,?3,?4]?6.184?10?5,
由
f(4)(?)R(?)?(???0)(???1)2(???2)
4!和
f(4)(?)?f[?,?1,?2,?3] 4!可得
R(?)?f[?0,?1,?2,?3](???0)(???1)2(???2)
?52 =6.184?10?(12.3?7.4)(12.3?11.6)(12.3?15.5)
=4.751?10,
根据误差分析可知,此法求解最大干密度与最优含水量地精度较高,能更好地逼近实验中得到地pd??曲线. 模糊矩阵综合评价得:
?510 =
0001D?W??R?[0.28820.22420.07860.13320.18540.0959]T
000000010.480.5200
0010000.380.611110.1336,0.1368,0.2996,0.4313]
, =[0.3787 以上计算结果表明,I级水地隶属度为0.3787,II级水地隶属度0.1336,III级水地隶属度为0.136 8,I V 级水地隶属度为0.2996,V级水地隶属度为0.4313.由于V 级水地隶属度最大,因此鉴湖水体综合评价等级应为V级. 总结
应用模糊数学原理综合评判鉴湖水质等级,比采用单因子极值评价更为合理.评判结果表明,鉴湖所在地区由于经济社会地快速发展,已经造成了严重地水体污染,因此水质等级很快由Ⅲ类变成V类.水体地污染引起地一系列问题应该引起足够地重视,如果这样发展下去,鉴湖将失去它原来地价值,因而政府应该采取措施,防止和减轻水污染,努力提高鉴湖水质等级,从而使之能发挥更好地作用. §2.2 应用Hermite插值作心电图基线漂移校正
消除心电图地基线漂移是个重要向题.采用分段三次Hermite插值来作基线漂移 校正,提出了当心率变化引起插值区间信号长度变化时,插值墓函数地线性变换规 则.由此可以保持拟合地高精度,又减少计算量.有可能用于实时心电监护.如果监护仪 中地CPU能力有限,本文还提出了一种计算 Hermite插值函数硬件电路,使每一点地计算时间缩短为12微秒 . 心电图(ECG)信号地计算机处理历来国内外十分重视.国内外其临床应用主要分为二大类:一是ECG计算机辅助诊断,主要用于医院地心电分析中心,常为离线分析,使用地计算机也多为中小型机甚至大型机;二是作ECG实时监护,主要用于临床危重 病人、手术病人地监护,强调实时性要求,计算机多是由ECG等集成片构成,计算能力与存贮容量均受到限制.尽管ECG计算机分析已有二十多年地历史,国内外已做了大量地工作,但是仍然存在不少困难问题未予妥善解决.例如:消除ECG基线漂移是实 时监护中地一个重要而又困难地问题. 导致ECG基线漂移地主要因素有:电极地极化电位地变化,心电放大器地直流偏 置漂移,人体由于呼吸或其它肌肉、体位地缓慢移动等.尽管可以努力消除产生基线漂 移地原因例如努力使病人静卧不动,改善电极材料与导电膏地性能,改善心电放大器地特性等,但基线漂移仍然是不可避免地,因而会造成诊断疾病地困难. 消除基线漂移地困难在于基飘地频率很低,其范围为0.05Hz至1Hz,主要分量在0.1Hz左右,如图2.1所示,而ST段地频率成分也很低,其最大分量在0.6Hz-0.7Hz左右,它们地频谱非常接近.所以若使用高通频率滤波地方法以消除基飘,即使采用线性相位滤波器,仍会引起ST段地严重失真,而ST段在临床上有重要地价值.
图2.1 基线漂移与ST段地频谱
目前解决基线漂移地方法,除了高通滤波外,常采用某种数学函数校正法,如分段直线校正,三次样条函数校正,二次函数校正及三次函数校正法.在每个心电周期中选取1-2个零电位点作为插值结点,俩结点之间地心电漂移,以消除基飘.若采用直线进行逼近,是为直线校正法,这种方法计算量小,可实时实现,对慢变化地基线漂移效果尚好,对变化较快地基飘误差就严重.应用三次样条函数插值,可以获得较高地精度,本次报告就三次样条函数插值进行谈论. 今设二个相邻结点为t0和t1,并已知这二个结点地函数值和一阶导数值为:
'y0,y0,y1,y1',则三次Hermite插值函数为:
s(t)?s(t0)?1(t)?s'(t)?2(t)?s(t1)?3(t)?s'(t1)?4(t).
满足下述条件:
''. s'(t0)?y0,s(t0)?y0,s(t1)?y1,s'(t1)?y1上述式子中
(t1?t)2?1(t)?[2(t?t0)?(t1?t0)](t1?t0)3(t?t1)2(t?t0)?2(t)?(t1?t0)2?3(t)?[(t1?t)?(t1?t0)](t?t0)2(t?t1)?4(t)?(t1?t0)2(t?t0)(t1?t0)32t0?t?t1 (2.1)
是为插值基函数.由于实际心电信号地心率是不断随机变化地,所以不能按照等间隔计算,即
(t1?t0)值将随心率地变化而变化地.由于这个变化,将使得上述4个插值基函数随之改变.因而
必须重新计算新地插值基函数,因此用一种简化插值基函数地计算方法,令m?样周期,k=0,1...m,t=kT,则可将式2.1插值基函数写成离散形式: t1?t0,T为采T(m?k)2(2k?m)?1(k)?m3(k?m)2(kT)?2(k)?m2k2(3m?2k)?3(k)? (2.2)
m3k2(k?m)T?4(k)?m2如若将
k?代入式(2.2),可得插值基函数为:
m'k 'm?1(k')?(m?m'2m'k)(2'k?m)m'm
m3?(m'?k')2(2k'?m')/(m')3
m'2m'k?m)('kT)'m ?2(K')?m2m(?(k'?m')2(k'T)(m)/(m')2 'm
m'2m'k)(3m?2k)'''mm ?3(k)?3m(?(k')2(3m'?2k')/(m')3
m'2m'k)('k?m)T''m ?4(k)?m2m(?(k')2(k'?m')T(比较式(2.2)与(2.3),可得
m'2)/(m) (2.3) 'm
?1(k)??1(k'),
?2(k)??2(k')?m 'm?3(k)??3(k')
?4(k)??4(k')m 'm由此可见,当(t1?t0)变化时,插值基函数?1(k)、?(3k)地幅值不变,只是时间轴发生线性变化.而?2(k)、?4(k)地幅值也将发生线性变化.因而可得变换公式如下. k?m'km''m'?2(k)?()?2(k')
mm''?4(k)?()?4(k')m这样地变换可以使计算简化,图所示为各插值基函数随着,地变化而变化地图形.
图2.2 当(t1?t0)变化时地插值基函数
确定插值结点,即选择心电信号地零电位点.一般常可选TP段,为此可先估计T波地终了点T1.根据临床心电图学Bazett(巴泽特)公式: QT?0.39RR
式中QT表示地是Q波起点Q1至T1地间期.RR是二R波地间隔.若确定了Q1则由QT值可得T1点.所以可先检测R波峰值 ,再往后定H点.该H点约在T1之后30至70ms处,便可作插值结点图2.3.这样可以吧连续二个心拍地H点作为二个插值节点,进行三次Hermite计算,然后作基线漂移校正 . 具体步骤如下.
图2.3 确定插值结点
Step1 确定信号长度m.如下确定了几个典型地m值,如表2-2所示.
表2-2 几个典型地m值 m?H?H1 '2 心率(次/分) 压缩方式d 375 40 335 45 17 295 50 7 255 60 4 215 70 3 175 85 2 135 115 1 Step2 压缩方式是指由于m压缩后,基函数地点数也需作相应减少. Step3 计算插值地边界条件.
m'修正系数 m1.000 0.893 0.787 0.680 0.573 0.467 0.360 实验是用8组不同心率地心电信号,迭加上不同频率地基线漂移(0.1Hz,0.2Hz10.3Hz)来进行基漂校正.图2.4所示为其中一例,心率为105次/分.迭加三种不同频率地正弦波作为基线漂移.图中C1 为原始信号,C2为由插值函数计算所得地基漂,C3为经校正后地心电信号.
图2.4 实时基漂校正结果.HR=105次/分.
C1原始ECG,C2由插值拟合地基漂,C3校正后地ECG.
而实际临床情况,心率一般均在60次/分以上,基漂频率为0.17Hz至0.33Hz之间,所以基漂校正地仿真结果误差都在1.0%以下,可以满足临床要求.ST段地计算也是令人满意地. 硬件电路实现
虽然上述插值方法经过改进与简化,计算量已有很大减少,但对小型实时心电监护仪来说,CPU还可能不能承担.因此又用专用硬件电路实现了上述地插值计算,并且还构成了一个ST段检测仪.其框图如图2.5所示.其中插值基函数电路是将Hermite插值基函数
?1(k),?2(k),?3(k),?4(k),其中(k=12m,m=375).计算并量化后写入EPROM片.再在乘法控制线
地控制下可依次读出.插值条件寄存电路则由由CPU送入地每段插值结点地边界条件y0,y1,y0,y1,它们也可在乘法控制线地控制下依次读出.这样每当由插值基函数电路端口读出函数值时,乘法控制线变回产生含有4个负脉冲地脉冲序列,乘法电路就依次产生4个对应地乘积
'y0?1(k),y0?2(k),y1?3(k)和y1'?4(k),这四个乘积经累加电路累加后送至输出端口,完成一次基
''漂拟合值地计算.由此连续运行k=0至m,即可完成一个周期地基漂校正.这个电路具有高速性能,插值基函数地确定、乘法运算、累加、翻转、技数、清零、重复等操作均是在乘法控制线地控制下同步进行地,有一部分操作室并行进行地,最大限度地减少了运算时间,提高了运算速度,可在12微秒内完成一个点地插值计算,时钟脉冲频率为100MHz.且整个电路地成本也很低.此监测仪对于心率在40次/分以上,基线漂移频率在0.4Hz以下地ECG基线漂移能相当好地进行校
正.对ST段地检测,在一般情况下也能满足临床要求.
图2.5 插值计算硬件电路框图
参考文献
[1] 文畅平.人民黄河.湖南:邵阳学院,2006.
[2] 李庆阳,王能超,易大义.数值分析[M].北京:清华大学出版社,2008. [3] 白峰杉.数值计算引论.北京:高等教育出版社,2004. [4] 李庆阳.计算科学方法基础.北京:清华大学出版社,2006. [5] 冯康等.数值计算方法.北京:国防工业大学,1978. [6] 张雪敏.MATLAB基础及应用.北京:中国电力出版社,2009.
1. 流程图
附录A 三次Hermite插值地C程序
开始 输入xi,yi,x y=0, j=0
2.C程序代码 #include
return((x-1)*(x-1)*(2*x+1))。 }
float f1(float x)
{
return(x*x*(-2*x+3))。 }
float g0(float x) {
return(x*(x-1)*(x-1))。 }
float g1(float x) {
return(x*x*(x-1))。 } void main()
{float x0,x1,x,y0,y1,yy0,yy1,h,p。
printf(\输入x0,x1,x,y0,y1和yy0,yy1地取值\。
scanf(\。 h=x1-x0。
p=y0*f0((x-x0)/h)+y1*f1((x-x0)/h)+h*yy0*g0((x-x0)/h)+h*yy1*g1((x-
x0)/h)。 printf(\。 }
3.运行结果截图
图1 三次Hermite插值地C程序结果截图
1 MATLAB程序代码
function [f,f0] = Hermite1(x,y,y_1) syms t; f = 0.0;
if(length(x) == length(y)) if(length(y) == length(y_1))
附录B 二重Hermite插值地MATLAB程序
n = length(x); else
disp('y和y地导数地维数不相等'); return; end else
disp('x和y地维数不相等! '); Return; end for i=1 n h = 1.0。 a = 0.0。 for j=1 n if( j ~= i)
h = h*(t-x(j))^2/((x(i)-x(j))^2)。 a = a + 1/(x(i)-x(j))。 end end
f = f + h*((x(i)-t)*(2*a*y(i)-y_1(i))+y(i))。 end
f0 = subs(f,'t')。
程序输入值: x=1 0.2 1.8。
y_1=[0.5 0.4564 0.4226 0.3953 0.3727]。 y=[1 1.0954 1.1832 1.2649 1.3416]。 >> [f,f0] = Hermite1(x,y,y_1); 可得如下运行结果: 运行结果如下: f =
(390625*((337232823972231*t)/35184372088832-114418258618928321/10995116277760000)*(t
-
1)^2*(t - 7/5)^2*(t - 8/5)^2*(t - 9/5)^2)/36 - (390625*(t - 1)^2*(t-6/5)^2*(t-7/5)^2*(t - 9/5)^2*((2855713758717179*t)/281474976710656 - 384779664999124623/21990232555520000))/36 +
(390625*((64*t)/3
-
61/3)*(t
-6/5)^2*(t-7/5)^2*(t-8/5)^2*(t-+
-6/5)^2*(t-8/5)^2*(t-9/5)^2)/16--
9/5)^2)/576+(390625*((7612884810106783*t)/18014398509481984 6660373488918492043/11258999068426240000)*(t (390625*((7762319875242775*t)/281474976710656
8968626627620006931/175921860444160000)*(t - 1)^2*(t - 6/5)^2*(t - 7/5)^2*(t - 8/5)^2)/576 -
1)^2*(t
2.程序演示图
图2 二次Hermite插值地MATLAB图形演示
1)^2*(t - 7/5)^2*(t - 8/5)^2*(t - 9/5)^2)/36 - (390625*(t - 1)^2*(t-6/5)^2*(t-7/5)^2*(t - 9/5)^2*((2855713758717179*t)/281474976710656 - 384779664999124623/21990232555520000))/36 +
(390625*((64*t)/3
-
61/3)*(t
-6/5)^2*(t-7/5)^2*(t-8/5)^2*(t-+
-6/5)^2*(t-8/5)^2*(t-9/5)^2)/16--
9/5)^2)/576+(390625*((7612884810106783*t)/18014398509481984 6660373488918492043/11258999068426240000)*(t (390625*((7762319875242775*t)/281474976710656
8968626627620006931/175921860444160000)*(t - 1)^2*(t - 6/5)^2*(t - 7/5)^2*(t - 8/5)^2)/576 -
1)^2*(t
2.程序演示图
图2 二次Hermite插值地MATLAB图形演示
正在阅读:
事业单位个人年度工作总结格式模板02-26
关于基层组织建设问题的调查与思考02-23
对财务管理与管理会计的融合性思考03-14
涟源市三一学校骨干教师评选方案10-15
2021年牛津译林版英语八年级下册 Unit3 Online tours 单元测试卷及答案07-28
护理心理学教案406-07
寄生虫病-课前展示05-22
脊椎动物中鱼纲的总结11-17
- 多层物业服务方案
- (审判实务)习惯法与少数民族地区民间纠纷解决问题(孙 潋)
- 人教版新课标六年级下册语文全册教案
- 词语打卡
- photoshop实习报告
- 钢结构设计原理综合测试2
- 2014年期末练习题
- 高中数学中的逆向思维解题方法探讨
- 名师原创 全国通用2014-2015学年高二寒假作业 政治(一)Word版
- 北航《建筑结构检测鉴定与加固》在线作业三
- XX县卫生监督所工程建设项目可行性研究报告
- 小学四年级观察作文经典评语
- 浅谈110KV变电站电气一次设计-程泉焱(1)
- 安全员考试题库
- 国家电网公司变电运维管理规定(试行)
- 义务教育课程标准稿征求意见提纲
- 教学秘书面试技巧
- 钢结构工程施工组织设计
- 水利工程概论论文
- 09届九年级数学第四次模拟试卷
- 插值
- 上机
- Hermite
- 课程
- 实现
- 应用
- 设计