三阶互调的算法

合集下载
相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

在移动通信领域内,频率规划是很重要的项目之一。频率规划的正确与否直接影响到工程完工之后实际的通信质量。在多信道的共用系统中,因为多个信道的同时工作,必然要产生相互干扰,为了减少频率之间的相互干扰的程度,就应该选取一些适当的频点,选用无三阶互调的频点就能够有效的抑制频率间的干扰。

三阶互调是由电路的非线性产生的三次项,在频率上满足:

Fi-Fj=Fj-Fk(两信号三阶互调)

Fi-Fj=Fk-Fl(三信号三阶互调)

三阶互调的意思是,只要有几个频率满足以上的关系,相互间就会构成干扰,比如在两信号的三阶互调中,Fi=2Fj-Fk,若由Fj和Fk产生的新的频率Fi落在本系统或其他系统工作的频率或通带上,就会对系统的通信造成干扰。无三阶互调就是要取出一组满足频率要求的点,使这些点的任何组合都满足Fi-Fj≠Fj-Fk,Fi-Fj≠Fk-Fl。

在一组数的范围内取出无三阶互调的点,我们可以考虑几种算法。第一种是:先将所有的组合求出,然后依照无三阶互调的条件进行判断,取出所有满足无三阶互调的组,然后依照附加条件(比如信道间隔)进行挑选;第二种是:先依照附加条件选择信道组合,再将程序求出的组合进行无三阶互调比较和判断,最终求得满足的解。

在判断无三阶互调的条件时,将每两个元素进行循环比较的方法显得过于繁杂,一般采用差分三角形法。

这个例子是取5个无三阶互调的点,取出的组(1,2,5,10,12)(引自《移动通信工程》,人民邮电出版社316页,表5-5)满足无三阶的条件,约束条件为信道间隔≥1,由这个数组可以计算出上面的差分三角矩阵。验证无三阶互调的方法是:只要这个三角矩阵中的元素不重复,则这个数组本身就满足无三阶互调。由于矩阵本身并不会很大,可以用多重循环形成差分三角形,再进行矩阵元素之间的比较。

在具体编程描述时可以考虑选用C语言或专用数学工具Matlab或者Mathematic。考虑到在求解较大型的无三阶互调组时,用C语言描述的工作量过大,牵涉到矩阵运算的循环次数过多,编程繁杂难以实现,且难以维护,故选用Matlab,Matlab以其矩阵运算的效率而闻名。

在编程的实现上,Matlab提供了很多的可以供使用的函数,这方便了我们的编程过程。对于第一种算法,COMBNK(n k)函数可以生成在n个元素里每次取出k个元素的所有组合,使用此函数很快就能获得所有组合,然后能对每一种组合求得差分三角矩阵,进而求出我们需要的无三阶互调组,这种方法在求得维数较低的无三阶互调数组时易于使用。例如在取数范围<56时使用比较方便,在CPU主频为2G的情况下,15分钟左右能求出结果,无三阶互调组的维数为7(不加任何限定条件);但是当数组变大的时候就不再适合了,此时生成矩阵的规模成几何级数增长,当要在100个点中取出维数为10的组时,有1.7310e+013种组合,这在生成矩阵的时候是不可实现的,因为Matlab不允许对默认的存储变量的大小进行修改,每个变量用8个字节来表示,那么要求系统存储矩阵的容量不能低于1.3848e+005GBytes,这在物理上也是不可行的,最终因耗尽内存而不能继续。这时应该作出在系统内存和CPU占用率上的取舍。故比较合理的解决方案是采用第二种算法。

第二种算法是将所需要的前提条件放在循环生成数组矩阵的约束条件内,尽管使用多重循环会占用大量CPU时间片,但是却大大的节省出了内存,每生成一个符合附加条件的数组后就立即进行三角矩阵的运算和无三阶条件的判断,这样的确会降低求解的速度,但是目前CPU的运算速度比较快,相比之下内存就要珍贵的多。在取数范围<56时,大概20分钟左右能计算出正确的结果,经过验算,用此方法求得的无三阶互调组,都能够和《移动通信工程》(人民邮电出版社)提供的无三阶互调的频道序列相符。当取数范围为120,维数为8,频点间间隔不小于10时,求出第一组满足条件数的时间大概在1小时左右,为(1,11,22,34,47,61,76,92),若需要几组频率,则可以使用简便的方法。但当维数取到10以上的时候,运算的复杂度也是几何级数的增加,其运算时间以天计。当求满足条件的组合时,将组合的第一个数设置为1即可,因为若第一个数大于1时可以求得结果的话,那么当第一个数为1时也有解(相应地在解出的组中都减去一个相同的数),这样能相对减少一些计算时间。

上面提供了两种无三阶互调的算法,可以因实际情况不同而取舍,在维数较小的时候可以使用前者,编程比较简单,运算速度较快;在维数较大的时候,第一种算法基本不能使用,应采用第二种算法,并且采用高性能的计算机。

鉴于对每次不同的要求都需要单独求出符合条件的解,使得重复计算量很大,我们可以构造一个分组号码表格以供查询。如对于120选8,若对信道间隔没有特别苛刻的要求,一般可以构造出12组,每组信道间隔不小于6,并且用到了96个频点,信道利用率极高;相应地,可以由120选8的表观察出103选7,也能极大地利用频点。但是这种方式也不能表达出全部的无三阶互调组,而且对信道间隔也只能在排表时估算,这是一大缺点。信道安排的效果如下表:

构造上表的原理:假设求得的无三阶互调组为(i,j,k,l,m,n,o,p),为了极大限度地利用频道资源,为组中每个变量(从i到p)划分出取值范围,如上表将120个频点均匀地分成8份,每个变量可以取15个值(例如i可以从1取到15),然后在这种约束条件下运用第二种算法进行判断,每判断出一组无三阶互调频点,那么在下次判断中这些频点不允许再次使用,这样构造的图表能有极高的频道利用率。

可见,用上述方法计算的话,其信道间隔并不可控,但是当取数范围大,而所求频点少时,还是可以达到要求的,如表,在120中选取含8个信道的组时,每组最小的频道间隔为6,而在58中选取含4个信道的组时,每组最小的频道间隔可以达到14。

若想求出在限定频点范围内的所有无三阶互调的点,采用第二种算法可以全部求出,但是这样的计算量很大,笔者推荐使用上述排表的方法,求得结果后,挑选出满足使用条件(信道间隔)的若干组即可。

总之,求无三阶互调频点有两大类解法,在应用中可以灵活地选择,并且笔者希望读者能开发出更高效的算法。

相关文档
最新文档