模拟电路设计 > 详情

基于NS-2的VoIP模拟与仿真

发布时间:2020-07-03 发布时间:
|
随着Internet的迅速发展,网络多媒体的数据传输越来越成为研究热点,其中IP电话系统(VoIP)就是其中一个重要分支[1]。但是由于VoIP要求会话双方要实时传输语音数据,对语音的实时性要求条件较高,而VoIP又是建立在没有QoS保障的UDP/IP协议之上,所采用的语音编码方案一般都是单速率的语音编码方案,如G.729,这就使得传统的VoIP很难适应不断变化的网络资源环境。当网络资源比较充足时,重构后的语音质量还能有一定的保障。但是当网络业务量很大或者当网络发生拥塞时,连续的语音包丢失现象就会很严重,从而导致重构后的语音质量出现急剧下降的现象。虽然国内外学者对此也提出了若干应对策略,如在网络协议方面的呼叫允许控制、资源预留机制(RSVP)协议、差分服务等,但是这些策略在对实时语音起到保障作用的同时,又导致了核心路由器的严重开销,最终使得整个VoIP系统的可扩展性变差。本文提出了一种基于AMR语音编解码算法的新VoIP系统,该系统可以根据网络信道质量的好坏来自适应地选择一种最佳的传输速率,从而使得合成后的语音质量有了更加良好的QoS保障。通过NS-2平台下的仿真,实验结果表明:新VoIP系统在网络延时和数据包丢失率方面均要明显优于采用G.729算法的传统VoIP系统。
1 NS-2和AMR相关技术
1.1 NS-2网络模拟

NS-2(Network Simulator,version 2)是由加州大学伯克利分校开发的面向对象的、离散事件驱动的网络模拟器,主要用于解决网络研究方面的问题,目前NS-2可以用于模拟各种不同的通信网络。它功能强大,模块丰富,已经实现的主要模块有:网络传输协议(如TCP和UDP),业务源流量产生器(如FTP、Telnet、Web、CBR和VBR),路由队列管理机制(如Droptail、FQ、RED和CBQ),路由算法(如Dijkstra),无线网络WLAN、移动IP、卫星通信网络模块、多播协议以及一些MAC子层协议等。
NS-2使用了被称为分裂对象模型的开发机制,采用C++和OTcl两种开发语言进行开发,它们之间采用TclCL进行自动连接和映射。NS-2的模拟可分为2个层次,其中第一个层次是基于OTcl的模拟,主要利用NS-2现有的网络元素来实现模拟,因此无需对NS-2本身做任何修改,只需要编写一个完整的OTcl脚本程序即可;另外一个层次是基于C++和OTcl的模拟,该层次中没有所需的网络元素,因此需要对NS-2进行扩展,添加所需要的网络元素。一般来说,NS-2的模拟需要与NamvNetwork animaterw配合使用。Nam是基于Tcl/Tk的动画演示工具,以把模拟的过程用可视化的方式呈现出来[2]。
1.2 AMR自适应技术的介绍
自适应多速率语音编码(AMR)有8种信源编码模式,2种信道模式(即全速率信道模式和半速率信道模式)以及不同信道模式下所对应的不同信道编码模式。其中,全速率信道模式下所对应的信道编码模式为8种,半速率信道模式下所对应的信道编码模式为6种,每种信道编码模式都有一种信源编码模式与之相对应。此外为了降低算法的复杂度,8种信源编码模式均采用ACELP(Algebraic Code Excited Linear Prediction)模型,不同的只是参量的量化码本和量化比特数。在移动通信中,当信道模式固定后,通过测量归一化的载(载波信号)干(干扰信号)比来估计当前信道的质量,度量级别为4个级别,分别为很差、差、好、很好。如果当前信道质量估计为较好或者好,则降低信道编码速率、提高信源编码速率,以此来提高重构后的语音质量;如果当前信道质量估计为差或者较差,则提高信道编码速率、降低信源编码速率,以此来保障通话质量。所以高模式下的信源编码(如MR122),虽然可以提供优良的语音可懂度和自然度,但是抗噪能力差;而低模式下的信源编码(如MR475),由于多数比特被用作信道编码,因此具有很强的纠错能力,但是重构后的语音质量不佳[3]。
2 AMR算法下的VoIP系统
VoIP传输的基本过程可分为4种:PC-PC模型、PC-Phone模型、Phone-PC模型和Phone-Phone模型[4]。本文中仿真的是Phone-Phone模型,具体过程如图1所示。在该模型中,语音的传输过程可以拆分为2个阶段。第一个阶段,语音数据通过UDP协议打包从源点pc0-T开始发送,通过网关gk0、gk1转发,将语音数据包转发到目的地点pc0-R,从而实现节点0~5之间的语音数据通信;第二个阶段,语音数据通过UDP协议打包从源点pc1-T开始发送,通过网关gk1和gk0转发,将语音数据包转发到目的地点pc1-R,从而实现节点6~1之间的语音数据通信。2个阶段连续的传输过程构成了VoIP中语音数据的基本传输过程。此外,为了更加真实地模拟网络资源的变化,设置了一个pc到pc的网络数据量的传输过程。该过程为:网络数据通过TCP协议打包从源点pc2-T开始发送,通过网关gk0和gk1转发,将网络数据包转发到目的地点pc2-R,从而实现节点2~7之间的网络数据的传输。通过设置不同的网络数据流量可以来模拟当前网络信道质量的好坏,从而为选择不同的AMR信源编码模式做准备。


『本文转载自网络,版权归原作者所有,如有侵权请联系删除』

热门文章 更多
RTL8019AS的串口与以太网接口转换器