语音压缩存储与回放实验报告

更新时间:2023-10-07 11:51:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

DSP课程设计

实 验 报 告

语音的压缩、存储与回放

学院:电子信息工程学院 姓名:蒋可 08213036 王姗姗 08213052 班级:自动化0806班 指导老师:杨恒

1

目 录

一、设计任务书…………………………………………………………3

二、设计内容……………………………………………………………3

三、设计方案、算法原理说明…………………………………………3

四、程序设计、调试与结果分析………………………………………11

五、设计(安装)与调试的体会………………………………………26

六、参考文献……………………………………………………………23

2

语音的压缩、存储与回放

一、设计任务书

语音信号是信息的重要形式, 语音信号处理有着广泛的应用领域,而语音压缩在语音信号的传输、存储等方面有非常广泛的作用,而且在通信领域中已经有较成熟的发展和广泛应用。本设计要求采用DSP及其A/D、D/A转换器进行语音信号的压缩、存储和回放。

二、 设计内容

1. 实验目的

(1)编写C语言程序,学会在CCS集成开发环境下进行编辑、编译、链接、调试和数据分析等工作。

(2)利用DSK的集成环境,完成语音的采集,存储和回放,实现设计所要求的各项功能。

(3)学习PCM编码技术的基本原理及语音的A律和u律压缩与解压 2.设计要求及目标 基本部分:

(1)使用DSP实现语音压缩和解压缩的基本算法,算法类型自定,例如可以采用

G.711、G.729等语音压缩算法。

(2)采用A/D转换器从MIC输入口实时采集语音信号,进行压缩后存储到DSP的片

内和片外RAM存储器中,存储时间不小于10秒。

(3)存储器存满之后,使用DSP进行实时解压缩,并从SPEAKER输出口进行回放

输出。

(4)使用指示灯对语音存储和回放过程进行指示。 发挥部分:

使用多种算法进行语音的压缩、存储和解压缩,比较它们之间的优缺点。

3.设计思路

语音信号的幅度(发音强度)并非均匀分布,由于小信号占的比例比大信号大很多,因此可以进行非均匀量化。达到这一目标的基本做法是,对大信号使用大的量化间隔,而小信号则使用小的台阶。ITU-T G.711建议的PCM A律和μ律语音压缩标准可以分别将13比特和14比特压缩为8比特,达到语音压缩的目的。

三、 设计方案、算法原理说明

1.设计方案

本次实验采用DSP C5402实验板实现语音信号的压缩存储与解压的。SEED-VC5402 DSK实验板上集成了SRAM,FLASH,音频输入输出接口等部件。这些外设为我们提供了极大的方便。

信号的接收和输出采用DMA方式,DMA是C5400 DSP系统中非常重要的片上外设,其控制器可以在不影响CPU的情况下完成数据的传输,因此数据传输速度快,其数据的源和目的可以是片内存储器片上外设和片外设备。C5402的DMA拥

3

有6个独立的可编程通道,允许6个不同的DMA操作。另外DMA控制器还相应HPI的服务请求。

语音信号模数、数模转换采用AD50,是单片音频接口芯片(AIC)。它内部集成了16位的D/A和A/D转换器,采样速率最高可达22.05kb/s,其采样速率可通过DSP编程来设置。在DAC之前有一个插值滤波器以保证输出信号平滑和ADC之后有一个抽取滤波器以提高输入信号的信噪比。

在算法上,我们使用A律编码。语音信号的幅度并非均匀分布,由于小信号占的比例比大信号大得多,因此可以进行非均匀量化。达到这一目标的基本做法是,对大信号是用大的量化间隔,而小信号则是用小的量化间隔。ITU-T G.711建议的PCMA律A律语音压缩标准可以分别将13位和14位的线性语音压缩编码压缩为8位,达到语音压缩的目的。

在主程序中通过A/D抽样量化,可以得到16位的线性编码,再由编码表通 过16位线性编码,再由编码表通过软件计算得到8位A律编码。将8位的压缩结果存储到系统RAM中进行缓存,根据抽样率、语音存储时间以及系统RAM的容量设置语音存储缓冲区的大小,待采样达到一定次数后,将缓存区内的数据进行解压缩,然后输出到SPEAKER接口输出端。

2.算法原理说明

1.语音编码.

(1)PCM编码即脉冲编码调制。

波形编码的最简单形式就是脉冲编码调制(Pulse code modulation),这种方式将语音变换成与其幅度成正比的二进制序列,而二进制数值往往采用脉冲表示,并用脉冲对采样幅 度进行编码,所以叫做脉冲编码调制。 脉冲编码调制没有考虑语音的性质,所以信号没有得到压缩。 (2)均匀量化、非均匀量化

脉冲编码调制用同等的量化级数进行量化,即采用均匀量化,而均匀量化是基本的量化方式。如果采用相等的量化间隔对采样得到的信号作量化,那么这种量化称为均匀量化。均匀量化就是采用相同的“等分尺”来度量采样得到的幅度,也称为线性量化。均匀量化PCM就是直接对声音信号作A/D转换,在处理过程中没有利用声音信号的任何特性,也没有进行压缩。该方法将输入的声音信号的振幅范围分成个等份(B为量化位数),所以落入同一等份数的采样值都编码成相同的B位二进制码。只要采样频率足够大,量化位数也适当,便能获得较高的声音信号数字化效果。为了满足听觉上的效果,均匀量化PCM必须使用较多的量化位数。这样所记录和产生的音乐,可以达到最接近原声的效果。当然提高采样率及分辨率后,将引起储存数据空间的增大。

国际上有两种非均匀量化的方法:A律和u律,u律是最常用的一种。在美国,7位u律是长途电话质量的标准。 而我国采用的是A律压缩,而且有标准

4

的A律PCM编码芯片。

(3)PCM的编码规律

PCM: Pulse Code Modulation 脉冲编码调制,一般速率为64kbps,是指对语音信号直接采样量化的一种编码办法,采样速率为8000Hz,每样点用8bit表示。CD 用16bit 44.1kHz采样的PCM。 数字电话用的也是PCM,PCM是非线性编码,根据G.711建议,编码结束后需要做偶数位翻转。即如果编码后结果是 0110 1001 则在发送的时候需要经过偶数位翻转得到: 0011 1100 。PCM码的压缩分a律u律,在中国使用a律。PCM码有很多种,网络上主要有4种:MANCHESTER码,差分Manchester码,AMI码,HDB3码,2B1Q码。分别用于以太网,ISDN,DDN,电话。 2.语音的A律压缩与解压.

统计表明对于每一个讲话者来说,与引种小幅度成分出现的概率要比大幅度多得多,为了在语音信号的整个动态范围内都可以接受低电平信号,量化电平必须照顾到语音的低电平信号,极低电平的量化间隔要小,高电平的量化间隔要大。压缩扩展技术能过借用3种方法实现:

(1)模拟信号在到达ADC前,即进行8比特两花前,首先通过一个非线性电路; (2)使用一个8比特ADC,其内部量化电平取非均等间隔;

(3)使用线性12比特ADC然后借助于数字查表(12笔特输入,8比特输出)。 这三种方法都需要有非线性性功能,差别仅是非线性放在什么地方。

两个标准的压缩扩展特性曲线称为u律和A律,使CCITT提出的G.711协议PCM编码方式的一部分。北美和日本使用u律,欧洲使用A律,两个算法使用了非线性,把量化间隔变换成人耳能检测的线性空间。

A律限制采样值为12比特,A律的压缩可以按照下列公式进行定义:

F(x)?sgn(x)?sgn(x)1?lnAx(1?lnA)Ax(1?lnA)(0?x?1A)

(1A?x?1)式中,A是压缩参数(在欧洲,A=87.6)x是需要压缩的归一化整数。 从线性到A律的压缩转换如下表所示:

压缩后的码字组成:比特0-3表矢量化值,比特4-6表示段值,压缩后的码字符号放在比特7,为了简化未写出. 压缩前的码字 丢弃的比特数 压缩后的码字 输入值 段值,量化值 比特:11 10 9 8 7 6 5 4 3 2 1 0 比特:6 5 4 3 2 1 0 0 0 0 0 0 0 0 a b c d x 1 0 0 0 a b c d 0 0 0 0 0 0 1 a b c d x 1 0 0 1 a b c d 0 0 0 0 0 1 a b c d x x 2 0 1 0 a b c d 0 0 0 0 1 a b c d x x x 3 0 1 1 a b c d 0 0 0 1 a b c d x x x x 5 1 0 0 a b c d 0 0 1 a b c d x x x x x 6 1 0 1 a b c d 0 1 a b c d x x x x x x 7 1 1 0 a b c d 1 a b c d x x x x x x x 8 1 1 1 a b c d 5

本文来源:https://www.bwwdw.com/article/7y3d.html

Top