- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
基于 IDE 硬盘的超长时间语音录放系统
摘要:选择单片机+ide 硬盘的方案,权衡处理器性能和编解码算
法复杂度之后选择了 adpcm 压缩算法,利用 winbond w78e52 单片机
的最小开发板实现基于 ide硬盘的大容量语音记录仪,极具性价比。
关键词:单片机;adpcm;超长时间语音录放系统
0 引言
基于 ide硬盘的大容量语音记录仪可将拾音器获得的语音信号转
换为数字信息,编码压缩后以语音文件形式存储于硬盘上,并可检
索查询,将选定的语音文件实现高质量的回放。目前,各行业对语
音进行录音保存变得越来越普遍,各行业使用的语音记录设备主要
包括磁带式语音记录设备、基于 pc 机的语音记录设备和基于 flash
芯片的语音记录设备。这些语音记录设备由于体积过大或记录时间
较短等缺点在实际应用时满足不了某些用户的特殊需求,因此亟需
一种大容量、体积小巧的语音记录设备。
1 系统硬件与软件资源分配
如图 1 所示:
图 1 系统硬件结构框架
系统软件的核心包括两个任务流:录音和放音。录音部分包括读
adc 转换值、编码、写硬盘;放音部分包括读硬盘、解码、送 dac
输出模拟音频信号,如图 2 所示。
2 系统设计与分析
adpcm 是在自适应脉冲编码调制(adaptive pulse code
modulation,apcm)和差分脉冲编码调制(differential pulse
code modulation,dpcm)的基础上发展起来的。adpcm 综合了 apcm
的自适应特性和 dpcm 系统的差分特性,是一种性能比较好的波形
编码。它的核心算法是:①利用自适应的思想改变量化阶的大小,
即使用小的量化阶(stepsize)去编码小的差值,使用大的量化阶
去编码大的差值;②使用过去的样本值估算下一个输入样本的预测
值,使实际样本值和预测值之间的差值总是最小。
图2 系统软件资源分配及系统软件结构流程
在数字语音处理中,subadpcm 算法的关键是进行子带的分割,
即实现数字带通滤波。凌阳的音频压缩算法 sacma2000 即是采用
这种算法,在winbond w78e52 的集成开发环境中集成并提供了sacm
a2000 的 api 函数供调用,经实验发现,调用 sacma2000 进行
录音压缩占用了较多的 ram 资源,需要花费较多的 cpu 时钟,如果
加入硬盘读写程序,winbond w78e52 的 cpu 时钟频率和 2k 字的 ram
将无法满足系统要求。在本系统中,合理的方案是采用 adpcm 压缩
算法。
3adpcm 压缩算法在 winbond w78e52 单片机上的改进及实现 3.1
针对winbond w78e52 的10位 adc对 adpcm进行改进 g.721和 ima
adpcm 的输入都是有符号数,最高位为符号位,如果将 16 位有符号
数当成无符号数处理,即相当于在原来的数据上加上 0x7fff。
winbondw78e52 的 adc 输出范围是 0x0000~0xffc0,理论上静音时
adc 的输出是 0x7fc0,即硬件上将双极性的语音输入信号调理成了
0~2v 的单极性信号,引起 adc 的输出数据加上了 0x7fc0,这一点
和将 imaadpcm输入信号的 16位有符号数当成无符号数处理吻合。
如果能将 imaadpcm 算法的实现改成无符号数运算,那将可以省
去将 winbond w78e52 的 adc 输出值处理成有符号数。
imaadpcm 算法在实现的时候,约定初始预测值和 index 步长调
节因子均为 0,但是经过上一节介绍的方法改进后,相应地,初始
预测值应改为 0x7fc0,因为上述的改进方法只是在原数据上加上一
个固定的值,将其”抬高”为无符号数,对 adpcm 编码过程的差值
并不产生影响,因此初试 index 步长调节因子不需改变,仍为 0。
编解码过程中的溢出判决相应的也要改为下限为 0,上限为
0xffc0。
3.2 利用 matlab 模拟 winbond w78e52 的硬件条件进行仿真
matlab 提供了丰富的数据类型和位运算指令,这为利用 matlab 模
拟 winbond w78e52 的硬件条件进行仿真提供了条件。首先,将语音
信号样本处理为 16 位的无符号整型数据,然后定义 uint16 类型变
量使得与 winbond w78e52 的
文档评论(0)