工程测试技术基础大作业

上传人:飞*** 文档编号:44955340 上传时间:2018-06-14 格式:DOC 页数:7 大小:226KB
返回 下载 相关 举报
工程测试技术基础大作业_第1页
第1页 / 共7页
工程测试技术基础大作业_第2页
第2页 / 共7页
工程测试技术基础大作业_第3页
第3页 / 共7页
工程测试技术基础大作业_第4页
第4页 / 共7页
工程测试技术基础大作业_第5页
第5页 / 共7页
点击查看更多>>
资源描述

《工程测试技术基础大作业》由会员分享,可在线阅读,更多相关《工程测试技术基础大作业(7页珍藏版)》请在金锄头文库上搜索。

1、成绩: 华中科技大学机械科学与工程学院工程测试技术基础大作业设计报告声音认证程序姓 名: 一路韶华 学 号: U201210* 专业/班级: * 指导老师: 小组成员、分工及签名:2014 年 12 月 28 日声音认证程序摘要:摘要:权限认证一直是各个领域都极度关注的问题。现在最普遍的认证方法是基于密码的认 证,这种认证因其便于编程、靠性高的特点而被广泛应用。同时,面部识别、声音识别、 指纹识别等等新兴的认证方法也不断流行开来。本文介绍的音认证的方法,利用相关性分 析的理论基础,通过 MATLAB 编程来现基于声音的验证系统。1.概述概述具体思路是预存一段声音密码,在认证的时候要求输入声音,

2、然后软件内部通过对 声音预存的声音和输入的声音进行分析比较,确定输入的声音是否满足了要求,若达到 要求,则认证成功,不能达到要求则认证失败。 原理:在计算机中预存一段声音信号(密码) ,认证的时候通过麦克风输入一段声 音,然后把输入的声音和密码声音进行相关性分析,取相关性分析的最大值,若果该值 超过了某个阈值,则认证成功,可以进行进一步操作;如果该值小于阈值,则认证失败, 弹出认证失败窗口。2. 系统设计系统设计系统功能框图系统功能框图主要模块实现方法主要模块实现方法开始输入声音 y修改密码声音 y0密码声音 y0相关性大 于阈值?认证成功继续访问认证失败,拒绝访问a.认证界面认证界面认证失败

3、界面认证失败界面通过认证界面通过认证界面公式: xy221/2( ) ()( )( )x t y tdtx t dty t dt 其中,x(t)为预存的密码文件,y(t)为输入的声音文件 程序界面中包含一个按钮,五个静态文本框。通过点击按钮来开始声音的输入。五个 静态文本框中红色静态文本框为提示界面,用来提示用户程序进程,方便声音的录入。相似度和 cmax 为调试中的变量,对程序的实现没有太大的作用,其中相似度为 ,而xycmax 为没有除以分母的。xy主程序:主程序: function pushbutton1_Callback(hObject, eventdata, handles)time

4、=5;Fs=22050; x=0.01; %设置相关参数,录音时间,采样频率,阈值大小load password.mat %导入原始声音文件,即密码%一下为无意义的延时,优化显示以及提示用户set(handles.text1,String,按任意键开始录音.); pause;set(handles.text1,String,将于3s后开始录音.); pause(1);set(handles.text1,String,将于2s后开始录音.); pause(1);set(handles.text1,String,将于1s后开始录音.); pause(1);set(handles.text1,Str

5、ing,即将录音.); pause(0.5);set(handles.text1,String,正在录音.);%开始录音了recObj1=audiorecorder(Fs,16,1); %参数设置recordblocking(recObj1,time); %录音时长set(handles.text1,String,结束录音.);y=getaudiodata(recObj1,double); %将结果转换为离散信号,doublepause(1); %无意义暂停一秒,让用户觉得在处理中,实际速度极快set(handles.text1,String,处理中.);pause(2); % 无意义暂停两秒

6、c=xcorr(y0,y); %互相关,没有除以分母,结果存到c里面cmax=max(c); %取结果最大值xiangguanxing=cmax/(sum(y0.2)*sum(y.2)0.5; %最大值除以分母,即相关性 set(handles.text2,String,xiangguanxing);set(handles.text4,String,cmax); %将结果填入用户界面中,便于调试%以下为判断语句,如果相关性大于阈值,认证通过,调出welcome界面,如果相关性小于阈值,调出警告界面 if xiangguanxingx set(handles.text1,String,通过认证)

7、;open(welcome);endif xiangguanxing=xset(handles.text1,String,未通过认证);open(WARNING);end2.警告界面警告界面认证失败后调出摄像头,对当前照片拍照,并保存。程序略(好吧,没有做拍照这一步, 因为摄像头驱动原因始终失败,不过吓唬一下你也是好的)3.welcome界面界面认证成功后有两个选择,继续访问或者重置密码,继续访问即为更进一步访问了,点击重 置密码跳入重置密码界面。程序略。4.重置密码界面重置密码界面密码修改成功界面密码修改成功界面重置密码界面有一个按钮、一个静态文本框、两个图(频谱分析) ,两个图帮助判断你的

8、录 入信号是否可靠。是否可靠有多方面的因素。程序:程序: function pushbutton1_Callback(hObject, eventdata, handles)time=5;Fs=22050; %原始数据:录音时间,采样频率%录音前准备以及录音,好吧,又是无意义暂停 set(handles.text1,String,按任意键开始.); pause;set(handles.text1,String,声音长度勿大于3.5s,将于3s后开始录音.); pause(1);set(handles.text1,String,声音长度勿大于3.5s,将于2s后开始录音.); pause(1);

9、set(handles.text1,String,声音长度勿大于3.5s,将于1s后开始录音.); pause(1);set(handles.text1,String,即将录音.); pause(0.5);set(handles.text1,String,正在录音.);%开始录音 recObj0=audiorecorder(Fs,16,1); %默认录制为22050Hz,即Fs recordblocking(recObj0,time); %录音time秒后结束 set(handles.text1,String,结束录音.); y0=getaudiodata(recObj0,double); %

10、结果转换成离散信号,double %无意义暂停,给用户缓冲时间 pause(1); set(handles.text1,String,处理中.); pause(2);set(handles.text1,String,修改成功!); %以下为作图 %画出原始波形图x=linspace(0,time,time*Fs); %x坐标 axes(handles.axes1) %获得axes1句柄 plot(x,y0); %在axes1上作图%频谱分析 y0fft=fft(y0); %快速傅里叶变换 Pyy =2*sqrt(y0fft.* conj(y0fft)/(time*8000); x=linspa

11、ce(0,Fs/2,Fs*time/2); %x坐标 axes(handles.axes2) %获得axes2句柄 plot(x,Pyy(1:Fs*time/2); %在axes2上作图 save(password.mat,y0,recObj0) %保存密码到y0,好吧,这是最主要的一步 end4. 系统调试和应用系统调试和应用本程序的设计中,最为重要的一步是阈值的确定,阈值的确定受多方面因素影响。 阈值选取过高,使得容错率降低,认证失败的可能性增加;阈值选取过低,使得认证成 功的可能性增加,可能出现错误认证成功的情况。所以,合理选择一个阈值是本程序成 功与否的关键。 经过反复调试,终于找到了

12、合适的阈值,结果很令人满意: (1)同一个人说同一个声音,可以认证成功,但是当语速过快过慢的时候,认证 不能成功; (2)另外的一个人来说这一句话,不管怎么说,总是不能认证成功;最后,程序有一些缺点待改进: (1)不能做到时时控制声音密码的长度:对于一个程序来说,密码的长度已经被 限定了,如果要修改,必须要在程序内部进行修改。本程序的默认时间长度是 5s,不 能在程序界面进行显性修改。 (2)程序的可靠性有待提高:测试中出现了几次这样的情况,上午实验的时候很成 功,下午不行了;下午重新调整好了,晚上又不行了。最后,我们总结出了出现这样情 况的原因:a.声音干扰;b.麦克风因为久经风霜质量出现了一定的问题;c.本人自己的 声音会有一定的差异。5. 结束语结束语 总的来说,这样的一次作业给了我较大的收获。与小伙伴们一起查资料、一起学习 的过程很好,最后做出了一个小程序让自己很开心。这样的一个作业很有意义的,比起 做一些书上的例题来说,这样的作业更能激发我们的兴趣,对知识的掌握也能进一步提 高。参考文献参考文献1.康宜华,工程测试技术,武汉,机械工业出版社,2005 年 2.李海涛,MATLAB 程序设计教程,北京,高等教育出版社,2002 年

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 行业资料 > 其它行业文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号