A Capon beamforming method, system and FPGA
By using the improved Guess-Jardon iteration method on FPGA, the covariance matrix is constructed, the inverse matrix is solved, and the Capon beam cepspectral value is calculated, which solves the problem of limited implementation of the traditional Capon beamforming algorithm, and achieves fast and high-precision Capon beamspectral formation.
Patent Information
- Application Number
- CN202210795807.3
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2022-07-07
- Publication Date
- 2025-04-15
- Estimated Expiration
- 2042-07-07
AI Technical Summary
The implementation of traditional Capon beamforming algorithm is limited by the hardware structure fixed and the long signal processing time, and it is unable to flexibly adapt to various engineering environments, which increases the difficulty of development.
Capon beamforming is realized on FPGA using the improved Guess-Jardon iterative method. By constructing a covariance matrix, solving the inverse matrix and calculating the Capon beam cepspectral value, combined with the parallel data processing capability of FPGA, the formation efficiency is improved.
It realizes fast and high-precision Capon beam spectrum formation, avoids hardware implementation defects in traditional methods, and has the advantages of fast speed, high calculation result accuracy and low hardware resource consumption.
Smart Images

Figure CN115236624B_ABST
Abstract
Description
Technical Field
[0001] The invention belongs to the technical field of radar signal processing and relates to a Capon beamforming method, system and FPGA. Background Art
[0002] As an important means of DOA estimation (direction of arrival estimation) in radar signal processing, the Capon beamforming algorithm has the characteristics of strong anti-interference ability, high target detection resolution, and the ability to maximize the gain of array antennas. It is widely used in defense and military, radio communications, sonar detection, and intelligent driving. In addition, with the rise of the concept of intelligent driving in recent years, research teams from all walks of life have begun to explore the feasibility of millimeter-wave radar as an auxiliary driving in the field of intelligent driving. In the radar signal processing scheme, the Capon beamforming algorithm is included. It can be seen that the Capon beamforming algorithm is an important means of millimeter-wave radar signal processing.
[0003] In the process of implementing the traditional Capon beamforming algorithm, it is generally implemented by using a host computer or hardware accelerator. However, these methods are often limited by the defects of fixed hardware structure and long signal processing time, and cannot flexibly adapt to various engineering environments, which increases the difficulty of development. At the same time, although these methods can save costs, developers cannot perform any operations on the internal structure, and this solution has poor portability and also hinders function expansion. Summary of the invention
[0004] The purpose of the present invention is to overcome the shortcomings of the above-mentioned prior art that the Capon beamforming algorithm is often limited by the fixed hardware structure and the long signal processing time when it is implemented, and cannot be flexibly adapted to various engineering environments, and increases the difficulty of development, and provide a Capon beamforming method, system and FPGA.
[0005] In order to achieve the above object, the present invention adopts the following technical solutions:
[0006] A first aspect of the present invention provides a Capon beamforming method, comprising:
[0007] Obtain M channels of received data from the radar and construct a covariance matrix of each channel of received data;
[0008] The improved Guess-Jardon iterative method is used to solve the inverse matrix of each covariance matrix;
[0009] Obtain the steering vectors at different spatial angles, and combine them with the inverse matrices of each covariance matrix to obtain the Capon beam cepstrum values at different spatial angles;
[0010] The Capon beam cepstrum values at different spatial angles are bubble sorted, M Capon beam cepstrum values are selected in ascending order as the actual spectrum values of the Capon beam, and the spatial angles corresponding to the selected Capon beam cepstrum values are recorded to form a Capon beam.
[0011] Optionally, constructing a covariance matrix of each channel of received data according to M channels of received data includes:
[0012] According to M channels of received data, the covariance matrix R of each channel of received data is constructed by the following formula:
[0013]
[0014] Wherein, N is the number of complex data in each data channel, x(n) represents the nth group of vectors of data vectors composed of M receiving channel data, and H represents transposed conjugate.
[0015] Optionally, when constructing the covariance matrix of each received data, only the values of the upper triangular matrix of the covariance matrix are calculated, and the values of the lower triangular matrix of the covariance matrix are mapped one by one according to the principle of conjugate symmetry, and when calculating the values of the upper triangular matrix of the covariance matrix, each value is calculated simultaneously in parallel.
[0016] Optionally, the improved Guess-Jardon iterative method is used to solve the inverse matrix of each covariance matrix, including:
[0017] S201: Set a group of M*M registers and store each covariance matrix in each register;
[0018] S202: Take the first element of the first column of each covariance matrix as the pivot, then loop the first column element of each covariance matrix twice and input it into the vector mode cordic IP core, and obtain the rotation angle of the pivot by the following formula:
[0019]
[0020] Among them, a k1 Represents the matrix element in the 1st column and the kth row of the covariance matrix;
[0021] S203: Each covariance matrix and the current inverse matrix of each covariance matrix are used as M groups of output data with their respective M rows. Each group of output data is output in sequence in the manner of first the covariance matrix and then the current inverse matrix of the covariance matrix. At the same time, the opposite of each rotation angle of the principal element is taken and the M groups of output data are rotated by the rotation mode cordic IP core to perform rotation calculation, and each covariance matrix and the current inverse matrix of each covariance matrix are updated:
[0022] S204: Obtain the rotation angle θ of each element in the first column of each covariance matrix by the following formula: k :
[0023] |a k1 |cos(θ k )+|a 11 |sin(θ k )=0
[0024] S205: Rotate the elements of the first column of each covariance matrix according to their rotation angle θ k , the rotation operation of each covariance matrix and the current inverse matrix of each covariance matrix is performed through the following formula to update each covariance matrix and the current inverse matrix of each covariance matrix:
[0025]
[0026] in, Represents the j-th row and k-th column element of the iteratively calculated covariance matrix;
[0027] S206: cyclically shifting each column of each covariance matrix and each current inverse matrix of each covariance matrix to the left by one column, and then cyclically shifting each row of each covariance matrix and each current inverse matrix of each covariance matrix upward by one row;
[0028] S207: iterate steps S202 to S206 M times, and obtain the current inverse matrix of each covariance matrix as the inverse matrix of each covariance matrix;
[0029] S208: Obtain the rotation angle and amplitude of the diagonal elements of each covariance matrix, invert the rotation angle and perform rotation calculation through the rotation mode cordic IP core, and after the calculation is valid, import the data obtained in the rotation mode cordic IP core into the division module to convert each covariance matrix into a unit matrix.
[0030] Optionally, in S205, the rotation angle θ of each element in the first column of each covariance matrix is k When the rotation operation of each covariance matrix and the current inverse matrix of each covariance matrix is performed by the following formula, each element in each covariance matrix and the current inverse matrix of each covariance matrix is divided into real part and imaginary part and operated independently at the same time.
[0031] Optionally, the obtaining of steering vectors at different spatial angles and combining the inverse matrices of each covariance matrix to obtain Capon beam cepstrum values at different spatial angles includes: dividing the entire spatial angle into a plurality of regions, and sequentially obtaining each spatial angle of each region as the current spatial angle according to a scanning method of first the pitch angle and then the horizontal angle, and performing the following steps to obtain Capon beam cepstrum values at different spatial angles:
[0032] S301: Obtaining the steering vector of the current spatial angle;
[0033] S302: The column matrices of the inverse matrices of each covariance matrix are formed into M groups of data streams, the steering vector of the current spatial angle is inverted to form a conjugate steering vector, and the M groups of data streams are input into the rotation mode cordic IP core for rotation calculation, and the obtained data are accumulated to obtain the first M groups of accumulated result data;
[0034] S303: Send the first M groups of accumulated result data to the rotation mode cordic IP core for rotation calculation, and perform accumulation processing on the obtained data to obtain the second M groups of accumulated result data; wherein the rotation phases of the first M groups of accumulated result data are respectively the M data of the steering vector;
[0035] S304: Solve the absolute value of the second M groups of accumulated result data to obtain the Capon beam cepstrum value of the current spatial angle.
[0036] Optionally, dividing the entire airspace angle into a number of areas includes:
[0037] The entire airspace angle is divided into 8 areas, and the angle ranges of each area are: {θ=0~46, φ=0~46}, {θ=45~91, φ=0~46}, {θ=90~136, φ=0~46}, {θ=135~181, φ=0~46}, {θ=0~46, φ=45~91}, {θ=45~91, φ=45~91}, {θ=90~136, φ=45~91} and {θ=135~181, φ=45~91}, where θ is the pitch angle and φ is the horizontal angle.
[0038] Optionally, the bubble sorting of the Capon beam cepstrum values at different spatial angles and selecting M Capon beam cepstrum values in ascending order as the Capon beam actual spectrum values includes:
[0039] For each area, the Capon beam actual spectrum value is slid row by row in a 3*3 matrix size according to the scanning method of first the pitch angle and then the horizontal angle. When the Capon beam actual spectrum value in the middle of the current 3*3 matrix is the minimum value among the 9 Capon beam actual spectrum values, the Capon beam actual spectrum value in the middle of the current 3*3 matrix is retained until the number of Capon beam actual spectrum values retained in the current area reaches M; the M Capon beam actual spectrum values of each area are bubble sorted, and M Capon beam cepstrum values are selected in ascending order as the Capon beam actual spectrum value.
[0040] A second aspect of the present invention is a Capon beamforming system, comprising:
[0041] A covariance matrix construction module is used to obtain M channels of received data from the radar and construct a covariance matrix for each channel of received data;
[0042] An inverse matrix solving module is used to solve the inverse matrix of each covariance matrix using an improved Guess-Jardon iterative method;
[0043] The cepstrum value solving module is used to obtain the steering vectors at different spatial angles and combine the inverse matrices of each covariance matrix to obtain the cepstrum values of the Capon beam at different spatial angles;
[0044] The selection module is used to bubble sort the Capon beam cepstrum values of different spatial angles, select M Capon beam cepstrum values in order from small to large as the actual spectrum values of the Capon beam, and record the spatial angles corresponding to the selected Capon beam cepstrum values to form a Capon beam.
[0045] A third aspect of the present invention is a Capon beamforming FPGA, comprising an FPGA body, wherein the Capon beamforming system is arranged inside the FPGA body.
[0046] Compared with the prior art, the present invention has the following beneficial effects:
[0047] The Capon beam forming method of the present invention first constructs the covariance matrix of each channel of received data, then adopts the improved Guess-Jardon iterative method to solve the inverse matrix of each covariance matrix, and according to the inverse matrix of each covariance matrix, combined with the steering vectors of different spatial angles, determines the Capon beam cepstrum values of different spatial angles, selects M Capon beam cepstrum values in order from small to large as the actual spectrum values of the Capon beam, and records the spatial angles corresponding to the selected Capon beam cepstrum values to form the Capon beam, avoids the hardware implementation defect of the traditional Capon beam forming method that a large number of division operations are required, can be better implemented on the FPGA, fully utilizes the advantages of FPGA parallel data processing, improves the formation efficiency of the Capon beam spectrum, has the advantages of fast speed, high calculation result accuracy, less hardware resource consumption, etc., and has high application value and prospect in radar signal processing, communication and other related fields. BRIEF DESCRIPTION OF THE DRAWINGS
[0048] Figure 1 is a flow chart of a Capon beamforming method according to an embodiment of the present invention;
[0049] Figure 2 A flow chart for constructing a covariance matrix according to an embodiment of the present invention;
[0050] Figure 3 A cepstrum calculation flow chart of the Capon beamforming method according to an embodiment of the present invention;
[0051] Figure 4 A flow chart of regional spatial angle scanning of a Capon beamforming method according to an embodiment of the present invention;
[0052] Figure 5 A flow chart of target search achieved by sliding window scanning using the Capon beamforming method according to an embodiment of the present invention;
[0053] Figure 6 This is a comparison chart of calculation results of the Capon beamforming method and the Matlab method according to an embodiment of the present invention. DETAILED DESCRIPTION
[0054] In order to enable those skilled in the art to better understand the scheme of the present invention, the technical scheme in the embodiments of the present invention will be clearly and completely described below in conjunction with the drawings in the embodiments of the present invention. Obviously, the described embodiments are only part of the embodiments of the present invention, not all of the embodiments. Based on the embodiments of the present invention, all other embodiments obtained by ordinary technicians in this field without creative work should fall within the scope of protection of the present invention.
[0055] It should be noted that the terms "first", "second", etc. in the specification and claims of the present invention and the above-mentioned drawings are used to distinguish similar objects, and are not necessarily used to describe a specific order or sequence. It should be understood that the data used in this way can be interchangeable where appropriate, so that the embodiments of the present invention described herein can be implemented in an order other than those illustrated or described herein. In addition, the terms "including" and "having" and any of their variations are intended to cover non-exclusive inclusions, for example, a process, method, system, product or device that includes a series of steps or units is not necessarily limited to those steps or units that are clearly listed, but may include other steps or units that are not clearly listed or inherent to these processes, methods, products or devices.
[0056] The present invention is further described in detail below in conjunction with the accompanying drawings:
[0057] See also Figure 1 In one embodiment of the present invention, a Capon beamforming method is provided, which mainly involves the FPGA implementation of the Capon algorithm for estimating the direction of arrival of the radar to the detected target, with the purpose of achieving fast and high-precision resolution of the radar detected target. The Capon beamforming method comprises the following steps:
[0058] S1: Obtain M channels of received data from the radar and construct the covariance matrix of each channel of received data.
[0059] S2: Use the improved Guess-Jardon iterative method to solve the inverse matrix of each covariance matrix.
[0060] S3: Obtain steering vectors at different spatial angles, and combine them with the inverse matrices of each covariance matrix to obtain Capon beam cepstrum values at different spatial angles.
[0061] S4: bubble sort the Capon beam cepstrum values at different spatial angles, select M Capon beam cepstrum values in ascending order as the actual spectrum values of the Capon beam, and record the spatial angles corresponding to the selected Capon beam cepstrum values to form a Capon beam.
[0062] The Capon beam forming method of the present invention first constructs the covariance matrix of each channel of received data, then adopts the improved Guess-Jardon iterative method to solve the inverse matrix of each covariance matrix, and according to the inverse matrix of each covariance matrix, combined with the steering vectors of different spatial angles, determines the Capon beam cepstrum values of different spatial angles, selects M Capon beam cepstrum values in order from small to large as the actual spectrum values of the Capon beam, and records the spatial angles corresponding to the selected Capon beam cepstrum values to form the Capon beam, avoids the hardware implementation defect of the traditional Capon beam forming method that a large number of division operations are required, can be better implemented on the FPGA, fully utilizes the advantages of FPGA parallel data processing, improves the formation efficiency of the Capon beam spectrum, has the advantages of fast speed, high calculation result accuracy, less hardware resource consumption, etc., and has high application value and prospect in radar signal processing, communication and other related fields.
[0063] Specifically, the specific process of the Capon beamforming method of the present invention is as follows:
[0064] First, a spatial linear array model is constructed, the number of array antennas is M, and the spacing between antennas is set to half a wavelength. The formula X(n) = AS(n) + N(n) is used to generate a set of multi-target far-field data X(n), where two targets are set, one at 0° and the other at 40°. Among them, S(n) is the far-field signal vector, N(n) is set to Gaussian white noise with a variance of 1, A is the multi-target guidance vector matrix, and n ranges from 1 to N.
[0065] Step 1: The scenario of the present invention assumes that there are M antennas arranged in space, and each antenna is calibrated to a different spatial coordinate (x i ,y i ,z i ), M antennas together form a set of antenna arrays. Then a set of multi-target radar data is constructed, which forms an M*N two-dimensional array to simulate the mode of receiving data of M antenna arrays in a multi-target scenario.
[0066] See also Figure 2 , split the group of data into M groups of data streams corresponding to M groups of antennas, and import them into the FPGA covariance matrix solver module in parallel to calculate the covariance matrix. The main formula implemented by this module is:
[0067]
[0068] It can multiply the subscripts of each element in the covariance matrix corresponding to different antenna label data, such as R ii Represents the autocorrelation multiplication of the i-th antenna data, Rij This means that the i-th and j-th antenna data are cross-correlated and multiplied. Since the result of the multiplication is output in a pipeline along with the input far-field data, it is only necessary to accumulate the elements of each covariance matrix to complete the summation process. After all N data are accumulated, the data is shifted to achieve the process of dividing by N. Figure 1 It can be seen that in the process of solving the covariance matrix, each element of the covariance matrix is processed in parallel, which can not only give full play to the parallel processing capability of FPGA, but also improve the real-time performance of the covariance matrix.
[0069] At the same time, since the solution of the covariance matrix is a Hermitian matrix, that is, R = R H Therefore, the present invention adopts the method of only calculating the upper triangular matrix in the module development process, and the value of the lower triangular matrix is mapped one by one according to the principle of conjugate symmetry, so that the hardware resources of FPGA can be saved. In addition, in order to speed up the operation speed, the present invention adopts the method of calculating each element in parallel when calculating the upper triangular elements of the covariance matrix, so that the covariance matrix results can be obtained at the same time.
[0070] Step 2: After calculating the covariance matrix, the inversion operation of the covariance matrix is started. The inversion operation is the most important step of Capon beamforming. The inversion operation of the present invention adopts the improved Guess-Jardon iteration method to implement FPGA. The traditional Guess-Jardon iteration uses a large number of division operations, which is very resource-consuming for FPGA. The improved Guess-Jardon iteration converts the division operation into the angle operation of cos(θ) and sin(θ), and converts the angle operation into the rotation operation of the covariance matrix in combination with the cordic algorithm, so as to facilitate the implementation of FPGA.
[0071] Among them, the improved Guess-Jardon iteration method is obtained by improving the traditional selection of the pivot element (the element of the i-th row and i-th column of the covariance matrix) and performing division operations on each column element to a rotation angle method that is convenient for FPGA implementation, so that after each iteration, the matrix elements of the covariance matrix other than the pivot element in the same column as the pivot element are all 0. And because the covariance matrix to be processed is a complex matrix, each iteration process also includes two steps: one is to convert the pivot element and the elements in the same column as the pivot element into real numbers; the other is to convert other elements in the same column as the pivot element into 0. The main iteration formulas involved are as follows:
[0072] P k *E k *A (k-1) =A (k)
[0073] Among them, E k ∈C M*M , P k ∈C M*M , A (k-1) ∈C M*M , They represent the kth rotation matrix 1, the kth rotation matrix 2, the k-1th iteration result and the kth iteration result respectively.
[0074] Step 1: Calculate the rotation phase of the pivot and other elements of the pivot Among them, a ij is the i-row and j-column element of the covariance matrix, and the obtained rotation phase Substitute the rotation matrix 1 and perform the first step of the iterative operation. The specific implementation process and corresponding formula are as follows:
[0075]
[0076]
[0077] in, Represents the intermediate matrix of the kth iteration.
[0078] Step 2: Use the improved Guess-Jardon iteration method to extract the intermediate matrix calculated in step 1, and use the following formula to calculate the rotation angle θ k (k=1,2,3…M):
[0079] |a ki |cos(θ k )+|a ii |sin(θ k )=0
[0080] Among them, if k = I, then |a ki |=0.
[0081] We can calculate θ k =-arctan(|a ki | / |a ii |), the obtained θ k Substitute the improved rotation matrix 2, and the implementation process and formula are as follows:
[0082]
[0083]
[0084] This completes the first iteration of the covariance matrix inversion process. After M iterations, the entire iterative process can be summarized as follows:
[0085] ∑=P M *E k *P M-1 *E k-1 *…*P2*E2*P1*E1*R
[0086] Among them, ∑ is the result of the Mth iteration and is a diagonal matrix.
[0087] Similarly, the solution process of the inverse matrix can be expressed as follows:
[0088] R -1 =∑ -1 *P M *E k *P M-1 *E k-1 *…*P2*E2*P1*E1
[0089] In addition, in order to simplify the FPGA implementation process, the covariance matrix inversion process always sets the pivot element to the first row and first column of the matrix, that is, a 11 In this way, the work of selecting the main element each time can be avoided, and it is only necessary to perform elementary row and column circular shift on the matrix after each iteration. When the M-dimensional square matrix completes the Mth iteration, it just completes one cycle of elementary row and column circular shift.
[0090] After completing M iterations, the original matrix is converted to a diagonal matrix. At this time, the rotation module in step 1 is reused to convert the diagonal matrix elements into real numbers in the same way as step 1. After the calculation is completed, the division IP core is called to divide the converted new real diagonal matrix by the corresponding real numbers, and finally the diagonal matrix is converted into a unit matrix. At this point, the result corresponds to the actual inverse matrix result one by one. So far, the FPGA implementation process of the covariance matrix inversion has been completed.
[0091] Specifically, the improved Guess-Jardon iterative method mainly includes the following steps:
[0092] Step 1) Set a group of M*M registers, store the covariance matrix obtained above into the corresponding registers respectively, and initialize them.
[0093] Step 2), after the initialization is completed, the first column is taken as the column to be iterated, and the first element data of the column is taken as the pivot. Each subsequent iteration will take the first column element as the column element where the pivot of the iteration is located, that is, the improved Guess-Jardon iteration operation is performed only on the first column. Then, in order to calculate the inverse matrix, the first column elements are looped twice and input into the vector mode cordic IP core in sequence, using the following formula:
[0094]
[0095] Calculate the rotation angles of the main element
[0096] Step 3), the covariance matrix and the current inverse matrix of the covariance matrix are input as M groups of data with their respective M rows, and each group of data is output in sequence in the manner of the covariance matrix first and then the inverse matrix of the covariance matrix, and at the same time, the opposite of each rotation angle of the main element obtained in 1) is sent to the cordic IP core in the rotation mode together with the M groups of data synchronously, and after the rotation calculation is completed, the covariance matrix data and the inverse matrix data are stored back in the register group in sequence, so that the column elements of the main element of the covariance matrix at this time are converted into real numbers. Among them, the inverse matrix of the covariance matrix is initially set to the unit matrix.
[0097] Step 4), after the column where the pivot element is located is converted into real numbers, that is, the elements in the column where the pivot element is located are converted into |a k1 | (k=1,2…M), we can perform Guess-Jardon iteration on the column where the pivot is located. The main idea is to convert the column where the pivot is located into a form where all elements except the pivot are 0. The main implementation formula is as follows:
[0098] |a k1 |cos(θ k )+|a 11 |sin(θ k )=0
[0099] Use the above formula to get the rotation angle θ of the first column k =-arctan(|a k1 | / |a 11 |). In order to obtain each angle, the present invention reuses the same vector mode cordic IP core in step 2), but the difference is that the imaginary part of the input data is calculated according to 0|a 21 ||a 31 |…|a k1 |…|a M1 |, the real part is in accordance with |a 11 ||a 11 |…|a 11 |…|a 11 | is cycled twice in sequence, and the arctan(|a k1 | / |a 11 |) value, and then the inverted output can be obtained to obtain the various θ k value.
[0100] Step 5), when θ kAfter the calculation is completed, a new round of rotation operation can be performed on the covariance matrix obtained in step 3) and the current inverse matrix of the covariance matrix. The formula for data rotation is as follows:
[0101]
[0102] Among them, k, j = 1, 2,…,M.
[0103] In order to implement the above formula in FPGA, the real and imaginary parts of the data calculation process are considered to be independent, and the calculation results do not affect each other. Therefore, the method of dividing the data into real and imaginary parts is adopted to realize independent calculation of both at the same time. In the real part processing process, the data stream is divided into M groups, and each group is in the same way as in 3), that is, the covariance matrix is input first and then the inverse matrix of the covariance matrix is input, and the data and the θ calculated in 4) are combined. k The value is synchronously imported into the cardic IP core in rotation mode. The data input of the cordic IP core is stored in a high bit 1k , low storage a jk The imaginary part is processed in the same way as the real part. After the calculation is completed, the real and imaginary data are arranged and combined reasonably, and finally the covariance matrix and inverse matrix after the first iteration are calculated. Then, the new covariance matrix and inverse matrix values calculated at this time are stored back in the register group in sequence.
[0104] Step 6), after step 5) is completed, the same elementary row and column transformations are performed on the covariance matrix and the inverse matrix of the covariance matrix at this time. The specific implementation process is to circularly shift each column of the covariance matrix and the inverse matrix of the covariance matrix to the left by one column, and then circularly shift each row up by one row.
[0105] Step 7) After the circular shift is completed, it can be found that the first column element of the covariance matrix becomes the previous next column element, and the first element of the first column also becomes the next main diagonal element of the previous iteration; and the first column element of the previous iteration becomes the last column at this time, and the pivot element becomes the last element of the last column, and the rest of the elements in the same column as the pivot element are all 0. At this time, the second iteration begins, and steps 2) to 6) are repeated. After the Mth iteration is completed, the iteration loop is jumped out.
[0106] Step 8), after M iterations are completed, the covariance matrix is converted into a complex diagonal matrix, so it is also necessary to convert it into a unit matrix, so that the entire inversion operation of the covariance matrix is finally completed. Specifically, first use the vector mode cordic IP core to calculate the rotation angle (phase) and amplitude of the diagonal elements of the covariance matrix at this time, and then use a similar method to step 3) to reverse the rotation angle and import it into the rotation mode cordic module in step 4). After the calculation is valid, the data obtained in cordic is imported into the division module to finally complete the entire inversion process.
[0107] Specifically, the following formula shows the inversion process of the improved Guess-Jardon iterative method for any M-order real matrix:
[0108] Iteration 1:
[0109]
[0110]
[0111] Iteration 2:
[0112]
[0113]
[0114] Iteration 3:
[0115]
[0116] Iteration M:
[0117] However, in the actual covariance matrix, the covariance matrix is often a complex number, so it is necessary to convert the columns that need to be iterated into real numbers before performing the above-mentioned iterative operation. Therefore, what is shown above is the iterative process after the complex covariance matrix is iterated into the real number of the pivot iterative column. Therefore, in the FPGA implementation process, before each Guess-Jardon iteration, it is necessary to first convert the column where the iterative pivot is located into a real number. After the real number conversion, the improved Guess-Jardon iteration requires a total of M iterations to convert the covariance matrix into a diagonal matrix, and each iteration process is to iterate the first column as the column where the pivot is located. The reason for this is that the second step of each iteration is the elementary row and column circular shift. This process can realize the shift of the column of the next iteration to the first column, and the pivot of the next iteration is simultaneously shifted to the first column and the first row. In this way, the step of selecting the pivot can be omitted in the FPGA implementation process.
[0118] From the results of each iteration, the improved Guess-Jardon iteration converts the column where the pivot element is located into a form where all the columns except the pivot element are 0, and then performs a circular shift operation on the rows and columns to migrate the converted columns to the last row. After all M iterations are completed, the covariance matrix is converted into a diagonal matrix. After that, the diagonal matrix needs to be converted into a unit matrix, as shown below:
[0119]
[0120] In the FPGA implementation process, this step also requires first converting each diagonal element into a real number, and then using division to perform division operations on the real and imaginary parts of the inverse matrix, and finally obtaining the inverse matrix of the covariance matrix.
[0121] Step 3: After the inversion is completed, the inverse matrix R of the covariance matrix can be obtained -1 , and then according to the Capon beamforming algorithm formula It can be seen that the calculation of the spectrum value of Capon requires a division operation. In order to avoid a large number of division operations in FPGA implementation, the present invention uses only the cepstrum value to replace the Capon spectrum value. capon The spectrum value is calculated by Then, use the original method to find P capon The maximum value is transformed into the minimum value of the cepstrum.
[0122] In using FPGA to obtain P capon In the process of calculating the cepstrum value, we first need to select a spatial angle Then the spatial angle needs to be input into the steering vector solution module, and the inverse matrix R of the covariance matrix -1 The column matrix of the derivative vector is used to form M groups of data streams. After the derivative vector is solved effectively, it is inverted to form a conjugate steering vector and is synchronously input into the cordic IP core in the rotation mode with the M data streams. After the rotation is effective, the rotated data can be accumulated and processed. After the accumulation is completed, the first rotation is completed. After the accumulation is completed, the M groups of accumulated result data need to be input into the cordic IP core in the rotation mode in the previous step again. At this time, the rotation phase is the M data of the steering vector. After the second rotation is effective, the valid data is accumulated again. After the second accumulation is completed, the second rotation is completed. At this time, the calculation process of the inverse spectrum is completed. However, since Capon solves the power spectrum value, it is also necessary to solve the absolute value of the result after the second rotation accumulation. In order to facilitate FPGA implementation, the square of the absolute value is used as the final result.
[0123] See also Figure 4The calculation of Capon beam cepstrum value is mainly divided into several processes: control, rotation 1, accumulation, rotation 2, summation and absolute value solution. The control part mainly completes the scanning angle selection and outputs the synchronization control signal to ensure that each row of the inverse covariance matrix data is synchronized with each data of the steering vector; rotation 1 mainly rotates each row of the inverse covariance matrix data in the order of the conjugate phase of the steering vector to perform cordic coordinate rotation; accumulation is to accumulate the data after rotation 1 to complete The process of rotation 2 is similar to rotation 1, which is to perform cordic rotation on the data. However, the difference is that the data stream is a single accumulated data, and the rotation phase is the phase of the steering vector without taking the conjugate. The summation is to sum the M groups of data after rotation 2 to complete process; in order to facilitate FPGA implementation, the absolute value solution is directly replaced by the value of the sum of squares, and the implementation process is simplified to finding the sum of the squares of the real and imaginary parts of the complex number.
[0124] Specifically, in this step of FPGA implementation, the antenna array adopts an M-dimensional arbitrary antenna array arrangement method, and the calculation of the Capon beam cepstrum value is realized by the following formula:
[0125]
[0126]
[0127]
[0128] Among them, x k ,y k and z k represents the spatial coordinates of the kth antenna, θ i represents the horizontal space angle, represents the pitch angle, and λ represents the wavelength.
[0129] The FPGA implementation of Capon beamforming consists of two parts: one is the steering vector The other is P capon Calculation of the cepstrum. Steering vector The present invention uses sin(θ i ), cos(θ i ), The value of different array unit space coordinates 2 / λ*(x k ,y k , z k ) is pre-stored in the dual-port RAM, and then the multiplier resources are used for calculation to obtain the Scan the steering vector phase value φ at k , and during the calculation process, an external enable signal is used to control the output time to ensure pipeline output.
[0130] The calculation of the Capon beam cepstrum value is divided into three steps. The first step is to achieve a H (θ)*R -1 , the inverse matrix of the covariance matrix is output in parallel pipeline according to M columns, and a synchronization enable signal is issued at this time to ensure the synchronization of column data and conjugate oriented vector data, and then these two sets of data are simultaneously input into the cordic IP core for rotation operation; the second step is to implement a H (θ)*R -1 *a(θ), the cordic rotation results output by the first step are accumulated and summed according to the real and imaginary parts of the data. After the summation is completed, a new synchronization signal is issued to ensure the synchronization of the summed data and the steering vector data. The summation result and the steering vector are imported into the corresponding cordic IP core in parallel; the third step is to sum the results calculated by the cordic IP core in the second step again, and perform an absolute value operation on the final summation result to obtain the Capon beam cepstrum value.
[0131] See also Figure 5 In order to complete the angle scan of the entire airspace, the present invention divides the entire airspace angle into 8 areas, each area represents a 47*47 two-dimensional angle array of horizontal angle and pitch angle. During implementation, the 8 areas on the FPGA control end store the angle values into the ROM in the same way. The angle can be accessed only according to the row and column addresses, and the row and column scans are performed in a cyclic manner in the form of row scan first and then column scan. When the row and column address scans the last address, it means that the scan of all spatial angles is completed. At the end of each scan, the inverse spectrum value of the scanning angle will be calculated. The minimum value of the inverse spectrum value at this time represents P capon The ultimate goal of the Capon beamforming algorithm is to select P capon The maximum value of P represents the target. Therefore, in order to select the correct target, the present invention needs to find P capon The spatial minimum of the cepstrum value is obtained. When the space contains multiple targets, it is necessary to find the local minimum of the two-dimensional cepstrum. From the number of antennas, it can be seen that the spatial two-dimensional cepstrum can distinguish at most M targets.
[0132] Specifically, each scanned spatial angle value will output the corresponding cepstrum value after a delay (cepstrum calculation delay), and the output valid signal of the cepstrum value will also be used as the enable signal for the next spatial angle scan for the next calculation. In this way, each spatial area will perform spatial angle scanning and cepstrum calculation according to such logical rules. The scanning method is based on the principle of first row scanning and then column scanning. When the last spatial element is scanned, it means that all 8 areas have been scanned.
[0133] See also Figure 6 In order to select all targets, the present invention will perform sliding window scanning on the two-dimensional cepstrum of each region. Each scanning window is composed of 3*3 matrix data, and the middle data among the 9 data is called the scanning object. If the scanning object value is smaller than the surrounding value each time, it can be temporarily defined as the "target", and the cepstrum value and subscript (i.e., spatial angle) of the "target" are recorded. Otherwise, it is skipped and the next cepstrum value is scanned. In order to implement this process with FPGA, the present invention uses two FIFOs to beat and retrieve data. The data depth of the FIFO is consistent with the number of columns of the scanned two-dimensional spatial graph. For the first-level FIFO, when the cepstrum data is valid, it starts to be written, and when it is full, it starts to be read. At the same time, the first-level FIFO read signal is used as the write signal of the second-level FIFO. When the second-level FIFO is full, it also starts to be read. In this way, the first-level FIFO is written into the secretary Mou, the second-level FIFO write data and the second-level FIFO read data together form three groups of data streams, and the above-mentioned 3*3 matrix data can be selected.
[0134] In addition, since the present invention uses a 3*3 matrix data block for sliding window during target search, problems will inevitably occur when sliding the area edge data (such as the 1st number and the 47th number). In order to avoid problems when scanning the area edge angle of each area, the present invention keeps the two angle values coincident (such as 0~46, 45~91) when storing the angle, and when sliding the data, only the middle sliding window data is valid, thereby solving the problem of edge search of FPGA during Capon beamforming cepstrum target search.
[0135] The target result of the entire airspace scan is limited by the total number of antennas. In order to avoid misjudgment or missed targets, it is necessary to sort the "targets" selected from the above 8 areas, select the M smallest "targets" in each area, and then collect the M "targets" in the 8 areas together for "bubble sorting" to find the smallest M real targets, thus completing the target search process of Capon beamforming. At the same time, the corresponding spatial angle is recorded. At this point, the implementation process of the entire Capon beamforming algorithm of the present invention is completed.
[0136] In summary, the Capon beamforming method of the present invention can be implemented based on FPGA, and its process mainly includes the generation of covariance matrix, and the inversion operation of covariance matrix is realized in parallel by using improved Gauss-Jordan iterative method (elimination method); and the cepstrum calculation of Capon beamforming algorithm is completed according to the result of matrix inversion. Compared with the traditional Capon algorithm implementation, the advantages of FPGA parallel data processing are fully utilized, and the high-precision angle measurement module cordic IP core is utilized at the same time, avoiding the hardware implementation defect of the traditional matrix inversion method that requires a large number of division operations. In addition, in the angle estimation scanning process of Capon beamforming algorithm, a multi-angle area division method is adopted to realize the parallel completion of angle area scanning, so as to achieve the effect of fast spatial spectrum estimation. In actual engineering applications, the Capon beamforming implementation method of the present invention has the advantages of fast speed, high calculation result accuracy, low hardware resource consumption, etc., and it has high application value and prospects in radar signal processing and communication and other related fields.
[0137] See also Figure 6 , which shows the result presentation of the Capon beamforming method of the present invention; compared with the result of implementing Capon beamforming with Matlab, it can be seen that the detection accuracy of the target by the present invention is basically consistent with that of Matlab.
[0138] Referring to Table 1, the calculation results of the present invention and Matlab for implementing Capon beamforming are compared, and the relative errors at different spatial scanning angles are summarized. From the comparison results, the relative error formed by the Capon beamforming method of the present invention is basically maintained within 0.01%. Therefore, based on the above results, it can be proved that the implementation process and results of the Capon beamforming of the present invention are accurate and reliable.
[0139] Table 1
[0140]
[0141] The following are device embodiments of the present invention, which can be used to implement the method embodiments of the present invention. For details not disclosed in the device embodiments, please refer to the method embodiments of the present invention.
[0142] In yet another embodiment of the present invention, a Capon beamforming system is provided, which can be used to implement the above-mentioned Capon beamforming method. Specifically, the Capon beamforming system includes a covariance matrix construction module, an inverse matrix solving module, a cepstrum value solving module and a selection module.
[0143] Among them, the covariance matrix construction module is used to obtain M-channel receiving data of the radar and construct the covariance matrix of each channel of receiving data; the inverse matrix solving module is used to adopt the improved Guess-Jardon iterative method to solve the inverse matrix of each covariance matrix; the cepstrum value solving module is used to obtain the steering vectors at different spatial angles, and combine the inverse matrices of each covariance matrix to obtain the Capon beam cepstrum values at different spatial angles; the selection module is used to bubble sort the Capon beam cepstrum values at different spatial angles, select M Capon beam cepstrum values in order from small to large as the actual spectrum value of the Capon beam, and record the spatial angles corresponding to the selected Capon beam cepstrum values to form a Capon beam.
[0144] All relevant contents of each step involved in the aforementioned embodiment of the Capon beamforming method can be referred to the functional description of the functional module corresponding to the Capon beamforming system in the embodiment of the present invention, and will not be repeated here. The division of modules in the embodiment of the present invention is schematic, which is only a logical function division. There may be other division methods in actual implementation. In addition, each functional module in each embodiment of the present invention may be integrated in a processor, or may exist physically separately, or two or more modules may be integrated in one module. The above-mentioned integrated module may be implemented in the form of hardware or in the form of software functional modules.
[0145] In yet another embodiment of the present invention, a Capon beamforming FPGA is provided, comprising an FPGA body, wherein the Capon beamforming system is arranged inside the FPGA body.
[0146] It will be appreciated by those skilled in the art that embodiments of the present invention may be provided as methods, systems, or computer program products. Therefore, the present invention may take the form of a complete hardware embodiment, a complete software embodiment, or an embodiment combining software and hardware. Moreover, the present invention may take the form of a computer program product implemented on one or more computer-usable storage media (including but not limited to disk storage, CD-ROM, optical storage, etc.) containing computer-usable program code.
[0147] The present invention is described with reference to flowcharts and / or block diagrams of methods, devices (systems), and computer program products according to embodiments of the present invention. It should be understood that each process and / or block in the flowchart and / or block diagram, as well as the combination of processes and / or blocks in the flowchart and / or block diagram, can be implemented by computer program instructions. These computer program instructions can be provided to a processor of a general-purpose computer, a special-purpose computer, an embedded processor, or other programmable data processing device to produce a machine, so that the instructions executed by the processor of the computer or other programmable data processing device generate instructions for implementing the processes in the flowchart and / or block diagram. Figure 1 A process or multiple processes and / or boxes Figure 1 A device that provides the functions specified in a block or multiple blocks.
[0148] These computer program instructions may also be stored in a computer-readable memory capable of directing a computer or other programmable data processing device to operate in a specific manner, so that the instructions stored in the computer-readable memory produce an article of manufacture comprising an instruction device, which implements the process Figure 1 A process or multiple processes and / or boxes Figure 1 A function specified in one or more boxes.
[0149] These computer program instructions can also be loaded onto a computer or other programmable data processing device so that a series of operating steps are executed on the computer or other programmable device to produce a computer-implemented process, thereby providing instructions for implementing the process. Figure 1 A process or multiple processes and / or boxes Figure 1 The steps for the functions specified in one or more boxes.
[0150] Finally, it should be noted that the above embodiments are only used to illustrate the technical solutions of the present invention rather than to limit it. Although the present invention has been described in detail with reference to the above embodiments, ordinary technicians in the relevant field should understand that the specific implementation methods of the present invention can still be modified or replaced by equivalents, and any modifications or equivalent replacements that do not depart from the spirit and scope of the present invention should be covered within the scope of protection of the claims of the present invention.
Claims
1. A Capon beamforming method, characterized in that: include: Obtain M channels of received data from the radar and construct a covariance matrix of each channel of received data; The improved Guess-Jardon iterative method is used to solve the inverse matrix of each covariance matrix; Obtain the steering vectors at different spatial angles, and combine them with the inverse matrices of each covariance matrix to obtain the Capon beam cepstrum values at different spatial angles; The Capon beam cepstrum values at different spatial angles are bubble sorted, M Capon beam cepstrum values are selected in ascending order as the actual spectrum values of the Capon beam, and the spatial angles corresponding to the selected Capon beam cepstrum values are recorded to form a Capon beam; The improved Guess-Jardon iterative method is used to solve the inverse matrix of each covariance matrix, including: S201: Set a group of M*M registers and store each covariance matrix in each register; S202: Take the first element of the first column of each covariance matrix as the pivot, then loop the first column element of each covariance matrix twice and input it into the vector mode cordic IP core, and obtain the rotation angle of the pivot by the following formula: Among them, a k1 Represents the matrix element in the 1st column and the kth row of the covariance matrix; S203: Each covariance matrix and the current inverse matrix of each covariance matrix are used as M groups of output data with their respective M rows. Each group of output data is output in sequence in the manner of first the covariance matrix and then the current inverse matrix of the covariance matrix. At the same time, the opposite of each rotation angle of the principal element is taken and the M groups of output data are rotated by the rotation mode cordic IP core to perform rotation calculation, and each covariance matrix and the current inverse matrix of each covariance matrix are updated: S204: Obtain the rotation angle θ of each element in the first column of each covariance matrix by the following formula: k : |a k1 |cos(θ k )+|a 11 |sin(θ k )=0 S205: Rotate the elements of the first column of each covariance matrix according to their rotation angle θ k , the rotation operation of each covariance matrix and the current inverse matrix of each covariance matrix is performed through the following formula to update each covariance matrix and the current inverse matrix of each covariance matrix: in, Represents the j-th row and k-th column element of the iteratively calculated covariance matrix; S206: cyclically shifting each column of each covariance matrix and each current inverse matrix of each covariance matrix to the left by one column, and then cyclically shifting each row of each covariance matrix and each current inverse matrix of each covariance matrix upward by one row; S207: iterate steps S202 to S206 M times, and obtain the current inverse matrix of each covariance matrix as the inverse matrix of each covariance matrix; S208: Obtain the rotation angle and amplitude of the diagonal elements of each covariance matrix, invert the rotation angle and perform rotation calculation through the rotation mode cordicIP core, and after the calculation is valid, import the data obtained in the rotation mode cordicIP core into the division module to convert each covariance matrix into a unit matrix.
2. The Capon beamforming method according to claim 1, characterized in that: Constructing a covariance matrix of each received data channel according to the M received data channels includes: According to M channels of received data, the covariance matrix R of each channel of received data is constructed by the following formula: Wherein, N is the number of complex data in each data channel, x(n) represents the nth group of vectors of data vectors composed of M receiving channel data, and H represents transposed conjugate.
3. The Capon beamforming method according to claim 2, characterized in that: When constructing the covariance matrix of each received data, only the values of the upper triangular matrix of the covariance matrix are calculated, and the values of the lower triangular matrix of the covariance matrix are mapped one by one according to the principle of conjugate symmetry, and when calculating the values of the upper triangular matrix of the covariance matrix, each value is calculated simultaneously in parallel.
4. The Capon beamforming method according to claim 1, characterized in that: In S205, the rotation angle θ of each element in the first column of each covariance matrix is k When the rotation operation of each covariance matrix and the current inverse matrix of each covariance matrix is performed by the following formula, each element in each covariance matrix and the current inverse matrix of each covariance matrix is divided into real part and imaginary part and operated independently at the same time.
5. The Capon beamforming method according to claim 1, characterized in that: The method of obtaining the steering vectors at different spatial angles and combining the inverse matrices of the covariance matrices to obtain the Capon beam cepstrum values at different spatial angles includes: dividing the entire spatial angle into a plurality of regions, and sequentially obtaining each spatial angle of each region as the current spatial angle according to a scanning method of first the pitch angle and then the horizontal angle, and performing the following steps to obtain the Capon beam cepstrum values at different spatial angles: S301: Obtaining the steering vector of the current spatial angle; S302: The column matrices of the inverse matrices of each covariance matrix are formed into M groups of data streams, the steering vector of the current spatial angle is inverted to form a conjugate steering vector, and the M groups of data streams are input into the rotation mode cordic IP core for rotation calculation, and the obtained data are accumulated to obtain the first M groups of accumulated result data; S303: Send the first M groups of accumulated result data to the rotation mode cordic IP core for rotation calculation, and perform accumulation processing on the obtained data to obtain the second M groups of accumulated result data; wherein the rotation phases of the first M groups of accumulated result data are respectively the M data of the steering vector; S304: Solve the absolute value of the second M groups of accumulated result data to obtain the Capon beam cepstrum value of the current spatial angle.
6. The Capon beamforming method according to claim 5, characterized in that: The division of the entire airspace into several areas includes: The entire airspace angle is divided into 8 areas, and the angle ranges of each area are: {θ=0~46, φ=0~46}, {θ=45~91, φ=0~46}, {θ=90~136, φ=0~46}, {θ=135~181, φ=0~46}, {θ=0~46, φ=45~91}, {θ=45~91, φ=45~91}, {θ=90~136, φ=45~91} and {θ=135~181, φ=45~91}, where θ is the pitch angle and φ is the horizontal angle.
7. The Capon beamforming method according to claim 6, characterized in that: The bubble sorting of the Capon beam cepstrum values at different spatial angles and selecting M Capon beam cepstrum values in ascending order as the Capon beam actual spectrum values includes: For each area, the Capon beam actual spectrum value is slid row by row in a 3*3 matrix size according to the scanning method of first pitch angle and then horizontal angle. When the Capon beam actual spectrum value in the middle of the current 3*3 matrix is the minimum value among the 9 Capon beam actual spectrum values, the Capon beam actual spectrum value in the middle of the current 3*3 matrix is retained until the number of Capon beam actual spectrum values retained in the current area reaches M; the M Capon beam actual spectrum values of each area are bubble sorted, and M Capon beam cepstrum values are selected in ascending order as the Capon beam actual spectrum value.
8. A Capon beamforming system, characterized in that: include: A covariance matrix construction module is used to obtain M channels of received data from the radar and construct a covariance matrix for each channel of received data; An inverse matrix solving module is used to solve the inverse matrix of each covariance matrix using an improved Guess-Jardon iterative method; The cepstrum value solving module is used to obtain the steering vectors at different spatial angles and combine the inverse matrices of each covariance matrix to obtain the cepstrum values of the Capon beam at different spatial angles; A selection module is used to bubble sort the Capon beam cepstrum values of different spatial angles, select M Capon beam cepstrum values in ascending order as the actual spectrum values of the Capon beam, and record the spatial angles corresponding to the selected Capon beam cepstrum values to form a Capon beam; The improved Guess-Jardon iterative method is used to solve the inverse matrix of each covariance matrix, including: S201: Set a group of M*M registers and store each covariance matrix in each register; S202: Take the first element of the first column of each covariance matrix as the pivot, then loop the first column element of each covariance matrix twice and input it into the vector mode cordic IP core, and obtain the rotation angle of the pivot by the following formula: Among them, a k1 Represents the matrix element in the 1st column and the kth row of the covariance matrix; S203: Each covariance matrix and the current inverse matrix of each covariance matrix are used as M groups of output data with their respective M rows. Each group of output data is output in sequence in the manner of first the covariance matrix and then the current inverse matrix of the covariance matrix. At the same time, the opposite of each rotation angle of the principal element is taken and the M groups of output data are rotated by the rotation mode cordic IP core to perform rotation calculation, and each covariance matrix and the current inverse matrix of each covariance matrix are updated: S204: Obtain the rotation angle θ of each element in the first column of each covariance matrix by the following formula: k : |a k1 |cos(θ k )+|a 11 |sin(θ k )=0 S205: Rotate the elements of the first column of each covariance matrix according to their rotation angle θ k , the rotation operation of each covariance matrix and the current inverse matrix of each covariance matrix is performed through the following formula to update each covariance matrix and the current inverse matrix of each covariance matrix: in, Represents the j-th row and k-th column element of the iteratively calculated covariance matrix; S206: cyclically shifting each column of each covariance matrix and each current inverse matrix of each covariance matrix to the left by one column, and then cyclically shifting each row of each covariance matrix and each current inverse matrix of each covariance matrix upward by one row; S207: iterate steps S202 to S206 M times, and obtain the current inverse matrix of each covariance matrix as the inverse matrix of each covariance matrix; S208: Obtain the rotation angle and amplitude of the diagonal elements of each covariance matrix, invert the rotation angle and perform rotation calculation through the rotation mode cordicIP core, and after the calculation is valid, import the data obtained in the rotation mode cordicIP core into the division module to convert each covariance matrix into a unit matrix.
9. A Capon beamforming FPGA, characterized in that: It comprises an FPGA body, wherein the Capon beamforming system according to claim 8 is arranged inside the FPGA body.
Citation Information
Patent Citations
Signal arrival direction estimation method of spectral function second derivative based on minimum variance method
CN106226753A