掌桥专利:专业的专利平台
掌桥专利
首页

基于使用序列列索引数组计算相关函数的跳频通信方法

文献发布时间:2024-04-18 19:53:33


基于使用序列列索引数组计算相关函数的跳频通信方法

技术领域

本发明涉及跳频通信技术以及数据处理领域,具体涉及一种基于使用序列列索引数组计算相关函数的跳频通信方法。

背景技术

多径干扰和多普勒频移是移动通信系统的常见“顽疾”,尤其是多普勒频移的干扰一直没有很好的解决方法,这也是移动通信的“癌症”。如果将最佳跳频图应用到跳频通信系统中,那么用户产生的信号具有尖锐的自相关性和较低的互相关性,就可以克服多径传播干扰与多普勒频移干扰和用户之间的干扰。这样的系统对于多普勒频移的干扰是具有“免疫”能力的。所以跳频通信系统的关键技术之一是需要合理设计用户的跳频图。理想的跳频序列需要具有良好的自相关性能,以减小由于多径传播引起的干扰,降低误码率,同时,还要具有较低的互相关性,以减小来自其它用户的干扰,提高数据传输速率和系统的吞吐量。

现有技术中,通过序列的自相关和互相关函数,可以研究序列的相关特性。由于序列的相关函数的计算过程相对复杂,所以用图解法来演示序列的相关函数的计算过程可以使相关函数的计算过程和结果清晰明了。

设有2个n阶置换矩阵P和P′,用序列表示2个矩阵,用图形软件模拟画出这2个序列,其中,在2个序列中用涂黑色的小方格表示“1”所在的位置。如图1所示,在iOj坐标平面内令矩阵P不动,移动矩阵P′,规定P′向右移动时延τ为正,向左移动时延τ为负;向上移动表示多普勒频移d为正,向下移动表示多普勒频移d为负。设矩阵P′在i轴方向移动τ个单位((-n+1≤τ≤n-1),在j轴方向移动为d个单位(-n+1≤d≤n-1),每次移动后,矩阵P′与矩阵P的“1”单元格重合数(也称为碰撞数),记为R

跳频扩频是扩频调制方式中的一种。在跳频通信系统中,需要由一个跳频序列来控制载波频率的跳变。理想跳频序列应该是同时具有尖锐的自相关特性和较低的互相关特性的序列。

图17展示了跳频调制和解调的大致过程。在发送端,信息首先被调制到频率为f

发明内容

本发明的目的在于,为了提高计算序列的相关函数以验证它们能否作为理想的跳频序列应用到跳频通信系统的效率,提出基于使用序列列索引数组计算相关函数的跳频通信方法,使用一维数组作为列索引数组表示二维序列,使用Right变量和Up变量分别作为循环变量来模拟图解法中第二个矩阵在水平方向和垂直方向的平移,使用count变量统计第二个矩阵水平向右移动Right,垂直向上移动Up后与第一个矩阵的“1”单元格的重合数,可以用C语言程序来实现计算序列的相关函数的功能。

基于使用序列列索引数组计算相关函数的跳频通信方法,包括如下步骤:

步骤1,根据输入的设定需要采取的输入方式,包括输入方式1为直接输入法,输入方式2为本原元法生成Welch结构,输入方式3为直接输入有一个间隙行结构,输入方式4为本原元法生成Golomb结构,输入方式5为直接输入有一个间隙列结构;

步骤2,对于待处理的两个序列,分别选择输入方式,并输入两个序列列索引数组及对应矩阵的行列数或本原元法生成Costas序列需要的参数,对于输入方式1、2和4转入步骤3,对于输入方式3转入步骤4,对于输入方式5转入步骤5;

步骤3,对于同行同列的序列,采取输入方式1、2和4,通过矩阵水平和垂直方向的移动,统计矩阵每个位置对应的重合数,计算相关函数和相关函数最大值及其位置;

步骤4,对于存在间隙行的序列,采取输入方式3,根据间隙行的行数,通过矩阵水平和垂直方向的移动,计算相关函数和相关函数最大值及其位置;

步骤5,对于存在间隙列的序列,采取输入方式5,输入列索引数组时,与第一个矩阵中间隙列对应的赋值取大于等于矩阵的行数的两倍的正整数,与第二个矩阵中间隙列对应的赋值需要大于等于输入的第一个矩阵中间隙列的赋值加上矩阵的行数,通过矩阵水平和垂直方向的移动,计算相关函数和相关函数最大值及其位置;

步骤6,判断是否继续循环,继续则返回步骤1,不继续则结束,完成相关函数的计算工作;

步骤7,检查计算出的所有相关函数,如果自相关函数副瓣的最大值为1并且互相关函数的最大值为1,说明用于计算相关函数的这些序列具有良好的相关特性,用来作为跳频序列控制频率合成器输出频率跳变的本振信号,对调制信号进行变频处理,使变频后射频信号频率按照跳频序列跳变,即得到跳频信号。

本发明到达的有益效果为:

(1)使用本方法可以在输入两个序列后,直接得到其相关函数的计算结果,计算效率高于图解法。

(2)对于序列列索引数组的长度较大的情况,计算速度和效率也能得到保证,计算准确率高。

(3)可以在快速准确地计算序列的相关函数之后,验证序列是否具有理想的自相关性能和最低的互相关性能,如果具有,就算作是最佳跳频图,可以将这些序列作为跳频通信系统中理想的跳频序列,用以控制频率合成器输出频率跳变的本振信号的。为验证序列是否为理想的跳频序列提供了便利。

(4)如果跳频通信系统中使用的跳频序列是理想的,可以有效克服信号的多径传播干扰与多普勒频移干扰和用户之间的干扰。

附图说明

图1为本发明背景技术中的序列相关函数的图解法示意图。

图2为本发明实施例中的程序流程图。

图3为本发明实施例中的创建序列列索引数组的函数的程序图。

图4为本发明实施例中的计算2个同行同列的矩阵的相关函数的程序图。

图5为本发明实施例中的实现附加功能的函数的程序图。

图6为本发明实施例中的计算2个有间隙行的矩阵的相关函数的程序图。

图7为本发明实施例中的计算2个有间隙列的矩阵的相关函数的程序图。

图8为本发明实施例中的具有一个间隙行的矩阵的输入方式的程序图。

图9为本发明实施例中的具有一个间隙列的矩阵的输入方式的程序图。

图10为本发明实施例中的Golomb Costas序列在垂直方向上循环移位后的序列及其互相关函数的示意图。

图11为本发明实施例中的计算2个有间隙行的矩阵的相关矩阵的运行过程图。

图12为本发明实施例中的Golomb Costas序列在水平方向上循环移位后的序列及其互相关函数的示意图。

图13为本发明实施例中的计算2个有间隙列的矩阵的相关函数的运行过程图。

图14为本发明实施例中的Golomb Costas序列在水平和垂直方向上循环移位后的序列及其互相关函数的示意图。

图15为本发明实施例中的计算2个有间隙行和间隙列的矩阵的相关函数的运行过程图。

图16为本发明实施例中的表示序列的置换矩阵示意图。

图17为本发明实施例中的跳频通信调制和解调过程图。

具体实施方式

下面结合说明书附图对本发明的技术方案做进一步的详细说明。

首先,为了更清楚地解释说明本方法的具体实施例流程,进行如下说明:(1)序列在时频平面上具有二维结构,因此可以用横坐标为时间,纵坐标为频率的置换矩阵来表示一个序列,每个序列对应一个置换矩阵。如图16所示,横坐标表示时间,纵坐标表示频率,该序列为{1,2,3,4,5,6}。(2)置换矩阵是一个正方形矩阵,其中每行每列都有且只有一个值是1,其他均为0。置换矩阵是置换序列的图形化表示。(3)Costas序列是置换序列的一种,有Welch和Golomb两种代数构造法的Costas序列。若n阶置换矩阵P的自相关函数的副瓣值均小于等于1,即具有尖锐的自相关特性,则置换矩阵为Costas序列。(4)序列的列索引数组即为序列每一列元素“1”所在的行,下文的函数void CreateMatrix(int**Matrix,intDimension)有相关说明。比如,图10中C

要计算2个序列的相关函数,先要知道这2个序列的放置函数或列索引值,并用计算机生成这两个序列,继而计算出2个序列的相关函数。

本发明共提供五种输入序列的方式。图2是用C语言实现序列的相关函数的程序流程图。

在创建矩阵的时候,用一维放置函数来表示矩阵,并可给序列赋值,其中用动态分配法给一维数组分配内存,这个一维数组表示的就是用来表示矩阵的一维列索引值。这样,给2个序列赋值后,即可通过计算机来计算这2个序列的相关函数。其中,实现创建序列的列索引数组功能的函数void CreateMatrix(int**Matrix,int Dimension)代码如图3。用户共输入矩阵列数(Dimension变量)个正整数,每个正整数代表序列每一列元素“1”所在的行(Row变量),一维数组存放的就是每一列上放“1”的行。

图4的代码是实现同行同列的序列的相关函数的计算函数void ccMatrix(int**Matrix,int Dimension,int*Matrix1,int*Matrix2),其中count变量即为统计相关矩阵每个位置对应的重合数的变量。

Right变量表示第二个矩阵在水平方向向右移动的距离,Up变量表示第二个矩阵在垂直方向向上移动的距离,count变量用来统计此时两个矩阵的“1”单元格重合数,第二个矩阵每移动到一个新的位置都需要先将立即其置0,然后统计两个矩阵的重合数。使用Right和Up这两个变量作为两个for循环的循环变量,就可以来模拟第二个矩阵在水平方向和垂直方向的移动。

k变量表示在第二个矩阵向右移动Right并向上移动Up的情况下,第一个矩阵的列索引数组中需要计算两个矩阵中“1”单元格重合数的下标的范围,即第一个矩阵中“1”单元格可能会和移动后的第二个矩阵中“1”单元格重合的列的范围。当Right大于等于0时,即第二个矩阵在水平方向向右移动,k的范围是Right到矩阵列数减1;当Right小于0时,即第二个矩阵在水平方向向左移动,k的范围是0到矩阵列数减1再加Right。Matrix2[k-Right]表示第二个矩阵在水平方向移动后,在需要计算的列的范围内,每一列上放“1”的行。在此基础上再加Up,可以表示第二个矩阵在垂直方向移动后,在需要计算的列的范围内,每一列上放“1”的行。当Matrix2[k-Right]+Up=Matrix1[k],即第一个矩阵在需要计算的列的范围内放“1”的行和第二个矩阵对应列上放“1”的行相等时,需要将count变量加1。

Martixx变量和Martixy变量分别存储相关矩阵的二维数组的横坐标和纵坐标。由于数组下标均从0开始,所以需要在水平方向和垂直方向移动距离,即Right变量和Up变量的基础上再加上列数减1。

同时,还可实现其它附加功能,例如,输出序列的相关函数矩阵,查找出相关函数的最大值及这个最大值所在的位置,以及输出相关函数的所有非零值及这个非零值所在的位置。用函数int Max(int*Matrix,int Dimension)通过遍历矩阵来实现上述功能,如图5。

自相关函数副瓣的最大值为1的置换序列,称为Costas序列。Costas序列具有尖锐的自相关特性。

使用图2中的输入方式1或2,再使用计算同行同列的序列的相关函数的函数ccMatrix可以计算Welch Costas序列的相关函数。

使用图2中的输入方式1或4,再使用计算同行同列的序列的相关函数的函数ccMatrix可以计算Golomb Costas序列的相关函数。

即是,图2中输入方式1、2和4采用函数ccMatrix计算相关函数,输入方式3和5分别采用后文的函数void cc1gaprow和void cc1gapcolumn进行计算。

但是,Welch Costas序列和Golomb Costas序列都还不是最佳跳频图,Costas序列和最佳跳频图的区别在于:Costas序列只具有尖锐的自相关特性,不具有较低的互相关特性,而最佳跳频图需要同时具有尖锐的自相关特性(自相关函数副瓣的最大值为1)和较低的互相关特性(互相关函数的最大值为1)。

需要将Costas序列进行二维循环移位,才能得到最佳跳频图。Welch Costas序列在垂直方向循环移位生成含有一个间隙行的序列,Welch Costas序列在水平方向循环移位生成不含有间隙列的Welch Costas序列;Golomb Costas序列在垂直或水平方向循环移位生成含有一个间隙行或一个间隙列的序列。

假如序列具有一个间隙行或者一个间隙列的时候,如图6和图7所示,由函数:voidcc1gaprow(int**Matrix,int column,int*Matrix1,int*Matrix2)和void cc1gapcolumn(int**Matrix,int column,int*Matrix1,int*Matrix2)可分别实现计算这2种矩阵相关函数,以及由函数int Max1gaprow(int*Matrix,int column)和int Max1gapcolumn(int*Matrix,int column)完成对应的附加的功能。函数int Max1gaprow(int*Matrix,intcolumn)和int Max1gapcolumn(int*Matrix,int column)和上文的函数int Max(int*Matrix,int Dimension)一样,实现输出序列的相关函数,查找出相关函数的最大值及这个最大值所在的位置,以及输出相关函数的所有非零值及这个非零值所在的位置的附加功能。

由于在输入矩阵时,输入的是矩阵中每一列的行数,因此按输入方式3输入两个含间隙行的序列时,不需要进行特殊处理,如图8。

但是在按输入方式5输入两个含间隙列的序列时,是需要对矩阵的列索引数组中间隙列对应的赋值,即矩阵中放“1”的行,进行特殊处理的,如图9。在计算相关函数时,固定一个矩阵不动,移动另一个矩阵,在这一过程中,垂直方向向上移动的矩阵中放“1”的行相对于不移动的矩阵的第一行的最大距离,为行数的两倍减1,垂直方向向下移动的矩阵中放“1”的行相对于不移动的矩阵的第一行的最大距离,为行数减1。假设第一个矩阵固定不动,移动第二个矩阵,输入列索引数组时,与第一个矩阵中间隙列对应的赋值取大于等于矩阵的行数的两倍的正整数,这样在向上移动第二个矩阵的过程中,第一个矩阵间隙列上的“1”就不会和第二个矩阵非间隙列上的“1”重合。与第二个矩阵中间隙列对应的赋值取大于等于输入的第一个矩阵中间隙列对应的赋值加上矩阵的行数,这样在向下移动第二个矩阵的过程中,第一个矩阵间隙列上的“1”就不会和第二个矩阵间隙列上的“1”重合。

由于本发明在输入序列时,统一输入矩阵的列数,而对于只含间隙列不含间隙行的序列而言,列数为行数加1,所以在图9的输入方式5中,用户实际输入列索引数组时,要注意将输入的列数减1得到行数,假设与第一个矩阵中间隙列对应的赋值取矩阵的行数的两倍的正整数,则与第二个矩阵中间隙列对应的赋值取矩阵的行数的三倍的正整数。

接下来通过举例,说明通过本发明计算两个序列的相关函数,并验证序列是否可以算作是最佳跳频图,将这些序列作为跳频通信系统中理想的跳频序列。

图10(a)和(b)中的C

图11为程序的输入过程和运行结果,可以看到输入的两个序列的行数为8,列数为7,分两次直接输入7个正整数,即7列上放“1”的行,无需做特殊处理。

图12(a)和(b)中的C

图13为程序的输入过程和运行结果,可以看到输入的两个序列的行数为7,列数为8,分两次输入8个正整数,即8列上放“1”的行。输入列索引数组时,与第一个矩阵中间隙列(第7列)对应的赋值取矩阵的行数的2倍(14),则与第二个矩阵中间隙列(第3列)对应的赋值取矩阵的行数的3倍(21)。

Golomb Costas序列在垂直和水平方向循环移位生成含有一个间隙行和一个间隙列的最佳跳频序列。

假如矩阵具有一个间隙行和一个间隙列的时候,可以将其看作一个行列数相同的矩阵,使用输入方式1输入两个跳频序列。和上面的输入两个具有间隙列的矩阵一样,列索引数组中间隙列对应的赋值需要进行特殊处理,输入列索引数组时,与第一个矩阵中间隙列对应的赋值取矩阵的行数的2倍,与第二个矩阵中间隙列对应的赋值取矩阵的行数的3倍。

图14(a)和(b)中的C

图15为程序的输入过程和运行结果,可以看到输入的两个序列的行数和列数均为8,分两次输入8个正整数(具有一个间隙行和一个间隙列的矩阵行数和列数是相同的,均为8),即8列上放“1”的行。输入列索引数组时,与第一个矩阵中间隙列对应的赋值取矩阵的行数的2倍(16),则与第二个矩阵中间隙列对应的赋值取矩阵的的2倍(24)。

经过本发明的验证,图10中的C

综上这些序列即具有尖锐的自相关特性,又具有较低的互相关性,可以算作是最佳跳频图,将这些序列作为跳频通信系统中理想的跳频序列。

比如,在多普勒频移受限(多普勒频移小于等于1)的跳频通信系统中,两个用户向基站发送信号的时候,两个用户的发射机分别将图10中的序列C

以上所述仅为本发明的较佳实施方式,本发明的保护范围并不以上述实施方式为限,但凡本领域普通技术人员根据本发明所揭示内容所作的等效修饰或变化,皆应纳入权利要求书中记载的保护范围内。

技术分类

06120116338643