开发通信标准是一件日趋复杂的工作。由于成本、复杂性和专业知识要求等因素的影响,现在的通信标准多数是依靠某些联盟或协会来进行开发,而这种方式容易带来一些问题。 在一些因素的驱动下,从1980年开始人们就尝试使用联盟的方法来开发新的通信标准。技术复杂度是其中一个关键的因素,存在于系统级和算法级开发阶段。每一个新标准带来的技术复杂度都呈现出数量级递增的趋势,远远比旧标准要复杂的多。导致的结果是开发成本也在大幅度地增加,多数情况下都超出了一个公司能够承受的限度。不断增长的规模和复杂程度也意味着需要越来越多的公司提供高水平的专业技术支持。由于目前多数通信标准瞄准的是国际市场,那么就会有很多来自不同国家的公司同时进行这些标准的技术调整和市场开发工作。 从本质上说,通信标准的开发需要一个很快捷的方式来完成。当联盟对标准每做一次改动时,相应的实现模型就必须迅速进行更新,然后再重新运行。联盟成员越多,就意味着改动也会越多。传统的开发方式是利用c语言来构建模型,这种方式不适用于快速和反复性较强的开发过程。基于模型的开发流程提供了一个新的通信标准开发流程,用户在层次化、模块化的环境中构建自己的系统模型,便于更新和调试,大大减少了开发时间。 传统方法的缺陷 在传统的通信标准开发方法中,各种参数指标定义在文本中,开发人员根据这些文本来手工编写c代码,循环验证各种参数指标、评估系统的性能。通常情况下,为了测试部分系统的性能指标,开发人员需要对整个系统进行建模,包括移动单元、基站、信道等;然后,对不同的算法和子系统进行比较和测试,寻找出最优的实现方法。联盟中所有的成员共享相同的指标定义文本,但是却使用不同的系统模型来验证通信标准。 对于通信系统仿真工作来说,c语言开发环境是一个“低产出”的仿真环境。它缺少内部机制来实现和连接并行处理算法,这个缺陷导致无法仿真基于帧的多速率系统;进行c语言编程时,开发人员必须要掌握一些底层级(low-level)的开发技巧,比如指针和分号的操作,而不是使用高级(high-level)的编程方法;另外,c语言环境不提供面向信号处理的专业算法库,比如滤波器、信道模型、信道编码、源编码等;最后,在一个c语言算法中,不能同时实现时域和频域rf行为级仿真的功能。 通信标准开发过程的协作性较强,使得c语言开发的缺陷更加突出。通常情况下,标准联盟中的一个团体邀请其他成员递交一些技术上的新成果,以促进新标准的产生。当公司x递交了自己的新成果之后,公司y就会检查和确认这个结果。联盟中所有成员投票以决定新标准是否能够生成。决议通过之后,其它公司便开始纷纷对这些新技术进行研究并更新和修改已有的算法模型。整个标准的开发过程被分配到了不同的开发团队中,以确保一个相对持续的变化状态。这样的开发过程如果用c语言来进行实现,将会是一件困难和耗时的事情。 转向基于模型的设计流程 今天,越来越多的系统设计人员开始利用基于模型的设计流程来快速开发新的通信标准算法。 基于模型的设计流程使用的是框图化开发环境,开发人员利用这个环境中提供的模块来构建自己的算法和子系统,并最终实现整个系统的可执行模型。基于模型的设计流程,其成功的关键在于为用户提供了预开发的通信算法模块库,包括卷积器、交织器、调制器,扩频器、扰频器以及用于可视化分析的ber图、星座图、眼图等模块,开发人员可以方便把这些算法模块拖放到自己的模型中,通过连接来快速地构建自己的系统模型。 然而,并不是所有的通信算法在模块库中都有对应的预开发模块,这时,用户可以用c语言或是其它语言来开发自己的新模块,通过标准化的接口方式加入到已有的模块库中,实现与其他开发人员的共享。 每一个算法模块都带有若干参数,用户可以通过模块的图形界面来修改这些参数。比如一个多途信道模块,用户可以在多个信道模型算法中进行挑选。 框图化开发环境带来的另一个好处就是提供了内嵌的调度程序和求解器(solver)。这个好处方便用户实现包含有多速率处理方式(比如umts)的通信标准,或是实现模拟系统的仿真。如果用c语言来实现这些求解器,或者开发一个c语言的多速率模型,将会耗费大量的开发资源,是一件难度很大的事情。 &n