A method and system for obtaining high-resolution time information
By convolution and interpolation processing of chirp code signals, the problems of large amount of calculation and high hardware resource consumption in the prior art when acquiring high-resolution time information is solved, and efficient time information acquisition is achieved, reducing hardware cost and complexity.
Patent Information
- Application Number
- CN202510190002.X
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2025-02-20
- Publication Date
- 2025-05-16
- Estimated Expiration
- 2045-02-20
AI Technical Summary
When obtaining high-resolution time information, the prior art has a large amount of computing and consumes a lot of hardware resources, resulting in increased costs and complexity.
By convolutionizing the local chirp code with the received chirp code, a coarse resolution correlation peak sequence is obtained, and a preset interpolation function is used to interpolate, calculate the correlation value corresponding to each interpolation point in the high-resolution interpolation sequence, and select the maximum correlation value to obtain high-resolution time information.
Without significantly increasing the hardware complexity, the resolution of time information is effectively improved, the hardware cost and complexity is reduced, and the use of complex Fourier transforms and complex multipliers is reduced.
Smart Images

Figure CN119727990B_ABST
Abstract
Description
Technical Field
[0001] The present invention relates to the field of wireless communication technology, and in particular to a method and system for acquiring high-resolution time information. Background Art
[0002] In wireless communications, especially radar ranging, indoor positioning systems and other applications that rely on signal propagation time, accurate time information is crucial to improving system performance. Traditional methods for obtaining high-precision time information mainly include direct sampling and frequency domain interpolation refinement. The direct sampling method samples the signal at a very high sampling rate through a high-speed ADC (analog-to-digital converter). Although it can provide high time resolution, this method has extremely high hardware requirements, increasing cost and complexity. The frequency domain interpolation refinement method increases the time resolution by performing a fast Fourier transform on the original low-resolution correlation peak, zero-filling it, and then performing an inverse fast Fourier transform. However, this method has the problems of large computational complexity and high hardware resource consumption. Summary of the invention
[0003] In order to solve the problems of large amount of calculation and high consumption of hardware resources when obtaining high-resolution time information in the prior art, the present invention provides a method and system for obtaining high-resolution time information.
[0004] The technical solution adopted by the present invention is:
[0005] The first aspect of the present application provides a method for acquiring high-resolution time information, including the following contents.
[0006] The local chirp code is convolved with the received chirp code through a filter to obtain a coarse-resolution correlation peak sequence.
[0007] The preset interpolation function is multiplied by the coarse-resolution correlation peak sequence to obtain a high-resolution interpolation sequence; wherein the high-resolution interpolation sequence includes a plurality of interpolation points, and each interpolation point has a corresponding number.
[0008] Calculate the correlation value corresponding to each interpolation point in the high-resolution interpolation sequence.
[0009] Select the maximum correlation value among multiple correlation values.
[0010] Find the interpolation point number corresponding to the maximum correlation value and obtain high-resolution time information.
[0011] Preferably, the preset interpolation function is Sa() function.
[0012] Preferably, the high-resolution interpolation sequence expression is:
[0013]
[0014] in, Represents the correlation value corresponding to each interpolation point in the high-resolution interpolation sequence, M is the interpolation multiple, Indicates the number corresponding to each interpolation point, represents the sequence of correlation peaks at coarse resolution, Indicates the sequence number of the correlation peak at coarse resolution, is the sampling time interval, Indicates the time point corresponding to the maximum correlation peak in the coarse-resolution correlation peak sequence, Indicates the high-resolution time information corresponding to the interpolation point number. Represents the original continuous-time signal.
[0015] Preferably, calculating the correlation value corresponding to each interpolation point in the high-resolution interpolation sequence includes the following:
[0016] The interpolation function value corresponding to each interpolation point is pre-stored in the corresponding memory bank.
[0017] A plurality of correlation peak values in the coarse resolution correlation peak sequence are calculated, and each correlation peak value is multiplied one by one with the interpolation function value pre-stored in the memory bank corresponding to the interpolation point to obtain a plurality of products.
[0018] The multiple products are accumulated and summed to obtain the correlation value corresponding to the interpolation point.
[0019] A second aspect of the present application provides a system for acquiring high-resolution time information, comprising:
[0020] The signal processing module is used to convolve the local chirp code with the received chirp code through a filter to obtain a coarse-resolution correlation peak sequence.
[0021] An interpolation function module is used to multiply a preset interpolation function with a coarse-resolution correlation peak sequence to obtain a high-resolution interpolation sequence; wherein the high-resolution interpolation sequence includes a plurality of interpolation points, each of which has a corresponding number.
[0022] A calculation module is used to calculate the correlation value corresponding to each interpolation point in the high-resolution interpolation sequence.
[0023] A maximum value detection module is used to select a maximum correlation value from multiple correlation values.
[0024] A time information acquisition module is used to find the interpolation point number corresponding to the maximum correlation value to obtain high-resolution time information.
[0025] The beneficial effects of the present invention are at least one of the following: through the interpolation filtering algorithm, the resolution of time information is effectively improved without significantly increasing the complexity of hardware, and the hardware cost and complexity are reduced.
[0026] The use of interpolation filtering algorithm eliminates the need for complex Fourier transform and inverse Fourier transform, reduces the use of complex multipliers, and greatly reduces the amount of calculation and hardware resource consumption. BRIEF DESCRIPTION OF THE DRAWINGS
[0027] Figure 1 The figure is a schematic diagram of a method flow of an embodiment of the present invention. DETAILED DESCRIPTION
[0028] The embodiments of the present invention are described in detail below with reference to the accompanying drawings.
[0029] Embodiment 1 provides a method for obtaining high-resolution time information, such as Figure 1 As shown, the following steps are included:
[0030] Step 1: Convolve the local chirp code with the received chirp code through a filter to obtain a coarse-resolution correlation peak sequence.
[0031] For reference, the correlation value obtained by the filter convolution operation between the local chirp code and the received chirp code shows a periodic characteristic. At a sampling rate of 100 MHz, since the repetition period of the chirp signal is 80 sampling points, the peak value of the filter convolution correlation output also repeats with a period of 80 sampling points.
[0032] After obtaining the coarse-resolution correlation peak sequence, the traditional method for obtaining high-resolution time is as follows:
[0033] Assume that the 32 sequences on the left and right of the maximum convolution value have been obtained, recorded as g(n), n=0,1,2,…,63, where g(n) is a positive real number, and the 31st value is the largest. First, perform Fourier transform on g(n) to obtain a 64-point sequence G(k) in the frequency domain, k=0,1,2,…,63. Then adjust the DC component of these 64 points to the middle position, and swap the positions of the upper 32 numbers and the lower 32 numbers. Then insert 15*64 zeros after these 64 numbers, that is, insert 0 values 16 times. A total of 64*16=1024 points are obtained. Performing inverse Fourier transform on these 1024 points will obtain a 1024 complex number sequence. Taking the modulus of these 1024 complex numbers and finding the number corresponding to the maximum value in the modulus can obtain high-precision time.
[0034] However, in order to implement the above algorithm in a field programmable gate array (FPGA), it is necessary to implement at least a 64-point Fourier forward transform, a 1024-point inverse Fourier transform, a DC component adjustment for frequency domain data, an algorithm for inserting zero values in the frequency domain to increase resolution, and a maximum correlation value.
[0035] In the specific implementation process, the calculation process can be simplified in the inverse Fourier transform operation by utilizing the narrow range of time domain data numbers. Specifically, in the 1024-point inverse Fourier transform input, only the first 64 points are not zero, and the remaining 960 points are all zero. Therefore, in the summation operation, it is actually only necessary to accumulate these 64 non-zero points. At each clock (clk) rising edge, a complex multiplier is used to calculate a complex product, and the register is used to accumulate these product results, so that a time domain value calculation is completed within one clock cycle. A total of 16*2=32 time domain values are required, so 32 complex multipliers are required, and each complex multiplier requires 4 real multipliers, so a total of 32*4=128 real multipliers are required. The calculated complex value also needs to be modulo-operated, that is, the square sum is calculated and then the square root is taken. This operation is relatively complex and resource-consuming.
[0036] Among them, the characteristic of the relatively narrow number range of time domain data to simplify the operation means that the maximum peak value in the coarse resolution correlation peak sequence found is always placed in the 31st element of the array. In this way, for the 1024 time domain data processed by the subsequent inverse Fourier transform, the maximum peak value in the coarse resolution sequence corresponds to the 31st*16th element after interpolation and refinement. After interpolation, the maximum value of the high-resolution correlation peak must be around this position, specifically 16 points to the left or 16 points to the right, and their corresponding numbers are from 30*16 to 32*16-1. That is to say, when performing inverse Fourier transform on 1024 points, only 32 points with numbers n from 30*16 to 32*16-1 need to be found, and there is no need to find all 1024 points. When n is determined, the corresponding rotation factor of the inverse Fourier transform is also determined. The traditional solution is more complicated and resource-intensive, and the Fourier transform and inverse Fourier transform must be integer multiples of 2.
[0037] In order to solve the technical problem that the traditional method of obtaining high-resolution time information is relatively complex and resource-consuming, the following steps can be performed after obtaining the coarse-resolution correlation peak sequence.
[0038] Step 2: multiplying the preset interpolation function with the coarse-resolution correlation peak sequence to obtain a high-resolution interpolation sequence; wherein the high-resolution interpolation sequence includes a plurality of interpolation points, and each interpolation point has a corresponding number.
[0039] The preset interpolation function may be a Sa() function.
[0040] It should be noted that, because the sequence of correlation peaks is the convolution of the local chirp and the received chirp, the frequency domain of the correlation peak is equal to the product of the frequency domains of the two signals. The bandwidth of the two chirps is 23MHz, so the frequency domain of the correlation peak sequence obtained by multiplying them is also 23MHz. The sampling frequency in this embodiment is 100MHz, which is greater than twice 23MHz, so Nyquist's interpolation method is applicable to the chirp correlation peak signal in this embodiment.
[0041] According to the Nyquist theorem, a signal can be completely recovered without distortion through its sampling values that meet the Nyquist sampling rate, and the waveform reconstruction without distortion can be achieved through the following interpolation formula:
[0042] It can be seen from formula (1) that for any precision at time t, formula (1) can accurately calculate the value of the original signal. All that needs to be done is to input The values at several discrete moments, namely , is the sampling time interval. Formula (1) also shows that in order to achieve ideal reconstruction It is necessary to use infinite side lobes of the Sa() function to get it out, which shows that the value at the current moment is not only affected by the past sampling points, but also by the future sampling points. For example, for the value at time 0, , It contributes, and its contribution size is , There is also a contribution, and its contribution size is ,same, There is also a contribution, and its contribution size is It is found that the sampling point farther away from the observation point has less influence on the observation point, because the value of Sa() function changes with the independent variable , , The absolute values of these values increase as they decrease.
[0043] The sum in formula (1) is obtained from arrive However, from the above analysis, we can know that, on the one hand, the point far away from the inspection point has less influence on the inspection point; on the other hand, when the sidelobe number of the interpolated Sa() function is larger, the influence on the distant signal is smaller. In this embodiment, the summation term of formula (1) can be limited to -31 to +32, and the sequence of the accumulated correlation peaks is numbered from -31 to 32, and it is agreed that the value of number 0 is the largest. The time of inspection only needs to inspect the interpolation results of the time points near the maximum correlation peak (i.e., the coarse moment of number 0), that is, So formula (1) can be rewritten as:
[0044]
[0045] In the formula represents the coarse resolution correlation peak sequence, which is the object to be interpolated, where .
[0046] Assume that we need to perform M-fold fine interpolation, and take M=16. This means that The time period is divided into 2*M parts, and the interval between each part is , so the high-precision moment is The corresponding high-resolution interpolation sequence expression is:
[0047]
[0048] in, Represents the correlation value corresponding to each interpolation point in the high-resolution interpolation sequence, M is the interpolation multiple, Indicates the number corresponding to each interpolation point, represents the sequence of correlation peaks at coarse resolution, Indicates the sequence number of the correlation peak at coarse resolution, is the sampling time interval, Indicates the time point corresponding to the maximum correlation peak in the coarse-resolution correlation peak sequence, Indicates the high-resolution time information corresponding to the interpolation point number. Represents the original continuous-time signal.
[0049] Step 3: Calculate the correlation value corresponding to each interpolation point in the high-resolution interpolation sequence.
[0050] In a possible implementation, calculating the correlation value corresponding to each interpolation point in the high-resolution interpolation sequence includes the following:
[0051] The interpolation function value corresponding to each interpolation point is stored in the corresponding memory bank in advance. Multiple correlation peaks in the coarse resolution correlation peak sequence are calculated, and each correlation peak is multiplied one by one with the interpolation function value pre-stored in the memory bank corresponding to the interpolation point to obtain multiple products. The multiple products are accumulated and summed to obtain the correlation value corresponding to the interpolation point.
[0052] It should be noted that for each fixed m, It is obtained by adding 64 numbers, each of which is a coarse resolution correlation peak multiplied by the value of the Sa() function at a certain high resolution moment. The values of are fixed and predictable, and they can be stored. Each corresponds to a memory bank, which stores the sequence:
[0053] (4)
[0054] The sequence has 64 points in total. By multiplying and adding the sequences in different memory banks one by one, or inner product operation, the corresponding .
[0055] In the specific implementation process, the calculation For example, set a counter cnt to track which multiplication operation is currently being processed, and the initial value of counter cnt is set to 0. Set an accumulator sum to save the accumulated value of each multiplication result, and the initial value of accumulator sum is set to 0. Whenever the rising edge of the clock signal clk100M is detected, the counter cnt automatically increases by 1 to indicate which number multiplication is currently being processed. Make sure cnt cycles within a reasonable range, such as between 0 and 63.
[0056] For each cnt value, read the pre-calculated interpolation function value from the corresponding memory bank. Here m indicates which memory bank the interpolation point is currently being processed, and cnt indicates which number in the memory bank is currently being processed. Use the read interpolation function value and the original coarse resolution correlation peak to multiply one by one to obtain the product. Under the rising edge of the clock signal clk100M, add the product just calculated to the accumulator sum, gradually accumulate the results of all multiplications, and calculate .
[0057] After completing the calculation of the current interpolation point m, the accumulator sum is reset to prepare to start calculating the relevant value corresponding to the next interpolation point.
[0058] In summary, compared with the traditional frequency domain zero interpolation and Fourier transform (FFT / IFFT) method, the interpolation filtering algorithm in this embodiment eliminates the 64-point Fourier forward transform and the 1024-point Fourier inverse transform, and no longer needs to adjust the DC component of the frequency domain data. There is no need to insert zero values in the frequency domain to increase the resolution, and high-resolution interpolation is completed directly in the time domain.
[0059] The interpolation filtering algorithm in this embodiment can complete all calculations within a fixed 64 clock cycles and only needs to use 32 real number multipliers, thereby achieving efficient parallel processing.
[0060] The traditional method requires 32 complex multipliers, each of which includes 4 real multipliers, and a total of 128 real multipliers are required. However, the interpolation filtering algorithm in this embodiment does not use complex multipliers at all, which greatly saves hardware resources.
[0061] The result of the interpolation filtering algorithm in this embodiment is a real number rather than a complex number, so the square and square root operations in the modulus calculation are eliminated, further reducing the calculation complexity.
[0062] The traditional method requires that the number of FFT / IFFT points must be a power of 2, but the interpolation filtering algorithm in this embodiment has no such restriction on the values of the parameters m and n. The number of values of the parameters m and n in the above formula (3) is not necessarily 32 and 64, and any suitable value can be flexibly selected according to actual needs, such as 10, 20, and other numbers that are divisible by 10.
[0063] The number of n selected in formula (3) varies from -31 to 32, a total of 64 numbers. In the specific implementation process, according to the characteristics of the Sa() function, the coarse resolution correlation value far from the observation point has a small contribution and can be ignored. By setting the threshold, the number of summation items can be effectively reduced, and the calculation efficiency can be improved without affecting the accuracy of the results.
[0064] Step 4: Select the maximum correlation value among multiple correlation values.
[0065] Step 5, find the interpolation point number corresponding to the maximum correlation value to obtain high-resolution time information.
[0066] Embodiment 2 provides a system for obtaining high-resolution time information, including:
[0067] The signal processing module is used to convolve the local chirp code with the received chirp code through a filter to obtain a coarse-resolution correlation peak sequence.
[0068] An interpolation function module is used to multiply a preset interpolation function with a coarse-resolution correlation peak sequence to obtain a high-resolution interpolation sequence; wherein the high-resolution interpolation sequence includes a plurality of interpolation points, each of which has a corresponding number.
[0069] A calculation module is used to calculate the correlation value corresponding to each interpolation point in the high-resolution interpolation sequence.
[0070] A maximum value detection module is used to select a maximum correlation value from multiple correlation values.
[0071] A time information acquisition module is used to find the interpolation point number corresponding to the maximum correlation value to obtain high-resolution time information.
[0072] The above-mentioned embodiments only express the specific implementation of the present invention, and the description thereof is relatively specific and detailed, but it cannot be understood as limiting the scope of the present invention. It should be pointed out that, for ordinary technicians in this field, several variations and improvements can be made without departing from the concept of the present invention, which all belong to the protection scope of the present invention.
Claims
1. A method for obtaining high-resolution time information, characterized in that: Includes the following: The local chirp code is convolved with the received chirp code through a filter to obtain a coarse-resolution correlation peak sequence; Multiplying a preset interpolation function with a coarse-resolution correlation peak sequence to obtain a high-resolution interpolation sequence; wherein the high-resolution interpolation sequence includes a plurality of interpolation points, each of which has a corresponding number; Calculate the correlation value corresponding to each interpolation point in the high-resolution interpolation sequence; Select the maximum correlation value among multiple correlation values; Find the interpolation point number corresponding to the maximum correlation value to obtain high-resolution time information; The preset interpolation function is Sa() function; The high-resolution interpolation sequence expression is: in, Represents the correlation value corresponding to each interpolation point in the high-resolution interpolation sequence, M is the interpolation multiple, Indicates the number corresponding to each interpolation point, represents the sequence of correlation peaks at coarse resolution, Indicates the sequence number of the correlation peak at coarse resolution, is the sampling time interval, Indicates the time point corresponding to the maximum correlation peak in the coarse-resolution correlation peak sequence, Indicates the high-resolution time information corresponding to the interpolation point number. Represents the original continuous-time signal.
2. The method for obtaining high-resolution time information according to claim 1, characterized in that: Calculating the correlation value corresponding to each interpolation point in the high-resolution interpolation sequence includes the following: Pre-storing the interpolation function value corresponding to each interpolation point into a corresponding memory bank; Calculating multiple correlation peaks in the coarse-resolution correlation peak sequence, multiplying each correlation peak with the interpolation function value pre-stored in the memory bank corresponding to the interpolation point one by one to obtain multiple products; The multiple products are accumulated and summed to obtain the correlation value corresponding to the interpolation point.
3. A system for acquiring high-resolution time information, characterized in that: include A signal processing module, the signal processing module is used to convolve the local chirp code with the received chirp code through a filter to obtain a coarse resolution correlation peak sequence; An interpolation function module, the interpolation function module is used to multiply a preset interpolation function with a coarse resolution correlation peak sequence to obtain a high resolution interpolation sequence; wherein the high resolution interpolation sequence includes a plurality of interpolation points, each of which has a corresponding number; the preset interpolation function is a Sa() function; The high-resolution interpolation sequence expression is: in, Represents the correlation value corresponding to each interpolation point in the high-resolution interpolation sequence, M is the interpolation multiple, Indicates the number corresponding to each interpolation point, represents the sequence of correlation peaks at coarse resolution, Indicates the sequence number of the correlation peak at coarse resolution, is the sampling time interval, Indicates the time point corresponding to the maximum correlation peak in the coarse-resolution correlation peak sequence, Indicates the high-resolution time information corresponding to the interpolation point number. represents the original continuous-time signal; A calculation module, the calculation module is used to calculate the correlation value corresponding to each interpolation point in the high-resolution interpolation sequence; A maximum value detection module, the maximum value detection module is used to select a maximum correlation value among multiple correlation values; A time information acquisition module is used to find the interpolation point number corresponding to the maximum correlation value to obtain high-resolution time information.
Citation Information
Patent Citations
accurate synchronization timing method and an accurate synchronization timing device for a single-carrier spread spectrum system
CN109756968A
Self-adaptive synchronization method used in direct sequence spread spectrum system
CN116192188A