技术领域technical field
本发明涉及基于GNU Radio的GPS软件接收机,属于卫星导航技术领域。The invention relates to a GPS software receiver based on GNU Radio, belonging to the technical field of satellite navigation.
背景技术Background technique
GPS是美国全球定位导航系统,分布范围广,卫星数目多,提供全球覆盖、全天候的三维定位,是目前服务最完善定位系统。GNU Radio属于开源软件无线电软件,提供大量但是信号处理模块来实现软件无线电应用,近年来,GNU Radio软件无线电项目中有着广泛的应用。GPS is the global positioning and navigation system of the United States. It has a wide distribution area and a large number of satellites. It provides global coverage and all-weather three-dimensional positioning. It is currently the most complete positioning system. GNU Radio is an open source software radio software, which provides a large number of signal processing modules to realize software radio applications. In recent years, GNU Radio software radio projects have been widely used.
传统的商用GPS接收机一般由四部分组成:GPS天线,射频前端,相关器,微处理器。其中天线负责接收GPS信号,射频前端负责将GPS信号转换为低频信号并进行A/D转换,相关器负责信号的捕获、跟踪,并将伪码、载波以及观测值等传递给微处理器,属于接收机的硬件部分,微处理器负责将导航解算,根据导航电文中的卫星位置信息以及卫星信号的发射时间与本地接收信号的时间,完成接收机的位置解算。硬件接收机的核心就是相关器,后续处理器的数据都是来自于相关器,一般的相关器都是GPS芯片。A traditional commercial GPS receiver generally consists of four parts: GPS antenna, RF front-end, correlator, and microprocessor. Among them, the antenna is responsible for receiving GPS signals, the RF front-end is responsible for converting GPS signals into low-frequency signals and performing A/D conversion, and the correlator is responsible for capturing and tracking signals, and transmitting pseudo codes, carrier waves, and observation values to the microprocessor. In the hardware part of the receiver, the microprocessor is responsible for the navigation calculation, and completes the receiver's position calculation according to the satellite position information in the navigation message, the satellite signal transmission time and the local receiving signal time. The core of the hardware receiver is the correlator, and the data of the subsequent processor comes from the correlator, and the general correlator is a GPS chip.
传统接收机基带信号处理中出现的大量相关运算,特别是跟踪过程的相关操作需要专用集成电路(Application Specific Integrated Circuit,ASIC)来进行处理,相比于软件来说成本高,并且相应芯片只能针对单一的频段进行处理,难以扩展,不够灵活。A large number of related calculations in the baseband signal processing of traditional receivers, especially the related operations of the tracking process, require Application Specific Integrated Circuit (ASIC) to process, which is more expensive than software, and the corresponding chip can only Processing for a single frequency band is difficult to expand and not flexible enough.
发明内容Contents of the invention
为了解决上述问题,本发明提供一种基于GNU Radio的GPS软件接收机。本发明采取的技术方案如下:In order to solve the above problems, the present invention provides a GPS software receiver based on GNU Radio. The technical scheme that the present invention takes is as follows:
基于GNU Radio的GPS软件接收机,包括如下步骤:GPS software receiver based on GNU Radio, including the following steps:
第一步:GPS天线模块接收到GPS信号后,经过低噪放大器与带通滤波器输出到射频模块;Step 1: After the GPS antenna module receives the GPS signal, it outputs to the RF module through the low-noise amplifier and the band-pass filter;
第二步:射频模块处理信号:根据奈奎斯特采样定理,对GPS C/A带宽的2倍进行带通采样,采样后的信号进行A/D转换后可以利用GNU Radio提供的USRP硬件驱动UHD将数据进行本地保存以进行后处理,也可以根据采样流进行实时处理;Step 2: The RF module processes the signal: According to the Nyquist sampling theorem, bandpass sampling is performed on twice the GPS C/A bandwidth, and the sampled signal can be driven by the USRP hardware provided by GNU Radio after A/D conversion UHD saves the data locally for post-processing, and can also perform real-time processing according to the sampling stream;
第三步:基带信号处理:采集的信号中需要判断哪些是卫星信号,需要先经过捕获,得到卫星的粗略多普勒频率和码相位,将得到的信息传递给跟踪模块,再得到多普勒频移与码相位的精确值以解调出导航电文,包括如下捕获模块与跟踪模块处理:Step 3: Baseband signal processing: It is necessary to determine which of the collected signals are satellite signals. It needs to be captured first to obtain the rough Doppler frequency and code phase of the satellite, and then pass the obtained information to the tracking module to obtain Doppler. The precise value of frequency shift and code phase is used to demodulate the navigation message, including the following acquisition module and tracking module processing:
捕获模块处理方法:GPS L1C/A信号捕获是一个二维的过程,需要得到信号的码相位以及载波频率,捕获模块采样基于FFT的码相搜索算法,算法如下:Acquisition module processing method: GPS L1C/A signal acquisition is a two-dimensional process, which needs to obtain the code phase and carrier frequency of the signal. The acquisition module samples the code phase search algorithm based on FFT. The algorithm is as follows:
a.基于FFT并行码相捕获算法首先将在采集信号分别与本地载波相乘得到同向分量I,与相移90°载波相乘得到正交分量Q,得到基带复信号I+jQ,对得到的复信号进行FFT变换;a. Based on the FFT parallel code phase acquisition algorithm, the acquisition signal is multiplied by the local carrier to obtain the in-direction component I, and the phase-shifted 90° carrier is multiplied to obtain the quadrature component Q, and the baseband complex signal I+jQ is obtained. The complex signal is subjected to FFT transformation;
b.对本地伪码生成器生成的伪码进行FFT变换,将其转换到频域,并取复共轭;b. Carry out FFT transformation to the pseudocode generated by the local pseudocode generator, convert it to the frequency domain, and take the complex conjugate;
c.对a和b的结果进行相乘,并进行IFFT变换转换到时域;c. Multiply the results of a and b, and perform IFFT transformation to convert to the time domain;
d.将IFFT后的输出的值的平方表示输入信号和PRN码的相关性。如果相关值中存在峰值,则该峰值的坐标就对应输入信号的码相位与载波频率;若没有通过门限,需要重新设定本地载波再次搜索;d. The square of the output value after IFFT represents the correlation between the input signal and the PRN code. If there is a peak in the correlation value, the coordinates of the peak correspond to the code phase and carrier frequency of the input signal; if the threshold is not passed, the local carrier needs to be reset and searched again;
跟踪模块处理方法:捕获模块得到的码相位和多普勒频移一个粗略值,由于接收机和卫星的相对运动,码相位和多普勒频移是实时变化的,所以需要得到实时更新信号频率、码相位变化以解调出导航电文;跟踪模块采用载波跟踪环和码跟踪相结合的跟踪算法,该算法过程为:载波跟踪环中,首先根据捕获过程中输出的载波频率值在本地复制同样频率的载波。将本地复制载波与输入信号进行混频,以剥离输入信号中的载波。并根据载波的剥离效果进一步调整本地复制载波的参数,以达到最好的载波跟踪效果。载波跟踪环通常采用相位锁定环路(PLL)的形式,码跟踪环中,通常会复制3份不同相位的C/A码,分别称为超前码(early)、即时码(prompt)和滞后码(late),并分别用字母E、P和L来表示。将这3份不同相位的C/A码分别与输入信号进行相关操作,并将即时码的相关结果与超前码和滞后码的相关结果进行比较,就可以较为精确地确定相关结果的最大值。Tracking module processing method: the code phase and Doppler frequency shift obtained by the acquisition module are a rough value. Due to the relative motion between the receiver and the satellite, the code phase and Doppler frequency shift change in real time, so it is necessary to obtain real-time update signal frequency , code phase change to demodulate the navigation message; the tracking module adopts a tracking algorithm combining carrier tracking loop and code tracking. frequency carrier. Mixes the local replica carrier with the input signal to strip the carrier from the input signal. And according to the stripping effect of the carrier, the parameters of the local copy carrier are further adjusted to achieve the best carrier tracking effect. The carrier tracking loop usually takes the form of a phase-locked loop (PLL). In the code tracking loop, three C/A codes with different phases are usually copied, which are called early code (early), immediate code (prompt) and lag code. (late), and are represented by the letters E, P and L respectively. Correlate the three C/A codes with different phases with the input signal respectively, and compare the correlation results of the real-time code with the correlation results of the leading code and the lagging code, so that the maximum value of the correlation result can be determined more accurately.
第四步:导航电文解调与位置计算,其方法如下:Step 4: Navigation message demodulation and position calculation, the method is as follows:
导航电文解调方法如下:The navigation message demodulation method is as follows:
跟踪环路的输出的数据是一串01二进制数据,需要按照GPS信号格式进行解调恢复成导航电文,其中的解调步骤包括位同步、帧同步、奇偶校验、导航电文读取几个步骤;其中位同步需要得到导航电文的跳变位置,导航电文每一位的周期为20ms,C/A码每chip周期为1ms,导航电文每一位包含20个C/A码,当某个C/A码发生变化时,直方图中20个格子相应的值加一,直到直方图中某一个格子的值超过预定值认为位同步成功,对相应跳变位置进行统计,出现一次变化就加一,大于设定门限认定检测成功;子帧同步:位同步成功后可以得到50bps的导航电文,为了获取导航信息,需要获取各个子帧在50bps导航电文中的具体位置,子帧周期6s,由于Costas对环路跳变不敏感,起始8位前导码可能为10001011或者01110100,所以子帧同步需要对前导码及其反码进行搜索,但是搜索到的符合前导码和其反码格式也可能是数据码,还需对后续22bit进行奇偶校验,并对几个子帧前导码位置进行确认。奇偶校验:假设接收获得的30bit为数据为d1,d2,d3,......d30,按照奇偶检验算法,可以计算得到对应每一位计算值D1,D2,D3,......D30,如果接收到的检校位和计算得到结果相同,则表示数据无误;导航电文读取:奇偶校验成功后按照固定的格式对导航信息进行提取,如子帧1的197位起始的8bit数据为电离层时延参数Tgd;The output data of the tracking loop is a string of 01 binary data, which needs to be demodulated according to the GPS signal format to restore the navigation message. The demodulation steps include bit synchronization, frame synchronization, parity check, and navigation message reading. ; Among them, the bit synchronization needs to obtain the jump position of the navigation message. The period of each bit of the navigation message is 20ms, and the C/A code is 1ms per chip cycle. Each bit of the navigation message contains 20 C/A codes. When a certain C When the /A code changes, the corresponding value of the 20 grids in the histogram will be increased by one, until the value of a certain grid in the histogram exceeds the predetermined value, the bit synchronization is considered successful, and the corresponding jump position will be counted, and one will be added when there is a change , greater than the set threshold, the detection is successful; subframe synchronization: after the bit synchronization is successful, the 50bps navigation message can be obtained. In order to obtain the navigation information, it is necessary to obtain the specific position of each subframe in the 50bps navigation message, and the subframe period is 6s. Due to Costas It is not sensitive to loop jumps. The initial 8-bit preamble may be 10001011 or 01110100, so the subframe synchronization needs to search for the preamble and its inverse, but the format of the searched preamble and its inverse may also be For the data code, it is also necessary to perform a parity check on the subsequent 22 bits, and to confirm the preamble positions of several subframes. Parity check: Assuming that the received 30bit data are d1, d2, d3,...d30, according to the parity check algorithm, the calculation value corresponding to each bit D1, D2, D3,.... ..D30, if the received check bit is the same as the calculated result, it means that the data is correct; navigation message reading: after the parity check is successful, the navigation information is extracted according to a fixed format, such as starting from 197 bits of subframe 1 The initial 8bit data is the ionospheric delay parameter Tgd ;
位置解算方法如下:利用伪距定位原理,得到四颗卫星的位置信息即可结算处用户位置信息,The position calculation method is as follows: using the pseudo-range positioning principle, the position information of the four satellites can be obtained to settle the user position information,
其中(xi,yi,zi)为第i颗卫星的三维坐标,(xu,yu,zu)为用户位置,tu为用户接收机的时钟误差与卫星原子钟的时钟钟差,对(1)进行微分方程得到:Where (xi , yi ,zi ) is the three-dimensional coordinates of the i-th satellite, (xu , yu , zu ) is the position of the user, tu is the clock error of the user receiver and the clock difference of the satellite atomic clock , and apply the differential equation to (1) to get:
其中δxu,δyu,δzu,δtu是未知量,将(2)定义为矩阵形式in δxu , δyu , δzu , δtu are unknown quantities, define (2) as matrix form
求解可得:The solution can be obtained:
该方程不能直接求解,本软件利用最小二乘法进行迭代求解,具体实现步骤为:This equation cannot be solved directly. This software uses the least square method to solve it iteratively. The specific implementation steps are:
①给定用户位置(xu,yu,zu)和时钟偏差tu设置初值,可求解一组(δxu,δyu,δzu,δtu),利用这些值对原来的值进行修正,新值看为已知量;①Given the user position (xu , yu , zu ) and the clock bias tu to set the initial value, a set of (δxu , δyu , δzu , δtu ) can be solved, and these values are used to carry out the original value Correction, the new value is regarded as a known quantity;
②重复①操作,如果大于预定门限,将δxu,δyu,δzu,δtu和xu,yu,zu,tu的初值相加,得到一组新值,将新值作为接下来计算的初值;②Repeat the operation ①, if is greater than the predetermined threshold, add the initial values of δxu , δyu , δzu , δtu and xu , yu , zu , tu to get a set of new values, and use the new values as the initial values for subsequent calculations ;
③重复①②操作,直到Δν小于门限值,此时认定求得解xu,yu,zu,tu。③Repeat ①②operations until Δν is less than the threshold value, at this time, it is determined to obtain the solutions xu , yu , zu , tu .
本发明的有益效果:基于GNU Radio的GPS软件接收机则是利用GNU Radio软件架构,采用面向对象的编程思想,结合GNU Radio提供的信号处理模块,将信号的捕获、跟踪以及后续的导航解算在通用处理器上编程实现,使用GNU Radio提供的scheduler进行多线程调度管理实现多通道处理可以达到实时性能,并且相比于硬件接收机,可以进行算法升级,便于软件开发,具有很大的灵活性与可扩展性。Beneficial effects of the present invention: the GPS software receiver based on GNU Radio utilizes the GNU Radio software architecture, adopts object-oriented programming ideas, and combines signal processing modules provided by GNU Radio to capture, track and follow-up navigation solutions Programmed on a general-purpose processor, using the scheduler provided by GNU Radio for multi-thread scheduling management to achieve multi-channel processing can achieve real-time performance, and compared with hardware receivers, the algorithm can be upgraded, which is convenient for software development and has great flexibility performance and scalability.
附图说明Description of drawings
图1是基于FFT并行码相捕获算法原理如图。Figure 1 is a schematic diagram of the FFT-based parallel code phase acquisition algorithm.
图2是码跟踪环与载波跟踪环相结合的跟踪算法。Figure 2 is a tracking algorithm combining code tracking loop and carrier tracking loop.
具体实施方式Detailed ways
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。The following will clearly and completely describe the technical solutions in the embodiments of the present invention with reference to the accompanying drawings in the embodiments of the present invention. Obviously, the described embodiments are only some, not all, embodiments of the present invention. Based on the embodiments of the present invention, all other embodiments obtained by persons of ordinary skill in the art without making creative efforts belong to the protection scope of the present invention.
基于GNU Radio的GPS软件接收机,包括如下步骤:GPS software receiver based on GNU Radio, including the following steps:
第一步:GPS天线模块接收到GPS信号后,经过低噪放大器与带通滤波器输出到射频模块;Step 1: After the GPS antenna module receives the GPS signal, it outputs to the RF module through the low-noise amplifier and the band-pass filter;
第二步:射频模块处理信号:根据奈奎斯特采样定理,对GPS C/A带宽的2倍进行带通采样,采样后的信号进行A/D转换后可以利用GNU Radio提供的USRP硬件驱动UHD将数据进行本地保存以进行后处理,也可以根据采样流进行实时处理;Step 2: The RF module processes the signal: According to the Nyquist sampling theorem, bandpass sampling is performed on twice the GPS C/A bandwidth, and the sampled signal can be driven by the USRP hardware provided by GNU Radio after A/D conversion UHD saves the data locally for post-processing, and can also perform real-time processing according to the sampling stream;
第三步:基带信号处理:采集的信号中需要判断哪些是卫星信号,需要先经过捕获,得到卫星的粗略多普勒频率和码相位,将得到的信息传递给跟踪模块,再得到多普勒频移与码相位的精确值以解调出导航电文,包括如下捕获模块与跟踪模块处理:Step 3: Baseband signal processing: It is necessary to determine which of the collected signals are satellite signals. It needs to be captured first to obtain the rough Doppler frequency and code phase of the satellite, and then pass the obtained information to the tracking module to obtain Doppler. The precise value of frequency shift and code phase is used to demodulate the navigation message, including the following acquisition module and tracking module processing:
捕获模块处理方法:GPS L1C/A信号捕获是一个二维的过程,需要得到信号的码相位以及载波频率,捕获模块采样基于FFT的码相搜索算法,算法如下:Acquisition module processing method: GPS L1C/A signal acquisition is a two-dimensional process, which needs to obtain the code phase and carrier frequency of the signal. The acquisition module samples the code phase search algorithm based on FFT. The algorithm is as follows:
a.基于FFT并行码相捕获算法首先将在采集信号分别与本地载波相乘得到同向分量I,与相移90°载波相乘得到正交分量Q,得到基带复信号I+jQ,对得到的复信号进行FFT变换;a. Based on the FFT parallel code phase acquisition algorithm, the acquisition signal is multiplied by the local carrier to obtain the in-direction component I, and the phase-shifted 90° carrier is multiplied to obtain the quadrature component Q, and the baseband complex signal I+jQ is obtained. The complex signal is subjected to FFT transformation;
b.对本地伪码生成器生成的伪码进行FFT变换,将其转换到频域,并取复共轭;b. Carry out FFT transformation to the pseudocode generated by the local pseudocode generator, convert it to the frequency domain, and take the complex conjugate;
c.对a和b的结果进行相乘,并进行IFFT变换转换到时域;c. Multiply the results of a and b, and perform IFFT transformation to convert to the time domain;
d.将IFFT后的输出的值的平方表示输入信号和PRN码的相关性。如果相关值中存在峰值,则该峰值的坐标就对应输入信号的码相位与载波频率;若没有通过门限,需要重新设定本地载波再次搜索;基于FFT并行码相捕获算法原理如图1所示。d. The square of the output value after IFFT represents the correlation between the input signal and the PRN code. If there is a peak in the correlation value, the coordinates of the peak correspond to the code phase and carrier frequency of the input signal; if the threshold is not passed, the local carrier needs to be reset and searched again; the principle of the parallel code phase acquisition algorithm based on FFT is shown in Figure 1 .
跟踪模块处理方法:捕获模块得到的码相位和多普勒频移一个粗略值,由于接收机和卫星的相对运动,码相位和多普勒频移是实时变化的,所以需要得到实时更新信号频率、码相位变化以解调出导航电文;跟踪模块采用载波跟踪环和码跟踪相结合的跟踪算法,图2为码跟踪环与载波跟踪环相结合的GPS信号跟踪原理图。图2所示:捕获模块将码相位与多普勒频移的粗略值传递给跟踪模块,载波环路中载波鉴相器计算跟踪信号中实时变化的载波相位用以生成本地载波,码跟踪环路通过计算E、P、L三路的积分结果实现对码相位的动态调整,保证即时码相关积分始终保持最大值,这样才能保证IE输出导航电文。Tracking module processing method: the code phase and Doppler frequency shift obtained by the acquisition module are a rough value. Due to the relative motion between the receiver and the satellite, the code phase and Doppler frequency shift change in real time, so it is necessary to obtain real-time update signal frequency , The code phase changes to demodulate the navigation message; the tracking module adopts the tracking algorithm combining the carrier tracking loop and the code tracking. Figure 2 is the principle diagram of the GPS signal tracking combined with the code tracking loop and the carrier tracking loop. As shown in Figure 2: the acquisition module transmits the rough value of the code phase and Doppler frequency shift to the tracking module, and the carrier phase detector in the carrier loop calculates the real-time changing carrier phase in the tracking signal to generate a local carrier, and the code tracking loop By calculating the integration results of theE , P, and L circuits, the code phase can be dynamically adjusted to ensure that the real-time code-related integrals always maintain the maximum value, so as to ensure that the IE outputs navigation messages.
跟踪模块采用载波跟踪环和码跟踪相结合的跟踪算法,该算法过程为:载波跟踪环中,首先根据捕获过程中输出的载波频率值在本地复制同样频率的载波。将本地复制载波与输入信号进行混频,以剥离输入信号中的载波。并根据载波的剥离效果进一步调整本地复制载波的参数,以达到最好的载波跟踪效果。载波跟踪环通常采用相位锁定环路(PLL)的形式,码跟踪环中,通常会复制3份不同相位的C/A码,分别称为超前码(early)、即时码(prompt)和滞后码(late),并分别用字母E、P和L来表示。将这3份不同相位的C/A码分别与输入信号进行相关操作,并将即时码的相关结果与超前码和滞后码的相关结果进行比较,就可以较为精确地确定相关结果的最大值。图2中的IE、QE、IP、QP、IL、QL分别表示本地复现的超前码、即时码和滞后码与输入信号进行相关操作,操作后得到的相关结果的同相分量和正交分量。The tracking module adopts a tracking algorithm combining carrier tracking loop and code tracking. The algorithm process is as follows: in the carrier tracking loop, firstly, the carrier of the same frequency is copied locally according to the carrier frequency value output during the acquisition process. Mixes the local replica carrier with the input signal to strip the carrier from the input signal. And according to the stripping effect of the carrier, the parameters of the local copy carrier are further adjusted to achieve the best carrier tracking effect. The carrier tracking loop usually takes the form of a phase-locked loop (PLL). In the code tracking loop, three C/A codes with different phases are usually copied, which are called early code (early), immediate code (prompt) and lag code. (late), and are represented by the letters E, P and L respectively. Correlate the three C/A codes with different phases with the input signal respectively, and compare the correlation results of the real-time code with the correlation results of the leading code and the lagging code, so that the maximum value of the correlation result can be determined more accurately. IE , QE , IP , QP , IL , and QL in Figure 2 represent the correlation operation between the locally reproduced lead code, immediate code, and lag code and the input signal, and the in-phase of the correlation results obtained after the operation Components and Orthogonal Components.
第四步:导航电文解调与位置计算,其方法如下:Step 4: Navigation message demodulation and position calculation, the method is as follows:
导航电文解调分四步:位同步,子帧同步,奇偶校验,导航电文提取(田炳丽,宁春林,丁风雷,等.GPS软件接收机导航电文提取的研究[J].通信技术,2009,42(3):212-214.)。位同步:位同步通常采用“直方图”算法0(张伟,陈萍,谭敏强.多模GNSS系统比特同步直方图优化算法[C]//International Conference on Broadcast Technology&Multimedia Communication.2010.),设定20个计算器与导航电文对应的20个C/A周期相对应,对跟踪模块I路输出的导航数据进行检测,若有变化就在相应计数器加1,当计数器超过其他位且超过门限时认定同步位检测成功。Navigation message demodulation is divided into four steps: bit synchronization, subframe synchronization, parity check, navigation message extraction (Tian Bingli, Ning Chunlin, Ding Fenglei, etc. Research on navigation message extraction of GPS software receiver[J]. Communication Technology, 2009, 42(3):212-214.). Bit synchronization: Bit synchronization usually uses the "histogram" algorithm 0 (Zhang Wei, Chen Ping, Tan Minqiang. Multi-mode GNSS system bit synchronization histogram optimization algorithm [C]//International Conference on Broadcast Technology&Multimedia Communication.2010.), set 20 calculators correspond to the 20 C/A cycles corresponding to the navigation message, and detect the navigation data output by the tracking module I. If there is a change, add 1 to the corresponding counter. When the counter exceeds other bits and exceeds the threshold, it is determined Sync bit detected successfully.
子帧同步:位同步成功后可以得到50bps的导航电文,为了获取导航信息,需要获取各个子帧在50bps导航电文中的具体位置,由2.3.3节知子帧周期6s,由于Costas对环路跳变不敏感,起始8位前导码可能为10001011或者01110100,所以子帧同步需要对前导码及其反码进行搜索,但是搜索到的符合前导码和其反码格式也可能是数据码,还需对后续22bit进行奇偶校验,并对几个子帧前导码位置进行确认。Subframe synchronization: After the bit synchronization is successful, the 50bps navigation message can be obtained. In order to obtain the navigation information, it is necessary to obtain the specific position of each subframe in the 50bps navigation message. The subframe period is 6s from Section 2.3.3. Because Costas skips the loop Insensitive, the initial 8-bit preamble may be 10001011 or 01110100, so the subframe synchronization needs to search for the preamble and its inverse, but the searched preamble and its inverse may also be data codes, or It is necessary to perform a parity check on the subsequent 22 bits, and confirm the preamble positions of several subframes.
奇偶校验:假设接收获得的30bit为数据为d1,d2,d3....d30,按照一定的算法,可以计算得到对应每一位计算值D1,D2,D3....D30,如果接收到的检校位和计算得到结果相同,则表示数据无误,即:D25=d25,D26=d26,D27=d27,D28=d28,D29=d29,D30=d30。Parity check: Assuming that the received 30bit data is d1 , d2 , d3 .... d30 , according to a certain algorithm, the calculated value D1 , D2 , D3 corresponding to each bit can be calculated. ...D30 , if the received check digit is the same as the calculated result, it means that the data is correct, that is: D25 =d25 , D26 =d26 , D27 =d27 , D28 =d28 , D29 =d29 , D30 =d30 .
跟踪环路的输出的数据是一串01二进制数据,需要按照GPS信号格式进行解调恢复成导航电文,其中的解调步骤包括位同步、帧同步、奇偶校验、导航电文读取几个步骤;其中位同步需要得到导航电文的跳变位置,导航电文每一位的周期为20ms,C/A码每chip周期为1ms,导航电文每一位包含20个C/A码,当某个C/A码发生变化时,直方图中20个格子相应的值加一,直到直方图中某一个格子的值超过预定值认为位同步成功,对相应跳变位置进行统计,出现一次变化就加一,大于设定门限认定检测成功;子帧同步:位同步成功后可以得到50bps的导航电文,为了获取导航信息,需要获取各个子帧在50bps导航电文中的具体位置,子帧周期6s,由于Costas对环路跳变不敏感,起始8位前导码可能为10001011或者01110100,所以子帧同步需要对前导码及其反码进行搜索,但是搜索到的符合前导码和其反码格式也可能是数据码,还需对后续22bit进行奇偶校验,并对几个子帧前导码位置进行确认。奇偶校验:假设接收获得的30bit为数据为d1,d2,d3,......d30,按照奇偶检验算法,可以计算得到对应每一位计算值D1,D2,D3,......D30,如果接收到的检校位和计算得到结果相同,则表示数据无误;导航电文读取:奇偶校验成功后按照固定的格式对导航信息进行提取,如子帧1的197位起始的8bit数据为电离层时延参数Tgd;The output data of the tracking loop is a string of 01 binary data, which needs to be demodulated according to the GPS signal format to restore the navigation message. The demodulation steps include bit synchronization, frame synchronization, parity check, and navigation message reading. ; Among them, the bit synchronization needs to obtain the jump position of the navigation message. The period of each bit of the navigation message is 20ms, and the C/A code is 1ms per chip cycle. Each bit of the navigation message contains 20 C/A codes. When a certain C When the /A code changes, the corresponding value of the 20 grids in the histogram will be increased by one, until the value of a certain grid in the histogram exceeds the predetermined value, the bit synchronization is considered successful, and the corresponding jump position will be counted, and one will be added when there is a change , greater than the set threshold, the detection is successful; subframe synchronization: after the bit synchronization is successful, the 50bps navigation message can be obtained. In order to obtain the navigation information, it is necessary to obtain the specific position of each subframe in the 50bps navigation message, and the subframe period is 6s. Due to Costas It is not sensitive to loop jumps. The initial 8-bit preamble may be 10001011 or 01110100, so the subframe synchronization needs to search for the preamble and its inverse, but the format of the searched preamble and its inverse may also be For the data code, it is also necessary to perform a parity check on the subsequent 22 bits, and to confirm the preamble positions of several subframes. Parity check: Assuming that the received 30bit data are d1, d2, d3,...d30, according to the parity check algorithm, the calculation value corresponding to each bit D1, D2, D3,.... ..D30, if the received check bit is the same as the calculated result, it means that the data is correct; navigation message reading: after the parity check is successful, the navigation information is extracted according to a fixed format, such as starting from 197 bits of subframe 1 The initial 8bit data is the ionospheric delay parameter Tgd ;
位置解算方法如下:利用伪距定位原理,得到四颗卫星的位置信息即可结算处用户位置信息,The position calculation method is as follows: using the pseudo-range positioning principle, the position information of the four satellites can be obtained to settle the user position information,
其中(xi,yi,zi)为第i颗卫星的三维坐标,(xu,yu,zu)为用户位置,tu为用户接收机的时钟误差与卫星原子钟的时钟钟差,对(1)进行微分方程得到:Where (xi , yi ,zi ) is the three-dimensional coordinates of the i-th satellite, (xu , yu , zu ) is the position of the user, tu is the clock error of the user receiver and the clock difference of the satellite atomic clock , and apply the differential equation to (1) to get:
其中δxu,δyu,δzu,δtu是未知量,将(2)定义为矩阵形式in δxu , δyu , δzu , δtu are unknown quantities, define (2) as matrix form
求解可得:The solution can be obtained:
该方程不能直接求解,本软件利用最小二乘法进行迭代求解,具体实现步骤为:This equation cannot be solved directly. This software uses the least square method to solve it iteratively. The specific implementation steps are:
①给定用户位置(xu,yu,zu)和时钟偏差tu设置初值,可求解一组(δxu,δyu,δzu,δtu),利用这些值对原来的值进行修正,新值看为已知量;①Given the user position (xu , yu , zu ) and the clock bias tu to set the initial value, a set of (δxu , δyu , δzu , δtu ) can be solved, and these values are used to carry out the original value Correction, the new value is regarded as a known quantity;
②重复①操作,如果大于预定门限,将δxu,δyu,δzu,δtu和xu,yu,zu,tu的初值相加,得到一组新值,将新值作为接下来计算的初值;②Repeat the operation ①, if is greater than the predetermined threshold, add the initial values of δxu , δyu , δzu , δtu and xu , yu , zu , tu to get a set of new values, and use the new values as the initial values for subsequent calculations ;
③重复①②操作,直到Δν小于门限值,此时认定求得解xu,yu,zu,tu。③Repeat ①②operations until Δν is less than the threshold value, at this time, it is determined to obtain the solutions xu , yu , zu , tu .
尽管已经示出和描述了本发明的实施例,对于本领域的普通技术人员而言,可以理解在不脱离本发明的原理和精神的情况下可以对这些实施例进行多种变化、修改、替换和变型,本发明的范围由所附权利要求及其等同物限定。Although the embodiments of the present invention have been shown and described, those skilled in the art can understand that various changes, modifications and substitutions can be made to these embodiments without departing from the principle and spirit of the present invention. and modifications, the scope of the invention is defined by the appended claims and their equivalents.
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| CN201810440877.0ACN108732592B (en) | 2018-05-10 | 2018-05-10 | GPS Software Receiver Based on GNU Radio |
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| CN201810440877.0ACN108732592B (en) | 2018-05-10 | 2018-05-10 | GPS Software Receiver Based on GNU Radio |
| Publication Number | Publication Date |
|---|---|
| CN108732592Atrue CN108732592A (en) | 2018-11-02 |
| CN108732592B CN108732592B (en) | 2022-04-15 |
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| CN201810440877.0AActiveCN108732592B (en) | 2018-05-10 | 2018-05-10 | GPS Software Receiver Based on GNU Radio |
| Country | Link |
|---|---|
| CN (1) | CN108732592B (en) |
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US20100304686A1 (en)* | 2009-05-27 | 2010-12-02 | Kennedy Joseph P | Wireless transceiver test bed system and method |
| CN103441807A (en)* | 2013-08-20 | 2013-12-11 | 南昌大学 | Software frequency spectrum analyzer based on GNU Radio and USRP |
| US8843126B1 (en)* | 2012-08-03 | 2014-09-23 | The United States Of America As Represented By The Secretary Of The Navy | System for isolation testing of RF transmitters and receivers |
| CN104735649A (en)* | 2015-03-25 | 2015-06-24 | 江苏物联网研究发展中心 | Wireless link signature extraction method based on Gnu Radio |
| CN104883204A (en)* | 2015-05-26 | 2015-09-02 | 南昌大学 | Short-wave frequency hopping communication system based on general software radio platform |
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US20100304686A1 (en)* | 2009-05-27 | 2010-12-02 | Kennedy Joseph P | Wireless transceiver test bed system and method |
| US8843126B1 (en)* | 2012-08-03 | 2014-09-23 | The United States Of America As Represented By The Secretary Of The Navy | System for isolation testing of RF transmitters and receivers |
| CN103441807A (en)* | 2013-08-20 | 2013-12-11 | 南昌大学 | Software frequency spectrum analyzer based on GNU Radio and USRP |
| CN104735649A (en)* | 2015-03-25 | 2015-06-24 | 江苏物联网研究发展中心 | Wireless link signature extraction method based on Gnu Radio |
| CN104883204A (en)* | 2015-05-26 | 2015-09-02 | 南昌大学 | Short-wave frequency hopping communication system based on general software radio platform |
| Title |
|---|
| 冯准 等: "基于GNSS-SDR低成本GPS软件接收机的涉及与实现", 《信息通信》* |
| 张鹏 等: "基于USRP平台的GPS软件接收机涉及与实现", 《测绘通报》* |
| 徐亚明 等: "USRP平台下GPS软件接收机高精度定位的实现", 《测绘通报》* |
| Publication number | Publication date |
|---|---|
| CN108732592B (en) | 2022-04-15 |
| Publication | Publication Date | Title |
|---|---|---|
| CN101261318B (en) | High dynamic state spread-spectrum precise distance measurement receiving machine | |
| JP3806425B2 (en) | Satellite positioning method and satellite positioning system | |
| CN104536016B (en) | A new GNSS system signal acquisition device and method | |
| CN101458321B (en) | GPS/CAPS dual mode software receiver based on PC machine | |
| CN111090108B (en) | Deception signal generation method and device | |
| WO2014089988A1 (en) | High-sensitivity beidou auxiliary timing device, timing receiver and timing method | |
| CN101132191A (en) | A kind of GNSS receiver baseband signal processing method | |
| CN106019333B (en) | A kind of Beidou navigation signal phasor tracking based on incoherent discriminator | |
| CN114095070B (en) | Arrow body information feedback device based on Beidou satellite navigation | |
| WO2011091511A1 (en) | System, method and computer program for navigation data bit synchronization for a gnss receiver | |
| CN117214926B (en) | Broadband composite navigation signal tracking method | |
| CN104931980B (en) | Carrier phase measurement half cycle obscures release method | |
| JP2004340855A (en) | Satellite positioning system and satellite positioning method | |
| CN105372678B (en) | A fuzzy-free tracking method for sinusoidal BOC modulated signals | |
| JP2007520100A (en) | GPS receiver using differential correlation | |
| CN117214925A (en) | Broadband composite navigation signal tracking method | |
| CN102176028A (en) | Multipath signal baseband processing method for global navigation satellite system (GNSS) receiver | |
| CN104793222B (en) | It is applied to BOC (kn, n) the fuzzy method of reseptance of the nothing of signal | |
| CN110780320B (en) | Software and hardware integrated satellite navigation signal processing method | |
| CN104880715B (en) | Unambiguous Reception Method Applied to BOC(n,n) Signals | |
| CN115508867B (en) | GNSS-R receiver dual-antenna signal cooperative correlation processing system and method | |
| Pany et al. | On the state-of-the-art of real-time GNSS signal acquisition—A comparison of time and frequency domain methods | |
| CN108732592B (en) | GPS Software Receiver Based on GNU Radio | |
| JP5933559B2 (en) | Signal capturing apparatus and method | |
| CN104614742A (en) | Beidou space-based high-precision differential information receiving implementation method |
| Date | Code | Title | Description |
|---|---|---|---|
| PB01 | Publication | ||
| PB01 | Publication | ||
| SE01 | Entry into force of request for substantive examination | ||
| SE01 | Entry into force of request for substantive examination | ||
| GR01 | Patent grant | ||
| GR01 | Patent grant |