ImageVerifierCode 换一换
格式:DOCX , 页数:20 ,大小:771.10KB ,
资源ID:9140127      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/9140127.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(IP电话实时通信的实现课程设计.docx)为本站会员(b****8)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

IP电话实时通信的实现课程设计.docx

1、IP电话实时通信的实现课程设计网络通信程序设计-课程设计报告题 目: IP电话网络通信的设计实现专 业: 计算机科学与技术 班 级: 0312404 姓 名: 孙慧华 高志杰 学 号: 031240420 031240306 指导老师: 贺 刚 2017年 6 月 6 日目 录第一章引言 3 1.1课题背景及意义 3 1.2课题研究现状 3 1.3研究内容 4 1.4论文组织方式 5第二章需求分析 6 2.1功能需求 6 2.2性能要求 7第三章概要设计 8 3.1体系结构设计 8 3.2数据结构设计 10第四章详细设计 11 4.1系统功能模块设计 11 4.1.1 音频输入输出的实现 14

2、 4.1.2 数据的压缩与排序 16 4.1.3 传送和接收 17 4.2用户界面设计 18第五章测试及实现结果分析 19总结及展望 20第一章 引言1.1课题背景及意义IP(Internet Protocol)电话是一种数字电话,是技术创新的一种通信服务业务。它把语音、压缩编码、打包分组、分配路由、存储交换、解包解压等交换处理在IP网或互联网上实现语音通信。它促进了网络资源利用,降低语音业务成本。因此在全球范围内得到了迅速的发展,。IP电话的产生Internet商业化以后,在全世界,特别是发达国家迅速发展起来。在一些国家(如美国)本地电话Internet接入采用包月制,不限时限量,因此Int

3、ernet是近乎免费的(Free)的,人们都希望能通过这近乎免费的网络进行传统的电话和传真服务。1995年2月以色列VocalTec公司研制出可以通过Internet网打长途电话的软件产品Internet Phone。用户只要在多媒体PC机上安装该软件,就可以通过Internet网和任何地方安装同样软件的联机用户进行通话。这项技术上的突破引起全世界的瞩目,其背后的无限商机也使许多公司进行此项技术的研究,从而使IP电话技术得到迅速发展,人们把这种在Internet上实现电话业务称为Internet电话,应该说是IP电话的雏形。经过五年的发展,IP电话成为信息技术进步带来的一项新型电话业务在全世界

4、开展,并对传统电话业务形成越来越大的威胁。IP电话从当初的PC到PC发展到今天的PC到PC、PC电话、电话到电话等多种业务形式,但不论是现在还是将来,IP电话可以说是当今世界上发展最快、普及最快的一门应用服务技术之一,也是计算机网络界关注的热点之一。1.2课题研究现状H.323是IP电话所遵循的标准,而H.323标准首选语音编码器是ITU-T G.729.A。ITU-T G.729.A标准采用一种称为共轭结构代数码本激励线性预测(Conjugate Structure Algebraic-Code-Excited Linear-Prediction,CS-ACELP)算法来对语音信号进行编码。

5、在开始编码之前,先要对输入的模拟信号进行电话带滤波,然后以8kHz频率对其进行采样,再将其转换为16位线性PCM码,作为编码器的输入。编码器处理语音的单位是帧,1帧为10毫秒语音,包括80个声音样本(采样频率为8kHz)。编码器对每一帧语音信号进行分析,抽取出其中的CPLD模型的参数(线性预测滤器参数),自适应和固定码本索引和增益),对这些参数进行编码和传送。但是该编码器算法复杂,一帧语音处理延迟较大,很大程度上影响了IP电话网关处理密度。 1.3研究内容20世纪90年代以来,以Internet为代表的计算机网络技术发展突飞猛进,促进了计算机网络在社会各个领域的广泛应用,而针对G.729的研究

6、和优化一直从未停息。例如:为了提高IP电话网关的处理密度,在实现ITU-T G.729.A语音编解码器时,采用了目前性能最好的DSP,即TMS320C6201;针对TMS320C6201并行性和流水等特点,归纳出了一系列减少编解码器处理延迟的优化方法本文是基于G.729.A协议,采用C+语言实现实时通信,并未针对G.729.A协议进行有话改进,因为本人技术,只是领域达不到那么高的层次,在结果中会对本人基于G.729.A实现的实时通信和从网络上找到的基于TMS1.4论文组织方式 首先,本论文从目前IP电话的产生开始,详细研究了本课题的背景以及意义,由于目前我国的通信分别掌控的移动,联通,电信三大

7、巨头手中,而通信费用一直是国人所普遍关注的话题,虽然目前位置,通信费用有所改善,但依旧是一个令人无奈的地方,所以本人想就这个现状,深入了解IP电话的实现原理,实现机制,能够在未来开发属于自己的网络电话,做到真正的零费用。 其次,在对本论文的背景有所了解的情况下,对本课题所必须的ITU-T G.729.A编解码器实现的关键技术进行了介绍,主要是G.729.A协议编解码算法介绍,G.729.A编解码器的实现。 最后,在对所必须得基础知识有所了解的情况下,按照各模块的功能,分别详细介绍了各个功能的实现过程。第二章 需求分析2.1功能需求随着个人计算机和互联网的普及,越来越多的人开始使用网络这个媒介来

8、发送,接收信息,计算机网络给人们生产和生活带来了巨大的便利,网络语音通信IP电话应运而生,主要分为三种:电话到电话,PC到电话,PC到PC,本功能选取PC到电话为实现方案,即:实现PC到电话的网络语音通信。 系统用例图:能够实现公用交换电话网络(PSIN)中的普通电话相互通话(需要网络环境配合)或与其他的兼容IP 电话或应用程序通信。2.2性能要求(1)拨打电话:要求用话机拨打电话,用下列任意一种方式呼叫 提起话筒或按免提键,拨号盘上直接呼出 按电话簿键选择号码呼出 按Redial键选择呼出最近一次已拨打号码呼出(2)接听电话 响铃,显示号码或者IP地址 提起话筒或者免提键接听 可以拒绝接听(

9、3)静音或者保留 通话过程中按相应键第三章 概要设计3.1体系结构设计一个成功IP电话的实现是个复杂的过程,我只针对G.729实现通信,其主要的体系结构如下图: 其中用了一个tcp连接,表示双方连通没有,用udp发送语音数据,发送端表明了发送顺序,接收端重排了顺序。3.2数据结构设计1. TCP包结构TCP协议是网络中应用最为广泛的协议,许多的应用层协议都是在建立在TCP协议之上的。TCP首部的各字段如图4.2所示4。图4.2 TCP数据在IP数据报中的封装TCP协议头部信息如下:(1)源端口:发送端TCP端口号;(2)目的端口:接收端TCP端口号;(3)序号:指出段中数据在发送端数据流中的位

10、置;(4)确认号:指出本机希望下一个接收的字节的序号;(5)头标长度:以32bit为单位的段头标长度,是针对变长的“选项”域设计的;(6)码位:指出段的目的与内容,不同的各码位置位有不同的含义;(7)窗口:用于通告接收端接收缓冲区的大小;(8)校验和:这是可选域,置0表示未选,全1表示校验和为伍;(9)紧急指针:当码位的URG置位时,指出紧急指针的序号。 2. UDP包结构UDP协议是英文User Datagram Protocol的缩写,即用户数据报协议,主要用来支持那些需要在计算机之间传输数据的网络应用。包括网络视频会议系统在内的众多的客户/服务器模式的网络应用都需要使用UDP协议。UDP

11、协议从问世至今已经被使用了很多年,虽然其最初的光彩已经被一些类似协议所掩盖,但是即使是在今天,UDP仍然不失为一项非常实用和可行的网络传输层协议。UDP数据报各域的意义与TCP段中相应的域相同。只有校验和有些不同,除UDP数据报本身外,它还覆盖一个附加的“伪头标”。这个伪头标来自于IP报头,包括:源IP地址、信宿IP地址、协议类型、UDP长度及填充域。UDP首部的各字段图4.3所示。图4.3 UDP首部UDP协议头部信息如下:(1)源端口:发送端UDP端口号;(2)目的端口:接收端UDP端口号;(3)头标校验和:用于保证头标数据的完整性。第四章 详细设计4.1系统功能模块设计通过前面的叙述可以

12、知道,这款软件唯一的功能就是基于网络实现语音通信。本系统包括三个基本模块,音频的输入输出,接收与发送,数据压缩与排序而这三个模块整合起来就是网关。网关是通过IP网络提供PC-to-Phone、Phone-to-PC、Phone-to-Phone语音通信的关键设备,是IP网络和PSTN/ISDN/PBX网络之间的接口设备,应具有下列功能:a具有IP网络接口和与PSTN/ISDN/PBX交换机互联的接口;b完成实时语音压缩,将64kbit/s的语音信号压缩成低码率语音信号;c完成寻址和呼叫控制。下面我给出借口的部分代码:连接和启动的借口:4.1.1 音频输入输出的实现下面给出其主要过程:音频的输入

13、描述封装 wavein api 只使用了 pcm 方式 只使用 函数回调方式 所有的设置属性的函数只应在录音前使用,否者会在下次录音时才生效 应该重载 virtual void GetData(char *pBuffer,int iLen); 注意 对于 StartRecord 中的PerPareBuffer() OpenRecord()是乎应该同时调用, 要么就都不调用,其原因好象是 waveInAddBuffer 之后必须 使用saveInStart 否则好象不能关闭设备 SIZE_AUDIO_FRAME 是 160 倍数 SIZE_AUDIO_PACKED 是 对应的输出 为 SIZE_

14、AUDIO_FRAME / 160 * 10 关闭的时候注意,在closerecord后有可能线程中还有数据到来,导致关闭不正确,所以关闭的时候sleep(1000),详细原因我也不太清楚 依赖性 Winmm.lib 主要代码中的方法:如线程创建音频的输出: 描述 封装 waveout api 只使用了 pcm 方式 注意 PLAY_DELAY 10 /播放时候的延迟,大于它,说明有PLAY_DELAY个包没有播放完成,后面的包不应再播放 依赖性 Winmm.lib 主要代码中的方法:如线程创建4.1.2 数据的压缩与排序依据流程图我们可知,在数据压缩之后会有发送,经过一系列转化后另一方接收,

15、最后是排序。这里我把压缩和排序放在一起音频压缩:部分代码排序数据: 部分代码4.1.3 传送和接收 1音频的传送 在压缩之后进入发送接收 发送的客服端: 部分代码4.2用户界面设计用户界面第一行为对方IP地址,发送按钮第二行连接按钮,断开按钮,接收按钮第三行为信息提示,如图所示:第五章 测试及实现结果分析采用二种测试工具对G.729.A编解码器的处理延迟作了测试。第一种测试工具是C6X Simulator(TMS320C6201的仿真软件),测试条件是假设所有代码装在TMS320C6201片同的程序存储器中;因此,称之为Non cache测试模式。另外一种测试方式是采用TI公司的C6X的EVM

16、卡(评估卡),测试条件是将TMS320C6201片内64KB RAM作为Cache使用;因此称之为cache模式。二种测试模式的测试结果如下所示。测试项目C6 仿真器(非缓冲模式)C6 评估板(非缓冲模式)编码(每帧)86720 cycles91650 cycles解码(每帧)34120 cycles37310 cycles从表可以看出,如果TMS320C6201工作在频率为200MHz,即每Cycles的周期为0.5毫秒,可以算出G.729.A编码一帧(30毫秒)的延迟时间是0.430.46毫秒。因此说,单片TMS320C6201可以同时处理大约20路G.729.A编码(当前国际最高水平是2

17、2路);而且,编解码的结果都严格地通过了G.729.A提供的测试矢量的测试,实际播放音质也很好。ITU-T G.729.A语音信号压缩编解码技术集成了众多低速率语音编解码的优点,大大提高了低速率编解码的语音质量,但算法较复杂。而TMS320C6201 DSP是目前最快的定点数字信号处理器,如果在编写程序时,能充分利用上述关键技术,就可以充分发挥TMS320C6201的功能,大大减少G.729.A编解码的处理延迟,并能保持良好的语音品质。将该编解码应用在该IP电话网关中,在很大程度上提高了IP电话网关处理密度,改善了IP电话网关的性能。因此说,本文实现的G.729.A编解码器有很大的应用价值。总结及展望IP电话的实现最为重要的音频的发送和接收处理,这其中包括音频的编解码,音频质量优化等等,对于G.729.A协议的研究从未停止过,许多的人为了改进算法奋斗终生,但是G.729.A的算法本身就很复杂,优化改进的事情我无从下手,所以我还是基于在原本的G.729.A协议上进行实时通信的开发,但算法依然不是我设计的,算法的知识和代码都是参考网络。总之在这次编程的过程中,本人查阅了大量的书籍资料,也包括网络上的实例代码等。由于时间和技术等多方面因素,代码不是优化的但收获颇多。

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1