A direct sequence spread spectrum signal tracking method and device
Through the coordinated work of CPU and GPU, the advantages of multi-threaded parallel computing of GPU devices are utilized to realize real-time tracking of direct sequence spread spectrum signals, solving the problem of low demodulation efficiency of spread spectrum signals in the prior art, and meeting the needs of real-time demodulation.
Patent Information
- Application Number
- CN202510458816.7
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2025-04-14
- Publication Date
- 2025-09-02
- Estimated Expiration
- 2045-04-14
AI Technical Summary
The existing software demodulation technology cannot meet the real-time demodulation requirements of direct sequence spread spectrum signals. The serial processing method of CPU devices leads to low processing efficiency and cannot meet the needs of real-time demodulation.
The CPU device works in collaboration with the GPU device, and utilizes the advantages of multi-threaded parallel computing of the GPU device to perform parallel tracking operations of spread spectrum signals, including parallel downconversion and despreading calculations on the GPU device, combined with incoherent accumulation, update the tracking loop parameters, and realize real-time tracking of spread spectrum signals.
The tracking and processing efficiency of spread spectrum signals is improved, the requirements of real-time demodulation are met, and the problem of low processing efficiency of CPU equipment in the prior art is solved.
Smart Images

Figure CN120017092B_ABST
Abstract
Description
Technical Field
[0001] The present invention relates to the technical field of signal processing, and in particular to a method and device for tracking a direct sequence spread spectrum signal. Background Art
[0002] The direct sequence spread spectrum system is a communications technology with advantages such as anti-interference and a low probability of intercept. It uses specific spread spectrum codes to broaden the signal bandwidth, giving the signal excellent resistance to point-like interference during propagation. It is widely used in military communications, satellite communications, underwater acoustic communications, and other fields. During the demodulation of spread spectrum signals, how to quickly, in real time, and accurately demodulate the spread spectrum signal is a key issue that must be addressed in the design of the receive-end spread spectrum demodulation equipment. At the receiver, the first step is to capture the signal and complete preliminary carrier synchronization and pseudo-code synchronization. However, the capture accuracy is low, with the carrier Doppler error being around a few hundred hertz and the code phase error within half a chip. However, this accuracy is still insufficient for stable demodulation of the spread spectrum signal, necessitating the next step of signal tracking, which is a time-consuming process.
[0003] While existing technologies based on peripheral boards like DSPs and FPGAs achieve real-time demodulation rates, they are unable to adapt to the current trend of software-based signal demodulation, resulting in significant development and upgrade difficulties, as well as limited usage scenarios. Because current software-based demodulation equipment is often developed based on multi-core CPUs, tracking and processing direct sequence spread spectrum signals involves numerous correlation operations, requiring multiple correlators to calculate each chip. CPUs, due to their serial processing, suffer from low processing efficiency and are unable to meet the requirements of real-time demodulation. Summary of the Invention
[0004] In view of this, embodiments of the present invention provide a method and apparatus for tracking a direct sequence spread spectrum signal to solve the problem that existing software demodulation technology cannot meet the real-time demodulation requirement.
[0005] To achieve the above objectives, the embodiments of the present invention provide the following technical solutions:
[0006] A first aspect of an embodiment of the present invention discloses a direct sequence spread spectrum signal tracking method, which is applied to a CPU device connected to a GPU device. The method includes:
[0007] Initializing loop parameters of a tracking loop using a capture result obtained by capturing a spread spectrum signal; the capture result includes a carrier frequency range and a pseudo-code phase range; the tracking loop is used to track the spread spectrum signal; and the loop parameters are used to control the frequency of a local carrier and the phase of a local pseudo-code output by the tracking loop.
[0008] receiving the spread spectrum signal in real time and sending the spread spectrum signal to the GPU device, so that the GPU device performs a parallel tracking operation on the spread spectrum signal based on a local carrier and a local pseudo code output by the tracking loop under the control of the current loop parameters, obtains target loop parameters, and sends the target loop parameters to the CPU device;
[0009] whenever the target loop parameters are received, updating the loop parameters of the tracking loop based on the target loop parameters;
[0010] Calling the GPU device to perform non-coherent accumulation based on the target loop parameter to obtain an energy accumulation value sent by the GPU device;
[0011] The locking state of the tracking loop is judged based on the energy accumulation value, and when the judgment result indicates that the tracking loop is stably locked, it is determined that the spread spectrum signal tracking is completed.
[0012] Preferably, before receiving the spread spectrum signal in real time and sending the spread spectrum signal to the GPU device, the method further includes:
[0013] The memory of the GPU device is allocated to obtain operation memory for performing parallel tracking operations.
[0014] Preferably, the receiving the spread spectrum signal in real time and sending the spread spectrum signal to the GPU device includes:
[0015] receiving the spread spectrum signal in real time;
[0016] The cudaMemcpy function is called to send the spread spectrum signal to the GPU device.
[0017] Preferably, the step of determining a locking state of the tracking loop based on the energy accumulated value, and determining that the spread spectrum signal tracking is completed when the determination result indicates that the tracking loop is stably locked, includes:
[0018] Whenever the loop parameters of the tracking loop are updated, a frequency error is calculated based on the spread spectrum signal and a local carrier output by the tracking loop to obtain a plurality of frequency error values; if the number of the frequency error values that are less than a frequency threshold exceeds a first preset number, determining that the carrier frequency is locked;
[0019] Carrier phase lock is determined if, among the energy accumulated values corresponding to the target loop parameters received after determining carrier frequency lock, the number of the energy accumulated values that meet the carrier phase lock requirement exceeds a second preset number; the energy accumulated values that meet the carrier phase lock requirement indicate that, in the corresponding spread spectrum signal, the energy of the I-path signal is greater than the energy of the Q-path signal and reaches a first preset multiple;
[0020] Among the energy accumulated values corresponding to the target loop parameters received after determining the carrier phase lock, if the number of the energy accumulated values that meet the loop stable locking requirements exceeds a third preset number, it is determined that the tracking loop is stably locked and the spread spectrum signal tracking is completed; the energy accumulated values that meet the loop stable locking requirements represent that in the corresponding spread spectrum signal, the I-path signal energy is greater than the Q-path signal energy and reaches a second preset multiple; the second preset multiple is greater than the first preset multiple.
[0021] A second aspect of an embodiment of the present invention discloses a direct sequence spread spectrum signal tracking method, which is applied to a GPU device connected to a CPU device. The method includes:
[0022] Receiving a spread spectrum signal sent by the CPU device;
[0023] performing a parallel tracking operation on the spread spectrum signal based on a local carrier and a local pseudo-code output by the tracking loop under control of current loop parameters to obtain target loop parameters, and transmitting the target loop parameters to the CPU device, so that the CPU device updates the loop parameters of the tracking loop based on the target loop parameters; the tracking loop is used to track the spread spectrum signal; and the loop parameters are used to control the frequency of the local carrier and the phase of the local pseudo-code output by the tracking loop;
[0024] In response to the call of the CPU device, performing non-coherent accumulation based on the target loop parameter to obtain an energy accumulation value;
[0025] The energy accumulation value is sent to the CPU device.
[0026] Preferably, the tracking loop outputs a local carrier and a local pseudo code under the control of the current loop parameters, performing parallel tracking operations on the spread spectrum signal, obtaining target loop parameters, and sending the target loop parameters to the CPU device, includes:
[0027] Acquire a local carrier and a local pseudo code output by a tracking loop under the control of current loop parameters; the local pseudo code includes: an advance code, an on-time code, and a lag code; the phase of the advance code is half a chip ahead of the on-time code, and the phase of the lag code is half a chip behind the on-time code;
[0028] generating a plurality of down-conversion calculation tasks according to each frequency point in the spread spectrum signal and the local carrier, and assigning each of the down-conversion calculation tasks to each thread in a thread block for parallel calculation to obtain a spread spectrum signal after down-conversion;
[0029] For each sampling point in the spread spectrum signal after down-conversion, generating a despreading calculation task of multiplying the sampling point by the leading code, the prompt code, and the lagging code, respectively, to obtain a plurality of the despreading calculation tasks;
[0030] Allocating each of the despreading calculation tasks to each thread in a thread block for parallel calculation to obtain a first despread signal corresponding to the advanced code, a second despread signal corresponding to the prompt code, and a third despread signal corresponding to the delayed code;
[0031] The down-converted spread spectrum signal, the first despread signal, the second despread signal, and the third despread signal are used as target loop parameters, and a cudaMemcpy function is called to send the target loop parameters to the CPU device.
[0032] Preferably, in response to the call of the CPU device, performing non-coherent accumulation based on the target loop parameter to obtain the energy accumulation value includes:
[0033] In response to the call of the CPU device, non-coherent accumulation is performed using a preset reduction algorithm and the target loop parameters to obtain an energy accumulation value.
[0034] Preferably, sending the energy accumulated value to the CPU device includes:
[0035] The cudaMemcpy function is called to send the energy accumulation value to the CPU device.
[0036] A third aspect of an embodiment of the present invention discloses a tracking device for a direct sequence spread spectrum signal, which is applied to a CPU device connected to a GPU device. The device includes:
[0037] an initialization unit, configured to initialize loop parameters of a tracking loop using a capture result obtained by capturing a spread spectrum signal; the capture result including a carrier frequency range and a pseudo-code phase range; the tracking loop being configured to track the spread spectrum signal; and the loop parameters being configured to control the frequency of a local carrier and the phase of a local pseudo-code output by the tracking loop;
[0038] a tracking operation initiating unit, configured to receive the spread spectrum signal in real time and send the spread spectrum signal to the GPU device, so that the GPU device performs a parallel tracking operation on the spread spectrum signal based on the local carrier and local pseudo code output by the tracking loop under the control of the current loop parameters, obtains target loop parameters, and sends the target loop parameters to the CPU device;
[0039] an updating unit, configured to update the loop parameters of the tracking loop based on the target loop parameters whenever the target loop parameters are received;
[0040] an accumulation calling unit, configured to call the GPU device to perform non-coherent accumulation based on the target loop parameter to obtain an energy accumulation value sent by the GPU device;
[0041] The judging unit is configured to judge the locking state of the tracking loop based on the energy accumulation value, and determine that the spread spectrum signal tracking is completed when the judging result indicates that the tracking loop is stably locked.
[0042] A fourth aspect of an embodiment of the present invention discloses a tracking device for a direct sequence spread spectrum signal, which is applied to a GPU device connected to a CPU device. The device includes:
[0043] A receiving unit, configured to receive a spread spectrum signal sent by the CPU device;
[0044] a parallel tracking operation unit, configured to perform a parallel tracking operation on the spread spectrum signal based on a local carrier and a local pseudo-code output by a tracking loop under control of current loop parameters, obtain target loop parameters, and send the target loop parameters to the CPU device, so that the CPU device updates the loop parameters of the tracking loop based on the target loop parameters; the tracking loop is configured to track the spread spectrum signal; and the loop parameters are used to control the frequency of the local carrier and the phase of the local pseudo-code output by the tracking loop;
[0045] an accumulation response unit, configured to perform non-coherent accumulation based on the target loop parameter in response to a call of the CPU device to obtain an energy accumulation value;
[0046] A sending unit is used to send the energy accumulation value to the CPU device.
[0047] Based on the above-mentioned embodiment of the present invention, a tracking method and device for a direct sequence spread spectrum signal are provided. The capture result obtained by capturing the spread spectrum signal is used to initialize the loop parameters of the tracking loop; the capture result includes: a carrier frequency range and a pseudo code phase range; the tracking loop is used to track the spread spectrum signal; the loop parameters are used to control the frequency of the local carrier and the phase of the local pseudo code output by the tracking loop; the spread spectrum signal is received in real time and sent to the GPU device, so that the GPU device controls the tracking loop based on the current loop parameters. The local carrier and local pseudocode output by the loop are used to perform parallel tracking operations on the spread spectrum signal, obtain target loop parameters, and send the target loop parameters to the CPU device. Whenever the target loop parameters are received, the loop parameters of the tracking loop are updated based on the target loop parameters. The GPU device is called to perform non-coherent accumulation based on the target loop parameters to obtain the energy accumulation value sent by the GPU device. The locking state of the tracking loop is determined based on the energy accumulation value. When the determination result indicates that the tracking loop is stably locked, the spread spectrum signal tracking is determined to be complete. In this solution, the CPU device and the GPU device are used to collaboratively complete signal tracking, taking advantage of the multi-threaded parallel computing advantages of the GPU device. The GPU device is called to perform calculations for the steps in the tracking process that require a large amount of calculations, solving the problem that existing software demodulation technology cannot achieve real-time demodulation of spread spectrum signals. BRIEF DESCRIPTION OF THE DRAWINGS
[0048] In order to more clearly illustrate the embodiments of the present invention or the technical solutions in the prior art, the following briefly introduces the drawings required for use in the embodiments or the description of the prior art. Obviously, the drawings described below are merely embodiments of the present invention. For ordinary technicians in this field, other drawings can be obtained based on the provided drawings without paying any creative work.
[0049] Figure 1 This is a schematic diagram of the anti-interference principle of a direct sequence spread spectrum system disclosed in an embodiment of the present invention;
[0050] Figure 2 A structural diagram of a direct sequence spread spectrum system disclosed in an embodiment of the present invention;
[0051] Figure 3 A block diagram of a tracking loop disclosed in an embodiment of the present invention;
[0052] Figure 4 A block diagram of a third-order phase-locked loop assisted by a second-order frequency-locked loop disclosed in an embodiment of the present invention;
[0053] Figure 5A flowchart of a CPU device serial tracing method disclosed in an embodiment of the present invention;
[0054] Figure 6 An interactive diagram of a direct sequence spread spectrum signal tracking system disclosed in an embodiment of the present invention;
[0055] Figure 7 A flowchart of a direct sequence spread spectrum signal tracking method disclosed in an embodiment of the present invention;
[0056] Figure 8 A flowchart of another direct sequence spread spectrum signal tracking method disclosed in an embodiment of the present invention;
[0057] Figure 9 A schematic diagram of a parallel down-conversion algorithm disclosed in an embodiment of the present invention;
[0058] Figure 10 A schematic diagram of a parallel despreading calculation disclosed in an embodiment of the present invention;
[0059] Figure 11 A schematic diagram of a summation algorithm disclosed in an embodiment of the present invention;
[0060] Figure 12 This is a structural diagram of a direct sequence spread spectrum signal tracking device disclosed in an embodiment of the present invention;
[0061] Figure 13 This is a structural diagram of another direct sequence spread spectrum signal tracking device disclosed in an embodiment of the present invention. DETAILED DESCRIPTION
[0062] The following will clearly and completely describe the technical solutions in the embodiments of the present invention in conjunction with the accompanying drawings. Obviously, the described embodiments are only part of the embodiments of the present invention, not all of the embodiments. Based on the embodiments of the present invention, all other embodiments obtained by ordinary technicians in this field without making creative efforts are within the scope of protection of the present invention.
[0063] In this application, the terms "comprises," "comprising," or any other variations thereof are intended to encompass non-exclusive inclusion, such that a process, method, article, or apparatus that includes a list of elements includes not only those elements but also other elements not explicitly listed, or elements inherent to such process, method, article, or apparatus. In the absence of further limitations, an element defined by the phrase "comprising a ..." does not preclude the presence of additional identical elements in the process, method, article, or apparatus that includes the element.
[0064] As can be seen from the background technology, the direct sequence spread spectrum system is a communication technology with advantages such as anti-interference and low probability of intercept.
[0065] like Figure 1 FIG2 is a schematic diagram showing the anti-interference principle of a direct sequence spread spectrum system disclosed in an embodiment of the present invention. The specific anti-interference principle is as follows:
[0066] During the propagation process, point interference only occupies a small portion of the total bandwidth of the spread-spectrum signal. After despreading at the receiving end, the original signal is restored, and the original point interference is equivalent to being spread-spectrum. After low-pass filtering, most of the interference is filtered out. This is the principle of anti-interference in spread-spectrum communication.
[0067] like Figure 2 FIG. 1 is a structural diagram of a direct sequence spread spectrum system disclosed in an embodiment of the present invention.
[0068] The left half represents the transmitter, and the right half represents the receiver. In the overall design of a spread-spectrum system, how the receiver can quickly, in real time, and accurately demodulate the spread-spectrum signal is a key issue in the design of the receiver's spread-spectrum demodulation equipment. The most time-consuming part of the demodulation process at the receiver is signal capture and tracking, and this application focuses on the tracking process.
[0069] At the receiving end, the signal must be captured first, and preliminary carrier synchronization and pseudo-code synchronization must be completed. However, the capture accuracy is low. At this time, the carrier Doppler error is around a few hundred Hz, and the code phase error is within half a code chip. However, this accuracy is still not enough for stable demodulation of the spread spectrum signal, and the next step of signal tracking must be performed.
[0070] The tracking process of modern direct sequence spread spectrum signals mostly relies on the feedback and parameter adjustment of loop equipment, such as Figure 3 FIG. 1 is a block diagram of a tracking loop disclosed in an embodiment of the present invention. The tracking loop is composed of a frequency-locked loop, a phase-locked loop, and a delay-locked loop.
[0071] based on Figure 3 The tracking loop shown is Figure 4 , which is a block diagram of a third-order phase-locked loop assisted by a second-order frequency-locked loop disclosed in an embodiment of the present invention.
[0072] To lock the carrier frequency, a frequency-locked loop (FLL) assisted phase-locked loop (PLL) approach is often used. After carrier and pseudo-code acquisition is complete, the IF digital signal is mixed with a locally generated orthogonal carrier signal and low-pass filtered to generate two baseband signals. Carrier frequency discrimination is performed based on these two baseband signals. The resulting discrimination error signal is filtered by a frequency discrimination loop filter. The filtered signal is fed to the carrier NCO, which controls the generation of the local carrier and completes carrier frequency-locked loop tracking. Once the frequency difference between the locally generated carrier signal and the received IF signal is within a very small range, the carrier tracking loop begins. The A / D sampled signal is first mixed with the I / Q quadrature local oscillator (LO) and low-pass filtered for downconversion. The resulting IF signal is then XORed with the local pseudo-code to despread the spread spectrum signal. The two despread quadrature signals are multiplied to perform phase discrimination. The phase discrimination result is filtered and used to control the frequency of the local carrier, completing the closed-loop Costas loop.
[0073] For pseudo code phase locking, a digital delay locked loop is often used, such as Figure 3 As shown in the figure, the dynamic information of the carrier loop is used to assist the code loop in controlling the output bit rate of the pseudo-code numerically controlled oscillator. This can basically completely eliminate the dynamic stress on the pseudo-code. The only thing left on the code loop is the slowly changing initial tracking error of the code loop. In this way, the baseband equipment can use a narrower code loop bandwidth to reduce the loop noise and improve the ranging accuracy.
[0074] In the prior art, tracking of direct sequence spread spectrum signals is a subsequent operation of capture. Similar to capture, the tracking operation is also performed in both the frequency domain and the pseudo code domain. The tracking of the carrier frequency and the tracking of the pseudo code phase are coupled with each other, and the two processes are carried out in parallel and assist each other.
[0075] like Figure 5 FIG. 1 is a flowchart of a CPU device serial tracking method disclosed in an embodiment of the present invention. The specific process is as follows:
[0076] 1. After completing the capture of the spread spectrum signal, the tracking loop will update the loop parameters based on the capture results.
[0077] 2. It is necessary to multiply the spread spectrum signal with the local pseudo code and then integrate or accumulate to obtain the correlation value.
[0078] 3. Output the obtained data to the tracking loop to determine whether the tracking loop lock is stable.
[0079] 4. When the loop lock state is stable, it means that stable tracking has been achieved. When the loop lock state is unstable, the spread spectrum signal is captured again.
[0080] As can be seen, when performing spread-spectrum signal tracking, CPUs perform calculations in a serial manner. Spread-spectrum signal tracking involves numerous basic correlation operations, with multiple correlators required for each chip. For example, the calculations for the advance, prompt, and delayed codes involved in the delay-locked loop (DLL) used to lock the code phase create a large computational load, which can lead to speed bottlenecks on CPUs due to serial processing. Furthermore, steps such as loop filtering and NCO control may require frequent iterative calculations, significantly limiting their speed due to the single-threaded nature of the CPU.
[0081] In summary, since current software-based demodulation equipment is often developed based on multi-core CPUs, the tracking and processing of direct sequence spread spectrum signals involves a large number of correlation operations. Each code chip requires the calculation of multiple correlators. Due to its serial processing method, CPU devices have low processing efficiency and cannot meet the requirements of real-time demodulation.
[0082] Therefore, an embodiment of the present invention discloses a method and apparatus for tracking direct sequence spread spectrum signals. In this solution, a CPU device and a GPU device are collaboratively used to complete signal tracking. The multi-threaded parallel computing advantage of the GPU device is utilized. The GPU device is called to perform calculations for steps with large computational complexity during the tracking process, thereby solving the problem that existing software demodulation technology cannot achieve real-time demodulation of spread spectrum signals.
[0083] like Figure 6 FIG. 1 is an interactive diagram of a direct sequence spread spectrum signal tracking system disclosed in an embodiment of the present invention, wherein the tracking system includes a CPU device and a GPU device, and the CPU device and the GPU device are connected via a PCIe bus.
[0084] It should be noted that GPU devices are naturally good at processing large-scale, simple repetitive calculations. Unlike hardware peripherals such as DSP and FPGA, the programming model of GPU devices is similar to that of CPU devices. The capture program is simple to adjust, which is in line with the development trend of signal processing software.
[0085] The tracking system, comprised of a CPU and a GPU, is a typical heterogeneous architecture. The CPU handles the entire computational logic and transmits the spread spectrum signal to the GPU via the PCIe bus. The GPU then leverages the advantages of large-scale parallel computing. The CPU first transmits instructions to the GPU, allocating memory for various calculations. The GPU, leveraging multi-threaded parallel computing, handles computationally intensive operations such as Doppler frequency shift, loop parameter calculations, and accumulation. The detailed interaction process is as follows:
[0086] 1. Allocate GPU memory for tracking operations.
[0087] Specifically, the video memory required for each parallel tracking operation step is allocated in the GPU device to provide corresponding storage space.
[0088] 2. Use cudaMemcpy to transfer the captured results to the memory used for tracing processing.
[0089] The capture result refers to the previous tracking step during the spread spectrum signal demodulation process. The capture result includes the carrier frequency range and pseudo-code phase range. cudaMemcpy is a function used to transfer data between CPU memory and GPU memory.
[0090] 3. When enough data is accumulated, start tracking the signal.
[0091] Specifically, when the capture result is obtained and enough spread spectrum signals are accumulated, the tracking process of the spread spectrum signal is started.
[0092] 4. Calculate the sampling time and update the status.
[0093] This step mainly involves calculating the sampling time. Tracking is the subsequent stage of capture. After accumulating enough spread spectrum signals, the capture state is switched to the tracking state for the first time. At this time, the sampling time is not calculated, only the state is updated. For example, setting state 1 at this time indicates the first entry into the tracking state, and then setting state 2 indicates the normal tracking state. At this time, the GetTime function is called to calculate the sampling time. In state 1, tracking uses the spread spectrum signal used during capture, which can be understood as the spread spectrum signal received by the receiver of the direct sequence spread spectrum system during the capture phase. In state 2, tracking uses the spread spectrum signal subsequent to the spread spectrum signal used during capture, which can be understood as the spread spectrum signal received in real time by the receiver.
[0094] 5. Use GPU devices to perform parallel tracking operations to obtain target loop parameters.
[0095] Specifically, the spread spectrum signal is received in real time and sent to the GPU device, so that the GPU device performs parallel tracking operations on the spread spectrum signal based on the local carrier and local pseudo code output by the tracking loop under the control of the current loop parameters, obtains the target loop parameters and sends the target loop parameters to the CPU device.
[0096] It should be noted that the real-time reception of spread spectrum signals here refers to the CPU device in the tracking process. The spread spectrum signals received in real time by the CPU device in the tracking process include: the spread spectrum signals received by the receiving end in the capture phase and the spread spectrum signals received by the receiving end in real time.
[0097] When initiating parallel tracking operations on the GPU device, the CPU device first copies the data from the CPU device memory to the GPU device memory through cudaMemcpy, then initiates instruction calls and functions to perform down-conversion, despreading, and subsequent accumulation operations, and then returns the results to the CPU device for related loop processing.
[0098] It should be noted that during the parallel tracking process performed by a GPU device, telemetry bit synchronization is a step in spread spectrum signal demodulation, which includes acquisition, tracking, bit synchronization, and frame synchronization. Bit synchronization is the next stage of tracking. The goal of tracking is to obtain more accurate estimates of the carrier frequency and pseudo-code phase, better mitigating the effects of Doppler frequency shift and pseudo-code phase delay than acquisition. After the tracking phase, the despread signal already meets the signal bit synchronization requirements. Accumulating telemetry bit synchronization data means successfully completing tracking before proceeding to the next step of bit synchronization.
[0099] The index means that each local spreading code (local pseudo code) used for despreading corresponds to a thread index in the GPU device. After the most accurate pseudo code phase offset is obtained after despreading, the index corresponding to the local spreading code used for despreading is obtained to ensure stable tracking for the next bit synchronization operation.
[0100] 6. Update loop parameters such as carrier phase and pseudo code phase.
[0101] Specifically, whenever the CPU device receives the target loop parameters, it updates the loop parameters of the tracking loop based on the target loop parameters. Figure 3 As shown, it is used to track the spread spectrum signal, and the loop parameters are used to control the frequency of the local carrier and the phase of the local pseudo code output by the tracking loop.
[0102] 7. Accumulate data and output related data.
[0103] Specifically, the GPU device is called to perform non-coherent accumulation based on the target loop parameters to obtain the energy accumulation value sent by the GPU device.
[0104] The GPU device uses a preset reduction algorithm to perform non-coherent accumulation based on target loop parameters.
[0105] 8. Calculate the errors of the phase-locked loop, code loop, and frequency-locked loop, and determine the locking status of the tracking loop.
[0106] Specifically, the locking state of the tracking loop is determined based on the energy accumulation value. When the determination result indicates that the tracking loop is stably locked, it is determined that the spread spectrum signal tracking is completed. For more specific locking state determination process, please refer to the following embodiment of the present invention.
[0107] Based on the interactive process of a tracking system disclosed in the above embodiment of the present invention, Figure 7 FIG. 1 is a flow chart of a direct sequence spread spectrum signal tracking method disclosed in an embodiment of the present invention. The tracking method is applied to a CPU device connected to a GPU device and includes the following steps:
[0108] Step S101: Initializing loop parameters of a tracking loop using a capture result obtained by capturing a spread spectrum signal.
[0109] The capture result includes: carrier frequency range and pseudo code phase range; the tracking loop is used to track the spread spectrum signal; the loop parameters are used to control the frequency of the local carrier and the phase of the local pseudo code output by the tracking loop.
[0110] Step S102: Receive the spread spectrum signal in real time and send the spread spectrum signal to the GPU device, so that the GPU device performs parallel tracking operations on the spread spectrum signal based on the local carrier and local pseudo code output by the tracking loop under the control of the current loop parameters, obtains the target loop parameters and sends the target loop parameters to the CPU device.
[0111] In step S102, when initiating the parallel tracking operation of the GPU device, the CPU device first copies the spread spectrum signal from the CPU device memory to the GPU device memory through cudaMemcpy, then initiates instruction calls and functions to perform down-conversion, despreading and other operations, and then returns the target loop parameters to the CPU device for related loop processing.
[0112] The target loop parameters include: the spread spectrum signal after down-conversion, the despread signal and other parameters used to adjust the phase of the local carrier and local pseudo code output by the tracking loop.
[0113] Step S103: Whenever the target loop parameters are received, the loop parameters of the tracking loop are updated based on the target loop parameters.
[0114] In step S103, after the GPU device completes a parallel tracking operation, it returns the target loop parameters to the CPU device through the cudaMemcpy function. The CPU device performs loop filtering based on the target loop parameters to update the loop parameters of the tracking loop. Since the computationally intensive part is undertaken by the GPU device, the loop update rate is guaranteed and low-latency feedback can be achieved.
[0115] It should be noted that tracking is performed through tracking loop feedback. The carrier loop tracking uses second-order frequency locking to assist third-order phase locking, and the pseudo-code phase is locked by the delay lock loop. The loop parameters are first updated according to the capture results, and multiple feedback adjustments are performed, that is, the loop parameters of the tracking loop are updated based on the target loop parameters. When the error is controlled to the point where the carrier frequency error is close to 0 and the pseudo-code phase error is between 0.01 and 0.1 code chips, stable tracking can be achieved.
[0116] Step S104: calling the GPU device to perform non-coherent accumulation based on the target loop parameters to obtain the energy accumulation value sent by the GPU device.
[0117] In step S104, the GPU device is called to perform non-coherent accumulation on the despread signal in the target loop parameter to suppress noise.
[0118] Step S105: the locking state of the tracking loop is determined based on the energy accumulation value. When the determination result indicates that the tracking loop is stably locked, it is determined that the spread spectrum signal tracking is completed.
[0119] In step S105, the lock state determination includes: initial frequency convergence determination (dominated by the frequency-locked loop), verification of carrier phase lock (dominated by the phase-locked loop), and stable tracking state determination. Once the current step is completed, the next state determination will be entered.
[0120] Specifically, each time the loop parameters of the tracking loop are updated, the frequency error is calculated based on the spread spectrum signal and the local carrier output by the tracking loop to obtain multiple frequency error values; if the number of frequency error values less than the frequency threshold exceeds a first preset number, the carrier frequency is determined to be locked (initial frequency convergence).
[0121] Among the energy accumulated values corresponding to the target loop parameters received after determining the carrier frequency lock, if the number of energy accumulated values that meet the carrier phase lock requirements exceeds a second preset number, the carrier phase lock is determined; the energy accumulated value that meets the carrier phase lock requirements represents that in the corresponding spread spectrum signal, the I-channel signal energy is greater than the Q-channel signal energy and reaches a first preset multiple.
[0122] Among the energy accumulation values corresponding to the target loop parameters received after determining the carrier phase lock, if the number of energy accumulation values that meet the loop stability lock requirements exceeds a third preset number, it is determined that the tracking loop is stably locked and the spread spectrum signal tracking is completed; the energy accumulation value that meets the loop stability lock requirements indicates that in the corresponding spread spectrum signal, the I-channel signal energy is greater than the Q-channel signal energy and reaches a second preset multiple; the second preset multiple is greater than the first preset multiple.
[0123] For example, in the first step, in 15 verifications, is the frequency error less than 3000 Hz for at least 10 times? If so, it is considered that the frequency lock is successful and the process proceeds to the next stage; if not, recapture is triggered.
[0124] The second step is to determine whether the I-channel signal energy of the spread spectrum signal is greater than 1.14 times the Q-channel signal energy in 75 of the 100 verifications. If so, the carrier phase is considered to be locked successfully and the next stage is entered; if not, recapture is triggered.
[0125] It should be noted that the I-signal is greater than the Q-signal, which is the result of down-converting the spread-spectrum signal. In BPSK (Binary Phase Shift Keying) modulation, the I-signal carries the valid signal, while the Q-signal carries a small amount of energy due to noise and residual phase error. Therefore, determining whether the carrier phase is stably locked can be determined by determining whether the I-signal strength is greater than the Q-signal strength.
[0126] The third step is similar to the second step, but with a stricter threshold. The system checks whether the I-channel signal energy of the spread spectrum signal is greater than 1.2 times the Q-channel signal strength for 75 of the 100 verifications. If this is achieved, both the carrier phase and the pseudo-code phase are considered to have reached a stable tracking state, allowing the next step of bit synchronization to proceed. If this is not achieved, recapture is triggered.
[0127] Based on the direct sequence spread spectrum signal tracking method disclosed in the above-mentioned embodiment of the present invention, the traditional software-based spread spectrum signal tracking device is replaced with a GPU device instead of a CPU device. Furthermore, the spread spectrum signal loop tracking method is improved and parallelized for GPU devices. The computationally intensive steps in the loop tracking are all performed by the GPU device, leveraging the GPU device's multi-threaded parallel computing advantages to overcome the problem that traditional software-based demodulation techniques cannot achieve real-time demodulation of spread spectrum signals.
[0128] Based on the interactive process of a tracking system disclosed in the above embodiment of the present invention, Figure 8 FIG. 1 is a flow chart of another direct sequence spread spectrum signal tracking method disclosed in an embodiment of the present invention. The tracking method is applied to a GPU device connected to a CPU device. The method includes the following steps:
[0129] Step S201: Receive a spread spectrum signal sent by a CPU device.
[0130] Step S202: Based on the local carrier and local pseudo code output by the tracking loop under the control of the current loop parameters, a parallel tracking operation is performed on the spread spectrum signal to obtain target loop parameters and send the target loop parameters to the CPU device, so that the CPU device updates the loop parameters of the tracking loop based on the target loop parameters.
[0131] The tracking loop is used to track the spread spectrum signal; the loop parameters are used to control the frequency of the local carrier and the phase of the local pseudo code output by the tracking loop.
[0132] In step S202, the parallel tracking operation includes down-conversion and despreading. Specifically, the following steps are included:
[0133] Step S301: obtaining the local carrier and local pseudo code output by the tracking loop under the control of the current loop parameters.
[0134] The local pseudo code includes: an advanced code, an immediate code, and a delayed code; the phase of the advanced code is half a chip ahead of the immediate code, and the phase of the delayed code is half a chip behind the immediate code.
[0135] Step S302: Generate multiple down-conversion calculation tasks according to each frequency point and local carrier in the spread spectrum signal, and assign each down-conversion calculation task to each thread in the thread block for parallel calculation to obtain the spread spectrum signal after down-conversion.
[0136] like Figure 9 , which is a schematic diagram of a parallel down-conversion algorithm disclosed in an embodiment of the present invention.
[0137] Among them, Block0, Block1, Block2, ..., Block i ,..., represents multiple thread blocks in the GPU device. Each thread block contains multiple threads (Thread), marked as Th0, Th1, Th2,..., Th k .
[0138] The carrier NCO generates the in-phase component I of the local carrier NCO and the quadrature component Q NCO Used to mix with the intermediate frequency signal to complete the down-conversion operation.
[0139] Specifically, downconversion includes analog downconversion and digital downconversion. Analog downconversion is performed on the spread spectrum signal to obtain an intermediate frequency (IF) signal. This IF signal is then digitally downconverted. This involves generating multiple downconversion computation tasks based on each frequency point, in-phase component, and quadrature component in the IF signal. Each downconversion computation task calculates the product of the frequency point and the in-phase component, as well as the product of the frequency point and the quadrature component, to obtain the downconverted spread spectrum signal.
[0140] Among them, the spread spectrum signal after down conversion includes two signals Q L and I L , namely the I-path signal and the Q-path signal, which will be despread separately in the future.
[0141] Each down-conversion calculation task is assigned to each thread in the thread block for parallel calculation, so that each thread processes a down-conversion calculation task, and the entire operation is executed concurrently, thereby improving the efficiency of digital down-conversion.
[0142] Step S303: For each sampling point in the spread spectrum signal after down-conversion, a despreading calculation task is generated by multiplying the sampling point by the leading code, the immediate code, and the lagging code respectively, to obtain multiple despreading calculation tasks, and each despreading calculation task is assigned to each thread in the thread block for parallel calculation to obtain a first despreading signal corresponding to the leading code, a second despreading signal corresponding to the immediate code, and a third despreading signal corresponding to the lagging code.
[0143] like Figure 10 FIG. 1 is a schematic diagram of a parallel despreading calculation disclosed in an embodiment of the present invention.
[0144] Among them, Block0, Block1, Block2, ..., Block i ,..., represents multiple thread blocks in the GPU device. Each thread block contains multiple threads (Thread), marked as Th0, Th1, Th2,..., Th k .
[0145] After completing digital down-conversion, according to the principle of the delay-locked loop for code phase tracking, the correlation values of the spread spectrum signal after down-conversion with the leading code, immediate code and lagging code are respectively calculated for despreading. This is the most computationally intensive step in the tracking process. By leveraging the parallel computing advantages of GPU devices, the despreading calculation task is distributed to different threads. Each thread is independently responsible for the correlation calculation of a sampling point of the spread spectrum signal after down-conversion with the leading code, immediate code and lagging code. The parallelization of correlation values greatly improves the computing efficiency.
[0146] The correlation value is the multiplication value of the spread spectrum signal after down-conversion and the leading code, the prompt code and the lagging code.
[0147] Step S304: using the down-converted spread spectrum signal, the first despread signal, the second despread signal, and the third despread signal as target loop parameters, and calling the cudaMemcpy function to send the target loop parameters to the CPU device.
[0148] Step S203: in response to the call of the CPU device, performing non-coherent accumulation based on the target loop parameters to obtain an energy accumulation value.
[0149] In step S203, in response to the call of the CPU device, non-coherent accumulation is performed using a preset reduction algorithm and target loop parameters to obtain an energy accumulation value.
[0150] Specifically, for the first despread signal, the second despread signal and the third despread signal in the target loop parameters, after the single frequency point energy calculation is completed, the energy values of the single frequency points of the first despread signal, the second despread signal and the third despread signal are accumulated.
[0151] During the accumulation phase, reduction algorithms are used to accelerate the accumulation rate. Reduction algorithms are an operation in GPU programming that combines data sets into a single value through specific operations (such as summation and minimum value). Reduction algorithms have inherent data parallelism.
[0152] like Figure 11 Figure 2 shows a schematic diagram of a reduction algorithm for summation disclosed in an embodiment of the present invention. In the reduction algorithm, each thread block processes a portion of the data and iteratively merges adjacent elements to gradually reduce the data size. This significantly improves the processing rate when performing non-coherent accumulation. The specific principles are as follows:
[0153] 1. Initial data layer (Index1)
[0154] Contains 1024 data items, from a1 to a 1024 It is equivalent to the energy value of each frequency point in the first despread signal, the second despread signal and the third despread signal.
[0155] 2. First accumulation layer (Index2)
[0156] Contains 512 data items, from b1 to b 512 .
[0157] Each data item is obtained by adding two adjacent data items in the initial data layer. For example, b1=a1+a2, b2=a3+a4, and so on.
[0158] 3. Subsequent accumulation layers (Index3 to Index10)
[0159] Continue aggregating the data as described above, halving the number of data items each time.
[0160] 4. Accumulated result layer (Index11)
[0161] Contains one data item, d1. This is the final result (energy accumulation value) obtained by adding the two data items in Index10.
[0162] Step S204: Send the energy accumulation value to the CPU device.
[0163] In step S204, the cudaMemcpy function is called to send the energy accumulation value to the CPU device.
[0164] In the direct sequence spread spectrum signal tracking method disclosed in the aforementioned embodiment of the present invention, the GPU performs computationally intensive steps throughout the parallel tracking process, including down-conversion of the spread spectrum signal, correlation despreading of the down-converted spread spectrum signal with the leading, leading, and lagging codes, and accumulation of the correlation despreading results. After these operations are completed, the resulting data is transmitted back to the CPU for loop parameter updates and lock status determination, significantly improving the efficiency of loop update feedback.
[0165] like Figure 12 , which is a structural diagram of a tracking device for a direct sequence spread spectrum signal disclosed in an embodiment of the present invention, and is applied to a GPU device, wherein the GPU device is connected to a CPU device. The tracking device includes: an initialization unit 1201, a tracking operation initiating unit 1202, an updating unit 1203, an accumulation calling unit 1204, and a determination unit 1205.
[0166] Initialization unit 1201 is used to initialize the loop parameters of the tracking loop using the capture result obtained from capturing the spread spectrum signal; the capture result includes: carrier frequency range and pseudo code phase range; the tracking loop is used to track the spread spectrum signal; the loop parameters are used to control the frequency of the local carrier and the phase of the local pseudo code output by the tracking loop.
[0167] The tracking operation initiating unit 1202 is used to receive the spread spectrum signal in real time and send the spread spectrum signal to the GPU device, so that the GPU device performs parallel tracking operations on the spread spectrum signal based on the local carrier and local pseudo code output by the tracking loop under the control of the current loop parameters, obtains the target loop parameters, and sends the target loop parameters to the CPU device.
[0168] In one embodiment, the tracking operation initiating unit 1202 is used to receive the spread spectrum signal in real time and send the spread spectrum signal to the GPU device, specifically for:
[0169] Receive the spread spectrum signal in real time; call the cudaMemcpy function to send the spread spectrum signal to the GPU device.
[0170] In one embodiment, the tracking device further comprises:
[0171] The allocation unit is configured to allocate memory to the GPU device before receiving the spread spectrum signal in real time and sending the spread spectrum signal to the GPU device to obtain operation memory for parallel tracking operations. The update unit 1203 is configured to update the loop parameters of the tracking loop based on the target loop parameters whenever the target loop parameters are received.
[0172] The accumulation calling unit 1204 is configured to call the GPU device to perform non-coherent accumulation based on the target loop parameters to obtain the energy accumulation value sent by the GPU device.
[0173] The determination unit 1205 is configured to determine the locking state of the tracking loop based on the energy accumulation value, and determine that the spread spectrum signal tracking is completed when the determination result indicates that the tracking loop is stably locked.
[0174] In one embodiment, the determination unit 1205 is specifically configured to:
[0175] Whenever loop parameters of the tracking loop are updated, a frequency error is calculated based on the spread spectrum signal and a local carrier output by the tracking loop to obtain a plurality of frequency error values; if the number of frequency error values less than a frequency threshold exceeds a first preset number, determining that the carrier frequency is locked;
[0176] Carrier phase lock is determined if, among the energy accumulated values corresponding to the target loop parameters received after determining carrier frequency lock, the number of energy accumulated values that meet the carrier phase lock requirement exceeds a second preset number; the energy accumulated value that meets the carrier phase lock requirement indicates that, in the corresponding spread spectrum signal, the energy of the I-path signal is greater than the energy of the Q-path signal and reaches a first preset multiple;
[0177] Among the energy accumulation values corresponding to the target loop parameters received after determining the carrier phase lock, if the number of energy accumulation values that meet the loop stability lock requirements exceeds a third preset number, it is determined that the tracking loop is stably locked and the spread spectrum signal tracking is completed; the energy accumulation value that meets the loop stability lock requirements indicates that in the corresponding spread spectrum signal, the I-channel signal energy is greater than the Q-channel signal energy and reaches a second preset multiple; the second preset multiple is greater than the first preset multiple.
[0178] Based on the direct sequence spread spectrum signal tracking device disclosed in the above-mentioned embodiment of the present invention, the traditional software-based spread spectrum signal tracking device is replaced with a GPU device instead of a CPU device. Furthermore, the spread spectrum signal loop tracking method is improved and parallelized for GPU devices. The computationally intensive steps in loop tracking are all performed by the GPU device, leveraging the GPU device's multi-threaded parallel computing advantages to overcome the problem that traditional software-based demodulation techniques cannot achieve real-time demodulation of spread spectrum signals.
[0179] like Figure 13 , which is a structural diagram of another direct sequence spread spectrum signal tracking device disclosed in an embodiment of the present invention, is applied to a GPU device, which is connected to a CPU device. The tracking device includes: a receiving unit 1301, a parallel tracking operation unit 1302, an accumulation response unit 1303, and a sending unit 1304.
[0180] The receiving unit 1301 is configured to receive a spread spectrum signal sent by a CPU device.
[0181] The parallel tracking operation unit 1302 is used to perform parallel tracking operations on the spread spectrum signal based on the local carrier and local pseudo code output by the tracking loop under the control of the current loop parameters, obtain target loop parameters, and send the target loop parameters to the CPU device, so that the CPU device updates the loop parameters of the tracking loop based on the target loop parameters. The tracking loop is used to track the spread spectrum signal; the loop parameters are used to control the frequency of the local carrier and the phase of the local pseudo code output by the tracking loop.
[0182] In one embodiment, the parallel tracking operation unit 1302 is specifically configured to:
[0183] Obtain the local carrier and local pseudo code output by the tracking loop under the control of the current loop parameters; the local pseudo code includes: leading code, on-time code and lagging code; the phase of the leading code is half a code chip ahead of the on-time code, and the phase of the lagging code is half a code chip behind the on-time code;
[0184] Generate multiple down-conversion calculation tasks based on each frequency point and local carrier in the spread spectrum signal, and assign each down-conversion calculation task to each thread in the thread block for parallel calculation to obtain the spread spectrum signal after down-conversion;
[0185] For each sampling point in the spread spectrum signal after down-conversion, a despreading calculation task is generated, in which the sampling point is multiplied by the leading code, the prompt code, and the lagging code, to obtain multiple despreading calculation tasks;
[0186] Allocating each despreading calculation task to each thread in the thread block for parallel calculation to obtain a first despread signal corresponding to the advanced code, a second despread signal corresponding to the prompt code, and a third despread signal corresponding to the delayed code;
[0187] The down-converted spread spectrum signal, the first despread signal, the second despread signal, and the third despread signal are used as target loop parameters, and the cudaMemcpy function is called to send the target loop parameters to the CPU device.
[0188] The accumulation response unit 1303 is configured to respond to the call of the CPU device and perform non-coherent accumulation based on the target loop parameters to obtain an energy accumulation value.
[0189] In one embodiment, the cumulative response unit 1303 is specifically configured to:
[0190] In response to the call of the CPU device, non-coherent accumulation is performed using a preset reduction algorithm and target loop parameters to obtain an energy accumulation value.
[0191] The sending unit 1304 is configured to send the energy accumulation value to the CPU device.
[0192] In one embodiment, the sending unit 1304 is specifically configured to:
[0193] Call the cudaMemcpy function to send the accumulated energy value to the CPU device.
[0194] In the direct sequence spread spectrum signal tracking device disclosed in the aforementioned embodiment of the present invention, the GPU performs computationally intensive steps throughout the parallel tracking process, including down-conversion of the spread spectrum signal, correlation despreading of the down-converted spread spectrum signal with the leading, leading, and lagging codes, and accumulation of the correlation despreading results. After these operations are completed, the resulting data is transmitted back to the CPU for loop parameter updates and lock status determination, significantly improving the efficiency of loop update feedback.
[0195] Each embodiment in this specification is described in a progressive manner. The same or similar parts between the embodiments can be referred to each other. Each embodiment focuses on the differences from other embodiments. In particular, for system or system embodiments, since they are basically similar to method embodiments, the description is relatively simple. For relevant parts, refer to the partial description of the method embodiment. The system and system embodiments described above are merely schematic, wherein the units described as separate components may or may not be physically separated, and the components displayed as units may or may not be physical units, that is, they may be located in one place, or they may be distributed on multiple network units. Some or all of the modules can be selected according to actual needs to achieve the purpose of the solution of this embodiment. A person of ordinary skill in the art can understand and implement it without expending creative work.
[0196] Professionals may further appreciate that the units and algorithm steps of each example described in conjunction with the embodiments disclosed herein can be implemented in electronic hardware, computer software, or a combination of the two. In order to clearly illustrate the interchangeability of hardware and software, the above description has generally described the components and steps of each example according to their functions. Whether these functions are performed in hardware or software depends on the specific application and design constraints of the technical solution. Professionals and technicians may use different methods to implement the described functions for each specific application, but such implementation should not be considered beyond the scope of the present invention.
[0197] The above description of the disclosed embodiments is intended to enable one skilled in the art to implement or use the present invention. Various modifications to these embodiments will be readily apparent to one skilled in the art, and the general principles defined herein may be implemented in other embodiments without departing from the spirit or scope of the present invention. Therefore, the present invention is not limited to the embodiments shown herein but is intended to conform to the widest scope consistent with the principles and novel features disclosed herein.
Claims
1. A direct sequence spread spectrum signal tracking method, characterized in that: Applied to a CPU device, the CPU device is connected to a GPU device, and the method includes: Initializing loop parameters of a tracking loop using a capture result obtained by capturing a spread spectrum signal; the capture result includes a carrier frequency range and a pseudo-code phase range; the tracking loop is used to track the spread spectrum signal; and the loop parameters are used to control the frequency of a local carrier and the phase of a local pseudo-code output by the tracking loop. receiving the spread spectrum signal in real time and sending the spread spectrum signal to the GPU device, so that the GPU device performs a parallel tracking operation on the spread spectrum signal based on a local carrier and a local pseudo code output by the tracking loop under the control of the current loop parameters, obtains target loop parameters, and sends the target loop parameters to the CPU device; whenever the target loop parameters are received, updating the loop parameters of the tracking loop based on the target loop parameters; Calling the GPU device to perform non-coherent accumulation based on the target loop parameter to obtain an energy accumulation value sent by the GPU device; The locking state of the tracking loop is judged based on the energy accumulation value, and when the judgment result indicates that the tracking loop is stably locked, it is determined that the spread spectrum signal tracking is completed.
2. The method according to claim 1, characterized in that Before receiving the spread spectrum signal in real time and sending the spread spectrum signal to the GPU device, the method further includes: The memory of the GPU device is allocated to obtain operation memory for performing parallel tracking operations.
3. The method according to claim 1, characterized in that The receiving the spread spectrum signal in real time and sending the spread spectrum signal to the GPU device includes: receiving the spread spectrum signal in real time; The cudaMemcpy function is called to send the spread spectrum signal to the GPU device.
4. The method according to any one of claims 1 to 3, characterized in that: The step of determining a locking state of the tracking loop based on the energy accumulated value, and determining that the spread spectrum signal tracking is completed when a determination result indicates that the tracking loop is stably locked, includes: Whenever the loop parameters of the tracking loop are updated, a frequency error is calculated based on the spread spectrum signal and a local carrier output by the tracking loop to obtain a plurality of frequency error values; if the number of the frequency error values that are less than a frequency threshold exceeds a first preset number, determining that the carrier frequency is locked; Carrier phase lock is determined if, among the energy accumulated values corresponding to the target loop parameters received after determining carrier frequency lock, the number of the energy accumulated values that meet the carrier phase lock requirement exceeds a second preset number; the energy accumulated values that meet the carrier phase lock requirement indicate that, in the corresponding spread spectrum signal, the energy of the I-path signal is greater than the energy of the Q-path signal and reaches a first preset multiple; Among the energy accumulated values corresponding to the target loop parameters received after determining the carrier phase lock, if the number of the energy accumulated values that meet the loop stable locking requirements exceeds a third preset number, it is determined that the tracking loop is stably locked and the spread spectrum signal tracking is completed; the energy accumulated values that meet the loop stable locking requirements represent that in the corresponding spread spectrum signal, the I-path signal energy is greater than the Q-path signal energy and reaches a second preset multiple; the second preset multiple is greater than the first preset multiple.
5. A direct sequence spread spectrum signal tracking method, characterized in that: Applied to a GPU device, the GPU device is connected to a CPU device, and the method includes: Receiving a spread spectrum signal sent by the CPU device; performing a parallel tracking operation on the spread spectrum signal based on a local carrier and a local pseudo-code output by the tracking loop under control of current loop parameters to obtain target loop parameters, and transmitting the target loop parameters to the CPU device, so that the CPU device updates the loop parameters of the tracking loop based on the target loop parameters; the tracking loop is used to track the spread spectrum signal; and the loop parameters are used to control the frequency of the local carrier and the phase of the local pseudo-code output by the tracking loop; In response to the call of the CPU device, performing non-coherent accumulation based on the target loop parameter to obtain an energy accumulation value; The energy accumulation value is sent to the CPU device.
6. The method according to claim 5, characterized in that The method includes performing parallel tracking operations on the spread spectrum signal based on the local carrier and the local pseudo code output by the tracking loop under the control of the current loop parameters, obtaining target loop parameters, and sending the target loop parameters to the CPU device, including: Acquire a local carrier and a local pseudo code output by a tracking loop under the control of current loop parameters; the local pseudo code includes: an advance code, an on-time code, and a lag code; the phase of the advance code is half a chip ahead of the on-time code, and the phase of the lag code is half a chip behind the on-time code; generating a plurality of down-conversion calculation tasks according to each frequency point in the spread spectrum signal and the local carrier, and assigning each of the down-conversion calculation tasks to each thread in a thread block for parallel calculation to obtain a spread spectrum signal after down-conversion; For each sampling point in the spread spectrum signal after down-conversion, generating a despreading calculation task of multiplying the sampling point by the leading code, the prompt code, and the lagging code, respectively, to obtain a plurality of the despreading calculation tasks; Allocating each of the despreading calculation tasks to each thread in a thread block for parallel calculation to obtain a first despread signal corresponding to the advanced code, a second despread signal corresponding to the prompt code, and a third despread signal corresponding to the delayed code; The down-converted spread spectrum signal, the first despread signal, the second despread signal, and the third despread signal are used as target loop parameters, and a cudaMemcpy function is called to send the target loop parameters to the CPU device.
7. The method according to claim 5, characterized in that The step of performing non-coherent accumulation based on the target loop parameter in response to the call of the CPU device to obtain an energy accumulation value includes: In response to the call of the CPU device, non-coherent accumulation is performed using a preset reduction algorithm and the target loop parameters to obtain an energy accumulation value.
8. The method according to any one of claims 5 to 7, characterized in that: The step of sending the energy accumulated value to the CPU device includes: The cudaMemcpy function is called to send the energy accumulation value to the CPU device.
9. A tracking device for a direct sequence spread spectrum signal, characterized in that: Applied to a CPU device, the CPU device is connected to a GPU device, and the apparatus comprises: an initialization unit, configured to initialize loop parameters of a tracking loop using a capture result obtained by capturing a spread spectrum signal; the capture result including a carrier frequency range and a pseudo-code phase range; the tracking loop being configured to track the spread spectrum signal; and the loop parameters being configured to control the frequency of a local carrier and the phase of a local pseudo-code output by the tracking loop; a tracking operation initiating unit, configured to receive the spread spectrum signal in real time and send the spread spectrum signal to the GPU device, so that the GPU device performs a parallel tracking operation on the spread spectrum signal based on the local carrier and local pseudo code output by the tracking loop under the control of the current loop parameters, obtains target loop parameters, and sends the target loop parameters to the CPU device; an updating unit, configured to update the loop parameters of the tracking loop based on the target loop parameters whenever the target loop parameters are received; an accumulation calling unit, configured to call the GPU device to perform non-coherent accumulation based on the target loop parameter to obtain an energy accumulation value sent by the GPU device; The judging unit is configured to judge the locking state of the tracking loop based on the energy accumulation value, and determine that the spread spectrum signal tracking is completed when the judging result indicates that the tracking loop is stably locked.
10. A tracking device for a direct sequence spread spectrum signal, characterized in that: Applied to a GPU device, the GPU device is connected to a CPU device, and the apparatus comprises: A receiving unit, configured to receive a spread spectrum signal sent by the CPU device; a parallel tracking operation unit, configured to perform a parallel tracking operation on the spread spectrum signal based on a local carrier and a local pseudo-code output by a tracking loop under control of current loop parameters, obtain target loop parameters, and send the target loop parameters to the CPU device, so that the CPU device updates the loop parameters of the tracking loop based on the target loop parameters; the tracking loop is configured to track the spread spectrum signal; and the loop parameters are used to control the frequency of the local carrier and the phase of the local pseudo-code output by the tracking loop; an accumulation response unit, configured to perform non-coherent accumulation based on the target loop parameter in response to a call of the CPU device to obtain an energy accumulation value; A sending unit is used to send the energy accumulation value to the CPU device.
Citation Information
Patent Citations
CPU-assisted GPU spread spectrum signal fast acquisition realization method
CN105577229A