课件-数字化语音存储与回放系统实验报告

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

数字化语音存储与回放系统
摘要:本系统基于语音信号的数字化存储与恢复原理,采用A/D、D/A转换技术与语音信号的插值压缩算法实现该原理,完成了对语音信号的数字化存储与回放功能。

整个系统由前级信号处理、信号压缩及后级语音回放三部分组成,单片机及FPGA完成信号的压缩算法,模拟电路完成前级信号处理和后级语音回放。

语音存储时间可以达到8秒,系统噪声电平较低,语音回放效果良好。

关键词:插值算法;FPGA;A/D;D/A
目录
一、方案论证与选择............................. 错误!未定义书签。

1.题目任务要求及相关指标的分析 (2)
2.方案的比较与选择 (2)
二、系统总体设计方案及实现方框图; (5)
三、理论分析与计算 (5)
四、主要功能电路的设计 (6)
五、系统软件的设计 (8)
1.基本内容................................. 错误!未定义书签。

2.流程图注意要点 (8)
六、测试数据与分析 (10)
1.测试原理与方法 (10)
2.使用仪器及型号 (10)
3.测试数据结果 (10)
4.数据分析 (11)
七、总结分析与结论。

(11)
八、参考文献 (11)
一、方案论证与比较
1.题目任务要求及相关指标的分析
(1)基本要求
①放大器1的增益为46dB,放大器2的增益为40dB,增益均可调。

②带通滤波器:通带为300Hz~3.4kHz 。

③ADC:采样频率f s=8kHz,字长=8。

④语音存储时间≥10秒。

⑤DAC:变换频率f c=8kHz,字长=8位。

⑥回放语音质量良好。

(2)发挥部分
在保证语音质量的前提下:
①减少系统噪声电平,增加自动音量控制功能。

②语音存储时间增加至20秒以上。

③提高存储器的利用率(在原有存储容量不变的前提下,提高语音
的存储时间)。

④其它(例如:校正等)。

2.方案的比较与选择
(1)前置放大电路的方案比较与选择:
方案①:差分放大电路。

差分放大电路的具体实现有两种方法。

a.由三片运放构成差分放大电路。

图一:传统的差分放大电路图
b.由仪表放大器AD620构成差分放大电路。

AD620是在原有的
传统三片运放的基础上改进而来的,其内部结构相当于差分放大器,
如下图:
图二:AD620内部结构
比较两种实现方法,法二中元件参数的一致性较强,电路实现较为简
单,且噪声、带宽、增益等特性均优于法一中的电路。

方案②:多级放大电路。

一般由两级放大构成,第一级放大倍数较
后一级放大倍数较大。

比较以上两种方案,方案①可以大幅度的减小背景噪声电平,且
AD620的增益范围可以满足题目要求,而方案②会引入较大噪声,
故本系统采用方案①。

(2)带通滤波器的方案比较与选择:
题目中规定的上下截止频率之比为3400/300=11.2,可见需要设计一个宽带滤波器,显然无法采用一般的带通滤波器的设计方法来实现,
只能采用高通滤波器级联低通滤波器的方法来实现,实现方案有以下
两种:
方案①:采用专用滤波器芯片实现。

如采用MAXIM公司生产的
MAX274,可通过该芯片的专用设计软件对带通滤波器的各项参数值
进行设定,得到在一定程度上满足要求的实现方案。

方案②:采用分立器件实现。

具体又可以分为无源滤波器和有源滤波
器,由于无源滤波器对电容、电阻的参数要求较高,不易实现,故一
般不采用该方法。

有源滤波器采用集成运放与阻容元件构成,具有体积小、工作频率范
围宽、可对信号进行放大等优点,且输入阻抗高,输出阻抗低,便于
级联。

其缺点是可能引起输出失调。

两个方案各有优点,实际测试时,发现专用滤波芯片的实际幅频特
性与软件中仿真的结果有较大差距,不能满足题目要求。

且方案②的缺
点与本系统关系不大,故最终采用方案②。

(3)语音压缩算法的方案比较与选择:
语音压缩算法可大致分为有损压缩与无损压缩。

由于无损压缩的压缩
效率较低,且要获得较好的实时性,算法较为复杂。

故本系统只考虑有损压缩。

方案①:采用PCM 编码(脉冲编码调制)。

其原理由抽样、量化和编
码三个步骤组成,具体实现是将信号通过A/D 转换为线性编码,直接
存入RAM ,然后通过D/A 转换将音频信号回放出来。

该方法原理简
单,易于实现,且音质效果较好,几乎不存在失真,缺点是存储器利
用率低。

方案②:采用DPCM 编码(差值脉冲编码调制)。

该方法通过对抽样
信号和预测信号的差值进行编码,可以压缩数码率,提高存储空间利
用率。

其数学表达式如下:
8 (()(1)8) ()()(1) (-8()(1)7)
7 (()(1)7)S n A n e n S n A n S n A n S n A n ---<-⎧⎪=--<--≤⎨⎪-->⎩
其中,()S n 表示当前采样值,()A n 表示增量的累加值,(1)
A n -作为预测值,()e n 表示()A n 与(1)A n -的差分值,以四位存入RAM 。

对应的解码方法为:先将()A n 预设为0,读取RAM 的值存入BUFFER
中,再从BUFFER 中读出高4位或低4位作为本次样值的()e n 。


据()e n 的最高位判断值的正负,()A n 相应地加上或减去()e n 的大小,
作为下次输出值S(n+1)与下次的估计值A(n+1)。

DPCM 系统是一个负反馈系统,采用这种结构可以避免量化误差
的积累。

但由于它用一个地址存放两个采样差值,即每个差值只能占
用4位,除掉一位标志位,有效部分只有3位。

所以,当差值超过7
时,就当7处理,因而引入的量化噪声较大。

且算法相对复杂,对器
件要求也相对较高。

方案③:采用插值压缩算法。

考虑到大多数人发声频率普遍在2KHz
左右,可以相应的降低采样频率以提高存储时间,将原来8KHz 的采
样率下降到4KHz 。

为了能较好的还原原来的语音,解码时要进行插
值,可以采用线性内插或抛物线拟合内插。

由于是半采样,插入的虚
拟值不可能完全与原始的真实值相等,所以输出的语音信号会有一定
的失真。

考虑到题目要求尽量增加存储器的利用率,只能在方案二和方案三中选择。

两者的压缩比均为2:1,但插值法实现起来比较简单,故最终本系统采用方案三。

二.系统总体设计方案及实现方框图:
整个系统主要由前级信号处理、语音压缩与后级语音回放三部分组成。

其中差分放大、前级带通滤波和A/D转换三个模块构成了前级信号处理部分,语音压缩部分由单片机及FPGA实现,后级语音回放由D/A转换、后级带通滤波和功率放大三个模块构成。

系统框图如下:
图三:系统组成框图
三.理论分析与计算
1.带通滤波器的相关理论与指标分析
根据题目要求,带通滤波器的通带范围是300HZ-3.4KHZ,采样频率为8K。

根据采样定理可以画出经过取样被周期化了的语音频谱,如下图:
图四:语音频谱
显然,为了抑制混叠和减少由数字化语音恢复为模拟语音时的失真,可将该频谱中基带谱的包络作为所要设计的带通滤波器的频率响应的参考目标。

考虑到可能有工频50HZ的干扰,我们将高通滤波器的阻带频率定在50HZ。

2.高频校正的理论分析与计算
语音回放时,需要将数据经过D/A 恢复为模拟语音信号。

这时的D/A 转
换器相当于一个零阶保持器,根据信号与系统中有关抽样的理论,易知D/A 转换器的归一化的幅频响应为sin(/)/(/)s s f f f f ππ(式中s f 为D/A 的刷新
频率,等于8KHZ ),由于该幅频响应在s f f ≤范围内呈现非理想的低通滤波
器特性,因而造成恢复后的语音信号中高频分量的损失。

为了补偿该损失,可以采用一个与上述频响成倒数关系的幅频响应的网络对恢复后的语音信号进行校正。

四、主要功能电路的设计
1.差分放大电路的设计
该电路采用参数完全一致的两个话筒作为信号输入,两片型号一致的低
噪声运放OP37分别构成两个射级跟随器,起到阻抗变换的作用。

最后利用仪表放大器AD620对两路信号进行差分放大,其放大倍数由50K 的电位器R1进行调节。

实际应用时,语音信号从任意一个话筒输入,由于是对两路信号的差值进行放大,可以有效地降低背景噪声。

图五:双话筒差分放大电路图
2.功率放大电路的设计
功率放大电路由集成功率放大芯片LM386及外围电路构成,调节输入端的电位器可以使输入信号峰峰值在芯片规定范围内。

1脚和8脚之间的电路可以在20-200范围内对增益进行调节。

图六:功率放大电路
3.带通滤波器的设计
根据题目要求,我们把带通滤波器的通带定在300-3.4KHZ。

由于插值法的采样频率是4K输出波形一定会有较大的4KHZ的偕波分量,所以我们把低通滤波器的阻带频率定在4KHZ。

同时考虑到工频可能带来的干扰,我们把高通滤波器的阻带频率定在50HZ。

电路采用巴特沃斯响应,输入级用了8阶,输出级用了4阶。

下面是4阶的带通滤波电路:
图七:带通滤波电路
4.FPGA内部电路的设计
考虑到可编程逻辑器件速度和性能上的优势,我们把插值算法和状态机控制都放在FPGA上实现。

五、系统软件的设计
1.程序设计的指导思想及风格
程序作为单片机的控制核心,除了要完成基本的功能外,还要有良好的用户界面,同时还要考虑较好的适应性、通用性,以最大限度地方便调试阶段的修改与调整。

故在程序的编制中除了注重结构化设计外,还要注重层次化设计。

良好的用户界面,主要指用户在功能跳转、输入数据参数时能很方便的输入、修改、取消。

为此程序必须充分结合并使用了现有的键盘与显示资源,以提供一个较合理的用户界面。

结构化设计,主要是指同种或相似功能归并到一个相对独立的子程序中完成。

具体即把整个系统分为若干个子系统,再由单个子系统分解出一个个具体的功能模块。

对一个个具体的功能进行编码。

层次化设计,此次的程序设计中,主要是指在构建各个子系统中所采用的设计方法。

具体指把底层的硬件接口处理编制为独立底层子程序,并向上提供处理的数据且对上层功能模块屏蔽底层硬件接口部分;而相应基本功能模块利用底层处理子程序处理的数据、不直接与硬件打交道,并向上层全功能模块提供处理后的数据;交互等全功能模块再利用言基本功能模块提供的接口构建完成本模块功能;最后,主程序只要调用相关的全功能模块就可以方便地构建出系统。

整个编程过程,结构化与层次化思想贯穿始终。

在这样的架构中,结构化使程序的可读性提高的同时也把程序的冗余程度降低了,对资源本来就少的单片机来说,无疑是个很有意义的方法;而层次化,则使程序的通用性与适应性进一步增强,当外围器件电路改变时,只要改动最底层的独立接口子程序的具体基本功能实现模块,而向上层模块提供的接口不变,这样也就免去了对上层子程序的修改或变更,好处在于为改进、调试乃至在以后的利用中都提供了极好的条件。

实践证明,这样架构使条理和结构进一步明晰,可读性和易修改性也随之大大提高,同时为调试中的修改提供了极大的方便,节省了大量的软件调试时间与精力,加速了系统的设计速度。

2.子系统功能及模块的层次化构建
系统软件的实现上,底层主要分为三个大的相对独立模块及一个公共模块:第一个是键盘接口模块部分、二是显示接口模块部分、三是与FPGA 的控制接口模块部分,公共模块是不属于上面三部分的程序中公共使用的重要子程序集合。

三个基本部分在内部设计时,采用了结构化设计方法。

采用结构化设计的同时,也采用了层次化的设计。

程序流程图如下:
六、测试数据与分析
1.测试原理与方法
使用框图结合简要文字的方式来说明测试的原理、步骤和方法,以及具体的注意事项,这个部分关系到测试方法是否科学、正确,测量数据是否可信、可靠。

2.使用仪器及型号
清华同方计算机:CPU+内存+操作系统
直流稳压稳流电源:型号XXXXX
60M数字存储示波器:型号XXXXX
数字信号源:型号XXXXX
万用表:型号XXXXX
其它设备:型号XXXXX
3.测试数据结果
这一部分的测试数据以表格、曲线、图形的方式来表达。

一般以列表的形式将测试数据列出,测试时请注意测试点的选择要全面、均匀且有代表性;当然测量数据要标注测量仪器的单位并注意测量数据的精度,不要犯基本错误! 对于表中记录的数据,有时需要作必要的说明,比如其中出
表一表的名称
图九误差分析曲线
使用误差分析曲线能够更加直观的反映系统所能达到的性能指标情况。

4.数据分析
对于测试数据中反映的误差和问题,进行必要的分析,找出主要的原因:
◆测试环境影响
◆测试方法引起的误差
◆测量仪器范围、精度引起的误差
◆人为的误差:读数因素、仪器温度因素、人体姿态因素等
◆实际电路或系统中内部的噪声与干扰
◆工艺引起的误差(布局、布线、焊接)
◆其它(打雷、暴风、暴雨等)
对列表中数据分布与趋势所代表的含义作一个说明,并对其中的数据误差作说明与分析。

七、总结分析与结论
此部分需要对系统的整体实现及功能作一个分析总结及评价,同时指出系统的不足,提出可能的改进方案,必要时可以加入设计与调试心得。

根据本设计理论分析及实际测试结果,表明:
◆本设计达到了哪些功能
◆本设计达到了哪些性能、指标
◆本设计中未达到的功能
◆本设计中未达到的性能、指标
◆本设计中未达到的功能和性能的原因
◆你认为本设计的创新何在?具体如何?
◆展望与改进(一定要是正确的,否则不要写)
八、参考文献
1.书
[1] XXXX编,<<书名>>,出版社地点:出版社名称,出版年月,版本
[2] 林吉申编,<<三极管特性参数与互换速查手册>>,北京:国防工业出版社,2003
年1月第一版
2.论文
[1] 作者,<<文章名>>,杂志名,出版年月,卷号期号页码
[2] 作者,<<论文名>>,电子技术应用,2004年15卷第2期,23~31
3.电子文献
[1] XXXX,电子文献题名,电子文献出处或可获得地址,发表/引用时间。

相关文档
最新文档