背景技术
卫星导航接收机信号捕获是包括相关、搜索、判决等多个环节的复杂过程。虽然不同信号捕获算法之间存在较大差异,但最基本处理均是将一定长度的基带信号与本地伪码进行相关累加。
信号捕获模块通用流程如图1所示,图中本地信号与接收信号的相关累加是捕获模块的最基本运算。为了提高捕获速度,目前卫星导航接收机均使用接收数据滑动的频域并行捕获方法,其实现的基本框图如图2所示;
假设捕获模块输入的基带复信号为r[k],本地伪码为c[k],单次累加长度为N,则可以将N点的相关累加视为信号捕获模块的基本运算结构,具体表达式为:
v[i]=∑ir[iN+k]×c[iN+k] (1)
其中,v[i]表示不同分段的相关累加值,c[k]是使用物理电平表示的本地伪码,对于卫星导航而言,本地伪码c[k]使用±1;
上述基本运算结构主要由基带复信号缓存、本地伪码缓存、并行相关器组和多级加法树组成,具体如图3所示;
为了提高加法树的利用效率,并行相关器组中相关器的个数N通常选为2的整数倍,则加法树的级数M与相关器个数N之间的关系为N=2M;
通过使用上述基本运算结构重复进行不同分段的相关累加,可以完成导航信号的捕获判决;很显然,并行相关器的个数N越大,完成相同长度相关累加所需的时间越短。因此目前信号捕获模块的相关累加在整个接收机的硬件资源中占据了重要的比重,其高效实现对接收机的低功耗和低成本设计具有重要的意义。
当基带复信号的实部和虚部均使用1bit量化时,可以使用异或的方式实现基带复信号与本地伪码的相关,可以极大地降低相关累加所需的硬件资源。但是在宽带接收条件下,1bit量化会引入约2.5dB的性能损耗。综合硬件资源和性能损耗两方面考虑,目前的导航接收机在信号捕获中,基带复信号的实部和虚部均使用2bit字长,以及0、±1共3电平量化;但是当基带复信号使用2bit字长表示时,无法使用异或完成相关运算,这会导致相关累加所需的硬件资源显著增加。
发明内容
本发明针对现有技术问题提供一种基于FPGA的卫星导航接收机信号捕获***及方法,旨在以较少的硬件资源完成信号捕获的相关累加运算。
为了实现上述目的,本发明提出一种基于FPGA的卫星导航接收机信号捕获***,包括:基带复信号缓存单元、由若干FPGA构成的并行相关器组单元、本地伪码缓存单元和多级加法树单元;其中,
所述的基带复信号缓存单元,用于存储基带复信号,并将2bit字长的基带信号转换为两路1bit字长的基带信号,发送至并行相关器组单元;
所述的并行相关器组单元,包括两个异或模块组,其中一组用于接收一路1bit字长的基带信号和本地伪码进行异或处理;另一组用于接收另一路1bit字长的基带信号和本地伪码进行异或处理;
所述的本地伪码缓存单元,用于存储本地伪码,并发送至并行相关器组单元;
所述的多级加法树单元,用于接收并行相关器组单元发送的信号进行累加,完成信号捕获。
优选地,所述的基带复信号缓存单元,采用量化方法,将2bit字长的基带信号转换为两路1bit字长的基带信号;所述的量化方法,即将基带信号进行多范围的划分,不同范围对应不同的量化电平和编码。
优选地,所述的将基带信号进行多范围的划分,不同范围对应不同的量化电平和编码;具体如下表所示:
输入信号 |
(+∞,+L] |
(+L,0] |
(0,-L] |
(-L,-∞) |
量化电平 |
3 |
1 |
-1 |
-3 |
二进制编码 |
00 |
01 |
10 |
11 |
L表示量化门限,其值为输入信号的标准差的0.7倍。
优选地,两个异或模块组,每组包含多个异或模块,假设每组异或模块的个数为N,通常N为2的整数倍,假定为2M,则加法树共M级。
优选地,所述的异或模块组,同组相邻的异或模块将输出信号发送至多级加法树单元内部同一个加法器中。
本发明还提出一种采用所述的基于FPGA的卫星导航接收机信号捕获***进行的方法,包括如下步骤:
S10、采用基带复信号缓存单元将2bit字长的基带信号转换为两路1bit字长的基带信号;
S20、采用本地伪码缓存单元将存储的本地伪码发送至并行相关器组单元;
S30、采用并行相关器组单元内部的两个异或模块组,分别接收一路1bit字长的基带信号和本地伪码及另一路1bit字长的基带信号和本地伪码,并进行异或处理;
S40、采用多级加法树单元接收并行相关器组单元发送的信号进行累加,完成信号捕获
优选地,步骤S10所述的将2bit字长的基带信号转换为两路1bit字长的基带信号,具体为:采用量化方法,将2bit字长的基带信号转换为两路1bit字长的基带信号;所述的量化方法,即将基带信号进行多范围的划分,不同范围对应不同的量化电平和编码。
优选地,步骤S40所述的采用多级加法树单元接收并行相关器组单元发送的信号进行累加,具体为:
将同组内相邻的异或模块将输出信号发送至多级加法树单元内部同一个加法器中进行累加。
本发明还提出一种基于FPGA的卫星导航接收机,包括:
处理器;
存储器,耦合至所述的处理器并存储有指令,所述的指令在由所述处理器执行实现所述的方法的步骤。
本发明还提出一种基于FPGA的直序列扩频接收机,包括:
处理器;
存储器,耦合至所述的处理器并存储有指令,所述的指令在由所述处理器执行实现所述的方法的步骤。
本发明提出一种基于FPGA的卫星导航接收机信号捕获***及方法,本发明运算结构得到的相关累加值与传统的使用多bit相关的结构是完全等价的;相比传统捕获方法使用3电平量化,本专利使用4电平量化可使量化损耗减小约0.3dB;相比传统捕获方法使用2bit进行相关累加,本专利使用1bit进行相关累加,资源可节省约1/2。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明的一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
需要说明,若本发明实施例中有涉及方向性指示(诸如上、下、左、右、前、后……),则该方向性指示仅用于解释在某一特定姿态(如附图所示)下各部件之间的相对位置关系、运动情况等,如果该特定姿态发生改变时,则该方向性指示也相应地随之改变。
另外,若本发明实施例中有涉及“第一”、“第二”等的描述,则该“第一”、“第二”等的描述仅用于描述目的,而不能理解为指示或暗示其相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。另外,各个实施例之间的技术方案可以相互结合,但是必须是以本领域普通技术人员能够实现为基础,当技术方案的结合出现相互矛盾或无法实现时应当认为这种技术方案的结合不存在,也不在本发明要求的保护范围之内。
本发明提出一种基于FPGA的卫星导航接收机信号捕获***;
本发明一种优选实施例中,如图4所示,包括:基带复信号缓存单元、由若干FPGA构成的并行相关器组单元、本地伪码缓存单元和多级加法树单元;其中,基带复信号缓存单元,用于存储基带复信号,并将2bit字长的基带信号转换为两路1bit字长的基带信号,发送至并行相关器组单元;并行相关器组单元,包括两个异或模块组,其中一组用于接收一路1bit字长的基带信号和本地伪码进行异或处理;另一组用于接收另一路1bit字长的基带信号和本地伪码进行异或处理;本地伪码缓存单元,用于存储本地伪码,并发送至并行相关器组单元;多级加法树单元,用于接收并行相关器组单元发送的信号进行累加,完成信号捕获。
本发明实施例中,通过采用特殊的量化方法,将2bit字长的基带信号与本地伪码的相关累加转换成2路1bit字长的基带信号与本地伪码的相关累加,从而达到高效运算的目的;
以GPS L1C/A信号为例,假设输入捕获模块的基带信号采样率为4Msps,其基带复信号r0[k]使用4bit表示,其范围为[-7,7],按照下表对其进行量化和编码:
表1 高效相关累加算法的量化和编码规则
输入信号 |
(+7,+3] |
(+3,0] |
(0,-3] |
(-3,-7) |
量化电平 |
3 |
1 |
-1 |
-3 |
二进制编码 |
00 |
01 |
10 |
11 |
假设经过重新量化和编码后的基带复信号的第0bit为b0[k],第1bit为b1[k],将第0bit和第1bit与本地伪码c[k]分别进行相关累加。由于输入信号与本地伪码均使用1bit表示,因此可以使用异或来实现,具体如下式:
最终的相关累加结果v[i]为:
v[i]=2v1[i]+v0[i] (4)
本发明实施例中,两个异或模块组,每组包含多个异或模块。假设每组异或模块的个数为N,通常N为2的整数倍,假定为2M,则加法树共M级。同组相邻的异或模块将输出信号发送至多级加法树单元内部同一个加法器中。
本发明实施例中,假设相干积累时长设为1/16ms,FPGA并行相关器数量为128个,则完成相干积累需要进行2次128点的相关运算。假设经过重新量化和编码后的基带复信号的第0bit为b0[k],第1bit为b1[k],使用异或将第0bit和第1bit与本地伪码c[k]分别进行相关累加。
本发明实施例中,第1次128点相关运算的表达式如下所示:
本发明实施例中,第2次128点相关运算的表达式如下所示:
最终相干积累的结果v为
v=(2v1,0+v0,0)+(2v1,1+v0,1) (9)
得到相干积累的结果之后,就可以按照通用捕获的实现结果完成信号捕获模块的实现;上述运算结构得到的相关累加值与传统的使用多bit相关的结构是完全等价的。
本发明还提出一种采用所述的基于FPGA的卫星导航接收机信号捕获***进行的方法,如图5所示,包括如下步骤:
S10、采用基带复信号缓存单元将2bit字长的基带信号转换为两路1bit字长的基带信号;
本发明实施例中,采用量化方法,将2bit字长的基带信号转换为两路1bit字长的基带信号;所述的量化方法,即将基带信号进行多范围的划分,不同范围对应不同的量化电平和编码;
以GPS L1C/A信号为例,假设输入捕获模块的基带信号采样率为4Msps,其基带复信号r0[k]使用4bit表示,其范围为[-7,7],按照下表对其进行量化和编码:
表1 高效相关累加算法的量化和编码规则
输入信号 |
(+7,+3] |
(+3,0] |
(0,-3] |
(-3,-7) |
量化电平 |
3 |
1 |
-1 |
-3 |
二进制编码 |
00 |
01 |
10 |
11 |
S20、采用本地伪码缓存单元将存储的本地伪码发送至并行相关器组单元;
S30、采用并行相关器组单元内部的两个异或模块组,分别接收一路1bit字长的基带信号和本地伪码及另一路1bit字长的基带信号和本地伪码,并进行异或处理;
本发明实施例中,假设相干积累时长设为1/16ms,FPGA并行相关器数量为128个,则完成相干积累需要进行2次128点的相关运算。假设经过重新量化和编码后的基带复信号的第0bit为b0[k],第1bit为b1[k],使用异或将第0bit和第1bit与本地伪码c[k]分别进行相关累加。
本发明实施例中,第1次128点相关运算的表达式如下所示:
本发明实施例中,第2次128点相关运算的表达式如下所示:
S40、采用多级加法树单元接收并行相关器组单元发送的信号进行累加,完成信号捕获;
本发明实施例中,将同组内相邻的异或模块将输出信号发送至多级加法树单元内部同一个加法器中进行累加;
最终相干积累的结果v为
v=(2v1,0+v0,0)+(2v1,1+v0,1) (9)
本发明实施例中,如图6所示,相比传统捕获方法使用3电平量化,本专利使用4电平量化可使量化损耗减小约0.3dB;
本发明还提出一种基于FPGA的卫星导航接收机,如图7所示,包括:
处理器;
存储器,耦合至所述的处理器并存储有指令,所述的指令在由所述处理器执行实现所述的方法的步骤,例如:
S10、采用基带复信号缓存单元将2bit字长的基带信号转换为两路1bit字长的基带信号;
S20、采用本地伪码缓存单元将存储的本地伪码发送至并行相关器组单元;
S30、采用并行相关器组单元内部的两个异或模块组,分别接收一路1bit字长的基带信号和本地伪码及另一路1bit字长的基带信号和本地伪码,并进行异或处理;
S40、采用多级加法树单元接收并行相关器组单元发送的信号进行累加,完成信号捕获。
各步骤的具体细节上文已经阐述,此处不再复述;
本发明还提出一种基于FPGA的直序列扩频接收机,如图8所示,包括:
处理器;
存储器,耦合至所述的处理器并存储有指令,所述的指令在由所述处理器执行实现所述的方法的步骤,,例如:
S10、采用基带复信号缓存单元将2bit字长的基带信号转换为两路1bit字长的基带信号;
S20、采用本地伪码缓存单元将存储的本地伪码发送至并行相关器组单元;
S30、采用并行相关器组单元内部的两个异或模块组,分别接收一路1bit字长的基带信号和本地伪码及另一路1bit字长的基带信号和本地伪码,并进行异或处理;
S40、采用多级加法树单元接收并行相关器组单元发送的信号进行累加,完成信号捕获。
各步骤的具体细节上文已经阐述,此处不再复述;
本发明实施例中,所述的基于FPGA的卫星导航接收机或基于FPGA的直序列扩频接收机内置处理器,可以由集成电路组成,例如可以由单个封装的集成电路所组成,也可以是由多个相同功能或不同功能封装的集成电路所组成,包括一个或者多个中央处理器(Central Processing unit,CPU)、微处理器、数字处理芯片、图形处理器及各种控制芯片的组合等。处理器利用各种接口和线路连接取各个部件,通过运行或执行存储在存储器内的程序或者单元,以及调用存储在存储器内的数据,以执行基于FPGA的卫星导航接收机信号捕获的各种功能和处理数据;
存储器用于存储程序代码和各种数据,安装在基于FPGA的卫星导航接收机或基于FPGA的直序列扩频接收机中,并在运行过程中实现高速、自动地完成程序或数据的存取。所述存储器包括只读存储器(Read-Only Memory,ROM)、随机存储器(Random Access Memory,RAM)、可编程只读存储器(Programmable Read-Only Memory,PROM)、可擦除可编程只读存储器(Erasable Programmable Read-Only Memory,EPROM)、一次可编程只读存储器(One-time Programmable Read-Only Memory,OTPROM)、电子擦除式可复写只读存储器(Electrically-Erasable Programmable Read-Only Memory,EEPROM)、只读光盘(CompactDisc Read-Only Memory,CD-ROM)或其他光盘存储器、磁盘存储器、磁带存储器、或者能够用于携带或存储数据的计算机可读的任何其他介质。
在本发明的实施方式的描述中,需要说明的是,流程图中或在此以其他方式描述的任何过程或方法描述可以被理解为,表示包括一个或更多个用于实现特定逻辑功能或过程的步骤的可执行指令的代码的模块、片段或部分,并且本发明的优选实施方式的范围包括另外的实现,其中可以不按所示出或讨论的顺序,包括根据所涉及的功能按基本同时的方式或按相反的顺序,来执行功能,这应被本发明的实施例所属技术领域的技术人员所理解。
以上所述仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是在本发明的发明构思下,利用本发明说明书及附图内容所作的等效结构变换,或直接/间接运用在其他相关的技术领域均包括在本发明的专利保护范围内。