基于MATLAB的语音信号PCM编译码实现

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

-1-论文编码:(小四号楷体居右)首都师范大学本科生毕业论文(设计)基于MATLAB的语音信号PCM编译码实现TheimplementationofPCMCodingandEncodingofSpeechSignalBasedonMATLAB院系物理系专业光电信息年级2010级学号1100600113指导教师何敬锁论文作者童刚完成日期-0-首都师范大学本科生毕业论文(设计)原创性承诺书论文(设计)题目基于MATLAB的语音信号PCM编译码实现学生姓名童刚专业光电信息学号1100600113完成时间年月日~年月日指导教师姓名何敬锁职称副教授承诺内容:1、本毕业论文(设计)是学生在导师的指导下独立完成,凡涉及其他作者的观点和材料,均作了注释,如出现抄袭及侵犯他人知识产权的情况,愿按学校有关规定接受处理,并承担相应责任。2、学校有权保留并向上级有关部门送交本毕业论文(设计)的复印件和磁盘。备注:学生签名:时间:说明:学生毕业论文(设计)如有保密等要求,请在备注中明确,承诺内容第2条即以备注为准。-1-中文提要本设计主要内容是使用MATLAB模拟仿真语音信号的PCM编译码。本设计使用的工具是MATLAB,因为MATLAB是流行于科学计算的软件工具,在数学类科技应用软件中首屈一指,在信号处理方面功能强大。现在的数字传输系统都是采用脉冲编码调制(PCM)体系,是一种对连续变化的模拟信号进行抽样、量化和编码产生数字信号。首先介绍了MATLAB与PCM,模拟信号的抽样、量化、编码和译码原理,然后完成这四个过程的系统设计,最后使用MATLAB进行模拟仿真,并对其结果进行分析总结。在本设计中,采用A率13折线法对已抽样在时间上离散的模拟信号进行量化,然后使用自定义的编码函数和译码函数对量化电平进行编译码,后经过滤波器得到还原的模拟信号,完成语音信号PCM编译码系统。关键词:MATLAB;A率;PCM;编译码-2-AbstractThemaincontentofthisdesignisimplementationthePCMcodecofspeechsignalbasedonMATLAB.ThetoolusedinthisdesignisMATLAB.MATLABisapopularsoftwareforscientificcomputing.ItisagreattoolinMathandapowerfultoolinsignalprocessing.Thesignalindigitaltransmissionsystemsaremostlycodingbypulsecodemodulation(PCM)atthistime.PCMisawaytoconverttheanalogsignalintodigitalsignalbythreesteps:sampling,quantization,andcoding.Firstlyinthispaper,itwillintroducetheMATLABandPulseCodeModulation.TheprincipleofSampling,Quantization,Coding,andDecodingwillbeshown.Thenitwilldesignthewholesystem.Finally,accomplishthesimulationofthesysteminMATLAB.And,quantifybyAlawof13linesmethod,codingandencodingbyuser-definedfunctions,recoverthesignalwithfilter.Keywords:MATLAB;Alaw;PCM,Codec-3-目录第1章MATLAB及PCM简介………………………………………11.1MATLAB介绍………………………………………………11.2PCM介绍…………………………………………………1第2章设计原理…………………………………………………22.1抽样………………………………………………………22.2量化………………………………………………………22.2.1均匀量化……………………………………………22.2.2非均匀量化…………………………………………22.3编码………………………………………………………32.4译码………………………………………………………4第3章MATLAB程序设计…………………………………………53.1流程图设计……………………………………………53.1.1系统主程序流程设计…………………………53.1.2PCM编码程序流程设计…………………………53.1.3PCM译码程序流程设计…………………………53.2Simulink仿真设计………………………………………63.2.1系统主程序设计…………………………………63.2.2PCM编码模块设计………………………………83.2.3PCM译码模块设计………………………………10第4章系统仿真的结果及其分析………………………………124.1正弦信号的仿真及结果分析…………………………124.1.1仿真……………………………………………124.1.2结果分析………………………………………144.2UniformRandomNumber信号的仿真及结果分析……14参考文献………………………………………………………18致谢……………………………………………………………18-1-第1章MATLAB及PCM简介1.1MATLAB介绍MATLAB是MATrixLABoratory的缩写,是一款由美国MathWorks公司出品的商业数学软件。MATLAB是一种用于算法开发,数据可视化、数据分析以及数值计算的高级技术计算语言和交互式环境。除了矩阵运算、绘制函数/数据图像等常用功能外,MATLAB还可以用来创建用户界面及与调用其他语言(包括C、C++和FORTRAN)编写的程序。MATLAB还有为数众多的附加工具箱,以使MATLAB适合不同领域的应用,例如图像处理、信号处理与通信等。此外,还有一个配套软件包Simulink,提供一个可视化开发环境,常用与系统模拟、动态、嵌入式系统开发等方面。在本设计中,主要是应用Simulink搭建系统,用MATLAB编写编码函数和译码函数。1.2PCM介绍PCM全称为:PulseCodeModulation,中文名为脉冲编码调制。是一种模拟信号的数字化方法。PCM信号是模拟信号经过抽样、量化、编码三个步骤而产生的。抽样,就是按照一定的规律从模拟信号中获取一定数量的取样信号。通常按照抽样定理确定抽样频率𝑓𝑠,即抽样频率𝑓𝑠应不小于信号最大频率𝑓𝐻的2倍。量化,就是把抽取出来的取样信号按一定规律使之在信号幅值上离散。一般分为两种方法:均匀量化和非均匀量化。本设计中采用非均匀量化中的A率13折线法进行量化。编码,就是把经量化的量化电平通过一定的方法转化为二进制码。此二进制码有两种形式:自然二进制码,折叠二进制码。由于折叠二进制码可用于双极性电压编码,而且较前者在小电压处误码影响更小。而在语音传输中,语音信号出现小电压的概率大,故本设计中使用折叠二进制码进行编码。-2-第2章设计原理2.1抽样(Sampling)所谓抽样,是指对在时间上连续的模拟信号按照一定的方法取得一部分模拟信号的数据。通常是等间隔地抽取信号瞬时幅度值,获得在时间上离散的模拟信号。理论上,抽样的过程可以看作是周期性单位冲激脉冲与模拟信号相乘,得到与脉冲信号等周期,幅值为该时刻模拟信号的幅值与脉冲信号幅值的乘积。但实际上,使用周期性窄脉冲代替冲激脉冲与模拟信号相乘。用获得的在时间上离散的模拟信号,在一定的条件只下,我们可以恢复原始的模拟信号。该条件就是满足抽样定理。即若一个连续的模拟信号m(t)中的最高频率小于𝑓𝐻则以间隔时间T≤12F的周期性冲激脉冲对它抽样时,m(t)将被这些抽样值所完全确定。也就是说恢复原信号的条件是:𝑓𝑠≥2𝑓𝐻即抽样频率𝑓𝑠应不小于𝑓𝐻的2倍。这一最低抽样速率2𝑓𝐻称为奈奎斯特(Nyquist)速率。与此相对应的最大抽样间隔称为奈奎斯特间隔。2.2量化(Quantization)经过抽样后信号成为在时间上离散的信号,但由于在幅值上是非离散的,故该信号仍称为模拟信号。为了将该模拟信号变为数字信号,需要通过一定的处理,使其在幅值上离散。此过程称为量化。在不同的需求下,量化的方法不同。一般分为两大类:均匀量化和非均匀量化。2.2.1均匀量化均匀量化是指,将模拟信号取样值的取值范围等间隔地划分为若干个区间,每个区间对应一个量化电平。如:信号幅值范围为[a,b],若划分为两个区间,则为[a,(a+b)2],[(a+b)2,b]。每个区间取不同的量化电平值。一般为区间中点所对应的电平值。2.2.2非均匀量化在非均匀量化时,量化间隔随信号取样值得不同而变化的。通常先对信号取样值进-3-行压缩处理,再进行均匀量化为了让不同的信号强度保持信号量噪比恒定,在理论上要求压缩特性满足:y=1+1𝑘ln(𝑥);(𝑘为比例常数)但是由于此公式在x=0时,y=−∞。因此应当对该公式进行修正,使之当x=0时,y=0。国际电信联盟(InternationalTelecommunicationUnion,ITU)制订了两种建议:A压缩率和μ压缩率,以及相应的近似算法:13折线法和15折线法。我国则采用A率13折线法。A压缩率是指符合下式的对数压缩规律:y={Ax1+𝑙𝑛𝐴,0x≤1𝐴1+𝑙𝑛𝐴𝑥1+𝑙𝑛𝐴,1𝐴≤x≤1式中:x为压缩器归一化输入电压,y为压缩器归一化输出电压,A为常数,它决定压缩程度。一般A取87.6。下面表格是A率(其中A=87.6)与13折线法的比较:表1:A压缩率(A=87.6)与13折线法的比较I876543210A率的x值01/1281/60.61/30.61/15.41/7.791.3.931/1.98113折线法的x=12𝑖⁄01/1281/641/321/161/81/41/21由上表可知,13折线法与A=87.6时的A率十分接近。2.3编码(Coding)经过量化后信号变成了离散的数字信号,接下来就是对该信号进行编码。最常用的编码是将其转化为二进制信号,也就是所谓的脉冲编码调制(PulseCodeModulation,PCM)。对于PCM编码来说,有两种编码方法:自然二进制码和折叠二进制码。后者可用于双极性电压编码,而且较前者在小电压处误码影响更小。而在语音传输中,语音信号出现小电压的概率大,故使用折叠二进制码进行编码。在这里,将采用十三折线法、折叠二进制码。首先将电平范围按十三折线法分成13段。然后每段都均匀量化,且每段16个量化间隔。在十三折线法中的折叠码共有8位。第一位c1表示量化值的极性正负(即符号位),第二位至第四位即c2𝑐3𝑐4用于表示所在段-4-落号(即段落码),后面四位c5𝑐6𝑐7𝑐8表示所在段落的16个量化电平(即段内码):表2:段落码、段内码的确定段落码段内码段落序号段落码c2𝑐3𝑐4段落范围量化间隔段内码c5𝑐6𝑐7𝑐8量化间隔段内码c5𝑐6𝑐7𝑐88111[1024,2048)151111701117110[512,1024)141110601106101[256,512)131101501015100[128,256)121100401004011[64,128)111011300113010[32,64)101010200102001[16,32)91001100011000[0,16)81000000002.4译码(Decoding)经过以上步骤,原模拟信号已经处理成二进制信号,每个量化电压都转换为8位二进制码。译码就是将这些8为二进制码还原成十进制的量化电压。其步骤正好与编码相反。-5-第3章MATLAB程序设计3.1流程图设计3.1.1系统主程序流程设

1 / 23
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功