- 1、本文档共23页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
【精选】数字化语音存储与回放系统的设计
数字化语音存储与回放系统的设计
班级: 电信1202 姓名: 吴建亮 学号: 201203090224
设计题目
设计一个数字语音存储与回放系统,其系统框图如图图1.1所示。设计要求如下:语音录放时间≧60s;语音输出功率≧0.5W,回放语音质量良好;设置“录音”、“放音”键,能显示录放时间;采用语音压缩算法,在不增加存储器容量的基础上增加录放时间。
图1.1 2.1 语音存储回放系统原理框图
模拟子系统设计
1.语音输入通道电路的设计
在语音存储与回放系统中,通过麦克风将声音信号转化为电信号。麦克风内部含有一个电容元件和场效应管构成的内部前置放大器。电容随机械振动发生变化,从而产生与声波成比例的变化电压。麦克风在使用时需要通过一个电阻R1连接到电源对其进行偏置。R1的阻值决定了麦克风的输出电阻和增益,通常在1~10kΩ之间。麦克风输出的电信号比较微弱,信号增值在1~20mV之间。
前置放大器就是对麦克风输出的语音信号进行放大一边对其进一步处理。前置放大电路有两种设计方案。一种方案是针对双麦克风设计的前置放大器,由一级差分放大器和一级增益可调反向放大器组成的设计方案。本次系统设计中,为了是器材简单,使用了后一种。
语音存储与回放系统中,模拟量输入通道和输出通道均需要带通滤波器。带通滤波器的通带范围为300Hz~3。4kHz,主要实现的功能如下:
保证300Hz~3。4kHz的语音信号不失真的通过滤波器。
滤除带通外的低频信号,减少工频等分量的干扰,减小噪声影响。
滤除带通外的告辞谐波信号,减少因8kHz采样率引起的混叠失真,根据实际情况,该上限频率在2.7kHz左右。
根据上述条件设计的语音输入通道如图3.1所示。
图3.1语音输入通道
语音输出通道设计
当语音回放是,语音信号从C8051F360单片机的IDA0输出。IDA0输出的语音心哈既包含了直流分量,也包含了由于最小分辨电压产生的高频噪声。因此在语言输出通道应设置带通滤波电路。为了能提供0.5W的功率输出,语音信号还要经过功放电路进行功率放大。为了简化电路设计,语音输出通道选用了滤波和功放二合一的设计方案,其原理图如图3.2所示。
图3.2 语音输出通道电路原理图
M25P16与C8051F360单片机的接口如图4.1所示。通过交叉开关将4线制SPI总线配置到P3.1、P3.2、P3.3、P3.4引脚上
五、系统软件设计
语音存储回放系统软件的基本功能是通过按键控制系统实现录音和放音。录音时,采集语音信号并将采集的数据存入M25P16中,放音时,从M25P16中读取数据送入DAC,系统分为以下几个框架(1)人机接口的功能设计
(2)键盘处理程序设计
(3)M25P16的读写方案设计(4)A/D和D/A转换器的控制5)擦除、录音和放音及时(6)C8051F360单片机内部资源的使用主程序流程图
图5.1主程序流程图
图5.2 T2中断服务程序
图5.3 ADC0中断服务程序
图5.4 T1中断服务程序
(1)调试键盘显示程序;
(2)测试单片机对M25P16读写是否正常;
(3)测试C8051F360单片机的A/D和D/A转换器;
2.模拟部分的调试
(1)麦克风和前置放大器的调试;
(2)带通滤波器的调试;
(3)音频功放电路的调试;
3.联机调试
将语音输入通道的输出与单片机P2.0相连,单片机IDA0的输出与语言输出通道相连,将音频功放电路与0.5W,8Ω喇叭相连。
本次实验较为系统的设计和调试了基于80C51F360的数字语音存储回放系统,了解和掌握了外部RAM和单片机的SPI通信方法,更深一步了解了定时器和ADC0中断。
通过整个系统的设计,发现,容易出错的地方往往不是程序代码语法或者输入错误,而是系统逻辑问题,因此在以后的系统设计中,要重视逻辑的建立,在做系统之前,首先要画出没有挑剔的程序流程图,因为这是系统的思想路径,只有有了明确正确的路径,才能踏踏实实的编写程序,同时也会发现,以前恐惧的几百行代码已经变得多么易于理解了。
文档评论(0)