对子集为Gold序列的Kasami大集合序列的FHT快速相关检测方法 【技术领域】
本发明涉及一种对子集为Gold序列的Kasami大集合序列的FHT(Fast HadamardTransform)快速相关检测方法,是一种适用于极低谱密度条件下使用扩频技术的无线通信系统的多目标相位检测方法,属于移动通信中的同步技术领域。
背景技术
在极低谱密度条件下的扩频无线通信中,例如深空通信、全球导航卫星系统(GNSS)、军事通信和无线传感器网络等领域,他们的主要特点是利用长PN码的良好的相关特性来实现扩频通信。对长PN码的快速捕获是极低谱密度扩频无线通信系统的一项关键技术,目前比较广为人知的PN码有最大移位寄存器序列(或简称为m序列)、戈尔德(Gold)序列、Kasami序列等等。
常规实现极长PN码快速捕获的方法有时域并行相关法和FFT(Fast FourierTransform)频域相关法。
时域并行相关法的运算量极大,复杂度和成本极高:对于一个长度为p的PN码,运算量是p2量级的乘法和加法;对于K个长度为p的PN码,运算量是Kp2量级的乘法和加法。
FFT频域相关法具有方便快捷、易于实现PN码相位的并行搜索和载波频偏的并行搜索等优点,使K个长度为p的PN码快速相关的运算量降低为Kplog2p量级的复数乘法和加法,成为国内外研究长PN码快速捕获的热点。不过,FFT频域相关法存在以下问题:1)FFT进行复数乘法运算多,对于长PN码频域相关,FFT运算中存在很小数值的复权值,导致复数乘法的比特位数多,运算复杂度很高;其实现需要采用昂贵的高精度高速AD(模数转换)器件。2)FFT相关算法必须使用IFFT,使PN码捕获最终回到时域以确定PN码相位,这也增加了运算量。3)受当前DSP器件限制,FFT核长度已成为进一步提高搜索速度的瓶颈。
【发明内容】
技术问题:本发明针对背景技术中传统的相关检测方法计算复杂度高的缺点而提出一种不包含乘法运算的对子集为Gold序列的Kasami大集合序列的FHT快速相关检测方法。
技术方案:本发明为实现上述目的,采用如下技术方案:
本发明所提出的对子集为Gold序列的Kasami大集合序列的FHT快速相关检测方法。当维度k=0,1,...,q-2时,计算{r(n)}与{ak,k’(n)}的互相关函数C(k,k′;τ)采用的相关步骤如下:
步骤(1):先固定两个维度,使用组成Gold-Kasami大集合序列的一个m序列构成Walsh-Hadamard矩阵,FHT得到一维相关值;
步骤(2):将步骤1中固定的两个维度中的一个维度取所有可能值,重复步骤(1),得到二维相关值;
步骤(3):将步骤1中固定的两个维度中的另一个维度取所有可能值,重复步骤(1),得到所有的二维相关值,将所有二维相关值重排得到三维相关值,确定三维相关值峰值所在的三个维度的取值,峰值所在的三个维度的取值确定了在伽罗瓦域GF(q)中的Gold-Kasami大集合序列的码字组成及其码相位。
当维度k=q-1时,{ak,k’(n)}即变成Gold-Kasami小序列集合,这时计算{r(n)}和{ak,k’(n)}的互相关函数C(k,k′;τ)采用Kasami小集合序列的FHT快速相关检测方法。
其中:Gold-Kasami大集合序列即是在伽罗瓦域GF(q)中,q=pn,p=2,当n≡2mod4时的Kasami大集合序列,q-1为Gold-Kasami大集合序列码的码长,n为码长的阶数;m序列即最大移位寄存器序列;k、k′和τ是Gold-Kasami大集合序列码字组成及其码相位的三个维度;{r(n)}为接收信号;r*(n)表示r(n)的共轭;{ak,k′(n)}为Gold-Kasami大集合序列码;u是周期为2n-1的m序列,v是对序列u每2n/2+1+1比特抽取1比特组成的周期为2n-1的m序列,w是对序列u每2n/2+1比特抽取1比特组成地周期为2n/2-1的m序列。
有益效果:通过本发明提出的算法,可以用FHT(Fast Hadamard Transform)快速相关检测出伽罗瓦域GF(q)中Gold-Kasami大集合序列的码字组成及其初始码相位。由于FHT中不包含乘法运算,只有加法运算,因此相对于用FFT进行相关检测的算法能大大降低时间复杂度,提高捕获速度。
根据一次q=2n点的FFT需要(q/2)log2q次复数乘法和qlog2q复数加法,一次复数乘法需要三次实数乘法和三次实数加法,一次复数加法需要两次实数加法;Gold-Kasami大集合序列由三个不同的m序列组成,用FFT频域相关法检测出码字组成及其码相位,将乘法运算折算成加法运算,折算方法为:q点FFT中使用的乘法折算成log2q次加法,具体效果如下:
用FFT频域相关法检测出码字组成及其码相位所需的实数加法运算量为:
3(q-1)(q-1)q(log2q+1)log2q+(q-1)(q-1)q(7log2q+3);]]>
用本专利提出的V-FHT类和U-FHT类算法完成同样的相关检测运算所需的实数加法运算量为:
2(q-1)(q-1)qlog2q;]]>
用本专利提出的W-FHT类算法完成同样的相关检测运算所需的实数加法运算量为:
2(q-1)2(q+1)qlog2q;]]>
综上,可见本发明提出的用FHT快速相关检测出Gold-Kasami大集合序列的码字组成及其初始码相位的算法,相比用FFT频域相关法进行相关检测的算法,V-FHT类和U-FHT类能节省90%以上的运算量,并且节约的运算量随着码长的增加而增大;W-FHT类仅在码字较短的情况下能节约相当大的运算量。
【附图说明】
图1是算法V-FHT(a)的二维计算过程。
图2是算法V-FHT(a)的相关值三维排列示意图。
图3是算法V-FHT(b)的二维计算过程。
图4是算法V-FHT(b)的相关值三维排列示意图。
图5是算法U-FHT情况I的二维计算过程。
图6是算法U-FHT情况I从二维到三维的相关值排列示意图。
图7是算法U-FHT情况II的二维计算过程。
图8是算法W-FHT(a)的二维计算过程。
图9是算法W-FHT(a)的相关值三维排列示意图。
图10是算法W-FHT(b)的二维计算过程。
图11是算法W-FHT(b)的相关值三维排列示意图。
图12是算法W-FHT(c)从二维到三维的相关值排列示意图。
图13是本发明的方法流程示意图。
图2、4、6、9、11、12中:k0为k轴上的任意值;k′0为k′轴上的任意值。
【具体实施方式】
文中的字母及符号定义:u、v和w为m序列,u是周期为2n-1的m序列,v是对序列u每2n/2+1+1比特抽取1比特组成的周期为2n-1的m序列,w是对序列u每2n/2+1比特抽取1比特组成的周期为2n/2-1的m序列;N=q-1为Gold-Kasami大集合序列码的码长;n为码长的阶数;T表示向量向左循环移位,其上标表示移位数,下标为长度;G(u,v)是Gold序列;{r(n)}为接收信号;r*(·)表示r(·)的共轭;{ak,k’(n)}是Gold-Kasami大集合序列码;C(k,k′;τ)是互相关函数;k、k′和τ是Gold-Kasami大集合序列码字组成及其码相位组成的三个维度,A为维度k与维度τ的差值,B为维度k′与维度τ的差值;j为将向量分割成块的编号,j=0,1,...,q,]]>q=2n;·表示取模,其下标为模值;为模2加法;Cx为任意值符号;A0为A轴上的任意值;B0为B轴上的任意值。
子集为Gold序列的Kasami大集合序列,即为在伽罗瓦域GF(q)中,q=pn,p=2,当n≡2mod 4时由3个m序列组成的周期为N=2n-1的Kasami大集合序列,也称为Gold-Kasami大集合序列,可以表述为
G(u,v)∪[∪i=02n/2-2{Tiw⊕G(u,v)}]]]>
其中,G(u,v)是由u、v两个m序列组成的Gold码,可以表述为:
{u,u⊕v,u⊕Tv,u⊕T2v,...,u⊕TN-1v}]]>
根据Gold-Kasami大集合序列的定义,{r(n)}与{ak,k’(n)}的互相关函数C(k,k′;τ)可以表示为(q=2n):
C(k,k′;τ)=Σn=0q-2r*(n)ak,k′(n+τ‾q-1)=]]>
Σn=0q-2r*(n)u(n+τ‾q-1)v(n+τ-k‾q-1)w(n+τ-k′‾q-1),k=0,1,...,q-2,k′=0,1,...,q-2Σn=0q-2r*(n)u(n+τ‾q-1)v(n+τ-k‾q-1),k=0,1,...,q-2,k′=q-1Σn=0q-2r*(n)u(n+τ‾q-1)w(n+τ-k′‾q-1),k=q-1,k′=0,1,...,q-2Σn=0q-2r*(n)u(n+τ‾q-1),k=q-1,k′=q-1---(1)]]>
观察相关函数C(k,k′;τ)有三个变量:k、k′和τ,用FHT(Fast Hadamard Transform)计算三维相关值时,需要先固定两个变量,使用组成Gold-Kasami大集合序列的一个m序列构成Walsh-Hadamard矩阵,FHT得到一维相关值,再求得二维相关值,最后重排得到三维相关值。确定三维相关值峰值所在的三个维度的取值,峰值所在的三个维度的取值确定了在伽罗瓦域GF(q)中Gold-Kasami大集合序列的码字组成及其码相位。
观察式(1),当k=q-1时,{ak,k’(n)}即变成Kasami小序列集合,计算{r(n)}和{ak,k’(n)}的互相关函数C(k,k′;τ)采用Kasami小集合序列的FHT快速相关检测方法。
当k=0,1,...,q-2时,计算{r(n)}与{ak,k′(n)}的互相关函数C(k,k′;τ)的3类共7种算法如下:
V-FHT类——使用m序列v生成Walsh-Hadamard矩阵的FHT快速相关检测方法类
a)先固定维度k′=0,1,...,q-2]]>和维度τ=0,1,...,q-2,得到一维相关值,再得到k和τ两个维度的相关值,最后得到k、k′和τ三个维度的相关值:
令n=n-τq-1,式(1)可得到
C(k,k′;τ)=Σn=0q-2r*(n-τ‾q-1)u(n)v(n-k‾q-1)w(n-k′‾q-1),---(2)]]>
τ=0,1,...,q-2,k=0,1,...,q-2,k′=0,1,...,q-2]]>
使用m序列v生成Walsh-Hadamard矩阵可得:
CxC(0,k′;τ)C(q-2,k′;τ)···C(1,k′;τ)=+1+1···+1+1v+1vT······+1vTq-20r*(0-τ‾q-1)u(0)w(0-k′‾q-1)r*(1-τ‾q-1)u(1)w(1-k′‾q-1)···r*(q-2-τ‾q-1)u(q-2)w(q-2-k′‾q-1)---(3)]]>
生成方法参见文献[1][2][3],下同:
[1]A.Lempel,‘Hadamard and M-sequence transforms are permutationally similar’,Applied optics,vol.18,no.25,Dec.79
[2]Srdjan Z.Budisin,‘Fast PN sequence correlation by using FWT’,MediterraneanElectrotechnical Conference Proc.,1989,pp.513-515.
[3]Martin Cohn and Abraham Lempel,‘On Fast M-sequence Transforms’,IEEETransactions on Information Theory,1977
使用这种相关方法,计算复杂度为(q-1)(q-1)qlog2q.]]>
算法V-FHT(a)的二维的计算过程如图1所示。
算法V-FHT(a)的三维的相关值排列过程如图2所示。
b):先固定维度k′=0,1,...,q-2]]>和维度τ=0,1,...,q-2,得到一维相关值,再得到k和τ两个维度的相关值,最后得到k、k′和τ三个维度的相关值:
令τ-kq-1=A(A=0,1,2,...,q-2),即k=τ-Aq-1,式(1)可得到
C(τ-A‾q-1,k′;τ)=Σn=0q-2r*(n)u(n+τ‾q-1)v(n+A‾q-1)w(n+τ-k′‾q-1),τ=0,1,...,q-2---(4)]]>
使用m序列v生成Walsh-Hadamard矩阵可得:
CxC(τ-0‾q-1,k′;τ)C(τ-1‾q-1,k′;τ)···C(τ-q+2‾q-1,k′;τ)=+1+1···+1+1v+1vT······+1vTq-20r*(0)u(0+τ‾q-1)w(0+τ-k′‾q-1)r*(1)u(1+τ‾q-1)w(1+τ-k′‾q-1)···r*(q-2)u(q-2+τ‾q-1)w(q-2+τ-k′‾q-1)---(5)]]>
使用这种相关方法,计算复杂度为(q-1)(q-1)qlog2q.]]>
算法V-FHT(b)二维的计算过程如图3所示。
当k′=q-1]]>时,用一次Gold码的FHT得到接收信号{r(n)}与{ak,k’(n)}的互相关函数C(k,k′;τ)。
算法V-FHT(b)三维的相关值排列如图4所示。
c):当维度k和维度k′均与维度τ的差值固定时,即τ-kq-1=A(A=0,1,2,...,q-2)或τ-k′‾q-1=B(B=0,1,2,...,q-2),]]>由式(1)可得到
C(τ-A‾q-1,τ-B‾q-1;τ)=Σn=0q-2r*(n)u(n+τ‾q-1)v(n+A‾q-1)w(n+B‾q-1),τ=0,1,...,q-2---(6)]]>
先固定B=0,1,2,...,q-2]]>和维度τ=0,1,...,q-2的值,得到一维相关值,再得到k和τ两个维度的相关值,最后得到k、k′和τ三个维度的相关值:
使用m序列v生成Walsh-Hadamard矩阵可得:
CxC(τ-0‾q-1,τ-B‾q-1;τ)C(τ-1‾q-1,τ-B‾q-1;τ)···C(τ-q+2‾q-1,τ-B‾q-1;τ)=+1+1···+1+1v+1vT······+1vTq-20r*(0)u(0+τ‾q-1)w(0+B‾q-1)r*(1)u(1+τ‾q-1)w(1+B‾q-1)···r*(q-2)u(q-2+τ‾q-1)w(q-2+B‾q-1)---(7)]]>
使用这种相关方法,计算复杂度为(q-1)(q-1)qlog2q.]]>
当k′=q-1]]>时,用一次Gold码的FHT得到接收信号{r(n)}与{ak,k′(n)}的互相关函数C(k,k′;τ)。
观察发现(7)与(5)类似,计算k和τ两个维度的相关值的方法是一样的,只是在第三维相关值的排列上不同。
算法V-FHT(c)二维的计算过程如图3。
算法V-FHT(c)三维的相关值排列过程与方法五类似,如图4,只需要将维度k与维度k′互换即可。
注:以上算法中用序列v生成Walsh-Hadamard矩阵时,序列v不是对序列u每2n/2+1+1比特抽取任1比特组成的周期为2n-1的m序列,因为用这种方法生成的m序列组成的M矩阵不一定能等效为Walsh-Hadamard矩阵。
U-FHT类——使用m序列u生成Walsh-Hadamard矩阵的FHT快速相关检测方法类
当维度k和维度k′均与维度τ的差值固定时,即τ-kq-1=A(A=0,1,2,...,q-2)或τ-k′‾q-1=B(B=0,1,2,...,q-2),]]>由式(1)可得到
C(τ-A‾q-1,τ-B‾q-1;τ)=Σn=0q-2r*(n)u(n+τ‾q-1)v(n+A‾q-1)w(n+B‾q-1),τ=0,1,...,q-2---(8)]]>
先固定A=0,1,...,q-2和B=0,1,2,...,q-2]]>的值,得到一维相关值,再得到k和τ或k′和τ两个维度的相关值,最后得到k、k′和τ三个维度的相关值:
使用m序列u生成Walsh-Hadamard矩阵可得:
CxC(0-A‾q-1,0-B‾q-1;0)C(1-A‾q-1,1-B‾q-1;1)···C(q-2-A‾q-1,q-2-B‾q-1;q-2)=+1+1···+1+1u+1uT······+1uTq-20r*(0)v(1+A‾q-1)w(0+B‾q-1)r*(1)v(1+A‾q-1)w(1+B‾q-1)···r*(q-2)v(q-2+A‾q-1)w(q-2+B‾q-1)---(9)]]>
接下来分两种情况:
情况I:如果先计算维度k和维度τ的二维相关值。
算法U-FHT情况I的二维的计算过程如图10所示(方框内是A的值)。
算法U-FHT情况I的三维的相关值排列如图11所示。
情况II:如果先计算维度k′和维度τ的二维相关值。
算法U-FHT情况II的二维的计算过程如图12所示(方框内是B的值)。
算法U-FHT情况II的三维的相关值排列过程与图11类似,之需要将维度k与维度k′的互换即可。
使用U-FHT相关方法,计算复杂度为(q-1)(q-1)qlog2q.]]>
当维度k′=q-1]]>时,用一次Gold码的FHT得到接收信号{r(n)}与{ak,k’(n)}的互相关函数C(k,k′;τ)。
W-FHT类——使用m序列w生成Walsh-Hadamard矩阵的FHT快速相关检测方法类
a):先固定维度k=0,1,...,q-2和维度τ=0,1,...,q-2,得到一维相关值,再得到k′和τ两个维度的相关值,最后得到k、k′和τ三个维度的相关值:
令n=n-τq-1,式(1)可得到
C(k,k′;τ)=Σn=0q-2r*(n-τ‾q-1)u(n)v(n-k‾q-1)w(n-k′‾q-1),---(10)]]>
τ=0,1,...,q-2,k=0,1,...,q-2,k′=0,1,...,q-2]]>
使用m序列w生成Walsh-Hadamard矩阵可得:
C(k,q-1;τ)C(k,0;τ)C(k,q-2;τ)···C(k,1;τ)=+1+1···+1+1w+1wT······+1wTq-20r*(0-τ‾q-1)u(0)v(0-k‾q-1)r*(1-τ‾q-1)u(1)v(1-k‾q-1)···r*(q-2-τ‾q-1)u(q-2)v(q-2-k‾q-1)---(11)]]>
考虑到m序列w的周期性,对于某个给定的维度τ,将q-1维向量{r*(n-tq-1)u(n)v(n-kq-1)}分割成块分别进行长度为的FHT变换:
Cj(k,q-1;τ)Cj(k,0;τ)Cj(k,q-2;τ)···Cj(k,1;τ)=+1···+1+1w+1wTq-1·+1··+1wTq-1q-20r*(0-τ+j(q-1)‾q-1)u(0+j(q-1))v(0-k+j(q-1)‾q-1)r*(1-τ+j(q-1)‾q-1)u(1+j(q-1))v(1-k+j(q-1)‾q-1)···r*(q-2-τ+j(q-1)‾q-1)u(q-2+j(q-1))v(q-2-k+j(q-1)‾q-1)]]>
(12)
其中j=0,1,...,q.]]>
然后把个变换后的向量累加起来即可得到相关阵C(k,k′;τ)的第τ列,即:
C→k′,τ=Σj=0qCj(k,q-1;τ)Cj(k,0;τ)Cj(k,q-2;τ)···Cj(k,1;τ)---(13)]]>
使用这种相关方法,计算复杂度为(q-1)2(q+1)qlog2q.]]>
算法W-FHT(a)二维的计算过程如图8所示。
算法W-FHT(a)三维的相关值排列如图9所示。
当k′=q-1]]>时,用一次Gold码的FHT得到接收信号{r(n)}与{ak,k’(n)}的互相关函数C(k,k′;τ)。
b):先固定维度k=0,1,...,q-2和维度τ=0,1,...,q-2,得到一维相关值,再得到k′和τ两个维度的相关值,最后得到k、k′和τ三个维度的相关值:
令τ-k′‾q-1=B(B=0,1,2,...,q-2),]]>即k′=τ-B‾q-1,]]>式(1)可得到
C(k,τ-B‾q-1;τ)=Σn=0q-2r*(n)u(n+τ‾q-1)v(n+τ-k‾q-1)w(n+B‾q-1),τ=0,1,...,q-2---(14)]]>
使用m序列w生成FHT矩阵可得:
C→k′,τ=Σj=0qCj(k,q-1;τ)Cj(k,0;τ)Cj(k,q-2;τ)···Cj(k,1;τ)CxC(k,τ‾q-1;τ)C(k,τ-1‾q-1;τ)···C(k,τ-q+2‾q-1;τ)=+1+1···+1+1w+1wT······+1wTq-20r*(0)u(τ‾q-1)v(τ-k‾q-1)r*(1)u(1+τ‾q-1)v(1+τ-k‾q-1)···r*(q-2)u(q-2+τ‾q-1)v(q-2+τ-k‾q-1)]]>
(15)
考虑到m序列w的周期性,对于某个给定的维度τ,将q-1维向量{r*(n)u(n+tq-1)v(n+t-kq-1)}分割成块分别进行长度为的FHT变换:
CxCj(k,τ‾q-1;τ)Cj(k,τ-1‾q-1;τ)···Cj(k,τ-q+2‾q-1;τ)=+1···+1+1w+1wTq-1·+1··+1wTq-1q-20r*(j(q-1)‾q-1)u(τ+j(q-1)‾q-1)v(τ-k+j(q-1)‾q-1)r*(1+j(q-1)‾q-1)u(1+τ+j(q-1)‾q-1)v(1+τ-k+j(q-1)‾q-1)···r*(q-2+j(q-1)‾q-1)u(q-2+τ+j(q-1)‾q-1)v(q-2+τ-k+j(q-1)‾q-1)]]>
(16)
其中j=0,1,...,q.]]>
然后把个变换后的向量累加起来即可得到相关阵C(k,k′;τ)的第τ列,即:
C→k;τ=Σj=0qCj(k,τ‾q-1;τ)Cj(k,τ-1‾q-1;τ)Cj(k,τ-2‾q-1;τ)···Cj(k,τ-q+2‾q-1;τ)---(17)]]>
使用这种相关方法,计算复杂度为(q-1)2(q+1)qlog2q.]]>
算法W-FHT(b)二维的计算过程如图10所示。
算法W-FHT(b)三维的相关值排列如图11所示。
当k′=q-1]]>时,用一次Gold码的FHT得到接收信号{r(n)}与{ak,k’(n)}的互相关函数C(k,k′;τ)。
c):当维度k和维度k′均与维度τ的差值固定时,即τ-kq-1=A(A=0,1,2,...,q-2)或τ-k′‾q-1=B(B=0,1,2,...,q-2),]]>由式(1)可得到
C(τ-A‾q-1,τ-B‾q-1;τ)=Σn=0q-2r*(n)u(n+τ‾q-1)v(n+A‾q-1)w(n+B‾q-1),τ=0,1,...,q-2---(18)]]>
先固定A=0,1,...,q-2和维度τ=0,1,...,q-2的值,得到一维相关值,再得到k′和τ两个维度的相关值,最后得到k、k′和τ三个维度的相关值:
使用m序列w生成Walsh-Hadamard矩阵可得:
CxC(τ-A‾q-1,τ-0‾q-1;τ)C(τ-A‾q-1,τ-1‾q-1;τ)···C(τ-A‾q-1,τ-q+2‾q-1;τ)=+1+1···+1+1w+1wT······+1wTq-20r*(0)u(0+τ‾q-1)v(0+A‾q-1)r*(1)u(1+τ‾q-1)v(1+A‾q-1)···r*(q-2)u(q-2+τ‾q-1)v(q-2+A‾q-1)---(19)]]>
使用这种相关方法,计算复杂度为(q-1)2(q+1)qlog2q.]]>
观察发现式(19)与(15)类似,计算维度k′和维度τ二维相关值的方法是一样的,只是在第三维相关值的排列上不同。
算法W-FHT(c)二维的计算过程如图10。
算法W-FHT(c)三维的相关值排列如图12所示。
本发明的方法流程示意图如图13所示。
当k′=q-1]]>时,用一次Gold码的FHT得到接收信号{r(n)}与{ak,k’(n)}的互相关函数C(k,k′;τ)。
表1是算法类V-FHT、U-FHT与FFT频域相关法检测Gold-Kasami大集合序列时的运算量比较。
表2是算法类W-FHT与FFT频域相关法检测Gold-Kasami大集合序列时的运算量比较。
表1
表2