A signal-to-noise ratio estimation method and system for deep space antenna array
Patent Information
- Application Number
- CN202512054080.X
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Filing Date
- 2025-12-31
- Publication Date
- 2026-10-30
AI Technical Summary
但是在宽带信号处理场景下,为捕捉足够的信号特征,所需处理的信号维数与数据量急剧增加,导致自相关矩阵的规模显著扩大,从而使得特征分解过程产生巨大的计算负担
[0082]当所述FFT执行计划删除完成后,基于所述自相关序列构建自相关矩阵。本申请提供的技术方案,基于一维信号样本和自相关矩阵维度,确定自相关矩阵;对自相关矩阵进行特征值分解并排序;对所有排序后的特征值进行计算;从所有最小描述长度值中筛选出目标最小描述长度值;从特征值序列中筛选出目标最小描述长度值对应的索引作为拐点;根据拐点对特征值进行拆分处理,得到噪声特征值和信号特征值;基于噪声特征值和信号特征值确定信噪比。通过对自相关矩阵构建、特征值分解和最小描述长度值计算等关键步骤进行全流程并行优化,实现了高精度与实时性的协同提升。这一优化满足了深空组阵系统对合成信号性能的在线监测需求,并能基于实时信噪比快速评估天线组阵的合成效果。
Smart Images

Figure CN123019917A_ABST
Abstract
Description
Technical Field
[0001] This application relates to the field of data processing technology, and in particular to a signal-to-noise ratio estimation method and system for deep space antenna arrays. Background Technology
[0002] Antenna array technology and signal processing technology have become crucial components of wireless communication systems. To improve the signal reception quality and reduce signal interference in communication systems, accurate estimation of the signal-to-noise ratio (SNR) of wireless signals is essential.
[0003] Currently, common blind signal-to-noise ratio (SNR) estimation methods mainly include subspace-based methods based on the minimum description length criterion and subspace estimation algorithms based on the weighted information fusion criterion. These two methods can separate signal and noise by decomposing the autocorrelation matrix of the received signal, thereby estimating the SNR. However, in broadband signal processing scenarios, to capture sufficient signal features, the required signal dimension and data volume increase dramatically, leading to a significant expansion of the autocorrelation matrix and thus imposing a huge computational burden on the feature decomposition process. When using a traditional serial computing architecture, this computation process consumes a significant amount of time, making the SNR estimation rate far lower than the signal data input rate, failing to meet the timeliness requirements of real-time processing. Ultimately, this severe lag in estimation results makes it impossible to quickly evaluate the synthesis effect of antenna arrays based on real-time SNR. Summary of the Invention
[0004] This application provides a signal-to-noise ratio estimation method and system for deep space antenna arrays, aiming to quickly evaluate the synthesis effect of antenna arrays based on real-time signal-to-noise ratio.
[0005] To achieve the above objectives, this application provides the following technical solution:
[0006] The first aspect of this application provides a signal-to-noise ratio estimation method for deep space antenna arrays, including:
[0007] Obtain the dimensions of one-dimensional signal samples and autocorrelation matrices;
[0008] Based on the one-dimensional signal sample and the dimensions of the autocorrelation matrix, the autocorrelation matrix is determined;
[0009] The autocorrelation matrix is decomposed into eigenvalues to obtain all eigenvalues;
[0010] All the feature values are sorted in descending order to obtain a feature value sequence; the feature value sequence includes multiple sorted feature values and an index of each sorted feature value;
[0011] The minimum description length criterion is used to calculate all sorted feature values to obtain multiple minimum description length values;
[0012] Filter out the smallest minimum description length value from all minimum description length values and mark it as the target minimum description length value;
[0013] The index corresponding to the minimum description length value of the target is selected from the feature value sequence and determined as the inflection point; the inflection point is the boundary point between the signal space and the noise space.
[0014] For each feature value, the feature value is split according to the inflection point to obtain noise feature value and signal feature value;
[0015] The signal-to-noise ratio is determined based on the noise characteristic value and the signal characteristic value.
[0016] Optionally, determining the autocorrelation matrix based on the one-dimensional signal sample and the dimensions of the autocorrelation matrix includes:
[0017] Based on the dimensions of the autocorrelation matrix, perform conjugate multiplication operations in parallel on the one-dimensional signal samples to obtain multiple conjugate values;
[0018] All conjugate values are evenly distributed among the thread blocks according to the number of thread blocks; each thread block stores the same number of conjugate values.
[0019] For each thread block, the conjugate values in the thread block are reduced and accumulated to obtain a local accumulation result;
[0020] All local accumulation results are reduced and accumulated to obtain the global accumulation result, and the global accumulation result is determined as the autocorrelation sequence;
[0021] An autocorrelation matrix is constructed based on the autocorrelation sequence.
[0022] Optionally, constructing the autocorrelation matrix based on the autocorrelation sequence includes:
[0023] Map the two-dimensional coordinates in the thread block to a one-dimensional linear index; the one-dimensional linear index includes a row index and a column index.
[0024] Based on the one-dimensional linear index, the position of the element value of the autocorrelation matrix in the one-dimensional array is calculated;
[0025] When the column index is not greater than the row index, the conjugate value of the corresponding element in the autocorrelation sequence is determined as the autocorrelation matrix value, and the autocorrelation matrix value is filled into the autocorrelation matrix according to the position.
[0026] When the column index is greater than the row index, the corresponding element value in the autocorrelation sequence is determined as the autocorrelation matrix value, and the autocorrelation matrix value is filled into the autocorrelation matrix according to the position.
[0027] Optionally, determining the autocorrelation matrix based on the one-dimensional signal sample and the dimensions of the autocorrelation matrix includes:
[0028] The GPU memory is allocated to the one-dimensional signal sample using the device content allocation function;
[0029] Once the GPU memory allocation is complete, the one-dimensional signal sample is transferred to the GPU memory using a memory copy function;
[0030] Based on the parameter information of the one-dimensional signal sample, a library function is called to generate an FFT execution plan; the parameter information of the one-dimensional signal sample includes at least the data type and length of the one-dimensional signal sample.
[0031] Using the FFT execution plan and parallel FFT function, a forward fast Fourier transform is performed on the one-dimensional signal sample in the GPU memory to obtain the transformed one-dimensional signal sample.
[0032] The power spectrum is obtained by performing conjugate multiplication operations in parallel on the transformed one-dimensional signal samples according to the dimensions of the autocorrelation matrix.
[0033] The power spectrum is Fourier transformed and shifted to obtain frequency domain data;
[0034] The frequency domain data is subjected to inverse forward fast Fourier transform using the parallel FFT function to obtain inverse one-dimensional signal samples;
[0035] The inverse one-dimensional signal sample is normalized to obtain an autocorrelation sequence;
[0036] Delete the FFT execution plan;
[0037] After the FFT execution plan is deleted, an autocorrelation matrix is constructed based on the autocorrelation sequence.
[0038] Optionally, determining the autocorrelation matrix based on the one-dimensional signal sample and the dimensions of the autocorrelation matrix includes:
[0039] The one-dimensional signal samples are arranged in reverse order to obtain the rearranged one-dimensional signal samples.
[0040] Based on the dimensions of the autocorrelation matrix, the arranged one-dimensional signal samples are padded with zeros to obtain the padded one-dimensional signal samples.
[0041] The index terms of the Toplitz matrix are determined based on the dimensions of the autocorrelation matrix and the number of one-dimensional signal samples.
[0042] Based on the index entries of the Toplitz matrix and the zero-padded one-dimensional signal samples, an initial Toplitz matrix is constructed;
[0043] Calculate the index position of each element in the initial Toplitz matrix within the pre-selected array;
[0044] For each element, the value corresponding to the index position is selected from the pre-selected array, and the value is filled into the element to obtain the Toplitz matrix;
[0045] Perform matrix conjugate transpose multiplication on the Toplitz matrix to obtain the autocorrelation matrix.
[0046] Optionally, the eigenvalue decomposition of the autocorrelation matrix to obtain all eigenvalues includes:
[0047] Obtain the matrix pointer of the autocorrelation matrix;
[0048] The working space is calculated based on the matrix pointer and the dimensions of the autocorrelation matrix;
[0049] Based on the workspace space, temporary storage space is allocated in GPU memory using memory management functions;
[0050] Within the temporary storage space, the autocorrelation matrix is calculated using the matrix eigenvalue function to obtain all eigenvalues.
[0051] A second aspect of this application provides a signal-to-noise ratio estimation system for deep-space antenna arrays, comprising:
[0052] The acquisition unit is used to acquire one-dimensional signal samples and the dimensions of the autocorrelation matrix.
[0053] The first determining unit is used to determine the autocorrelation matrix based on the one-dimensional signal sample and the dimension of the autocorrelation matrix;
[0054] A decomposition unit is used to perform eigenvalue decomposition on the autocorrelation matrix to obtain all eigenvalues;
[0055] A sorting unit is used to sort all the feature values in descending order to obtain a feature value sequence; the feature value sequence includes multiple sorted feature values and an index of each sorted feature value;
[0056] The calculation unit is used to calculate all sorted feature values using the minimum description length criterion to obtain multiple minimum description length values;
[0057] The first filtering unit is used to filter out the smallest minimum description length value from all minimum description length values and mark it as the target minimum description length value;
[0058] The second filtering unit is used to filter out the index corresponding to the minimum description length value of the target from the feature value sequence and determine it as an inflection point; the inflection point is the boundary point between the signal space and the noise space;
[0059] A splitting unit is used to split each feature value according to the inflection point to obtain noise feature values and signal feature values;
[0060] The second determining unit is used to determine the signal-to-noise ratio based on the noise feature value and the signal feature value.
[0061] Optionally, the first determining unit includes:
[0062] An execution subunit is used to perform a conjugate multiplication operation on the one-dimensional signal sample in parallel according to the dimension of the autocorrelation matrix to obtain multiple conjugate values;
[0063] The sub-unit is used to evenly distribute all conjugate values into thread blocks according to the number of thread blocks; each thread block stores the same number of conjugate values.
[0064] The first accumulation subunit is used to reduce and accumulate the conjugate values in each thread block to obtain a local accumulation result.
[0065] The second accumulation subunit is used to reduce and accumulate all local accumulation results to obtain a global accumulation result, and to determine the global accumulation result as an autocorrelation sequence.
[0066] Construct sub-units for building an autocorrelation matrix based on the autocorrelation sequence.
[0067] Optionally, the building subunit is specifically used for:
[0068] Map the two-dimensional coordinates in the thread block to a one-dimensional linear index; the one-dimensional linear index includes a row index and a column index.
[0069] Based on the one-dimensional linear index, the position of the element value of the autocorrelation matrix in the one-dimensional array is calculated;
[0070] When the column index is not greater than the row index, the conjugate value of the corresponding element in the autocorrelation sequence is determined as the autocorrelation matrix value, and the autocorrelation matrix value is filled into the autocorrelation matrix according to the position.
[0071] When the column index is greater than the row index, the corresponding element value in the autocorrelation sequence is determined as the autocorrelation matrix value, and the autocorrelation matrix value is filled into the autocorrelation matrix according to the position.
[0072] Optionally, the first determining unit is specifically used for:
[0073] The GPU memory is allocated to the one-dimensional signal sample using the device content allocation function;
[0074] Once the GPU memory allocation is complete, the one-dimensional signal sample is transferred to the GPU memory using a memory copy function;
[0075] Based on the parameter information of the one-dimensional signal sample, a library function is called to generate an FFT execution plan; the parameter information of the one-dimensional signal sample includes at least the data type and length of the one-dimensional signal sample.
[0076] Using the FFT execution plan and parallel FFT function, a forward fast Fourier transform is performed on the one-dimensional signal sample in the GPU memory to obtain the transformed one-dimensional signal sample.
[0077] The power spectrum is obtained by performing conjugate multiplication operations in parallel on the transformed one-dimensional signal samples according to the dimensions of the autocorrelation matrix.
[0078] The power spectrum is Fourier transformed and shifted to obtain frequency domain data;
[0079] The frequency domain data is subjected to inverse forward fast Fourier transform using the parallel FFT function to obtain inverse one-dimensional signal samples;
[0080] The inverse one-dimensional signal sample is normalized to obtain an autocorrelation sequence;
[0081] Delete the FFT execution plan;
[0082] After the FFT execution plan is deleted, an autocorrelation matrix is constructed based on the autocorrelation sequence. The technical solution provided in this application determines the autocorrelation matrix based on the dimensions of a one-dimensional signal sample and the autocorrelation matrix; performs eigenvalue decomposition and sorts the autocorrelation matrix; calculates all sorted eigenvalues; selects the target minimum description length value from all minimum description length values; selects the index corresponding to the target minimum description length value as an inflection point from the eigenvalue sequence; splits the eigenvalues according to the inflection point to obtain noise eigenvalues and signal eigenvalues; and determines the signal-to-noise ratio (SNR) based on the noise eigenvalues and signal eigenvalues. By performing full-process parallel optimization on key steps such as autocorrelation matrix construction, eigenvalue decomposition, and minimum description length value calculation, a synergistic improvement in high precision and real-time performance is achieved. This optimization meets the online monitoring requirements of deep-space array systems for synthesized signal performance and can quickly evaluate the synthesis effect of antenna arrays based on real-time SNR. Attached Figure Description
[0083] To more clearly illustrate the technical solutions in the embodiments of this application or the prior art, the drawings used in the description of the embodiments or the prior art will be briefly introduced below. Obviously, the drawings described below are only some embodiments of this application. For those skilled in the art, other drawings can be obtained based on these drawings without creative effort.
[0084] Figure 1 A flowchart illustrating a signal-to-noise ratio estimation method for deep-space antenna arrays, provided as an embodiment of this application;
[0085] Figure 2 A schematic diagram of specification accumulation provided for an embodiment of this application;
[0086] Figure 3 A schematic diagram illustrating a parallel sliding multiplication and accumulation method for calculating autocorrelation sequences, provided as an embodiment of this application;
[0087] Figure 4 A schematic diagram of the architecture of a signal-to-noise ratio estimation system for deep space antenna arrays provided in this application embodiment;
[0088] Figure 5 This is a schematic diagram illustrating a high-precision real-time signal-to-noise ratio estimation method for deep-space antenna arrays, provided as an embodiment of this application. Detailed Implementation
[0089] The technical solutions of the embodiments of this application will be clearly and completely described below with reference to the accompanying drawings. Obviously, the described embodiments are only some embodiments of this application, and not all embodiments. Based on the embodiments of this application, all other embodiments obtained by those skilled in the art without creative effort are within the scope of protection of this application.
[0090] In this application, the terms "comprising," "including," or any other variations thereof are intended to cover a non-exclusive inclusion, such that a process, method, article, or apparatus that comprises a list of elements includes not only those elements but also other elements not expressly listed, or elements inherent to such a process, method, article, or apparatus. Without further limitation, an element defined by the phrase "comprising one..." does not exclude the presence of other identical elements in the process, method, article, or apparatus that includes said element.
[0091] like Figure 1 The diagram shown is a flowchart of a signal-to-noise ratio estimation method for deep-space antenna arrays provided in an embodiment of this application, including the following steps:
[0092] S101: Obtain the dimensions of the one-dimensional signal sample and the autocorrelation matrix.
[0093] There are N one-dimensional signal samples, and the input sequence length is also N. The specific representation of the N one-dimensional signal samples is as follows: Where x(i) is the i-th value in the one-dimensional signal sample x.
[0094] Optionally, the autocorrelation matrix has an L-dimensional dimension.
[0095] S102: Determine the autocorrelation matrix based on the one-dimensional signal sample and the dimensions of the autocorrelation matrix.
[0096] It is understandable that, based on the dimensions of the one-dimensional signal sample and the autocorrelation matrix, the autocorrelation sequence is determined, which is equivalent to calculating the L-dimensional autocorrelation matrix of the one-dimensional signal sample.
[0097] Optionally, in another embodiment of this application, the specific implementation of step S102 includes processes A1 to A5.
[0098] A1: Perform conjugate multiplication on one-dimensional signal samples in parallel according to the dimensions of the autocorrelation matrix to obtain multiple conjugate values.
[0099] Specifically, delayed signal samples are generated based on the dimensions of the autocorrelation matrix; a conjugation operation is performed on the one-dimensional signal samples to obtain conjugated one-dimensional signal samples; the delayed signal samples and the conjugated one-dimensional signal samples are then multiplied in parallel to obtain multiple conjugated values. For example, the following is obtained: One conjugate value.
[0100] A2: Distribute all conjugate values evenly among the thread blocks according to the number of thread blocks.
[0101] Each thread block stores the same number of conjugate values.
[0102] It's important to note that in a GPU, there are grids, blocks, and threads. A grid contains multiple thread blocks, and a thread block contains multiple threads. Shared memory is contained within the thread block level; that is, a block has its own shared memory, and the shared memory of a second block does not conflict with or affect the shared memory of the first block. Therefore, to calculate the sum of the multiple conjugate multiplication values obtained earlier more quickly, all conjugate values need to be evenly distributed among the thread blocks according to the number of thread blocks.
[0103] A3: For each thread block, reduce and accumulate the conjugate values in the thread block to obtain the local accumulation result.
[0104] Understandably, multiple blocks (multiple threads within a single block) are invoked to read multiple conjugate multiplication values, and then a reduction and accumulation process is performed. The reduction and accumulation process involves each thread handling an independent addition, forming a gradually decreasing tree structure, thus obtaining a locally accumulated result.
[0105] For example, see Figure 2 The diagram illustrates a reduction summation process where each thread adds two numbers in an array, and the array is halved with each processing operation until each block is reduced to a single number.
[0106] It should be noted that the conjugate values in the thread block are reduced and accumulated, and the resulting local accumulation is stored in the first thread of the thread block.
[0107] A4: Reduce and sum all local accumulation results to obtain the global accumulation result, and determine the global accumulation result as the autocorrelation sequence.
[0108] Understandably, since the shared memory between different thread blocks is independent of each other, after the initial accumulation is completed, the shared memory of a single thread block needs to be used to further reduce the results stored in the first thread of each thread block before the accumulation, so as to obtain the global accumulation result and determine it as an autocorrelation sequence.
[0109] As can be seen, the phased accumulation method can effectively achieve parallel reduction computation of the entire dataset. This process optimizes memory access efficiency and fully utilizes the advantages of multi-threaded parallel computing.
[0110] For a better illustration of the contents shown in processes A1 through A4, see [link to documentation]. Figure 3The diagram illustrates a parallel sliding multiplication-accumulation method for calculating autocorrelation sequences. First, a parallel conjugate multiplication operation is performed on a one-dimensional signal sample to obtain... The values are reduced and accumulated using shared memory in multiple thread blocks. The accumulated result (i.e., the local accumulated result) in each thread block is stored in the first thread of that thread block. The local accumulated result of each thread in each thread block is reduced and accumulated (i.e., r(0), r(1)...r(L-1) are reduced and accumulated) to obtain the global accumulated result, which is then determined as the autocorrelation sequence.
[0111] Specifically, the specific manifestation of autocorrelation sequences is as follows: .in, This is an autocorrelation sequence, where n is the discrete-time index (or sample number), representing the signal's position on the time axis. The mathematical expectation is the statistical average of the stochastic process. for conjugate, is the time delay, is the index of the autocorrelation sequence, and is an integer.
[0112] A5: Construct an autocorrelation matrix based on autocorrelation sequences.
[0113] Understandably, to construct the autocorrelation matrix based on the autocorrelation sequence, a kernel function called `autocorrelation_matrix_kernel` was designed for efficient parallel processing. This kernel function employs a two-dimensional thread block structure, ensuring that each thread can independently and in parallel compute one element of the autocorrelation matrix.
[0114] Optionally, in another embodiment of this application, the specific implementation of process A5 includes processes B1 to B4.
[0115] B1: Map the two-dimensional coordinates in the thread block to a one-dimensional linear index.
[0116] One-dimensional linear indexes include row indexes and column indexes.
[0117] Specifically, the two-dimensional coordinates in the thread block can be mapped to a one-dimensional linear index using a coordinate mapping formula. The specific table form of the coordinate mapping formula is shown in formula (1).
[0118] (1)
[0119] In formula (1), i is the row index, j is the column index, blockIdx.x is the index of the current thread block in the grid along the x direction (starting from 0), blockDim.x is the number of threads in each thread block in the x direction (i.e., the size of the thread block in the x dimension), threadIdx.x is the index of the current thread in the thread block along the x direction (starting from 0), blockIdx.y is the index of the current thread block in the grid along the y direction (starting from 0), blockDim.y is the number of threads in each thread block in the y direction, and threadIdx.y is the index of the current thread in the thread block along the y direction (starting from 0).
[0120] B2: Calculate the position of the element value of the autocorrelation matrix in the one-dimensional array based on the one-dimensional linear index.
[0121] Specifically, based on the one-dimensional linear index, the specific representation of the position of the element value of the autocorrelation matrix in the one-dimensional array is calculated, as shown in formula (2).
[0122] (2)
[0123] In formula (2), idx is the position of the element value of the autocorrelation matrix in the one-dimensional array.
[0124] B3: When the column index is not greater than the row index, the conjugate value of the corresponding element in the autocorrelation sequence is determined as the autocorrelation matrix value, and the autocorrelation matrix value is filled into the autocorrelation matrix according to the position.
[0125] Specifically, the autocorrelation matrix R XX The i,j-th element is represented as .
[0126] For example, when j=1, i=2, the corresponding R XX The value in the second row and first column of (2,1) should be the conjugate value.
[0127] B4: When the column index is greater than the row index, the corresponding element value in the autocorrelation sequence is determined as the autocorrelation matrix value, and the autocorrelation matrix value is filled into the autocorrelation matrix according to its position.
[0128] For example, when j=3 and i=1, the corresponding R XX The value in the first row and third column of (1,3) should be the corresponding element value.
[0129] Specifically, the specific form of the autocorrelation matrix is shown in formula (3).
[0130] (3)
[0131] In formula (3), R XX This is the autocorrelation matrix.
[0132] It should be noted that the matrix shown in formula (3) is an L×L autocorrelation matrix.
[0133] As can be seen from the properties of the autocorrelation matrix, it is a Hermitian matrix, therefore a unitary matrix exists. , so that: .in, And all eigenvalues are non-negative.
[0134] Optionally, in another embodiment of this application, the specific implementation of step S102 includes processes C1 to C10.
[0135] C1: Allocate GPU memory for one-dimensional signal samples using the device content allocation function.
[0136] Optionally, the device content allocation function can be the cudaMalloc function.
[0137] C2: After the GPU memory allocation is completed, the one-dimensional signal sample is transferred to the GPU memory using the memory copy function.
[0138] Optionally, the memory copy function can be the cudaMemcpy function.
[0139] C3: Based on the parameter information of the one-dimensional signal sample, call the library function to generate the FFT execution plan.
[0140] The parameter information of a one-dimensional signal sample includes at least the data type and length of the one-dimensional signal sample.
[0141] Optionally, the library function can be the cufftPlan1d function from the cuFFT library.
[0142] C4: Using the FFT execution plan and parallel FFT function, perform a forward fast Fourier transform on the one-dimensional signal sample in GPU memory to obtain the transformed one-dimensional signal sample.
[0143] Optionally, the parallel FFT function can be the cufftExecC2C function.
[0144] C5: Perform conjugate multiplication operations in parallel on the transformed one-dimensional signal samples according to the dimensions of the autocorrelation matrix to obtain the power spectrum.
[0145] Specifically, delayed signal samples are generated based on the autocorrelation matrix dimension; a conjugation operation is performed on the transformed one-dimensional signal samples to obtain conjugated one-dimensional signal samples; and the delayed signal samples and conjugated one-dimensional signal samples are multiplied in parallel to obtain the power spectrum.
[0146] C6: Perform a Fourier transform shift on the power spectrum to obtain frequency domain data.
[0147] It is understandable that the power spectrum is Fourier transformed and shifted, that is, the power spectrum is subjected to FFTshift operation, so as to obtain frequency domain data.
[0148] C7: Use the parallel FFT function to perform inverse and forward fast Fourier transforms on the frequency domain data to obtain inverse one-dimensional signal samples.
[0149] Understandably, the parallel FFT function is used again, but this time an inverse FFT is performed (achieved by adjusting the function parameters) to convert the frequency domain data back to the time domain, resulting in an inverse one-dimensional signal sample.
[0150] C8: Normalize the inverse one-dimensional signal sample to obtain the autocorrelation sequence.
[0151] Specifically, the autocorrelation sequence is obtained by dividing all the inverse one-dimensional signal samples by the input length sequence N.
[0152] It should be noted that processes C1 to C8 involve calculating the autocorrelation sequence using FFT, specifically using the autocorrelation sequence formula. The autocorrelation sequence formula is: r xx (k) is an autocorrelation sequence. This refers to the digital angular frequency (unit: radians), and its value range is typically [range missing]. or , representing a frequency domain variable, The inverse Fourier transform operation refers to the transformation from the frequency domain to the time domain.
[0153] C9: Delete the FFT execution plan.
[0154] This involves destroying the FFT execution plan to release related resources and prevent memory leaks.
[0155] C10: After the FFT execution plan is deleted, an autocorrelation matrix is constructed based on the autocorrelation sequence.
[0156] It should be noted that the specific implementation methods for constructing the autocorrelation matrix based on the autocorrelation sequence can be found in processes B1 to B4, and will not be repeated here.
[0157] It should be noted that processes C1 to C10 utilize the advantages of frequency domain processing, resulting in the fastest computation speed. The accuracy is closely related to the number of points in the Fast Fourier Transform (FFT). It is generally recommended to choose an integer power of 2 greater than 2N-1, or closest to 2N-1, as the length of the FFT. This choice not only ensures accuracy in calculating autocorrelation sequences but also fully leverages the efficiency of the FFT algorithm, optimizing the computation process.
[0158] Optionally, in another embodiment of this application, the specific implementation of step S102 includes processes D1 to D7.
[0159] D1: Reverse the order of the one-dimensional signal samples to obtain the rearranged one-dimensional signal samples.
[0160] The one-dimensional signal samples are arranged in reverse order to obtain the following rearranged one-dimensional signal samples: Among them, x anti This is a one-dimensional signal sample after arrangement.
[0161] Optionally, the one-dimensional signal samples can be reversed using a pre-built toeplitz_1_kernel function to obtain the sorted one-dimensional signal samples.
[0162] D2: Based on the dimensions of the autocorrelation matrix, zero-padding is performed on the arranged one-dimensional signal samples to obtain the zero-padding one-dimensional signal samples.
[0163] Optionally, the pre-built toeplitz_1_kernel kernel function can be used to pad the arranged one-dimensional signal samples with zeros according to the dimensions of the autocorrelation matrix.
[0164] Specifically, the zero-padding process for the arranged one-dimensional signal samples based on the autocorrelation matrix dimension is shown in formula (4).
[0165] (4)
[0166] In formula (4), x anti-0 This is a one-dimensional signal sample after zero padding.
[0167] D3: Determine the index terms of the Toplitz matrix based on the dimension of the autocorrelation matrix and the number of one-dimensional signal samples.
[0168] Specifically, the specific representation of the index terms of the Toplitz matrix is determined based on the dimension of the autocorrelation matrix and the number of one-dimensional signal samples, as shown in formula (5).
[0169] (5)
[0170] In formula (5), ij is the index of the Toplitz matrix.
[0171] D4: Construct the initial Toplitz matrix based on the index entries of the Toplitz matrix and the zero-padded one-dimensional signal samples.
[0172] Specifically, based on the index terms of the Toplitz matrix and the zero-padded one-dimensional signal samples, the specific representation of the initial Toplitz matrix is constructed as shown in formula (6).
[0173] (6)
[0174] In formula (6), T X This is the initial Toplitz matrix.
[0175] D5: Calculate the index position of each element in the initial Toplitz matrix in the pre-selected array.
[0176] The process of constructing the pre-selected array is as follows: when the thread index is less than N, the output value is the reverse order of the one-dimensional signal samples; when the thread index is otherwise, the output value is 0. This process generates an array of length N+L-1, which serves as the pre-selected array for the subsequent construction of the Toplitz matrix.
[0177] It should be noted that each thread is responsible for processing one data element, and a total of N+L-1 elements need to be processed.
[0178] Specifically, the pre-built oeplitz_2_kernel kernel function can calculate the index position of each element in the Toplitz matrix within the candidate array. The oeplitz_2_kernel kernel function employs a two-dimensional thread block structure, where the two dimensions of each thread correspond to the rows and columns of the matrix, respectively. Each thread calculates its corresponding row vector offset i−1 and column vector offset N−j based on its two-dimensional coordinates (i,j) in the grid, and then adds these two offsets to obtain the final index value (i−1)+(N−j). All threads execute in parallel, collectively generating an index array of size L×N.
[0179] D6: For each element, select the value corresponding to the index position from the pre-selected array and fill the element with the value to obtain the Toplitz matrix.
[0180] Specifically, the pre-built `toeplitz_3_kernel` function is called to filter the values corresponding to the index positions from the pre-selected array and fill the elements with these values. This `toeplitz_3_kernel` function uses a one-dimensional thread block structure, with each thread corresponding to one element in the output matrix. Each thread reads a value from a pre-calculated index, then reads the data at the corresponding position from the pre-selected array and writes it to the corresponding position in the output matrix. Through this parallel mapping operation, the entire Toeplitz matrix is finally constructed.
[0181] D7: Perform matrix conjugate transpose multiplication on the Toplitz matrix to obtain the autocorrelation matrix.
[0182] Optionally, the cublasCgemm function provided by the cuBLAS library can be used to perform matrix conjugate transpose multiplication on the Toplitz matrix. For the specific calculation process, please refer to formulas (7), (8) and (9).
[0183] (7)
[0184] (8)
[0185] (9)
[0186] In formulas (7), (8), and (9), C is the autocorrelation matrix, i.e. . and Let A and B be scalar parameters, and let B be a matrix. H The conjugate transpose of B (also called the Hermitian transpose) is obtained by taking the complex conjugate of each element and then transposing the matrix.
[0187] S103: Perform eigenvalue decomposition on the autocorrelation matrix to obtain all eigenvalues.
[0188] Optionally, the SVD function can be used to perform singular value decomposition to obtain eigenvalues.
[0189] Optionally, in another embodiment of this application, the specific implementation of step S103 includes processes E1 to E4.
[0190] E1: Get the matrix pointer to the autocorrelation matrix.
[0191] E2: Calculate the working space based on matrix pointers and the dimensions of the autocorrelation matrix.
[0192] The function cusolverDnCheevd_bufferSize is called to calculate the required working space and determine the size of the temporary memory space needed to perform eigenvalue decomposition.
[0193] E3: Based on the workspace space, use memory management functions to allocate temporary storage space in GPU memory.
[0194] Among them, memory management functions include, but are not limited to, CUDA memory management functions.
[0195] E4: In the temporary storage space, the autocorrelation matrix is calculated using the matrix eigenvalue function to obtain all eigenvalues.
[0196] Among them, matrix eigenvalue functions include, but are not limited to, GPU-accelerated complex Hermitian matrices.
[0197] Understandably, within the temporary storage space, the GPU is used to accelerate the decomposition of the autocorrelation matrix using a complex Hermitian matrix, obtaining all eigenvalues of the input matrix. After obtaining all eigenvalues, the temporary memory space required for eigenvalue decomposition is released.
[0198] S104: Sort all eigenvalues in descending order to obtain the eigenvalue sequence.
[0199] The feature value sequence includes multiple sorted feature values and the index of each sorted feature value.
[0200] It is understandable that all eigenvalues are sorted in descending order to separate the noise space from the signal space.
[0201] S105: Calculate the minimum description length value by using the minimum description length criterion for all sorted feature values.
[0202] Specifically, the minimum description length criterion is used to calculate all sorted feature values, that is, the minimum description length criterion formula is used to calculate the m minimum description length values. .
[0203] Among the m minimum description length values, F MDL (m) represents the m minimum description length values, and T(m) is the geometric-arithm mean ratio of the noise subspace eigenvalues, used to measure the "flatness" of the remaining L−m eigenvalues. The closer its value is to 1, the more likely these eigenvalues are to belong to the white noise subspace. The specific form of T(m) is shown in formula (10).
[0204] (10)
[0205] In formula (10), The autocorrelation matrix R XX The i-th eigenvalue.
[0206] Furthermore, the calculation of the minimum description length mainly involves basic arithmetic operations such as product and summation. Since the dimension L of the autocorrelation matrix is typically between 30 and 100, the computational cost is relatively small compared to the preceding autocorrelation matrix construction and eigenvalue decomposition. However, there is still room for parallel optimization: the accumulation operation can be implemented using a single-block parallel reduction strategy, and the addition units in the reduction process can be replaced with multiplication units to achieve efficient parallel accumulation multiplication; other scalar addition, multiplication, and other operations can be accelerated through multi-threaded parallelism.
[0207] The remaining computational costs for calculating the minimum index and the final signal-to-noise ratio are minimal and will not be optimized here.
[0208] S106: Filter out the smallest minimum description length value from all minimum description length values and mark it as the target minimum description length value.
[0209] S107: Filter out the index corresponding to the minimum description length value of the target from the feature value sequence and determine it as the inflection point.
[0210] The inflection point is the boundary between the signal space and the noise space.
[0211] It is understandable that the m value (i.e., index) corresponding to the minimum description length of the target is the inflection point, and the feature values before and after the inflection point are the feature values corresponding to the signal, while those after the inflection point are the feature values corresponding to the noise.
[0212] In addition, the estimated value of the inflection point is .in, This is an estimate of the inflection point.
[0213] S108: For each feature value, the feature value is split according to the inflection point to obtain noise feature value and signal feature value.
[0214] Specifically, for each feature value, the feature value is split according to the inflection point to obtain the specific representation of noise feature value and signal feature value, as shown in formula (11).
[0215] (11)
[0216] In formula (11), For signal characteristic values, These are the characteristic values of the signal.
[0217] S109: Determine the signal-to-noise ratio based on noise characteristic values and signal characteristic values.
[0218] It is understandable that the specific implementation process of determining the signal-to-noise ratio (SNR) based on noise and signal characteristics is as follows: the SNR can be calculated using the SNR formula. The specific form of the SNR formula is shown in formula (12).
[0219] (12)
[0220] In formula (12), SNR is the signal-to-noise ratio. The autocorrelation matrix R XX The i-th eigenvalue.
[0221] In summary, by performing parallel optimization across the entire process of key steps such as autocorrelation matrix construction, eigenvalue decomposition, and minimum description length calculation, a synergistic improvement in both high accuracy and real-time performance was achieved. This optimization meets the online monitoring requirements of deep-space array systems for synthesized signal performance, and enables real-time evaluation of the antenna array's synthesis effect and rapid calculation of the signal-to-noise ratio.
[0222] like Figure 4 The diagram shown is an architectural schematic of a signal-to-noise ratio (SNR) estimation system for deep space antenna arrays provided in an embodiment of this application. The SNR estimation system includes: an acquisition unit 100, a first determination unit 200, a decomposition unit 300, a sorting unit 400, a calculation unit 500, a first filtering unit 600, a second filtering unit 700, a splitting unit 800, and a second determination unit 900.
[0223] Acquisition unit 100 is used to acquire one-dimensional signal samples and the dimensions of the autocorrelation matrix.
[0224] The first determining unit 200 is used to determine the autocorrelation matrix based on the one-dimensional signal sample and the autocorrelation matrix dimension.
[0225] The first determining unit 200 includes:
[0226] The execution subunit is used to perform conjugate multiplication operations on one-dimensional signal samples in parallel according to the dimensions of the autocorrelation matrix, so as to obtain multiple conjugate values.
[0227] The sub-unit is used to divide all conjugate values equally into thread blocks according to the number of thread blocks; each thread block stores the same number of conjugate values.
[0228] The first accumulation subunit is used to reduce and accumulate the conjugate values in each thread block to obtain a local accumulation result.
[0229] The second accumulation subunit is used to reduce and accumulate all local accumulation results to obtain the global accumulation result, and then determine the global accumulation result as the autocorrelation sequence.
[0230] Construct sub-units for building autocorrelation matrices based on autocorrelation sequences.
[0231] The sub-unit is specifically used to: map the two-dimensional coordinates in the thread block to a one-dimensional linear index; the one-dimensional linear index includes a row index and a column index; calculate the position of the element value of the autocorrelation matrix in the one-dimensional array based on the one-dimensional linear index; when the column index is not greater than the row index, determine the conjugate value of the corresponding element in the autocorrelation sequence as the autocorrelation matrix value, and fill the autocorrelation matrix with the autocorrelation matrix value according to the position; when the column index is greater than the row index, determine the corresponding element value in the autocorrelation sequence as the autocorrelation matrix value, and fill the autocorrelation matrix with the autocorrelation matrix value according to the position.
[0232] The first determining unit 200 is specifically used for: allocating GPU memory for a one-dimensional signal sample using a device content allocation function; transferring the one-dimensional signal sample to the GPU memory using a memory copy function after the GPU memory allocation is complete; generating an FFT execution plan by calling a library function based on the parameter information of the one-dimensional signal sample; the parameter information of the one-dimensional signal sample includes at least the data type and length of the one-dimensional signal sample; performing a forward Fast Fourier Transform on the one-dimensional signal sample in the GPU memory using the FFT execution plan and a parallel FFT function to obtain the transformed one-dimensional signal sample; performing a conjugate multiplication operation in parallel on the transformed one-dimensional signal sample according to the dimension of the autocorrelation matrix to obtain the power spectrum; performing a Fourier transform shift on the power spectrum to obtain frequency domain data; performing an inverse forward Fast Fourier Transform on the frequency domain data using a parallel FFT function to obtain an inverse one-dimensional signal sample; normalizing the inverse one-dimensional signal sample to obtain an autocorrelation sequence; deleting the FFT execution plan; and constructing an autocorrelation matrix based on the autocorrelation sequence after the FFT execution plan is deleted.
[0233] The first determining unit 200 is specifically used for: reversing the order of one-dimensional signal samples to obtain the sorted one-dimensional signal samples; padding the sorted one-dimensional signal samples with zeros according to the dimension of the autocorrelation matrix to obtain zero-padded one-dimensional signal samples; determining the index terms of the Toplitz matrix based on the dimension of the autocorrelation matrix and the number of one-dimensional signal samples; constructing an initial Toplitz matrix based on the index terms of the Toplitz matrix and the zero-padded one-dimensional signal samples; calculating the index position of each element in the initial Toplitz matrix in a pre-selected array; for each element, selecting the value corresponding to the index position from the pre-selected array and filling the value into the element to obtain the Toplitz matrix; and performing matrix conjugate transpose multiplication on the Toplitz matrix to obtain the autocorrelation matrix.
[0234] Decomposition unit 300 is used to perform eigenvalue decomposition on the autocorrelation matrix to obtain all eigenvalues.
[0235] The decomposition unit 300 is specifically used for: obtaining a matrix pointer to the autocorrelation matrix; calculating the working space based on the matrix pointer and the dimensions of the autocorrelation matrix; allocating temporary storage space in GPU memory using memory management functions according to the working space; and calculating all eigenvalues of the autocorrelation matrix using matrix eigenvalue functions within the temporary storage space.
[0236] The sorting unit 400 is used to sort all feature values in descending order to obtain a feature value sequence; the feature value sequence includes multiple sorted feature values and the index of each sorted feature value.
[0237] The calculation unit 500 is used to calculate all sorted feature values using the minimum description length criterion to obtain multiple minimum description length values.
[0238] The first filtering unit 600 is used to filter out the smallest minimum description length value from all minimum description length values and mark it as the target minimum description length value.
[0239] The second filtering unit 700 is used to filter out the index corresponding to the minimum description length value of the target from the feature value sequence and determine it as the inflection point; the inflection point is the boundary point between the signal space and the noise space.
[0240] The splitting unit 800 is used to split each feature value according to the inflection point to obtain noise feature values and signal feature values.
[0241] The second determining unit 900 is used to determine the signal-to-noise ratio based on noise characteristic values and signal characteristic values.
[0242] In order to better understand Figure 4 For an explanation of the content shown, please refer to [link / reference]. Figure 5 The diagram illustrates a high-precision real-time signal-to-noise ratio (SNR) estimation system for deep-space antenna arrays. It demonstrates the architecture of the SNR estimation system for deep-space antenna arrays (i.e.,...). Figure 5 The high-precision real-time signal-to-noise ratio estimation system in the system performs high-precision, real-time signal-to-noise ratio estimation on each original input signal and the coherently synthesized output signal of the deep space antenna array equipment, thereby realizing a comprehensive evaluation and real-time monitoring of the antenna array synthesis performance.
[0243] In summary, by performing parallel optimization across the entire process of key steps such as autocorrelation matrix construction, eigenvalue decomposition, and minimum description length calculation, a synergistic improvement in both high accuracy and real-time performance was achieved. This optimization meets the online monitoring requirements of deep-space array systems for synthesized signal performance, and enables real-time evaluation of the antenna array's synthesis effect and rapid calculation of the signal-to-noise ratio.
[0244] The various embodiments in this specification are described in a progressive manner, with each embodiment focusing on its differences from other embodiments. Similar or identical parts between embodiments can be referred to interchangeably. In particular, for system or system embodiments, since they are fundamentally similar to method embodiments, the description is relatively simple; relevant parts can be referred to the descriptions in the method embodiments. The systems and system embodiments described above are merely illustrative. The units described as separate components may or may not be physically separate. Components shown as units may or may not be physical units; that is, they may be located in one place or distributed across multiple network units. Some or all of the modules can be selected to achieve the purpose of this embodiment according to actual needs. Those skilled in the art can understand and implement this without creative effort.
[0245] Those skilled in the art will further recognize that the units and algorithm steps of the various examples described in conjunction with the embodiments disclosed herein can be implemented in electronic hardware, computer software, or a combination of both. To clearly illustrate the interchangeability of hardware and software, the components and steps of the various examples have been generally described in terms of functionality in the foregoing description. Whether these functions are implemented in hardware or software depends on the specific application and design constraints of the technical solution. Those skilled in the art can use different methods to implement the described functions for each specific application, but such implementations should not be considered beyond the scope of this invention.
[0246] The above description of the disclosed embodiments enables those skilled in the art to make or use this application. Various modifications to these embodiments will be readily apparent to those skilled in the art, and the general principles defined herein may be implemented in other embodiments without departing from the spirit or scope of this application. Therefore, this application is not to be limited to the embodiments shown herein, but is to be accorded the widest scope consistent with the principles and novel features disclosed herein.
Claims
1. A signal-to-noise ratio estimation method for deep-space antenna arrays, characterized in that, include: Obtain the dimensions of one-dimensional signal samples and autocorrelation matrices; Based on the one-dimensional signal sample and the dimensions of the autocorrelation matrix, the autocorrelation matrix is determined; The autocorrelation matrix is decomposed into eigenvalues to obtain all eigenvalues; All the feature values are sorted in descending order to obtain a feature value sequence; the feature value sequence includes multiple sorted feature values and an index of each sorted feature value; The minimum description length criterion is used to calculate all sorted feature values to obtain multiple minimum description length values; Filter out the smallest minimum description length value from all minimum description length values and mark it as the target minimum description length value; The index corresponding to the minimum description length value of the target is selected from the feature value sequence and determined as the inflection point; the inflection point is the boundary point between the signal space and the noise space. For each feature value, the feature value is split according to the inflection point to obtain noise feature value and signal feature value; The signal-to-noise ratio is determined based on the noise characteristic value and the signal characteristic value.
2. The method according to claim 1, characterized in that, The step of determining the autocorrelation matrix based on the one-dimensional signal sample and the dimensions of the autocorrelation matrix includes: Based on the dimensions of the autocorrelation matrix, perform conjugate multiplication operations in parallel on the one-dimensional signal samples to obtain multiple conjugate values; All conjugate values are evenly distributed among the thread blocks according to the number of thread blocks; each thread block stores the same number of conjugate values. For each thread block, the conjugate values in the thread block are reduced and accumulated to obtain a local accumulation result; All local accumulation results are reduced and accumulated to obtain the global accumulation result, and the global accumulation result is determined as the autocorrelation sequence; An autocorrelation matrix is constructed based on the autocorrelation sequence.
3. The method according to claim 2, characterized in that, The construction of the autocorrelation matrix based on the autocorrelation sequence includes: Map the two-dimensional coordinates in the thread block to a one-dimensional linear index; the one-dimensional linear index includes a row index and a column index. Based on the one-dimensional linear index, the position of the element value of the autocorrelation matrix in the one-dimensional array is calculated; When the column index is not greater than the row index, the conjugate value of the corresponding element in the autocorrelation sequence is determined as the autocorrelation matrix value, and the autocorrelation matrix value is filled into the autocorrelation matrix according to the position. When the column index is greater than the row index, the corresponding element value in the autocorrelation sequence is determined as the autocorrelation matrix value, and the autocorrelation matrix value is filled into the autocorrelation matrix according to the position.
4. The method according to claim 1, characterized in that, The step of determining the autocorrelation matrix based on the one-dimensional signal sample and the dimensions of the autocorrelation matrix includes: The GPU memory is allocated to the one-dimensional signal sample using the device content allocation function; Once the GPU memory allocation is complete, the one-dimensional signal sample is transferred to the GPU memory using a memory copy function; Based on the parameter information of the one-dimensional signal sample, a library function is called to generate an FFT execution plan; the parameter information of the one-dimensional signal sample includes at least the data type and length of the one-dimensional signal sample. Using the FFT execution plan and parallel FFT function, a forward fast Fourier transform is performed on the one-dimensional signal sample in the GPU memory to obtain the transformed one-dimensional signal sample. Based on the dimensions of the autocorrelation matrix, perform parallel conjugate multiplication operations on the transformed one-dimensional signal samples to obtain the power spectrum; The power spectrum is Fourier transformed and shifted to obtain frequency domain data; The frequency domain data is subjected to inverse forward fast Fourier transform using the parallel FFT function to obtain inverse one-dimensional signal samples; The inverse one-dimensional signal sample is normalized to obtain an autocorrelation sequence; Delete the FFT execution plan; After the FFT execution plan is deleted, an autocorrelation matrix is constructed based on the autocorrelation sequence.
5. The method according to claim 1, characterized in that, The step of determining the autocorrelation matrix based on the one-dimensional signal sample and the dimensions of the autocorrelation matrix includes: The one-dimensional signal samples are arranged in reverse order to obtain the rearranged one-dimensional signal samples. Based on the dimensions of the autocorrelation matrix, the arranged one-dimensional signal samples are padded with zeros to obtain the padded one-dimensional signal samples. The index terms of the Toplitz matrix are determined based on the dimensions of the autocorrelation matrix and the number of one-dimensional signal samples. Based on the index entries of the Toplitz matrix and the zero-padded one-dimensional signal samples, an initial Toplitz matrix is constructed; Calculate the index position of each element in the initial Toplitz matrix within the pre-selected array; For each element, the value corresponding to the index position is selected from the pre-selected array, and the value is filled into the element to obtain the Toplitz matrix; Perform matrix conjugate transpose multiplication on the Toplitz matrix to obtain the autocorrelation matrix.
6. The method according to claim 1, characterized in that, The eigenvalue decomposition of the autocorrelation matrix yields all eigenvalues, including: Obtain the matrix pointer of the autocorrelation matrix; The working space is calculated based on the matrix pointer and the dimensions of the autocorrelation matrix; Based on the workspace space, temporary storage space is allocated in GPU memory using memory management functions; Within the temporary storage space, the autocorrelation matrix is calculated using the matrix eigenvalue function to obtain all eigenvalues.
7. A signal-to-noise ratio estimation system for deep-space antenna arrays, characterized in that, include: The acquisition unit is used to acquire one-dimensional signal samples and the dimensions of the autocorrelation matrix. The first determining unit is used to determine the autocorrelation matrix based on the one-dimensional signal sample and the dimension of the autocorrelation matrix; A decomposition unit is used to perform eigenvalue decomposition on the autocorrelation matrix to obtain all eigenvalues; A sorting unit is used to sort all the feature values in descending order to obtain a feature value sequence; the feature value sequence includes multiple sorted feature values and an index of each sorted feature value; The calculation unit is used to calculate all sorted feature values using the minimum description length criterion to obtain multiple minimum description length values; The first filtering unit is used to filter out the smallest minimum description length value from all minimum description length values and mark it as the target minimum description length value; The second filtering unit is used to filter out the index corresponding to the minimum description length value of the target from the feature value sequence and determine it as an inflection point; the inflection point is the boundary point between the signal space and the noise space; A splitting unit is used to split each feature value according to the inflection point to obtain noise feature values and signal feature values; The second determining unit is used to determine the signal-to-noise ratio based on the noise feature value and the signal feature value.
8. The system according to claim 7, characterized in that, The first determining unit includes: An execution subunit is used to perform a conjugate multiplication operation on the one-dimensional signal sample in parallel according to the dimension of the autocorrelation matrix to obtain multiple conjugate values; The sub-unit is used to evenly distribute all conjugate values into thread blocks according to the number of thread blocks; each thread block stores the same number of conjugate values. The first accumulation subunit is used to reduce and accumulate the conjugate values in each thread block to obtain a local accumulation result. The second accumulation subunit is used to reduce and accumulate all local accumulation results to obtain a global accumulation result, and to determine the global accumulation result as an autocorrelation sequence. Construct sub-units for building an autocorrelation matrix based on the autocorrelation sequence.
9. The system according to claim 8, characterized in that, The construction subunit is specifically used for: Map the two-dimensional coordinates in the thread block to a one-dimensional linear index; the one-dimensional linear index includes a row index and a column index. Based on the one-dimensional linear index, the position of the element value of the autocorrelation matrix in the one-dimensional array is calculated; When the column index is not greater than the row index, the conjugate value of the corresponding element in the autocorrelation sequence is determined as the autocorrelation matrix value, and the autocorrelation matrix value is filled into the autocorrelation matrix according to the position. When the column index is greater than the row index, the corresponding element value in the autocorrelation sequence is determined as the autocorrelation matrix value, and the autocorrelation matrix value is filled into the autocorrelation matrix according to the position.
10. The system according to claim 7, characterized in that, The first determining unit is specifically used for: The GPU memory is allocated to the one-dimensional signal sample using the device content allocation function; Once the GPU memory allocation is complete, the one-dimensional signal sample is transferred to the GPU memory using a memory copy function; Based on the parameter information of the one-dimensional signal sample, a library function is called to generate an FFT execution plan; the parameter information of the one-dimensional signal sample includes at least the data type and length of the one-dimensional signal sample. Using the FFT execution plan and parallel FFT function, a forward fast Fourier transform is performed on the one-dimensional signal sample in the GPU memory to obtain the transformed one-dimensional signal sample. Based on the dimensions of the autocorrelation matrix, perform parallel conjugate multiplication operations on the transformed one-dimensional signal samples to obtain the power spectrum; The power spectrum is Fourier transformed and shifted to obtain frequency domain data; The frequency domain data is subjected to inverse forward fast Fourier transform using the parallel FFT function to obtain inverse one-dimensional signal samples; The inverse one-dimensional signal sample is normalized to obtain an autocorrelation sequence; Delete the FFT execution plan; After the FFT execution plan is deleted, an autocorrelation matrix is constructed based on the autocorrelation sequence.
