一种基于心音认证的Windows登入认证系统方法与流程

文档序号:13005348阅读:198来源:国知局
一种基于心音认证的Windows登入认证系统方法与流程

本发明涉及一种登入认证方法,涉及了一种心音认证的windows登入认证系统方法。



背景技术:

随着科技的发展,逐渐进入全球网络信息时代,电子商务和网上购物等也在不断壮大。目前,绝大部分身份认证技术还是个人密码,这种安全技术的安全性和可靠性比较低,容易被他人窃取,不能满足某些隐私信息高安全性和可靠性的需求。相比之下,生物特征身份认证技术利用了人体固有的生物或行为特征,不易被仿造,更安全,也更可靠。目前生物认证技术已经走进了我们的生活,其中最为人们所熟知的就是指纹识别技术,这项技术已经广泛的运用于手机认证,移动终端支付等方面。部分对信息保密性有更高需求的个人和机构也有使用虹膜,语音,人脸识别等生物特征作为识别工具。相比于传统的密码认证,生物特征身份识别认证技术利用了人体固有的生物或行为特征,比较不易被仿造,更安全也更可靠。

那什么样的生物特征才能作为识别工具呢?需要具有以下几个特点:

(1)随身性:生物特征是人体固有的特征,与人体是唯一绑定的,具有随身性。

(2)安全性:人体特征本身就是个人身份的最好证明,满足更高的安全需求。

(3)唯一性:每个人拥有的生物特征各不相同。

(4)稳定性:生物特征如指纹、虹膜等人体特征不会随时间等条件的变化而变化。

(5)广泛性:每个人都具有这种特征。

(6)方便性:生物识别技术不需记忆密码与携带使用特殊工具(如钥匙),不会遗失。

(7)可采集性:选择的生物特征易于测量。

(8)可接受性:使用者对所选择的个人生物特征及其应用愿意接受。

本方案所选择的心跳声音信号就是一个满足条件的生物特征,相比于以上那些为人所熟知的识别工具,心跳声音还具有活体认证这一巨大优势,即心音只能从活的用户身上采集得到,最大限度的保护了个人信息的安全。同时因为心音具有较大的获得难度,相比于指纹,心音信号几乎不可能在用户不知情的情况下取得,也充分保障了安全。但心音的获得和处理的难度是一把双刃剑,在具有较高安全性的同时,也为心音认证使用的普及和推广带来了阻碍。相比于其他认证方式,国内外目前还没有成型的心音认证产品出现。



技术实现要素:

本发明旨在提供一种基于心音认证的windows登入认证系统方法,相比现有主流的指纹、面部等身份识别系统,该技术方案的主要目标是提供更加安全,更加难以获得与复制的身份认证,可以对某些重要隐私提供更保险的防范。

为了实现上述目的,本发明的技术方案如下,一种基于心音认证的windows登入认证系统的方法,所述方法包括以下步骤:

(1)利用耳机来提取心音信号;

(2)心音信号的处理阶段:

(3)vq算法和dtw算法相结合的认证方法;

(4)通过winform登录系统,完成对pc的登录认证。

作为本发明的一种改进,所述步骤(1)利用耳机来提取心音信号具体如下,需要将入耳式耳机插入到电脑的麦克风输入端。

作为本发明的一种改进,所述步骤(2)心音信号的处理阶段具体如下:(21)心音信号预处理和(22)心音信号提取mfcc系数作为特征值。

作为本发明的一种改进,所述(21)心音信号预处理具体如下:

(211)小波阈值去噪;

受人体呼吸等因素的影响,心音的收缩期和舒张期通常存在明显的杂音,这些杂音会影响心音的身份识别中对心音所属人的判断,并且这些杂音会严重影响心音包络的提取及正确的s1、s2分段,需要通过小波降噪来去除这些噪音,保留心音的第一心音和第二心音。

利用小波阈值去噪能够明显的去除噪音。步骤如下:

(211-1)对含噪心音f(k)做小波变换,得到一组小波系数ωj,k;

(211-2)通过对ωj,k做阈值处理得到估计小波系数

(211-3)利用进行小波重构,得到估计信号即为去噪后的信号。

(212)预加重;

预加重公式如下:

s2(n)=s(n)-a×s(n-1)

(213)心音分段;

进行心音分段的目的是确定心音的四个部分s1、s2、s3、s4的位置和基本边界,从而准确的确定第一心音和第二心音的位置,具体如下:

(213-1)确定高门限t1,其取值保证检测出幅度较大的有用信号,同时去除幅度较小的噪声和杂音;

(213-2)确定低门限t2,其值取决于噪声;

(213-3)对整体信号求希尔伯特变换并求解其自相关函数,求解主极大与次级大之间的距离,该距离为心音信号周期t。

(213-4)在整体信号上随机寻找大于t1的点(o点)

(213-5)取o点前后距离t/2的点截取片段,该片段为单位心音片段。

(213-6)在该片段上从o点前往后搜索,从大于t1(a点)到小于t2(b点),为心音段。

(213-7)从a点向前搜索,到小于t2结束(c点),c、b即为有效心音的起始点。

(213-8)暂时认为这些有效的心音段为s1、s2。

但由此得到的s1、s2可能并非真实,由于s1、s2分裂,或出现较大(大于t1)的噪声,分段将不够准确。可以通过以下方式来消除这种不准确:

(213-9)统计正常心音中s1、s2最小间隔,确定阈值min;

(213-10)当两心音段间隔小于min且其最大能量相近时认为其分裂,进行合并;

(213-11)如果间隔小于min且其中能量远远大于另一个时,认为其为杂音,去除小能量段;

经此处理,可认为得到心音段为s1、s2。

(214)时域分帧加窗

得到s1、s2的分段点后,需要通过时域加窗将得到片段截取出来,为后面数据融合、特征参数提取提供样本,加窗基本思想是利用窗函数w(n)的滑动把非平稳信号截取为一个个小时段,每个小时段为一帧,并假设每个小时段都是平稳的,常见的窗函数如下所示:

a.矩形窗

b.汉明窗

c.汉宁窗

其中,矩形窗频谱平滑性较好,系统在时域端点检测时采用矩形窗函数;汉明窗低通平滑性较好,频谱泄露较少,系统在短诗频域分析处理时多采用汉明窗函数。

综合上述考虑,并根据心音的特性,我们选择汉明窗对心音信号进行加窗。

(215)数据融合和帧化信号。

对单路心音信号多周期段的数据层融合,由于心音信号具有节律性,且各周期的波形还有一定程度的随机变异,因此将它近似作为周期性信号来处理,既保留少许随机变异的波形,又从中挖掘出更多有用信息。

对周期心音信号st(i=1,2,…,m),(每一个st之间存在细小差异),心音信号是一个低频窄带信号,有用信息主要包含在低频成分中。所以可以对sti进行等长度分层。比如用wpt进行n层变换,可获得一个低频窄带信号il和n个高频窄带信号ijh(j=1,…,n)。然后对各周期分解的所有窄带信号取加权平均。

低频窄带信号的权重β1为1,高频窄带信号的权重βj2为1/j。最后用提取的新的高频信息与低频信息进行小波逆变换合成一个复合的周期心音信号xs,可实现心音信号的数据层融合。关键之处是准确确定一个周期心音信号的起点和终点,要保证它们的s1、s2段的中心波峰及两边1~3个关键波峰处是尽可能重叠的。如果直接在一长段心音信号中找最大值,可能找到的是噪声点。因为噪声不能够维持足够长的时间,我们通过设定短时能量门限值有效地解决了这个问题。

作为本发明的一种改进:所述步骤(22)心音信号提取mfcc系数作为特征值具体如下,

对得到的s1、s2信号提取mel倒频谱系数mfcc其中包含以下过程:

(221)快速傅里叶变换(fft):信号在频域上的变化更能看出信号的特征,所以通常将时域上的信号转换成频域能量来分析。

(222)加三角带通滤波器:将能量频谱乘以一组24个三角带通滤波器,求得每一个滤波器输出的对数能量,共24个。这24个三角带通滤波器在mel频率上是均匀分布的,一般频率f和梅尔频率的对应关系式如下:

mel(f)=2595×lg(1+f/700)

或者是:

mel(f)=1125×in(1+f/700)

定义一个有m=24个三角滤波器的滤波器组,中心频率为f(m),m=1,2,…,m。各f(m)之间的间隔随着m值的增大而增大,

三角滤波器的频率响应定义为:

再把每个三角带通滤波器归一化,即用三角带通滤波器h(m)的每一点除以它的最大值;

(223)经过离散余弦变换得到mfcc:

(224)动态差分参数的提取mel倒谱参数mfcc反映了语音信号的静态特性,语音信号的动态特性可以用这些静态特征差分来描述,实验证明:把动、静态特征结合起来能有效提高系统的识别性能,差分参数的计算可以采用下面的公式:

式中,d(n)表示第n个一阶差分;c(n)表示第n个倒谱系数m表示倒谱系数的阶数;k表示一阶导数的时间差,可取1或2。

作为本发明的一种改进,所述步骤(3)vq算法和dtw算法相结合的认证方法具体如下,将之前大量测试得到的vq与dtw识别的正确率归一化后作为识别权值,分别记为α,β,具体如下:

(31)首先输入模板心音进行vq码本训练,得到训练码本;

(32)再次随机截取一段模板心音,求解出其与训练码本之间的欧氏距离,记为a1,同时对该模板心音片段求解出其dtw值,记为b1;

(33)输入待测试样本,求解出其与vq训练码本之间的欧氏距离,记为a2,同时求解出其的dtw值,记为b2;

(34)分别对a1、a2以及b1、b2做归一化,归一化后的值记为a1,a2以及b1,b2;

(35)计算出判决阈值c1=a1×α+b1×β,计算出测试值c2=a2×α+b2×β;

(36)进行判决,若c1<c2则判断为认证失败,若c1>=c2则判断为认证成功。

作为本发明的一种改进,所述步骤(4)通过winform登录系统,完成对pc的登录认证具体如下,通过winform登录系统,完成对pc的登录认证,登录系统是基于c#编程的winform来实现其功能,具体实现如下:

(41)登录界面;

登录界面,在输入框输入用户名,点击“登录”按键后通过程序访问数据库,查找用户名是否存在,若存在则跳出对话框提示进入下一步;不存在则提示“用户名不存在”;

(42)采集、认证界面;

通过用户名验证后跳出对话框,提示戴上耳机,戴上耳机后点击“采集心音”开启录音线程,调用microsoft.directx.directsound和microsoft.dirextx接口进行录音,15秒后结束录音,并通过输出流写入到d盘的文件夹heartsound中;由于录音时间长度是确定的,所以可通过progressbar控件将录音的进度实时的显示给用户;

录音结束后开启一个新线程进行心音识别,在线程中调用由matlab生成的动态链接库,用其中的函数进行心音识别;由于心音识别花费时间较长且无法准确进度衡量,故采用圈型加载控件向用户显示其运行状态;

(43)认证结果显示界面,认证完成后根据返回的结果提示是否通过认证。

相对于现有技术,本发明有益效果如下,1)该方案选择心音作为识别工具,心音信号是一种正常的生理信号,因具有独特性、普遍性、稳定性、声源隐藏在人体内和心脏结构复杂很难被复制等特点,使其成为一种高安全性的生物特征。同时其具有独特的活体认证特性,使其成为近年来生物认证技术的热点,拥有广阔的发展前景;2)使用耳机采集人的心音,利用扬声器与麦克风电学原理相同,拾音与放音的过程可逆这一性质,同时利用耳腔共振对心音的放大作用,创造性的采取了耳机这一常见的音频播放设备来采集心跳声音。与通常使用的采集的电子听诊器相比,耳机降低而心音认证的使用门槛,更利于未来心音的普及和发展;3)心音信号的预处理:从耳机中采集的到的声音信号并不全是心跳声音,还存在呼吸,人的移动,皮肤的摩擦,环境噪音等干扰我们的杂音。这些杂音会影响心音的身份识别中对心音所属人的判断。并且会严重影响心音包络的提取及正确的s1、s2分段。所以得到心音后,首先要进行处理的就是去噪。为了尽可能的去除噪音,保留所需的心音成分,小波阈值去噪对噪声的去除效果比较明显,因而选择这一方式对得到的心音信号作处理。因为心音信号的频率集中在30~300hz,信号再通过一个带通滤波器,以取得更好的去噪效果。从耳机中得到的心音在低频处有衰减。所以在处理心音之前要对去噪后心音的低频部分加以提升,也就是对心音进行预加重处理。预加重的目的是提高信噪比,得到比较平坦的频谱,以提高认证的准确性。心音信号是一种时变信号,其能量随时间变化而变化。心音信号的信息主要分布在第一心音(s1)和第二心音(s2)中,这是提取心音识别参数的主要部分。我们选择双门限法对信号进行分段,找到s1、s2的端点,以便对其进行截取和分析。心音信号具有时变特性,而且为非平稳信号,因此无法通过直接求其变换,得到它的频域特性。在此借鉴语音信号处理中的做法,对心音信号使用短时傅里叶变换(stft)的方法,利用窗口函数w(n)在时域心音信号上滑动,将心音截取为一个个小时段,每个小时段作为一帧,可近似认为在一帧中信号都是平稳的,这样便可以对整段心音信号进行分析。对单路心音信号多周期段的数据层融合。由于心音信号具有周期重复的节律性,且各周期的波形还有一定程度的随机变异,因此将它近似作为周期性信号来处理,既保留从个体表现出的少许随机变异的波形,又从中挖掘出更多有用信息。该方案使用了小波变换的方法进行对心音的降噪;通过耳机采集得到的心音信号质量不如电子听诊器采集得到的,所以我们在对心音的降噪方面做了更多的努力。最终选择利用小波阈值去噪的方法,该方法对心音去除效果非常明显。也是近年来比较多的被使用和创新的心音去噪方法。然后将去噪后信号通过30~300hz的带通滤波器,以优化去噪效果;4)对心音信号进行数据融合,为了提高心音信号的质量,从中解读出更多有效信息,我们选择对其进行单路信号的多周期数据融合,以取得更明显的特征,提高认证可靠性;5))心音信号的特征值提取:选用mfcc来提取心音的提特征参数。首先对预处理后的心音信号进行快速傅里叶变换(fft),将时域上的信号转换成频域能量来分析。然后加三角带通滤波器,求出每一个滤波器输出的对数能量。最后通过离散余弦变换得到mfcc。通过动态差分参数的提取,与mfcc反映出的静态特性结合得到更好的识别效果;6)采用一种基于vq与dtw的混合识别方法进行认证,对于不同的测试样本,vq与dtw对其的识别效果不同,对于有些测试样本采用vq识别效果好,有些样本采用dtw的效果较好,为了补偿以上因采取识别方法不同而带来的识别偏差,我们采用了一种基于vq与dtw的混合识别方法,将之前大量测试得到的vq与dtw识别的正确率归一化后作为识别权值,已加权后的数据作为认证依据,大大提高了认证正确率。

附图说明

图1是本发明的系统架构图;

图2是心音信号的采集原理图;

图3是心音信号的预处理算法流程图;

图4是心音信号的特征值提取算法流程图;

图5是心音信号的认证算法原理图;

图6是windows登入原理图。

具体实施方式

以下将结合附图,对本发明的技术方案进行详细说明。

如图1所示,一种基于心音认证的windows登入认证系统的方法,所述方法包括以下步骤:

(1)利用耳机来提取心音信号;

(2)心音信号的处理阶段:

(3)vq算法和dtw算法相结合的认证方法;

(4)通过winform登录系统,完成对pc的登录认证。

首先通过准备项目阶段获取到未经处理的心音信号,该信号经过心音信号处理阶段得到特征值,该特征值与模板特征值通过心音信号认证获取结果。最后再由系统判别是否是本人决定是否允许登录。

下面将分别对四阶段进行详细说明。

准备阶段,利用耳机来提取心音信号,即心音信号的采集,利用相似的电学特性,我们将耳机逆用作麦克风采集心音信号,原理如图2。值得注意的是,虽然耳机能够采集到较为清晰的心音信号,但信号质量肯定不如由听诊器直接贴于胸前采集得到的信号。为了弥补这一缺陷,在对耳机采集到的心音做预处理时考虑了更多的方法。

(2)心音信号的处理阶段,包含(21)心音信号的预处理过程以及(22)特征值提取过程。

步骤(21)心音信号的预处理过程,如图3所示,其中包含以下过程:

(211)小波阈值去噪

受人体呼吸等因素的影响,心音的收缩期和舒张期通常存在明显的杂音。这些杂音会影响心音的身份识别中对心音所属人的判断。并且这些杂音会严重影响心音包络的提取及正确的s1、s2分段,需要通过小波降噪来去除这些噪音,保留心音的第一心音和第二心音。

利用小波阈值去噪能够明显的去除噪音。步骤如下:

(211-1)对含噪心音f(k)做小波变换,得到一组小波系数ωj,k;

(211-2)通过对ωj,k做阈值处理得到估计小波系数

(211-3)利用进行小波重构,得到估计信号即为去噪后的信号。

(212)预加重

预加重公式如下:

s2(n)=s(n)-a×s(n-1)

(213)心音分段

进行心音分段的目的是确定心音的四个部分s1、s2、s3、s4的位置和基本边界,从而准确的确定第一心音和第二心音的位置。在本设计中采用如下方法:

(213-1)确定高门限t1,其取值保证检测出幅度较大的有用信号,同时去除幅度较小的噪声和杂音。

(213-2)确定低门限t2,其值取决于噪声。

(213-3)对整体信号求希尔伯特变换并求解其自相关函数,求解主极大与次级大之间的距离,该距离为心音信号周期t。

(213-4)在整体信号上随机寻找大于t1的点(o点)

(213-5)取o点前后距离t/2的点截取片段,该片段为单位心音片段。

(213-6)在该片段上从o点前往后搜索,从大于t1(a点)到小于t2(b点),为心音段。

(213-7)从a点向前搜索,到小于t2结束(c点),c、b即为有效心音的起始点。

(213-8)暂时认为这些有效的心音段为s1、s2。

但由此得到的s1、s2可能并非真实,由于s1、s2分裂,或出现较大(大于t1)的噪声,分段将不够准确。可以通过以下方式来消除这种不准确:

(213-9)统计正常心音中s1、s2最小间隔,确定阈值min;

(213-10)当两心音段间隔小于min且其最大能量相近时认为其分裂,进行合并;

(213-11)如果间隔小于min且其中能量远远大于另一个时,认为其为杂音,去除小能量段。

经此处理,可认为得到心音段为s1、s2。

(214)时域分帧加窗

得到s1、s2的分段点后,需要通过时域加窗将得到片段截取出来,为后面数据融合、特征参数提取提供样本。加窗基本思想是利用窗函数w(n)的滑动把非平稳信号截取为一个个小时段,每个小时段为一帧,并假设每个小时段都是平稳的。常见的窗函数如下所示:

d.矩形窗

e.汉明窗

f.汉宁窗

其中,矩形窗频谱平滑性较好,系统在时域端点检测时采用矩形窗函数;汉明窗低通平滑性较好,频谱泄露较少,系统在短诗频域分析处理时多采用汉明窗函数。

综合上述考虑,并根据心音的特性,我们选择汉明窗对心音信号进行加窗。

(215.数据融合

对单路心音信号多周期段的数据层融合。由于心音信号具有节律性,且各周期的波形还有一定程度的随机变异,因此将它近似作为周期性信号来处理,既保留少许随机变异的波形,又从中挖掘出更多有用信息。

对周期心音信号st(i=1,2,…,m),(每一个st之间存在细小差异),心音信号是一个低频窄带信号,有用信息主要包含在低频成分中。所以可以对sti进行等长度分层。比如用wpt进行n层变换,可获得一个低频窄带信号il和n个高频窄带信号ijh(j=1,…,n)。然后对各周期分解的所有窄带信号取加权平均。

低频窄带信号的权重β1为1,高频窄带信号的权重βj2为1/j。最后用提取的新的高频信息与低频信息进行小波逆变换合成一个复合的周期心音信号xs,可实现心音信号的数据层融合。关键之处是准确确定一个周期心音信号的起点和终点,要保证它们的s1、s2段的中心波峰及两边1~3个关键波峰处是尽可能重叠的。如果直接在一长段心音信号中找最大值,可能找到的是噪声点。因为噪声不能够维持足够长的时间,我们通过设定短时能量门限值有效地解决了这个问题。

步骤(22)心音信号的特征值提取过程,如图4所示,对得到的s1、s2信号提取mel倒频谱系数mfcc其中包含以下过程:

(221)快速傅里叶变换(fft):信号在频域上的变化更能看出信号的特征。所以通常将时域上的信号转换成频域能量来分析。

(222)加三角带通滤波器:将能量频谱乘以一组24个三角带通滤波器,求得每一个滤波器输出的对数能量,共24个。这24个三角带通滤波器在mel频率上是均匀分布的,一般频率f和梅尔频率的对应关系式如下:

mel(f)=2595×lg(1+f/700)

或者是:

mel(f)=1125×in(1+f/700)

定义一个有m=24个三角滤波器的滤波器组,中心频率为f(m),m=1,2,…,m。各f(m)之间的间隔随着m值的增大而增大。

三角滤波器的频率响应定义为:

再把每个三角带通滤波器归一化,即用三角带通滤波器h(m)的每一点除以它的最大值。(223)经过离散余弦变换得到mfcc:

(224)动态差分参数的提取mel倒谱参数mfcc反映了语音信号的静态特性,语音信号的动态特性可以用这些静态特征差分来描述,实验证明:把动、静态特征结合起来能有效提高系统的识别性能。差分参数的计算可以采用下面的公式:

式中,d(n)表示第n个一阶差分;c(n)表示第n个倒谱系数m表示倒谱系数的阶数;k表示一阶导数的时间差,可取1或2。

步骤(3)心音认证阶段,如图5所示,包含以下过程:

采用了一种基于vq与dtw的混合识别方法,将之前大量测试得到的vq与dtw识别的正确率归一化后作为识别权值,分别记为α,β。具体步骤如下:

(31)首先输入模板心音进行vq码本训练,得到训练码本;

(32)再次随机截取一段模板心音,求解出其与训练码本之间的欧氏距离,记为a1,同时对该模板心音片段求解出其dtw值,记为b1;

(33)输入待测试样本,求解出其与vq训练码本之间的欧氏距离,记为a2,同时求解出其的dtw值,记为b2;

(34)分别对a1、a2以及b1、b2做归一化,归一化后的值记为a1,a2以及b1,b2;

(35)计算出判决阈值c1=a1×α+b1×β,计算出测试值c2=a2×α+b2×β;

(36)进行判决,若c1<c2则判断为认证失败,若c1>=c2则判断为认证成功。

进一步地,vq算法过程如下:

vq码本的设计是下述两个条件的反复迭代过程:

1)对于给定的码本ym(m为码本大小),在矢量空间x中,找出所有码本矢量的最佳区域边界si(i=1,2,…,m),以使平均失真最小。这个条件的实现方法是采用最邻近准则nnr。也就是假设矢量空间中某点xk与码本中的矢量yi之间的失真小于xk与其他任何码本矢量yj之间的失真,则xk属于某区域边界si,这时得到的区域边界si(i=1,2,…,m)称为voronoi胞腔。

2)对给定的区域边界si,找到最佳码本矢量yi(i=1,2,…,m),使平均失真最小。

具体训练过程如下:

(1)通过实验确定vq码本的大小。

(2)通过lbg算法对训练样本数据迭代训练计算vq码本,直到满足要求。

(3)对样本数据通过已得到的vq模板码本进行模式匹配,计算匹配成功率,不断迭代2、3过程直到系统性能满足要求。

在lbg-vq算法中最常采用如下式所示的欧氏距离:

其中是待测矢量xn与码字矢量之间的距离,是第i个心音信号码本的第l个码字矢量的第k个分量,i为心音样本数量,m为码本尺寸,k为特征矢量的总维数。

在认证阶段首先使用固定公式计算该用户与其他用户特征向量之间的失真度,使用欧氏距离算法衡量用户矢量到码书对应矢量之间的距离。从结果中选出最小的失真度对应的用户作为识别结果。

进一步地,dtw算法过程如下:

根据心音的周期性和s1、s2的特性,它类似于孤立性语言识别,并且同一人取不同时间的心音进行识别,由于运动、情绪等诸多因素的影响,每个周期的长度并非完全相同。为了解决同一人心音周期长短不一的问题,因此考虑利用动态规划的方法,寻找一条心音信息库中比较信号与待识别信号的最小累计距离。

d(x,y)=d(x,y)+min[d(x-1,y),d(x-1,y-1),d(x-1,y-2)]

其中,x代表比较信号的帧数,y代表待识别信号的帧数,x每前进一帧,只需用到前一列的累计距离d和当前列所有帧匹配距离d(x,y),求出当前帧的累计距离,直到x的最后一帧矢量d的第m个元素即为x,y动态弯折的匹配距离。

一个参考模板表示为r={r(1),r(2),…,r(j),…,r(m)}测试模板表示为t={t(1),t(2),…,t(i),…,t(n)}为了比较测试模板和参考模板之间的相似度,可以计算它们之间的失真距离d[t,r],距离越小表示相似度越高。通计算t与r中的各个对应帧之间的距离来度量这个失真距离。设i和j分别是t和r中任意选取的帧号,d[t(i),r(j)]表示这两帧特征矢量之间的失真距离。这里我们采用欧氏距离来度量其失真距离。

若m等于n,这个可以直接计算;如果不相等就要考虑r(m)和t(n)的对齐问题,最好的方法是采用动态规划的方法。

把测试模板的帧号i=1~n作为二位直角坐标的横坐标,再把参考模板的帧号j=1~m作为二位直角坐标的纵坐标。通过这些帧号形成一个二维网络,网络的交点(i,j)表示测试模板第i帧号和参考模板的第j帧的距离。动态规划(dynamicprogramming)算法就是找寻一条通过网络若干交点的路径中距离之和最小的一条,并求出这条路径各个交点距离之和。路径的各个交点的先后次序不会改变,因此所选的路径一定是从左下角开始,到右上角结束。

为了描述这条路径,设这条路径的交点为(i,j)。这条路径的起点坐标一定是(1,1),假设已经通过当前交点坐标(i,j),然后要考虑下一个交点的坐标,可以比较坐标(i+1,j)、(i+1,j+1)和(i+1,j+2)这三个交点的大小,选择值最小的作为下一个坐标。最后返回距离。

登录阶段,如图6所示,登录系统是基于c#编程的winform来实现其功能包含以下方面:

(41)登录界面

登录界面,在输入框输入用户名,点击“登录”按键后通过程序访问数据库,查找用户名是否存在,若存在则跳出对话框提示进入下一步;不存在则提示“用户名不存在”。

(42)采集、认证界面

通过用户名验证后跳出对话框,提示戴上耳机。戴上耳机后点击“采集心音”开启录音线程,调用microsoft.directx.directsound和microsoft.dirextx接口进行录音,15秒后结束录音,并通过输出流写入到d盘的文件夹heartsound中。由于录音时间长度是确定的,所以可通过progressbar控件将录音的进度实时的显示给用户。

录音结束后开启一个新线程进行心音识别,在线程中调用由matlab生成的动态链接库,用其中的函数进行心音识别。由于心音识别花费时间较长且无法准确进度衡量,故采用圈型加载控件向用户显示其运行状态。

(43)认证结果显示界面

认证完成后根据返回的结果提示是否通过认证。

以上实施例仅为说明本发明的技术思想,不能以此限定本发明的保护范围,凡是按照本方案进行的等同替换或者替代均属于本发明的保护范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1