资源预览内容
第1页 / 共38页
第2页 / 共38页
第3页 / 共38页
第4页 / 共38页
第5页 / 共38页
第6页 / 共38页
第7页 / 共38页
第8页 / 共38页
第9页 / 共38页
第10页 / 共38页
亲,该文档总共38页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
专业专业仿真仿真课课程程设计设计题目: 语语音信号音信号压缩编码压缩编码的的实现实现1目录目录一、相关知识综述 .21.1 理论知识 .21.2 编程工具 MATLAB 简介.31.3 主要函数介绍 .31.3.1 主要函数一 数组与矩阵.31.3.2 主要函数二 读写数据函数.4二、设计过程 .52.1 设计方案(G.721 ADPCM 标准语音压缩编码设计).52.2 方法流程 .52.3 程序清单及注释.7主程序 .7语音编解码子函数程序 adpcm.m.8自适应速度控制与自适应预测子函数 Alk_com.m.10采样值与其估计值差值计算奇函数 Dk_com.m.10自适应逆量化器输出子函数 Dqk_com.m .11自适应预测中 f 函数值计算子函数 f_com.m .12速度控制中 FI(k)计算子函数 fi_result.m.12自适应量化并编码输出子函数 Ik_com.m.12自适应预测子函数 Sek_com.m.14重建信号输出子函数 Srk_com.m.152.3.1 主要子程序 1(语音编解码子函数程序 adpcm.m) .172.3.2 主要子程序 2(自适应量化并编码输出子函数 Ik_com.m).172.3.3 主要子程序 3(自适应预测子函数 Sek_com.m) .182.3.4 主要子程序 4 (量化器标度因子自适应 wi 的选取子函数 wi_result.m) .182.3 实验结果及分析 .20三、团队情况 .25四、总结 .26参考文献 .2623一、相关知识综述随着通信、计算机网络等技术的飞速发展,语音压缩编码技术得到了快速发展和广泛应用,尤其是最近 20 年,语音压缩编码技术在移动通信、卫星通信、多媒体技术以及 IP 电话通信中得到普遍应用,起着举足轻重的作用。1在实际的语音通信中,有些信道难以扩宽且质量很差;有些信道正被广泛使用,短期内难以更新;有些昂贵的信道,每压缩一个比特都意味着节省开支。因此,语音压缩编码无疑在语音通信及人类信息交流中占有举足轻重的地位。语音编码就是将模拟语音信号数字化,数字化之后可以作为数字信号传输、存储或处理,可以充分利用数字信号处理的各种技术。2为了减小存储空间或降低传输比特率节省带宽,还需要对数字化之后的语音信号进行压缩编码,这就是语音压缩编码技术。ADPCM 压缩算法 ,ADPCM(Adaptive Differential Pulse Code Modulation),是一种针对 16bits( 或 8bits 或者更高) 声音波形数据的一种有损压缩算法。它将声音流中每次采样的 16bit 数据以 4bit 存储,3所以压缩比 1:4. 而且压缩/解压缩算法非常简单,所以是一种低空间消耗,高质量高效率声音获得的好途径。保存声音的数据文件后缀名为 .AUD 的大多用 ADPCM 压缩。MATLAB 是 MathWorks 公司开发的一套高性能的数值计算和各种专业工具箱。它基于矩阵运算,4集数值运算、图形显示、图形界面设计等功能和模糊逻辑等 30 多个专业工具箱于一体,具有极强大的计算功能和极高的编程效率,特别适合科学计算、数值分析、系统仿真和信号处理等方面的工作,对其他学科的学习有重要影响。1.1 理论知识最简单的脉冲编码调制(PCM) ,即线性 PCM,对语音作数模变换后再由低通滤波器恢复出现原始的模拟语音波形。5在数据率为 64Kbps 的时候,重构话音质量几乎与原始的话音信号没有什么差别。在 PCM 的调制过程中,将输入的模拟信号进行取样,量化和编码。这种方法通过用脉冲编码来代表取样后的模拟信号幅度,即用二进制的大小来代表取样后的信号幅度。在接收端再将这些编码的二进制数还原为原来的模拟信号。4自适应差分脉冲编码调制(Adaptive Differential Pulse Code Modulation 简称为 ADPCM)利用预测编码来压缩数据量。6它结合了 ADM(自适应增量调制)的差分信号与 PCM(脉冲编码调制)的二进制码的方法,是一种性能比较好的波形编码。它的核心想法是:利用自适应的思想改变量化阶的大小,即使用小的量化阶(step size)来编码小的差值,使用大的量化阶来编码大的差值。使用过去的样本值来估算下一个输入样本的预测值。1.2 编程工具 MATLAB 简介MATLAB 是一个高级的矩阵(阵列)语言,7它包含控制语句、函数、数据结构、输入输出和面向对象编程特点。用户可以在命令窗口中将输入语句与执行命令同步。也可以先编好一个较大的复杂的应用程序(M 文件)后再一起运行。新版本的 MATLAB 语言是基于最为流行的 C+语言基础上的,因此语法特征与 C+语言极为相似,而且更加简单,更适符合科技人员对数学表达式的书写各式。1.3 主要函数介绍MATLAB 具有强大、丰富的内置函数,以及高度灵活的可编程性,所以特别适合数据处理以及结果的图形化显示。由于其函数种类较多,故此处选取此次设计中应用到的常用函数加以介绍。1.3.1 主要函数一 数组与矩阵数组或矩阵是 MATLAB 最基础的内容之一,几乎所有的数据都是用数组的形式进行存储的,这就是 MATLAB 又被称为矩阵实验室的原因。8创建数组是所有 MATLAB 运算和操作的基础。数组分为一维数组、二维数组和高维数组;针对不同维数的数组,MATLAB 提供了多种创建方法,此次设计中使用一维数组较多,所以主要叙述一维数组的定义使用。 (1)直接输入法使用分号,创建一维列数组,如:D1=pi;log(5);7+2;23使用空格,创建一维行数组,如:D2=pi log(5) 7+2 23。(2)步长生成法5采用通用格式 a:step:b。其中 a 表示数组中的第一个元素;step 表示数组的间隔,即步长;b 表示数组的最后一个元素。如果省略 step,默认值为 1;如果 step 是正数,必须满足 ab。如;D3=1:2:10 D3= 1 3 5 7 9D4=1:10 D4= 1 2 3 4 5 6 7 8 9 10(3)定数线性采样法在设定了总个数的条件下,均匀采样分布生成一维行数组。采用通用格式:x=linspace(a,b,n)其中 a、b 分别是数组
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号