Method and device for capturing direct sequence spread spectrum signal

By working together between the CPU and the GPU device, using the multi-threaded parallel capture operation method of the GPU device, real-time capture of direct sequence spread spectrum signals is realized, and the problem that the real-time demodulation requirements in the prior art cannot be met.

CN120017093AActive Publication Date: 2025-05-16PLA PEOPLES LIBERATION ARMY OF CHINA STRATEGIC SUPPORT FORCE AEROSPACE ENG UNIV
View PDF 9 Cites 0 Cited by

Patent Information

Application Number
CN202510458817.1
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Filing Date
2025-04-14
Publication Date
2025-05-16
Estimated Expiration
2045-04-14

AI Technical Summary

Technical Problem

Existing software demodulation technology cannot meet the real-time demodulation requirements of direct sequence spread spectrum signals, especially when the calculation volume is large, it cannot be effectively processed.

Method used

By working together between the CPU device and the GPU device, the multi-threaded parallel capture operation method of the GPU device is used to capture the direct sequence spread spectrum signal. Specific steps include receiving a spread spectrum signal, preprocessing, selecting and eliminating a candidate combination from a candidate combination, sending data to a GPU device for parallel capture operations, searching for a global energy maximum value and determining the capture result.

Benefits of technology

It improves computing efficiency, meets the requirements of real-time demodulation, and solves the problem that large amounts of computing cannot be effectively handled in the prior art.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN120017093A_ABST
    Figure CN120017093A_ABST
Patent Text Reader

Abstract

The invention provides a method and device for capturing a direct sequence spread spectrum signal, which can be used in the technical field of signal processing, and comprises the following steps: receiving a spread spectrum signal sent by a sending end; selecting candidate combinations from the candidate combination set and removing the candidate combinations from the candidate combination set; each candidate combination comprises a carrier frequency range and a pseudo code phase range; sending the candidate combination and the spread spectrum signal as operation data to the GPU; receiving a local energy maximum value obtained by parallel capture operation of the GPU based on the operation data; selecting the next candidate combination and the spread spectrum signal as operation data and sending the operation data to the GPU, and obtaining a plurality of local energy maximum values when the candidate combination set is empty; and if the global energy maximum value obtained by searching is greater than a threshold value, determining the corresponding candidate combination as a capture result. According to the scheme, capturing is completed through cooperation of the CPU and the GPU, a multi-thread parallel capturing operation method is adopted in the GPU, the calculation efficiency is improved, and the problem that real-time demodulation cannot be achieved through an existing software demodulation technology is solved.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present invention relates to the technical field of signal processing, and in particular to a method and device for capturing a direct sequence spread spectrum signal. Background Art

[0002] The direct sequence spread spectrum system is a communication technology with advantages such as anti-interference and low intercept probability. It uses a specific spread spectrum code to widen the signal band, so that the signal has excellent anti-point interference ability during the propagation process. It is widely used in military communications, satellite communications, underwater acoustic communications and other fields. In the demodulation process of spread spectrum signals, how to demodulate the spread spectrum signals quickly, in real time and accurately is a key problem to be solved in the design of the spread spectrum demodulation equipment at the receiving end. The capture of the spread spectrum signal during the demodulation process is a relatively time-consuming process.

[0003] In the prior art, although the real-time demodulation rate has been achieved based on peripheral boards such as DSP and FPGA, it cannot adapt to the current development trend of software-based signal demodulation, and has problems such as high development difficulty, difficult upgrading, and limited usage scenarios. In the current software-based signal demodulation process, the PMF-FFT algorithm is used to capture the spread spectrum signal. Since the received spread spectrum signal is relatively long, the received signal and the local spread spectrum code are first divided into multiple segments, and each segment is subjected to correlation operations to reduce the length of a single operation and reduce the complexity of the calculation; after obtaining multiple partial correlation results, these results are combined for FFT transformation, and the correlation operation in the time domain is converted into a multiplication operation in the frequency domain. After completion, an IFFT operation is performed to obtain the captured result. Since the current software-based demodulation equipment is often developed based on multi-core CPUs, it is unable to meet the requirements of real-time demodulation when dealing with the large amount of calculations in the above-mentioned spread spectrum signal capture process. Summary of the invention

[0004] In view of this, an embodiment of the present invention provides a method and device for capturing a direct sequence spread spectrum signal to solve the problem that the 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 method for capturing a direct sequence spread spectrum signal, which is applied to a CPU device, wherein the CPU device is connected to a GPU device, and the method includes:

[0007] receiving a spread spectrum signal sent by a transmitting end, and preprocessing the spread spectrum signal;

[0008] Selecting a candidate combination from a candidate combination set, and removing the candidate combination from the candidate combination set; the candidate combination set includes a plurality of candidate combinations, each of which is obtained by sequentially combining a plurality of preset carrier frequency ranges with each preset pseudo code phase range;

[0009] Sending the candidate combination and the preprocessed spread spectrum signal as operation data to the GPU device;

[0010] Receiving a local energy maximum value obtained by the GPU device performing a parallel capture operation based on the operation data;

[0011] Returning to the step of selecting a candidate combination from the candidate combination set and removing the candidate combination from the candidate combination set, until the candidate combination does not exist in the candidate combination set, and obtaining a plurality of local energy maxima;

[0012] Searching for a global energy maximum from each of the local energy maxima;

[0013] If the global energy maximum is greater than the capture threshold, the candidate combination corresponding to the global energy maximum is determined as the capture result.

[0014] Preferably, the preprocessing of the spread spectrum signal comprises:

[0015] Convert the data type of the spread spectrum signal to float type.

[0016] Preferably, the step of searching for the global energy maximum from the local energy maxima comprises:

[0017] The global energy maximum value is obtained by searching from each of the local energy maxima using a preset reduction algorithm.

[0018] Preferably, after determining that the candidate combination corresponding to the global energy maximum value is a capture result, the method further includes:

[0019] If the accuracy of the capture result does not meet the requirements, the carrier frequency range in the candidate combination corresponding to the global energy maximum value is divided to obtain multiple new carrier frequency ranges, and the pseudo code phase range in the candidate combination corresponding to the global energy maximum value is divided to obtain multiple new pseudo code phase ranges;

[0020] Combine each of the new carrier frequency ranges with each of the new pseudo code phase ranges in turn to obtain a candidate combination set consisting of a plurality of new candidate combinations, and return to execute the step of selecting a candidate combination from the candidate combination set and removing the candidate combination from the candidate combination set.

[0021] A second aspect of an embodiment of the present invention discloses a method for capturing a direct sequence spread spectrum signal, which is applied to a GPU device, wherein the GPU device is connected to a CPU device, and the method comprises:

[0022] receiving operation data sent by the CPU; the operation data includes a candidate combination and a preprocessed spread spectrum signal; the candidate combination includes a carrier frequency range and a pseudo code phase range;

[0023] Dividing the carrier frequency range to obtain a plurality of carrier frequency blocks, and dividing the pseudo code phase range to obtain a plurality of pseudo code phase blocks;

[0024] Combining each of the carrier frequency blocks with each of the pseudo code phase blocks to obtain a plurality of operation combinations;

[0025] For each of the operation combinations, using multiple threads in a thread block, perform parallel capture operations on the operation combination and the spread spectrum signal to obtain energy values ​​corresponding to each of the operation combinations;

[0026] The maximum value among the energy values ​​corresponding to the operation combinations is taken as the local energy maximum value, and the local energy maximum value is sent to the CPU device.

[0027] Preferably, for each of the operation combinations, using multiple threads in a thread block to perform parallel capture operations on the operation combination and the spread spectrum signal to obtain energy values ​​corresponding to each of the operation combinations includes:

[0028] Determine a current operation combination from each of the operation combinations;

[0029] generating an in-phase component and a quadrature component based on the carrier frequency block in the current operation combination;

[0030] Based on each frequency point, the in-phase component and the orthogonal component in the spread spectrum signal, a plurality of down-conversion calculation tasks are generated, and each of the down-conversion calculation tasks is assigned to each thread in a thread block for parallel calculation to obtain a spread spectrum signal after down-conversion;

[0031] Based on the pseudo code phase block in the current operation combination, generating a plurality of local pseudo code blocks with a preset phase difference;

[0032] Based on the down-converted spread spectrum signal and each of the local pseudo code blocks, a plurality of despreading calculation tasks are generated, and each of the despreading calculation tasks is assigned to each of the threads in the thread block for parallel calculation to obtain a despread signal;

[0033] Performing integral cleaning on the despread signal to obtain an integral cleaned signal;

[0034] Performing FFT transformation operation on the signal after the integral cleaning to obtain a transformation result;

[0035] Based on each frequency point in the spread spectrum signal and the transformation result, a plurality of energy calculation tasks are generated, and each of the energy calculation tasks is assigned to each of the threads in the thread block for parallel calculation to obtain an energy value of each of the frequency points;

[0036] Incoherently summing the energy values ​​of the respective frequency points to obtain an energy value corresponding to the current operation combination;

[0037] The next current operation combination is determined from the remaining operation combinations, and the step of generating an in-phase component and an orthogonal component based on the carrier frequency block in the current operation combination is returned to be executed until the energy values ​​corresponding to the respective operation combinations are obtained.

[0038] Preferably, the non-coherently accumulating the energy values ​​of the respective frequency points to obtain the energy value corresponding to the current operation combination includes:

[0039] By using a preset reduction algorithm, the energy values ​​of the various frequency points are incoherently accumulated to obtain the energy value corresponding to the current operation combination.

[0040] Preferably, performing FFT transformation operation on the signal after integral cleaning to obtain a transformation result includes:

[0041] The cuFFT library in the CUDA platform is used to perform FFT transformation operation on the signal after the integral cleaning to obtain a transformation result.

[0042] A third aspect of an embodiment of the present invention discloses a device for capturing a direct sequence spread spectrum signal, which is applied to a CPU device, wherein the CPU device is connected to a GPU device, and the device comprises:

[0043] A preprocessing unit, used for receiving a spread spectrum signal sent by a transmitting end, and preprocessing the spread spectrum signal;

[0044] A selection unit is used to select a candidate combination from a candidate combination set and remove the candidate combination from the candidate combination set; the candidate combination set includes a plurality of candidate combinations, each of which is obtained by sequentially combining a plurality of preset carrier frequency ranges with each preset pseudo code phase range;

[0045] A sending unit, configured to send the candidate combination and the preprocessed spread spectrum signal as operation data to the GPU device;

[0046] A first receiving unit is used to receive a local energy maximum value obtained by the GPU device through parallel capture operation based on the operation data;

[0047] a returning unit, configured to return to the step of selecting a candidate combination from the candidate combination set and removing the candidate combination from the candidate combination set until the candidate combination does not exist in the candidate combination set, thereby obtaining a plurality of local energy maxima;

[0048] A searching unit, used for searching for a global energy maximum value from each of the local energy maxima;

[0049] A determination unit is used to determine that the candidate combination corresponding to the global energy maximum value is a capture result if the global energy maximum value is greater than a capture threshold.

[0050] A fourth aspect of an embodiment of the present invention discloses a device for capturing a direct sequence spread spectrum signal, which is applied to a GPU device, wherein the GPU device is connected to a CPU device, and the device comprises:

[0051] A second receiving unit is used to receive operation data sent by the CPU; the operation data includes a candidate combination and a pre-processed spread spectrum signal; the candidate combination includes a carrier frequency range and a pseudo code phase range;

[0052] A dividing unit, used for dividing the carrier frequency range to obtain a plurality of carrier frequency blocks, and dividing the pseudo code phase range to obtain a plurality of pseudo code phase blocks;

[0053] A combining unit, used for combining each of the carrier frequency blocks with each of the pseudo code phase blocks to obtain a plurality of operation combinations;

[0054] An operation unit, configured to perform parallel capture operation on each of the operation combinations by using a plurality of threads in a thread block to obtain energy values ​​corresponding to each of the operation combinations;

[0055] The feedback unit is used to take the maximum value of the energy values ​​corresponding to each of the operation combinations as the local energy maximum value, and send the local energy maximum value to the CPU device.

[0056] A direct sequence spread spectrum signal capture method and device provided based on the above-mentioned embodiment of the present invention includes receiving a spread spectrum signal sent by a transmitting end and preprocessing the spread spectrum signal; selecting a candidate combination from a candidate combination set and removing the candidate combination from the candidate combination set; the candidate combination set includes multiple candidate combinations, each of which is obtained by combining multiple preset carrier frequency ranges with each preset pseudo code phase range in sequence; sending the candidate combination and the preprocessed spread spectrum signal as operation data to the GPU device; receiving a local energy maximum value obtained by the GPU device performing parallel capture operation based on the operation data; returning to execute the step of selecting a candidate combination from the candidate combination set and removing the candidate combination from the candidate combination set until the candidate combination does not exist in the candidate combination set, and obtaining multiple local energy maxima; searching from each of the local energy maxima to obtain a global energy maximum; if the global energy maximum value is greater than a capture threshold, determining that the candidate combination corresponding to the global energy maximum value is a capture result. In this solution, the CPU device and the GPU device are used to collaboratively complete the capture, and a multi-threaded parallel capture operation method is used in the GPU device to improve the computing efficiency, solving the problem that the existing software demodulation technology cannot meet the requirements of real-time demodulation. BRIEF DESCRIPTION OF THE DRAWINGS

[0057] In order to more clearly illustrate the embodiments of the present invention or the technical solutions in the prior art, the drawings required for use in the embodiments or the description of the prior art will be briefly introduced below. Obviously, the drawings described below are only embodiments of the present invention. For ordinary technicians in this field, other drawings can be obtained based on the provided drawings without paying creative work.

[0058] Figure 1 A direct sequence spread spectrum system anti-interference principle diagram disclosed in an embodiment of the present invention;

[0059] Figure 2 A structural diagram of a direct sequence spread spectrum system disclosed in an embodiment of the present invention;

[0060] Figure 3 A schematic diagram of the structure of a PMF-FFT acquisition algorithm disclosed in an embodiment of the present invention;

[0061] Figure 4 A schematic diagram of a two-dimensional capture search of a spread spectrum signal disclosed in an embodiment of the present invention;

[0062] Figure 5 A flow chart of a serial capture algorithm executed by a CPU device disclosed in an embodiment of the present invention;

[0063] Figure 6An interactive diagram of a direct sequence spread spectrum signal capture system disclosed in an embodiment of the present invention;

[0064] Figure 7 A flowchart of a method for capturing a direct sequence spread spectrum signal disclosed in an embodiment of the present invention;

[0065] Figure 8 A schematic diagram of a reduction algorithm for finding a maximum value disclosed in an embodiment of the present invention;

[0066] Fig. 9 A flowchart of another direct sequence spread spectrum signal acquisition method disclosed in an embodiment of the present invention;

[0067] Fig.10 A schematic diagram of a parallel down-conversion algorithm disclosed in an embodiment of the present invention;

[0068] Fig.11 A schematic diagram of a capture unit structure disclosed in an embodiment of the present invention;

[0069] Fig.12 A structural diagram of a parallel decomposition and expansion solution disclosed in an embodiment of the present invention;

[0070] Fig.13 A structural diagram of a parallel energy calculation solution disclosed in an embodiment of the present invention;

[0071] Fig.14 A schematic diagram of summing a reduction algorithm disclosed in an embodiment of the present invention;

[0072] Fig.15 A structural diagram of a direct sequence spread spectrum signal capture device disclosed in an embodiment of the present invention;

[0073] Fig.16 This is a structural diagram of another direct sequence spread spectrum signal capture device disclosed in an embodiment of the present invention. DETAILED DESCRIPTION

[0074] The following will be combined with the drawings in the embodiments of the present invention to clearly and completely describe the technical solutions in the embodiments of the present invention. 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 creative work are within the scope of protection of the present invention.

[0075] In this application, the terms "comprises", "comprising" or any other variations thereof are intended to cover non-exclusive inclusion, so that a process, method, article or device comprising a series of elements includes not only those elements, but also other elements not explicitly listed, or also includes elements inherent to such process, method, article or device. In the absence of further restrictions, an element defined by the sentence "comprising a ..." does not exclude the presence of other identical elements in the process, method, article or device comprising the element.

[0076] 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 intercept probability.

[0077] like Figure 1 FIG. 1 is a schematic diagram of 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:

[0078] During the transmission process, point interference only occupies a small part of the entire bandwidth for the spread spectrum signal. After despreading at the receiving end, the original signal is restored, and the original point interference is equivalent to spread spectrum. After low-pass filtering, most of the interference is filtered out. This is the principle of anti-interference in spread spectrum communication.

[0079] like Figure 2 As shown, it is a structural diagram of a direct sequence spread spectrum system disclosed in an embodiment of the present invention.

[0080] The left half is the transmitter and the right half is the receiver. In the overall design of the spread spectrum system, how the signal receiver can demodulate the spread spectrum signal quickly, in real time and accurately is a key problem to be solved in the design of the spread spectrum demodulation equipment at the receiving end. In the demodulation process of the spread spectrum signal at the receiving end, the more time-consuming part is the capture and tracking of the signal. This application mainly focuses on the capture part.

[0081] like Figure 3 As shown, it is a schematic diagram of the structure of a PMF-FFT acquisition algorithm disclosed in an embodiment of the present invention.

[0082] The commonly used capture algorithm is the PMF-FFT algorithm. Since the received spread spectrum signal is long, the received signal and the local spread spectrum code are first divided into multiple segments, and correlation operations are performed on each segment to reduce the length of a single operation and reduce the complexity of the calculation. After obtaining multiple partial correlation results, these results are combined for FFT transformation, and the correlation operation in the time domain is converted into a multiplication operation in the frequency domain. After completion, the IFFT operation is performed to obtain the capture result. This algorithm combines the matched filter and the fast Fourier transform, and reduces the computational complexity. It is an efficient algorithm. However, when using CPU equipment, it still cannot meet the requirements for real-time demodulation of direct sequence spread spectrum signals.

[0083] like Figure 4 FIG. 1 is a schematic diagram of a two-dimensional capture and search of a spread spectrum signal disclosed in an embodiment of the present invention.

[0084] It should be noted that the capture of spread spectrum signals is a two-dimensional search process in the pseudo code domain and the frequency domain. When the direct spread signal capture process is executed serially, for each candidate frequency point, it is necessary to complete down-conversion, despreading, integral cleaning, incoherent accumulation, energy statistics and peak detection operations in sequence.

[0085] In the prior art, software-based demodulation equipment is often developed based on a multi-core CPU, and the part involving the above-mentioned large amount of capture operations is executed serially by the CPU device.

[0086] like Figure 5 As shown, it is a flow chart of a CPU device executing a serial capture algorithm disclosed in an embodiment of the present invention.

[0087] When the serial program is executed, the external main loop traverses all frequency offset indexes and searches the pseudo code dimension for each frequency offset point. The pseudo code dimension search includes:

[0088] 1. Down-conversion and orthogonal decomposition, orthogonal mixing is separated into I / Q signals.

[0089] 2. Despreading: Perform cyclic shift on the received signal and align it with the local pseudo code. When the maximum correlation value is obtained, signal despreading is achieved.

[0090] 3. Integral cleaning and incoherent accumulation can improve the signal-to-noise ratio.

[0091] 4. Peak detection and frequency estimation are performed. All candidate frequencies are traversed and the frequency corresponding to the maximum energy is selected as the captured carrier Doppler frequency deviation estimation, which serves as the basis for the next tracking process.

[0092] It can be seen that the existing software demodulation technology uses CPU devices to perform calculations when capturing spread spectrum signals, and the overall calculation process is serial. Spread spectrum signal capture involves a large number of basic multiplication and addition operations and FFT operations. Although such operations are simple in logic, they have a large amount of calculations and cannot meet the requirements of real-time demodulation.

[0093] Therefore, an embodiment of the present invention discloses a method and device for capturing a direct sequence spread spectrum signal. In this solution, a CPU device and a GPU device are used to collaboratively complete the capture, and a multi-threaded parallel capture operation method is used in the GPU device to improve the computing efficiency, thereby solving the problem that the existing software demodulation technology cannot meet the requirements of real-time demodulation.

[0094] like Figure 6FIG. 1 is an interactive diagram of a capture system for direct sequence spread spectrum signals disclosed in an embodiment of the present invention, wherein the capture system includes: a CPU device and a GPU device, and the CPU device and the GPU device are connected via a PCIe bus.

[0095] It should be noted that GPU devices are naturally good at processing large-scale, simple repetitive calculations, and 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.

[0096] Figure 6 The interactive process of the capture system shown is a typical heterogeneous architecture computing method. The CPU device is responsible for the logical processing of the entire capture operation. The CPU device transmits the operation data to the GPU device through the PCIe bus. The GPU device is responsible for taking advantage of large-scale parallel computing, parallel capture operations such as down-conversion, despreading, FFT operation, signal energy calculation, incoherent accumulation, maximum value, etc., and then the results of the operation are returned to the CPU device for final judgment. The specific interaction process is as follows:

[0097] 1. Receive data, that is, the CPU device receives the spread spectrum signal sent by the transmitter.

[0098] 2. Data preprocessing and memory allocation for subsequent GPU algorithms.

[0099] The data preprocessing refers to converting the received char type or short type data into float type data suitable for processing by the GPU device.

[0100] Allocating memory for GPU algorithms means allocating the video memory required for each parallel capture operation step in the GPU device to provide corresponding storage space.

[0101] 3. Use cudaMemcpy to transfer the preprocessed data into the capture operation memory.

[0102] Among them, cudaMemcpy is a function used to transfer data between CPU memory and GPU memory. Capture operation memory refers to the memory created in advance in the CPU device.

[0103] 4. Determine whether the accumulated data is sufficient to perform spread spectrum signal capture operations.

[0104] The accumulated data refers to the received and accumulated spread spectrum signals and the candidate combination set. The candidate combination set includes multiple candidate combinations, each of which is obtained by sequentially combining multiple preset carrier frequency ranges with each preset pseudo code phase range.

[0105] Preferably, each candidate combination is also pre-processed data, so that it is converted into float type data suitable for processing by a GPU device.

[0106] If the accumulated data is not sufficient, return and continue to accumulate until it is sufficient; if the accumulated data is sufficient, start the next step.

[0107] In the present application, the carrier frequency is the Doppler frequency, that is, the carrier Doppler frequency.

[0108] 5. Two layers of loops are nested to traverse every possible combination of carrier frequency range and pseudo code phase range.

[0109] Specifically, a candidate combination is selected from the candidate combination set, and the candidate combination is eliminated from the candidate combination set; the candidate combination and the preprocessed spread spectrum signal are sent to the GPU device as operation data; the local energy maximum value obtained by the parallel capture operation performed by the GPU device based on the operation data is received; and a candidate combination is reselected from the candidate combination set and the candidate combination is eliminated from the candidate combination set until there is no candidate combination in the candidate combination set, and multiple local energy maxima are obtained.

[0110] Among them, a series of operations such as parallel capture operations such as down-conversion, despreading, FFT operation, signal energy calculation, non-coherent accumulation, and maximum value are specifically explained in the following embodiments of the present invention.

[0111] 6. Compare the global maximum and obtain the data index.

[0112] Specifically, the global energy maximum is obtained by searching among the local energy maxima.

[0113] Obtaining the data index refers to obtaining the index of the candidate combination corresponding to the global energy maximum value.

[0114] 7. Compare whether the global energy maximum is greater than the preset capture threshold.

[0115] If it is greater than, the candidate combination corresponding to the global energy maximum value can be determined as the capture result, that is, the frequency offset and pseudo code phase of the spread spectrum signal are within the carrier frequency range and pseudo code phase range in the candidate combination.

[0116] If it is less than or equal to, it is necessary to receive the spread spectrum signal again and re-capture it.

[0117] After obtaining the capture result in the previous step, the approximate range of the spread spectrum signal frequency offset and pseudo code phase is determined, that is, the rough values ​​of the carrier Doppler frequency shift and pseudo code phase are obtained. In the subsequent steps, the carrier Doppler frequency shift and pseudo code phase are further accurately searched within this approximate range.

[0118] Specifically, the carrier frequency range in the capture result of the previous step is divided into multiple new carrier frequency ranges, and the pseudo-code phase range is divided into multiple new pseudo-code phase ranges, each new carrier frequency range is combined with each new pseudo-code phase range in turn, and a candidate combination set consisting of multiple new candidate combinations is obtained. Repeating the above steps based on this candidate combination set can obtain a more accurate capture result.

[0119] Preferably, the carrier frequency range needs to be accurate to within tens to hundreds of Hz, and the pseudo code phase range needs to be accurate to within half a chip.

[0120] Based on the interactive process of a capture system disclosed in the above embodiment of the present invention, Figure 7 FIG. 1 is a flowchart of a method for capturing a direct sequence spread spectrum signal disclosed in an embodiment of the present invention. The method is applied to a CPU device, and the CPU device is connected to a GPU device, and includes the following steps:

[0121] Step S101: receiving a spread spectrum signal sent by a transmitting end, and preprocessing the spread spectrum signal.

[0122] Specifically, the data type of the spread spectrum signal is converted into a float type suitable for processing by the GPU device.

[0123] Step S102: selecting a candidate combination from the candidate combination set, and removing the candidate combination from the candidate combination set.

[0124] The candidate combination set includes multiple candidate combinations, and each candidate combination is obtained by sequentially combining multiple preset carrier frequency ranges with each preset pseudo code phase range.

[0125] It should be noted that the spread spectrum signal is the original BPSK (Binary Phase Shift Keying) signal plus the modulation of the spread spectrum code (which can be understood as multiplying the spread spectrum code). This signal will be affected by the Doppler effect during propagation (the carrier frequency will deviate by about ±1.5khz), and the pseudo code will have a time delay (the influence of the atmosphere, ionosphere, etc. during propagation), which will cause an offset in two latitudes, so it is necessary to search in two dimensions (carrier frequency and pseudo code phase). Only when they are aligned can the carrier and pseudo code be removed.

[0126] It can be understood that the multiple candidate combinations include all possibilities of one-to-one combinations of multiple carrier frequency ranges and multiple pseudo code phase ranges.

[0127] See also Figure 4 , each small square corresponds to a carrier frequency range and a pseudo code phase range, so each small square can represent a candidate combination.

[0128] Exemplarily, assuming that there is a carrier frequency range of 1 to 2 and a pseudocode phase range of 1 to 2, the candidate combinations obtained are: carrier frequency range 1 and pseudocode phase range 1; carrier frequency range 1 and pseudocode phase range 2; carrier frequency range 2 and pseudocode phase range 1; carrier frequency range 2 and pseudocode phase range 2.

[0129] Step S103: sending the candidate combination and the pre-processed spread spectrum signal as operation data to the GPU device.

[0130] It should be noted that the computing data sent to the GPU device is almost not processed and is sent directly using the PCIe bus.

[0131] Step S104: receiving the local energy maximum value obtained by the GPU device performing parallel capture calculations based on the calculation data.

[0132] It should be noted that in the process of capturing spread spectrum signals, the local energy maximum refers to a significant peak value reached by the signal energy under a specific combination of carrier frequency range and pseudo code phase range. This peak value is used to determine the initial synchronization parameters of the signal, namely the pseudo code phase and frequency offset. Specifically, during the capture process, the receiving end searches for different combinations of carrier frequency ranges and pseudo code phase ranges, and calculates the signal energy under each combination, namely the local energy maximum.

[0133] For the specific parallel capture operation process, please refer to Fig. 9 Corresponding embodiments of the present invention.

[0134] Step S105: Return to step S102 until there is no candidate combination in the candidate combination set, and multiple local energy maxima are obtained.

[0135] It is understandable that the local energy maxima of multiple candidate combinations are calculated in sequence using the GPU device, so after each local energy maximum corresponding to a candidate combination is obtained, the process returns to step S102 to calculate the local energy maximum corresponding to the next candidate combination.

[0136] Step S106: Search and obtain the global energy maximum from the local energy maxima.

[0137] In the specific implementation process of step S106, a preset reduction algorithm is used to search for the global energy maximum value from the local energy maxima.

[0138] like Figure 8 , which is a schematic diagram of a reduction algorithm for finding a maximum value disclosed in an embodiment of the present invention.

[0139] This method is similar to gradually narrowing the range through multiple rounds of comparison in a set of data, and finally finding the global energy maximum. The specific principle is as follows:

[0140] 1. Initial data layer (Index1)

[0141] At this level, the data is organized into a linear array containing 1024 elements (equivalent to multiple local energy maxima), from a1 to a 1024 .

[0142] These elements will be compared in pairs, for example, a1 will be compared with a2, a3 will be compared with a4, and so on.

[0143] 2. First comparison layer (Index2)

[0144] The amount of data in this layer is half of the previous layer, that is, 512 elements, from b1 to b 512 .

[0145] Each element b i It is the larger of the two paired elements in the previous level. For example, b1 is the larger of a1 and a2, b2 is the larger of a3 and a4, and so on.

[0146] 3. Subsequent comparison layers (Index3 to Index9)

[0147] Each layer has half the amount of data as the previous layer. For example, the Index3 layer has 256 elements, the Index4 layer has 128 elements, and so on, until the Index9 layer has 4 elements.

[0148] In each layer, the element is the larger of the two adjacent elements in the previous layer. This process continues until the amount of data is reduced to a certain extent.

[0149] 4. Final comparison layer (Index10)

[0150] The Index10 layer contains two elements, namely d1 and d2, which are the larger of the two adjacent elements in the Index9 layer after comparison.

[0151] Compare d1 and d2 at the Index10 layer and get the larger value.

[0152] 5. Result layer (Index11)

[0153] At the Index11 layer, the larger value obtained at the Index10 layer is determined as the maximum value in the entire data set (corresponding to the global energy maximum).

[0154] Compared with the CPU device looping and comparing the maximum value, this method greatly reduces the number of comparisons through parallel comparison and hierarchical elimination, thereby improving the computing efficiency. The advantages of this method are particularly obvious in large-scale data processing.

[0155] Step S107: If the global energy maximum is greater than the capture threshold, the candidate combination corresponding to the global energy maximum is determined as the capture result.

[0156] It can be understood that if the global energy maximum is less than or equal to the capture threshold, it is determined that the frequency offset and pseudo code phase of the signal are not within the carrier frequency range and pseudo code phase range corresponding to the global energy maximum.

[0157] In one embodiment, each time the CPU device receives a local energy maximum corresponding to a candidate combination, it determines whether the local energy maximum is greater than a capture threshold. If not, the local energy maximum is eliminated to reduce the time for subsequent searches for the global energy maximum.

[0158] The accuracy requirements for the carrier frequency range and the pseudo code phase range are: the carrier frequency range needs to be accurate to within tens to hundreds of Hz, and the pseudo code phase range needs to be accurate to within half a code chip.

[0159] If the carrier frequency range and pseudocode phase range of the captured result do not meet the above-mentioned accuracy requirements, the carrier frequency range in the candidate combination corresponding to the global energy maximum value is divided to obtain multiple new carrier frequency ranges, and the pseudocode phase range in the candidate combination corresponding to the global energy maximum value is divided to obtain multiple new pseudocode phase ranges.

[0160] Then, each new carrier frequency range is combined with each new phase range in turn to obtain a candidate combination set consisting of multiple new candidate combinations, and return to execute step S102 to further accurately search for the carrier frequency shift and pseudo-code phase in a smaller range to determine the smaller range in which the carrier frequency shift and pseudo-code phase are located.

[0161] Based on the direct sequence spread spectrum signal capture method disclosed in the above embodiment of the present invention, in this solution, a CPU device and a GPU device are used to collaboratively complete the capture, and the calculation efficiency is improved by the relatively powerful logic processing capability of the CPU device and the multi-threaded parallel capture operation method used in the GPU device, thereby solving the problem that the existing software demodulation technology cannot meet the requirements of real-time demodulation.

[0162] Based on the interactive process of a capture system disclosed in the above embodiment of the present invention, Fig. 9FIG. 1 is a flowchart of another method for capturing a direct sequence spread spectrum signal disclosed in an embodiment of the present invention. The method is applied to a GPU device, and the GPU device is connected to a CPU device. The method includes the following steps:

[0163] Step S201: receiving operation data sent by the CPU.

[0164] The operation data includes candidate combinations and pre-processed spread spectrum signals; the candidate combinations include a carrier frequency range and a pseudo code phase range.

[0165] Step S202: Divide the carrier frequency range to obtain a plurality of carrier frequency blocks, and divide the pseudo code phase range to obtain a plurality of pseudo code phase blocks.

[0166] Step S203: Combine each carrier frequency block with each pseudo code phase block to obtain a plurality of operation combinations.

[0167] Specifically, the carrier frequency range is divided into 7 carrier frequency blocks, and the pseudo code phase range is divided into 6 pseudo code phase blocks, for a total of 6*7=42 operation combinations. In other words, for each operation data sent by the CPU, a total of 42 operation combinations corresponding to the parallel capture operation cycles are processed, and each cycle processes 433088 float point data.

[0168] Step S204: for each operation combination, use multiple threads in the thread block to perform parallel capture operations on the operation combination and the spread spectrum signal to obtain energy values ​​corresponding to each operation combination.

[0169] The specific implementation process of step S204 is divided into the following steps:

[0170] Step S301: Determine the current operation combination from various operation combinations.

[0171] It should be noted that the same parallel capture operation process is cycled for each operation combination, and after the parallel capture operation process of each operation combination is executed, the parallel capture operation process of the next operation combination is cycled, so the current operation combination needs to be determined from each operation combination first.

[0172] Step S302: Generate an in-phase component and a quadrature component based on the carrier frequency block in the current operation combination.

[0173] In the specific implementation process of step S302, the carrier NCO (Numerically Controlled Oscillator) is used to generate the in-phase component I based on the carrier frequency block in the current operation combination. NCO and the quadrature component Q NCO .

[0174] Step S303: Based on each frequency point, in-phase component and orthogonal component in the spread spectrum signal, multiple down-conversion calculation tasks are generated, and each down-conversion calculation task is assigned to each thread in the thread block for parallel calculation to obtain a spread spectrum signal after down-conversion.

[0175] like Fig.10 , which is a schematic diagram of a parallel down-conversion algorithm disclosed in an embodiment of the present invention.

[0176] 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 .

[0177] The carrier NCO generates the in-phase component and the orthogonal component of the local carrier for mixing with the intermediate frequency signal to complete the down-conversion operation.

[0178] Specifically, down-conversion includes analog down-conversion and digital down-conversion. The spread spectrum signal is analog down-converted to obtain an intermediate frequency signal, and the intermediate frequency signal is digitally down-converted, that is, based on each frequency point, in-phase component and orthogonal component in the intermediate frequency signal, multiple down-conversion calculation tasks are generated, and each down-conversion calculation task is used to calculate the product of the frequency point and the in-phase component, and the product of the frequency point and the orthogonal component to obtain the spread spectrum signal after down-conversion.

[0179] The spread spectrum signal after down-conversion includes two signals, namely an I signal and a Q signal, and the two signals will be despread separately later.

[0180] 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 correspondingly, and the entire operation is executed concurrently, thereby improving the efficiency of digital down-conversion.

[0181] Step S304: Based on the pseudo code phase block in the current operation combination, a plurality of local pseudo code blocks with a preset phase difference are generated.

[0182] It should be noted that after down-converting the spread spectrum signal, the most important and computationally intensive step is to despread the spread spectrum signal after down-conversion. During the despreading process, it must be taken into account that the influence of the Doppler effect is not only in the frequency domain, but also causes Doppler effect on the signal pseudo code. Unlike the carrier Doppler that only affects the coherent accumulation length, the pseudo code Doppler influence range involves the signal of the entire accumulation length. As time goes by, the code phase difference between the received pseudo code and the local pseudo code gradually increases. After a period of time, a secondary phase difference appears, that is, the phase difference is greater than one code chip again, and the signal cannot be despread, resulting in the inability to achieve energy accumulation in the accumulation operation.

[0183] Taking this into account, in order to make the difference between the received signal's pseudo code phase and the local pseudo code phase run less than 0.3 chips to ensure smooth despreading, the accumulation caused by the pseudo code phase run must be removed when designing the capture unit, and the locally generated pseudo code must be divided into blocks.

[0184] like Fig.11 FIG. 1 is a schematic diagram of a capture unit structure disclosed in an embodiment of the present invention.

[0185] Specifically, a preset pseudo code generation module is used to generate local pseudo code blocks. When the pseudo code generation module generates local pseudo code blocks, within the pseudo code phase block range, each local pseudo code block is delayed by half a chip to remove the phase difference running accumulation caused by the pseudo code Doppler to ensure smooth despreading.

[0186] Step S305: Based on the down-converted spread spectrum signal and each local pseudo code block, multiple despreading calculation tasks are generated, and each despreading calculation task is assigned to each thread in the thread block for parallel calculation to obtain a despread signal.

[0187] It should be noted that the pseudo code is known, and the pseudo code of the receiving end is the same as that of the transmitting end. The pseudo code of the receiving end will be set first, and the spread spectrum signal after down-conversion will be multiplied with each local pseudo code block. When the maximum correlation value is obtained, it means that the pseudo code of the spread spectrum signal after down-conversion is aligned with the local pseudo code block, and the despreading is completed.

[0188] In the specific implementation, each local pseudo-code block is a complete pseudo-code phase search process. In a search, the multi-threaded parallelization advantage of the GPU device is also used to decompose the multiplication in the despreading process into different threads for calculation, greatly improving the computational efficiency of the despreading process.

[0189] Each thread multiplies the signal pseudo code of the down-converted spread spectrum signal by the local pseudo code in blocks to obtain the despread signal, that is, each thread performs a despreading calculation task, which greatly improves the despreading rate.

[0190] like Fig.12 As shown, it is a structural diagram of a parallel de-expansion solution disclosed in an embodiment of the present invention.

[0191] The intermediate frequency sampling signal is the intermediate frequency signal that has been sampled (i.e., the spread spectrum signal after down-conversion), which is represented as a discrete digital signal. In the despreading process, this signal is the object to be processed in order to recover the original narrowband information from it.

[0192] The sampling clock provides the clock signal required for sampling, ensuring that the signal is sampled at the correct time point. The synchronization of the clock signal is crucial for accurate despreading.

[0193] Z -1 It means that modern matched filters are implemented on digital signals, so the intermediate frequency sampling signal is converted into the discrete domain.

[0194] h(k)e jwk represents the complex coefficients of each matched filter, where h(k) is the impulse response of the filter and e jwk is the complex exponential factor. h(k)e jwk It is pre-set according to the corresponding local pseudo code block. In the despreading process, these complex coefficients are used to perform correlation operations with the intermediate frequency sampling signal to restore the original signal.

[0195] The carrier generator is used to generate the required carrier signal and provide it to each matched filter.

[0196] In the despreading process, the multiplier is used to multiply the intermediate frequency sampling signal with the complex coefficients set according to the local pseudo code block, and obtain the despread signal when the maximum value is obtained.

[0197] Step S306: performing integration cleaning on the despread signal to obtain an integration cleaned signal.

[0198] It should be noted that integral cleaning is a method of accumulating the demodulated signal to improve the signal-to-noise ratio. The scope of this application is digital signals. Integral cleaning is to accumulate the points after demodulation to improve the signal-to-noise ratio. Generally speaking, when the signal-to-noise ratio conditions are relatively poor, the accumulated points of integral cleaning will be increased accordingly.

[0199] In one embodiment, after the integral cleaning is performed, the integral cleaned signal is first stored and then the FFT transformation operation is performed.

[0200] It should be noted that the entire capture process is divided into several kernel functions in sequence, including down-conversion and despreading, integral cleaning, FFT transformation operation, incoherent accumulation and maximum value. Each kernel function has its own shared memory. After a kernel function completes the calculation, it will first return the calculated data to its own shared memory. The next kernel function will take the calculation result of the previous kernel function from the shared memory as input. After the calculation is completed, it will be stored in the shared memory again for the next kernel function to use.

[0201] Step S307: Perform FFT transformation operation on the signal after integration cleaning to obtain a transformation result.

[0202] In the specific implementation process of step S307, the cuFFT library in the CUDA (Compute Unified Device Architecture) platform is used to perform FFT transformation operation on the signal after integration and cleaning to obtain a transformation result.

[0203] After the FFT transformation operation, the spectrum diagram of the time domain waveform of the original signal will be obtained. The purpose of spread spectrum signal capture is to obtain the carrier Doppler frequency shift and pseudo code phase. After the FFT transformation operation, the signal is converted to the frequency domain, and the energy of the signal will be concentrated on the frequency corresponding to the Doppler frequency shift. Note that the spectrum after the FFT transformation at this time is the spectrum of the I / Q branches. After the subsequent amplitude calculation and incoherent accumulation, the peak value will be searched, and the frequency corresponding to the Doppler frequency shift is at the peak value.

[0204] It should be noted that GPU devices have great advantages when performing FFT transform operations. The cuFFT library unique to the CUDA platform can produce a speedup ratio of dozens of times compared to CPU devices when performing FFT transform operations, greatly improving the overall computing efficiency.

[0205] Step S308: Based on each frequency point in the spread spectrum signal and the transformation result, multiple energy calculation tasks are generated, and each energy calculation task is assigned to each thread in the thread block for parallel calculation to obtain the energy value of each frequency point.

[0206] In step S308, energy calculation also involves a large number of multiplication and addition operations. The concurrency advantage of the GPU device is used to perform parallel energy calculation. Each thread performs energy calculation of a single frequency point, which can complete the energy calculation of all frequency points with a great acceleration ratio.

[0207] like Fig.13 As shown, it is a structural diagram of a parallel energy calculation solution disclosed in an embodiment of the present invention.

[0208] It can be seen from the above embodiments of the present invention that the spread spectrum signal after down-conversion includes two signals, namely, an I-path signal and a Q-path signal. After despreading, integral cleaning and FFT transformation operations on the spread spectrum signal after down-conversion, two FFT transformation results are obtained, which correspond to the I-path signal and the Q-path signal respectively. Therefore Fig.13 Here, I represents the FFT transformation result corresponding to the I-path signal, and Q represents the FFT transformation result corresponding to the Q-path signal.

[0209] Each thread processes an energy calculation task for a frequency point, and each energy calculation task is used to calculate the square root of the sum of I and Q to obtain the energy value of the frequency point.

[0210] Step S309: performing incoherent accumulation on the energy values ​​of each frequency point to obtain the energy value corresponding to the current operation combination.

[0211] In the incoherent accumulation stage, the reduction algorithm commonly used by GPU devices is used to accelerate the rate of accumulation calculation. Reduction is a common operation in GPU programming, which is used to merge data sets into a single value through specific operations (such as summation, maximum value, etc.). The reduction algorithm has natural data parallelism.

[0212] like Fig.14 FIG. 1 is a schematic diagram of a reduction algorithm summation disclosed in an embodiment of the present invention. In the preset reduction algorithm, each thread block processes a portion of the data, merges adjacent elements through iteration, and gradually reduces the data size. This greatly improves the processing rate when performing incoherent accumulation. The specific principles are as follows:

[0213] 1. Initial data layer (Index1)

[0214] Contains 1024 data items, from a1 to a 1024 Equivalent to the energy value of each frequency point.

[0215] 2. The first accumulation layer (Index2)

[0216] Contains 512 data items, from b1 to b 512 .

[0217] 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.

[0218] 3. Subsequent accumulation layers (Index3 to Index10)

[0219] Continue aggregating the data as described above, halving the number of data items each time.

[0220] 4. Accumulated result layer (Index11)

[0221] Contains 1 data item, d1. This is the final result obtained by adding the two data items in Index10 (i.e., the energy value corresponding to the current operation combination).

[0222] Step S310: determine the next current operation combination from the remaining operation combinations, and return to execute step S302 until the energy values ​​corresponding to the operation combinations are obtained.

[0223] The remaining operation combinations refer to operation combinations that have not yet participated in the parallel capture operation cycle.

[0224] Step S205: taking the maximum value among the energy values ​​corresponding to each operation combination as the local energy maximum value, and sending the local energy maximum value to the CPU device.

[0225] It should be noted that after the local energy maximum is found, it will be transmitted back to the CPU device, and then the global energy maximum will be searched in the CPU device. If the obtained global energy maximum exceeds the set capture threshold, it indicates that the capture of the spread spectrum signal is completed, and it can enter the next stage of demodulation to track the signal.

[0226] Preferably, for each operation combination, a parallel capture operation is performed using multiple threads in the thread block and a spread spectrum signal to obtain an energy value corresponding to the operation combination, and when the energy value corresponding to the operation combination is greater than the historical maximum value, the energy value corresponding to the operation combination is used to update the historical maximum value; when the parallel capture operation for each operation combination is completed, the historical maximum value is used as the local energy maximum value, and the local energy maximum value is sent to the CPU device.

[0227] Based on the direct sequence spread spectrum signal capture method disclosed in the above embodiment of the present invention, in this solution, a CPU device and a GPU device are used to collaboratively complete the capture, and the calculation efficiency is improved by the relatively powerful logic processing capability of the CPU device and the multi-threaded parallel capture operation method used in the GPU device, thereby solving the problem that the existing software demodulation technology cannot meet the requirements of real-time demodulation.

[0228] like Fig.15 As shown, it is a structural diagram of a direct sequence spread spectrum signal capture device disclosed in an embodiment of the present invention. The device is applied to a CPU device, and the CPU device is connected to a GPU device, and includes: a preprocessing unit 1501, a selection unit 1502, a sending unit 1503, a first receiving unit 1504, a return unit 1505, a search unit 1506 and a determination unit 1507.

[0229] The preprocessing unit 1501 is used to receive the spread spectrum signal sent by the transmitting end and preprocess the spread spectrum signal.

[0230] In one embodiment, the preprocessing unit 1501 is specifically configured to:

[0231] Convert the data type of the spread spectrum signal to float type.

[0232] The selection unit 1502 is used to select a candidate combination from the candidate combination set and remove the candidate combination from the candidate combination set; the candidate combination set includes multiple candidate combinations, and each candidate combination is obtained by combining multiple preset carrier frequency ranges with each preset pseudo code phase range in sequence.

[0233] The sending unit 1503 is used to send the candidate combination and the pre-processed spread spectrum signal as operation data to the GPU device.

[0234] The first receiving unit 1504 is used to receive the local energy maximum value obtained by the GPU device through parallel capture operation based on the operation data.

[0235] The returning unit 1505 is used to return to the step of selecting a candidate combination from the candidate combination set and removing the candidate combination from the candidate combination set until there is no candidate combination in the candidate combination set, and multiple local energy maxima are obtained.

[0236] The searching unit 1506 is used to search for the global energy maximum value from the local energy maximum values.

[0237] In one embodiment, the search unit 1506 is specifically configured to:

[0238] The global energy maximum is obtained by searching among the local energy maxima using a preset reduction algorithm.

[0239] The determination unit 1507 is configured to determine the candidate combination corresponding to the global energy maximum value as the capture result if the global energy maximum value is greater than the capture threshold value.

[0240] In one embodiment, the device for capturing a direct sequence spread spectrum signal further includes:

[0241] The precision capture unit is used for dividing the carrier frequency range in the candidate combination corresponding to the global energy maximum value to obtain multiple new carrier frequency ranges, and dividing the pseudo-code phase range in the candidate combination corresponding to the global energy maximum value to obtain multiple new pseudo-code phase ranges if the accuracy of the capture result does not meet the requirements; combining each new carrier frequency range with each new pseudo-code phase range in turn to obtain a candidate combination set consisting of multiple new candidate combinations, and returning to execute the step of selecting a candidate combination from the candidate combination set and removing the candidate combination from the candidate combination set.

[0242] Based on the direct sequence spread spectrum signal capture device disclosed in the above-mentioned embodiment of the present invention, in this solution, a CPU device and a GPU device are used to collaboratively complete the capture, and the calculation efficiency is improved by the relatively powerful logic processing capability of the CPU device and the multi-threaded parallel capture operation method used in the GPU device, thereby solving the problem that the existing software demodulation technology cannot meet the requirements of real-time demodulation.

[0243] like Fig.16As shown, it is a structural diagram of another direct sequence spread spectrum signal capture device disclosed in an embodiment of the present invention. The device is applied to a GPU device, and the GPU device is connected to a CPU device. The device includes: a second receiving unit 1601, a dividing unit 1602, a combining unit 1603, a computing unit 1604 and a feedback unit 1605.

[0244] The second receiving unit 1601 is used to receive operation data sent by the CPU; the operation data includes a candidate combination and a pre-processed spread spectrum signal; the candidate combination includes a carrier frequency range and a pseudo code phase range.

[0245] The dividing unit 1602 is used to divide the carrier frequency range to obtain multiple carrier frequency blocks, and divide the pseudo code phase range to obtain multiple pseudo code phase blocks.

[0246] The combining unit 1603 is used to combine each carrier frequency block with each pseudo code phase block to obtain multiple operation combinations.

[0247] The operation unit 1604 is used to perform parallel capture operations on the operation combination and the spread spectrum signal for each operation combination by using multiple threads in the thread block to obtain energy values ​​corresponding to each operation combination.

[0248] In one embodiment, the computing unit 1604 is specifically configured to:

[0249] Determine a current operation combination from each operation combination;

[0250] Generate an in-phase component and an orthogonal component based on the carrier frequency block in the current operation combination;

[0251] Based on each frequency point, in-phase component and orthogonal component in the spread spectrum signal, multiple down-conversion calculation tasks are generated, and each down-conversion calculation task is assigned to each thread in the thread block for parallel calculation to obtain the spread spectrum signal after down-conversion;

[0252] Based on the pseudo code phase block in the current operation combination, generating a plurality of local pseudo code blocks with a preset phase difference;

[0253] Based on the spread spectrum signal after down-conversion and each local pseudo code block, multiple despreading calculation tasks are generated, and each despreading calculation task is assigned to each thread in the thread block for parallel calculation to obtain a despread signal;

[0254] Performing integral cleaning on the despread signal to obtain an integral cleaned signal;

[0255] Perform FFT transformation operation on the signal after integration cleaning to obtain the transformation result;

[0256] Based on each frequency point and transformation result in the spread spectrum signal, multiple energy calculation tasks are generated, and each energy calculation task is assigned to each thread in the thread block for parallel calculation to obtain the energy value of each frequency point;

[0257] The energy values ​​of each frequency point are incoherently accumulated to obtain the energy value corresponding to the current operation combination;

[0258] The next current operation combination is determined from the remaining operation combinations, and the step of generating an in-phase component and an orthogonal component based on the carrier frequency block in the current operation combination is returned to be executed until the energy values ​​corresponding to the various operation combinations are obtained.

[0259] In one embodiment, the operation unit 1604 for performing incoherent accumulation of the energy values ​​of each frequency point to obtain the energy value corresponding to the current operation combination is specifically used to:

[0260] Using the preset reduction algorithm, the energy values ​​of each frequency point are incoherently accumulated to obtain the energy value corresponding to the current operation combination.

[0261] In one embodiment, the operation unit 1604 for performing FFT transformation operation on the signal after integral cleaning to obtain the transformation result is specifically used for:

[0262] Using the cuFFT library in the CUDA platform, the FFT transformation operation is performed on the signal after integral cleaning to obtain the transformation result.

[0263] The feedback unit 1605 is used to take the maximum value of the energy values ​​corresponding to each operation combination as the local energy maximum value, and send the local energy maximum value to the CPU device.

[0264] Based on the direct sequence spread spectrum signal capture device disclosed in the above-mentioned embodiment of the present invention, in this solution, a CPU device and a GPU device are used to collaboratively complete the capture, and the calculation efficiency is improved by the relatively powerful logic processing capability of the CPU device and the multi-threaded parallel capture operation method used in the GPU device, thereby solving the problem that the existing software demodulation technology cannot meet the requirements of real-time demodulation.

[0265] Each embodiment in this specification is described in a progressive manner, and the same or similar parts between the embodiments can refer to each other, and each embodiment focuses on the differences from other embodiments. In particular, for the system or system embodiment, since it is basically similar to the method embodiment, the description is relatively simple, and the relevant parts can 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 may be selected according to actual needs to achieve the purpose of the scheme of this embodiment. Ordinary technicians in this field can understand and implement it without creative work.

[0266] 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 composition and steps of each example have been generally described in the above description according to function. 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 to be beyond the scope of the present invention.

[0267] The above description of the disclosed embodiments enables one skilled in the art to implement or use the present invention. Various modifications to these embodiments will be 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 will not be limited to the embodiments shown herein, but rather to the widest scope consistent with the principles and novel features disclosed herein.

Claims

1. A method for capturing 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 method includes: receiving a spread spectrum signal sent by a transmitting end, and preprocessing the spread spectrum signal; Selecting a candidate combination from a candidate combination set, and removing the candidate combination from the candidate combination set; the candidate combination set includes a plurality of candidate combinations, each of which is obtained by sequentially combining a plurality of preset carrier frequency ranges with each preset pseudo code phase range; Sending the candidate combination and the preprocessed spread spectrum signal as operation data to the GPU device; Receiving a local energy maximum value obtained by the GPU device performing a parallel capture operation based on the operation data; Returning to the step of selecting a candidate combination from the candidate combination set and removing the candidate combination from the candidate combination set, until the candidate combination does not exist in the candidate combination set, and obtaining a plurality of local energy maxima; Searching for a global energy maximum from each of the local energy maxima; If the global energy maximum is greater than the capture threshold, the candidate combination corresponding to the global energy maximum is determined as the capture result.

2. The method according to claim 1, characterized in that The preprocessing of the spread spectrum signal comprises: Convert the data type of the spread spectrum signal to float type.

3. The method according to claim 1, characterized in that The step of searching for a global energy maximum value from each of the local energy maxima comprises: The global energy maximum value is obtained by searching from each of the local energy maxima using a preset reduction algorithm.

4. The method according to any one of claims 1 to 3, characterized in that: After determining that the candidate combination corresponding to the global energy maximum value is a capture result, the method further includes: If the accuracy of the capture result does not meet the requirements, the carrier frequency range in the candidate combination corresponding to the global energy maximum value is divided to obtain multiple new carrier frequency ranges, and the pseudo code phase range in the candidate combination corresponding to the global energy maximum value is divided to obtain multiple new pseudo code phase ranges; Combine each of the new carrier frequency ranges with each of the new pseudo code phase ranges in turn to obtain a candidate combination set consisting of a plurality of new candidate combinations, and return to execute the step of selecting a candidate combination from the candidate combination set and removing the candidate combination from the candidate combination set.

5. A method for capturing 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 method includes: receiving operation data sent by the CPU; the operation data includes a candidate combination and a preprocessed spread spectrum signal; the candidate combination includes a carrier frequency range and a pseudo code phase range; Dividing the carrier frequency range to obtain a plurality of carrier frequency blocks, and dividing the pseudo code phase range to obtain a plurality of pseudo code phase blocks; Combining each of the carrier frequency blocks with each of the pseudo code phase blocks to obtain a plurality of operation combinations; For each of the operation combinations, using multiple threads in a thread block, perform parallel capture operations on the operation combination and the spread spectrum signal to obtain energy values ​​corresponding to each of the operation combinations; The maximum value among the energy values ​​corresponding to the operation combinations is taken as the local energy maximum value, and the local energy maximum value is sent to the CPU device.

6. The method according to claim 5, characterized in that For each of the operation combinations, using multiple threads in a thread block to perform parallel capture operations on the operation combination and the spread spectrum signal to obtain energy values ​​corresponding to each of the operation combinations, including: Determine a current operation combination from each of the operation combinations; generating an in-phase component and a quadrature component based on the carrier frequency block in the current operation combination; Based on each frequency point, the in-phase component and the orthogonal component in the spread spectrum signal, a plurality of down-conversion calculation tasks are generated, and each of the down-conversion calculation tasks is assigned to each thread in a thread block for parallel calculation to obtain a spread spectrum signal after down-conversion; Based on the pseudo code phase block in the current operation combination, generating a plurality of local pseudo code blocks with a preset phase difference; Based on the down-converted spread spectrum signal and each of the local pseudo code blocks, a plurality of despreading calculation tasks are generated, and each of the despreading calculation tasks is assigned to each of the threads in the thread block for parallel calculation to obtain a despread signal; Performing integral cleaning on the despread signal to obtain an integral cleaned signal; Performing FFT transformation operation on the signal after the integral cleaning to obtain a transformation result; Based on each frequency point in the spread spectrum signal and the transformation result, a plurality of energy calculation tasks are generated, and each of the energy calculation tasks is assigned to each of the threads in the thread block for parallel calculation to obtain an energy value of each of the frequency points; Incoherently summing the energy values ​​of the respective frequency points to obtain an energy value corresponding to the current operation combination; The next current operation combination is determined from the remaining operation combinations, and the step of generating an in-phase component and an orthogonal component based on the carrier frequency block in the current operation combination is returned to be executed until the energy values ​​corresponding to the respective operation combinations are obtained.

7. The method according to claim 6, characterized in that The non-coherently accumulating the energy values ​​of the respective frequency points to obtain the energy value corresponding to the current operation combination includes: By using a preset reduction algorithm, the energy values ​​of the various frequency points are incoherently accumulated to obtain the energy value corresponding to the current operation combination.

8. The method according to claim 6, characterized in that The performing of FFT transformation operation on the signal after the integral cleaning to obtain a transformation result includes: The cuFFT library in the CUDA platform is used to perform FFT transformation operation on the signal after the integral cleaning to obtain a transformation result.

9. A device for capturing 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 device comprises: A preprocessing unit, used for receiving a spread spectrum signal sent by a transmitting end, and preprocessing the spread spectrum signal; A selection unit is used to select a candidate combination from a candidate combination set and remove the candidate combination from the candidate combination set; the candidate combination set includes a plurality of candidate combinations, each of which is obtained by sequentially combining a plurality of preset carrier frequency ranges with each preset pseudo code phase range; A sending unit, configured to send the candidate combination and the preprocessed spread spectrum signal as operation data to the GPU device; A first receiving unit is used to receive a local energy maximum value obtained by the GPU device through parallel capture operation based on the operation data; a returning unit, configured to return to the step of selecting a candidate combination from the candidate combination set and removing the candidate combination from the candidate combination set until the candidate combination does not exist in the candidate combination set, thereby obtaining a plurality of local energy maxima; A searching unit, used for searching for a global energy maximum value from each of the local energy maxima; A determination unit is used to determine that the candidate combination corresponding to the global energy maximum value is a capture result if the global energy maximum value is greater than a capture threshold.

10. A device for capturing 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 device comprises: A second receiving unit is used to receive operation data sent by the CPU; the operation data includes a candidate combination and a pre-processed spread spectrum signal; the candidate combination includes a carrier frequency range and a pseudo code phase range; A dividing unit, used for dividing the carrier frequency range to obtain a plurality of carrier frequency blocks, and dividing the pseudo code phase range to obtain a plurality of pseudo code phase blocks; A combining unit, used for combining each of the carrier frequency blocks with each of the pseudo code phase blocks to obtain a plurality of operation combinations; An operation unit, configured to perform parallel capture operation on each of the operation combinations by using a plurality of threads in a thread block to obtain energy values ​​corresponding to each of the operation combinations; The feedback unit is used to take the maximum value of the energy values ​​corresponding to each of the operation combinations as the local energy maximum value, and send the local energy maximum value to the CPU device.

Citation Information

Patent Citations

  • Pseudo code capturing method and capturing device using multiple antennae of direct sequence spread spectrum system

    CN101702628A

  • Multi-dimension hybrid spread spectrum system and method based on high speed bus and graphic processing unit (GPU)

    CN102055495A

  • CPU-assisted GPU spread spectrum signal fast acquisition realization method

    CN105577229A

  • Long-code segmentation overlay local correlation capture method based on GPU

    CN106772471A

  • Burst direct sequence spread spectrum system and pseudo code synchronization method of burst direct sequence spread spectrum waveform thereof

    CN107026810A