- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
基于C++的听力测试系统
专业: 电子信息工程
姓名: 孙强 葛帅
班级: 电子106
目录
一、设计任务及其内容 3
二.系统软件设计流程图 3
三,系统调试: 4
3.1录音编程 4
3.2在实际操作中遇到的问题及解决方法 7
四、课程设计总结 8
五、参考文献 8
六、附录 8
一、设计任务及其内容
本次课程设计的任务是使用相关编程软件,编写出可以检测人耳听力测试功能。通过控制输出声道来分别测试左右耳,通过调节不同频率以及随时间变化而增大的幅度使人耳听到声音,并且通过点击程序运行窗口的停止键来保存下当前频率下所能听到声音的幅度。当记录下多个典型频率后,可以绘制出频率/幅度曲线,并且做出双耳听力曲线的对照。
二.系统软件设计流程图
没有按键反馈
重复测量
按键反馈
三,系统调试:
3.1录音编程
事实上,声卡是PC的一种多媒体设备,所以可以用Windows 的MCI(Media Control I nterface)命令来控制声卡。MCI它提供了一组与设备无关的控制命令,是一种访问多媒体设备的高层次方法。也正因为它属于一种高层次方法,所以它提供给程序员的灵活性有限,利用MCI命令来控制声卡录音时,程序员不能在录音的过程中访问内存中的采样数据,只有在录音完成后通过访问*.WAV文件才可以得到采样数据,尽管最终还是得到了采样数据,但是这样做一方面嫌其麻烦,更重要的是存取文件需要耗费时间,声卡在采样的过程中有可能会停止下来等待文件操作,造成了采样的断续。在一些实时性要求比较高的场合(比如波形分析,实时控制等),断续的采样明显是不行的。 Windows的低级波形音频函数提供了对声卡的最大灵活性的操作,它允许在采样过程中随机地访问内存中的每个采样数据,完全可以克服使用MCI命令所遇到的实时性问题。 Windows以动态连接库Mmsystem.dll的形式提供低级波形音频函数,在Mmsystem.dll中总共包括了以下几个有关波形录入的函数:
waveInAddBuffer :向声音输入设备发送缓冲区 ;waveInClose :关闭声音输入设备
waveInGetDevCaps:获取声音输入设备性能; waveInGetErrorText:获取声音出错信息文本
waveInGetID :获取声音输入设备ID; waveInGetNumDevs:返回声音输入设备数量
waveInGetPosition :获取声音设备输入位置; waveInMessage :向声音输入设备发送信息
waveInOpen :打开声音输入设备; waveInPrepareHeader:预备声音输入缓冲区
waveInReset :停止声音输入设备工作; waveInStart :停止声音输入设备工作
waveInStop :停止声音输入; waveInUnprepareHeader : 清除预备的声音文件头
需要说明的是:不同的编程工具多会含有对这些低级波形音频函数进行说明的头文件(比如在Delphi4.0中,对Mmsystem.dll说明的文件是Mmsystem.pas),所以在不同的编程工具中调用这些函数时有可能会使用不同的名称。
与使用其他设备一样,要想用波形音频函数来控制声卡,必须要经过以下的步骤:
1. 打开波形输入设备。函数waveInOpen用于打开波形输入设备,其原型如下:
① WORD waveInOpen(lphWaveIn,wDeviceID,lpFormat,dwCallback,dwCallbackInstan ce, dwFlags) LPHWaveIn: lphWaveIn 该变量用来接收波形输入设备的句柄,该句柄应当保存下来,因为其他的波形输入函数还会用到它.
②WORD wDeviceID 该变量用来指明波形输入设备的标记号.当PC中有多块声卡(准确地说是波形输入设备)时,操作系统会为每一块声卡分配一个标记号.可以用waveInGetNumDev s函数来得到能够作为波形输入设备的数目N,则wDeviceID的取值范围为0~N-1.如果想得到没个标记号所对应的录音性能,可以使用函数waveInGetDevCaps.若把wDeviceID设为W AVE_MAPPER(即-1),则系统会自动选择一符合要求的设备(根据lpFor
您可能关注的文档
- [参考]基于GIS的学校选址分析.doc
- [参考]基于STC单片机(微控制器)GPRS数据传输控制系统的设计.doc
- [参考]基于CAN总线(Controller Area Network)火灾报警系统设计.doc
- [参考]基于clementine的数据挖掘指导.doc
- [参考]基于XMLSPY进行QTP自动化设计.doc
- [参考]基于MATLABGUI信号与系统虚拟实验平台使用.doc
- [参考]基于J2EE(Java 2 Platform, Enterprise Edition)试卷库管理系统的设计与实现-副本.doc
- [参考]基于GSM(全球移动通信系统)模块的移动购物系统设计.doc
- [参考]基于GSM(全球移动通信系统)网络SMS功能的汽车防盗软件系统的设计.doc
- [参考]基于GPS卫星定位监控调度指挥系统.doc
- [参考]基于GSM(全球移动通信系统)移动网络的智能家居远程防盗报警系统设计.doc
- [参考]基于ArcEngine的校园地理信息系统.doc
- [参考]基于ERP的MES设计.doc
- [参考]基于TRIZ理论的户用生物质气化炉具设计.doc
- [参考]基于AT89S51单片机(微控制器)数字温度计的设计.doc
- [参考]基于AT89S51单片机(微控制器)超声波测距仪设计.doc
- [参考]基于CAN20协议的模块式移动空调机组.doc
- [参考]基于BP算法的神经网络技术完整毕业论文.doc
- [参考]基于YAVWIFI模块无线数据采集系统.doc
- [参考]基于单片机(微控制器)无线传输系统设计.doc
文档评论(0)