FPGA (Field Programmable Gate Array) implementation method for Hermite matrix eigenvalue decomposition
By converting the Hermite matrix to a real number and using the parallel Jacobi algorithm, combined with a pulsating array structure and a CORDIC IP core, efficient parallel computation of Hermite matrix eigenvalue decomposition was achieved, solving the complexity problem on FPGA and improving computational efficiency and real-time performance.
Patent Information
- Application Number
- CN202511560723.1
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Filing Date
- 2025-10-29
- Publication Date
- 2026-02-17
AI Technical Summary
Existing technologies struggle to efficiently implement eigenvalue decomposition of Hermite matrices, especially given the computational complexity on FPGA hardware, which limits its application in signal processing.
By converting the Hermite matrix to real numbers, and using the parallel Jacobi algorithm and the pulsating array structure proposed by Brent, Luk, and Van Loand, the matrix is split into diagonal and off-diagonal units. The rotation matrix is calculated in parallel, and the rotation angle is calculated using the CORDIC IP core. Jacobi rotation operations are then performed until the cleaning is complete.
It effectively reduces the amount of computation, improves the real-time performance and parallel computing capabilities of the algorithm, simplifies the complexity of complex matrix eigenvalue decomposition, and improves the computational efficiency on FPGA.
Smart Images

Figure CN121542549A_ABST
Abstract
Description
Technical Field
[0001] This invention relates to the field of digital signal processing, and more particularly to an FPGA (Field Programmable Gate Array) implementation method for Hermite matrix eigenvalue decomposition. Background Technology
[0002] In the field of digital signal processing, eigenvalue decomposition of Hermite matrices has a wide range of applications. In array signal processing, eigenvalue-based super-resolution spatial spectrum estimation algorithms, with their high efficiency and accuracy, have long been a research focus, with the most classic example being the Multiple Signal Classification (MUSIC) algorithm. The MUSIC algorithm boasts numerous advantages, including high direction-finding accuracy, algorithm stability, and excellent multi-signal direction-finding capabilities; however, its computation is particularly complex, hindering hardware implementation. Among these, matrix eigenvalue decomposition is the most complex, making the research on accelerating eigenvalue decomposition on FPGAs of great significance.
[0003] Current research on eigenvalue decomposition implementation on FPGAs primarily focuses on real symmetric matrices. However, in practical engineering applications, it is often necessary to compute the eigenvalue decomposition of complex self-conjugate matrices (Hermite matrices). Due to the advantages of FPGA technology, such as high flexibility, strong parallel computing capabilities, high integration, and low power consumption, FPGA technology holds a distinct advantage and a crucial position in the field of signal processing. As a result, an increasing number of researchers are focusing on FPGA technology, and hardware solutions for rapidly implementing Hermite matrix eigenvalue decomposition have become a point of interest. Summary of the Invention
[0004] The purpose of this invention is to provide an FPGA implementation method for Hermite matrix eigenvalue decomposition, in order to meet the urgent need of existing research for rapid hardware implementation of matrix eigenvalue decomposition.
[0005] To achieve the above objectives, this invention provides an FPGA implementation method for Hermite matrix eigenvalue decomposition, comprising: right The Hermite matrix is obtained by realization. 3D real matrix; Will The upper triangular elements of a 3D real matrix are split into Groups, each group includes indivual The matrix processing unit is divided into diagonal units and off-diagonal units according to its position in the realized Hermite matrix. Calculate the rotation matrix of the diagonal and off-diagonal elements based on the elements in the diagonal elements; Perform Jacobi rotation operations on a set of matrix processing units, and update the eigenvector matrix based on the rotation matrix; After completing one set of Jacobi rotations, data is exchanged according to the grouping of the parallel Jacobi algorithm, and the Jacobi rotation operations of other groups are executed until... The Jacobi group has completed all rotations, thus completing the first stage of cleaning.
[0006] Optionally, the realization process includes calculating a real matrix based on the relationship between the Hermite matrix and its eigenvalues and eigenvectors.
[0007] Optionally, the realization process includes: The relationship between the Hermite matrix and its eigenvalues and eigenvectors includes: In the formula, R For Hermite matrices, For feature vectors, For eigenvalues, R and Expressed in complex form, we get: in, For matrix The real part, For matrix The imaginary part; Written in matrix form: The Hermite matrix, after being converted to real numbers, is as follows: Get A 3D real matrix.
[0008] Optionally, the will The upper triangular elements of a 3D real matrix are split into Groups, including: Based on the pulsating array structure proposed by Brent, Luk, and Van Loand, The upper triangular elements of a 3D real matrix are split into Group.
[0009] Optionally, calculating the rotation matrix of the diagonal and off-diagonal elements based on the elements in the diagonal elements includes: Calculate the rotation angle using diagonal elements. The value of is calculated using the following formula: in and diagonal unit The diagonal elements, Off-diagonal elements; Based on the formula: Calculate the corresponding rotation matrix.
[0010] Optionally, the rotation angle is calculated by calling the ArcTan mode of the CORDIC IP core to calculate the arctangent value, thereby obtaining the rotation angle. The rotation matrix is calculated by calling the Sin and Cos mode of the CORDIC IP core to calculate the sine and cosine values of the rotation angle, thereby obtaining the rotation matrix.
[0011] Optionally, performing Jacobi rotation operations on a set of matrix processing units includes: Based on the formula: Perform Jacobi rotation on the diagonal elements; based on the formula: Perform Jacobi rotation operations on off-diagonal cells.
[0012] Optionally, updating the eigenvector matrix based on the rotation matrix includes: Based on formula Update the eigenvector matrix, where and The eigenvectors of the matrix are respectively the first and second eigenvectors. row and number OK.
[0013] Optionally, the data exchange uses a state machine to directly assign values to registers.
[0014] Optionally, it also includes: Multi-level cleaning is performed based on the expected error; the more times the cleaning is performed, the closer the eigenvalue matrix becomes to the diagonal matrix.
[0015] Compared with the prior art, the technical solution of the present invention has the following beneficial effects: This invention provides an FPGA implementation method for Hermite matrix eigenvalue decomposition. By processing the Hermite matrix as a real number, the complexity of complex matrix eigenvalue decomposition is avoided, effectively reducing the computational load. This invention uses the parallel Jacobi algorithm in the FPGA, fully utilizing the parallel computing advantages of FPGA and Jacobi algorithm. At the same time, it uses the systolic array structure proposed by Brent, Luk and Van Loand, which effectively reduces the number of matrix rotations and improves the real-time performance of the algorithm. Attached Figure Description
[0016] Figure 1 This is a flowchart illustrating an FPGA implementation method for Hermite matrix eigenvalue decomposition according to an embodiment of the present invention. Figure 2 This is a schematic diagram of a single Jacobi rotating FPGA implementation according to an embodiment of the present invention; Figure 3 This is a schematic diagram of an FPGA implementation of eigenvalue decomposition according to an embodiment of the present invention; Figure 4 This is an FPGA simulation timing diagram for eigenvalue decomposition provided in an embodiment of the present invention. Detailed Implementation
[0017] The following detailed description, in conjunction with the accompanying drawings and specific embodiments, provides a further detailed explanation of the FPGA implementation method for Hermite matrix eigenvalue decomposition proposed in this invention. The advantages and features of this invention will become clearer from the following description. It should be noted that the accompanying drawings are in a very simplified form and use non-precise scales, used only to facilitate and clearly illustrate the purpose of the embodiments of this invention. Please refer to the accompanying drawings to make the objectives, features, and advantages of this invention more apparent and understandable. It should be understood that the structures, scales, sizes, etc., depicted in the accompanying drawings are only for illustrative purposes to aid those skilled in the art and are not intended to limit the implementation conditions of this invention. Therefore, they have no substantial technical significance. Any modifications to the structure, changes in the proportional relationships, or adjustments to the size, without affecting the effects and objectives achieved by this invention, should still fall within the scope of the technical content disclosed in this invention.
[0018] This invention provides an FPGA implementation method for Hermite matrix eigenvalue decomposition. Please refer to [link to relevant documentation]. Figure 1 ,include: Step S1: For The Hermite matrix is obtained by realization. 3D real matrix; In practical engineering applications, the Hermite matrix is usually the covariance matrix of the data. First, the Hermite matrix is converted to real numbers. Let the dimension of the Hermite matrix be... The dimension of the Hermite matrix after realization is The specific implementation method for realization is as follows: In the formula, R For Hermite matrices, For feature vectors, For eigenvalues, R and Expressed in complex form, we get: in, For matrix The real part, For matrix The imaginary part. The above equation can be written in matrix form: From the above equation, the Hermite matrix, after being converted to real numbers, can be represented as: right When performing eigenvalue decomposition, we will obtain The sum of pairwise approximately equal eigenvalues Each pair of correlated feature vectors.
[0019] Step S2: The upper triangular elements of a 3D real matrix are split into Groups, each group includes indivual The matrix processing unit is divided into diagonal units and off-diagonal units according to its position in the realized Hermite matrix.
[0020] This invention employs the parallel Jacobi algorithm, fully leveraging the parallel computing advantages of FPGA and the Jacobi algorithm. It utilizes the systolic array structure proposed by Brent, Luk, and Van Loand to... The upper triangular elements of a 3D real matrix are split into Groups, each group includes indivual The matrix processing units can be divided into diagonal units and off-diagonal units based on their position in the realized Hermite matrix. Parallel grouping and scheduling rules ensure that units within the same group are not overly diagonal. Jacobi rotations are performed independently and in parallel between the matrix processing units.
[0021] When the number of array elements At that time, the parallel Jacobi grouping is shown in Table 1: Table 1. Parallel Jacobi grouping of 10×10 matrices Step S3: Calculate the rotation matrix of the diagonal and off-diagonal elements based on the elements in the diagonal elements.
[0022] First, calculate the rotation angle using the diagonal elements. The value of is calculated using the following formula: in and diagonal unit The diagonal elements, It is an off-diagonal element; similarly, in off-diagonal units middle, and diagonal elements and This is an off-diagonal element. The rotation matrix corresponding to this diagonal element is: The elements of the rotation matrix corresponding to all diagonal elements are arranged into a matrix according to the rows and columns of the diagonal elements of the diagonal elements, and the other positions are filled with 0, which constitutes the rotation matrix of the entire realized Hermite matrix.
[0023] Step S4: Perform Jacobi rotation operation on a set of matrix processing units, and update the eigenvector matrix according to the rotation matrix.
[0024] Then perform a Jacobi rotation on the diagonal elements according to the following formula: Simultaneously, Jacobi rotation is performed on the off-diagonal elements according to the following formula: Note that the rotation matrix data is transmitted simultaneously to all off-diagonal units so that all units can perform Jacobi rotations and update the eigenvector matrix in parallel. Let the initial eigenvector matrix of the realized Hermite matrix be... ,in for For an identity matrix of order 1, the eigenvectors are updated as follows upon each rotation: in and The eigenvectors of the matrix are respectively the first and second eigenvectors. row and number OK.
[0025] The FPGA implementation structure for each Jacobi rotation is as follows: Figure 2 As shown. The arctangent value is calculated by calling the Arc Tan mode of the CORDIC IP core, thereby obtaining the rotation angle. The sine and cosine values of the rotation angle are calculated by calling the Sin and Cos mode of the CORDIC IP core.
[0026] Step S5: After completing one group of Jacobi rotations, data is exchanged according to the grouping of the parallel Jacobi algorithm, and the Jacobi rotation operations of other groups are executed until... The Jacobi group has completed all rotations, thus completing the first stage of cleaning.
[0027] Specifically, after completing a set of Jacobi rotations, data needs to be exchanged according to the groupings of the parallel Jacobi algorithm, and then the same operation is repeated. Since the number of elements in each group is the same, but the arrangement of the elements is different, in order to save hardware resources, a set of hardware resources is used cyclically. The cleaning process is completed in stages, therefore data exchange at the input and output ends is necessary. Data exchange is performed in groups based on parallel Jacobi matrix decomposition, and the exchange formula is as follows: in , Indicates the first The rotation matrix of the group, and These represent the exchange matrices for the input and output terminals, respectively. Since a set of hardware resources is used cyclically, the remaining... Based on the realized Hermite matrix of the first group, elementary row and column transformations are performed, from which we can obtain... and They are inverses of each other. Similarly, to conserve resources, data exchange does not use matrix multiplication, but instead uses a state machine to directly assign values to registers.
[0028] until Once all Jacobi rotations are completed, the first level of cleaning is finished. To save hardware resources, data exchange operations do not use matrix multiplication; instead, a state machine is used to directly assign values to registers. For a 10th-order matrix, each level of cleaning requires completing the 9 Jacobi rotations shown in Table 1. The input control module swaps the input data according to the new positions of the elements in the group, and the output control module swaps the updated data according to the original positions in the matrix.
[0029] When performing eigenvalue decomposition, multiple levels of sweeping can be performed as needed. The more sweeping stages, the closer the eigenvalue matrix is to the diagonal matrix, resulting in smaller errors. However, this also increases time consumption. The number of sweeping stages can be selected based on actual requirements. To reduce the error of eigenvalue decomposition, this paper adopts the following... Figure 3 The three-stage cleaning structure shown has the same hardware structure for implementation. To save FPGA resources, the three stages of cleaning reuse the same hardware resources.
[0030] like Figure 4 This is the FPGA simulation timing diagram for eigenvalue decomposition, where the module's input is the upper triangular elements r_1_in~r_10_in of a realized Hermite matrix, and the module's output is 10 eigenvalues r_out_final. The eigenvector is set to vec_out_final and the eigenvalue decomposition completion flag is set to evd_flg. The eigenvalue decomposition process takes a total of 1769 clock cycles.
[0031] As shown in Table 2, the eigenvalue simulation results of the computer and FPGA are compared. It can be seen that the simulation results of the FPGA are almost identical to those of the computer. The slight error is mainly due to the limited data range of fixed-point representation. Increasing the data bit width or using floating-point representation will result in higher accuracy.
[0032] Table 2. Eigenvalue Simulation Results for Computers and FPGAs In summary, the FPGA implementation method for Hermite matrix eigenvalue decomposition provided in this embodiment avoids the complexity of complex matrix eigenvalue decomposition by processing the Hermite matrix as a real number, effectively reducing the computational load. This invention utilizes the parallel Jacobi algorithm in the FPGA, fully leveraging the parallel computing advantages of both FPGA and the Jacobi algorithm. Simultaneously, the use of the systolic array structure proposed by Brent, Luk, and Van Loand effectively reduces the number of matrix rotations and improves the real-time performance of the algorithm.
[0033] It should be noted that, in this document, relational terms such as "first" and "second" are used only to distinguish one entity or operation from another, and do not necessarily require or imply any such actual relationship or order between these entities or operations. Furthermore, the terms "comprising," "including," or any other variations thereof are intended to cover non-exclusive inclusion, such that a process, method, article, or apparatus that comprises a list of elements includes not only those elements but also other elements not expressly listed, or elements inherent to such a process, method, article, or apparatus. Without further limitations, an element defined by the phrase "comprising one..." does not exclude the presence of other identical elements in the process, method, article, or apparatus that includes said element.
[0034] In the description of this invention, it should be understood that the terms "center," "height," "thickness," "upper," "lower," "vertical," "horizontal," "top," "bottom," "inner," "outer," "axial," "radial," and "circumferential," etc., indicating orientation or positional relationships, are based on the orientation or positional relationships shown in the accompanying drawings and are only for the convenience of describing the invention and simplifying the description, and do not indicate or imply that the device or element referred to must have a specific orientation, or be constructed and operated in a specific orientation, and therefore should not be construed as a limitation of the invention. In the description of this invention, unless otherwise stated, "a plurality of" means two or more.
[0035] In the description of this invention, unless otherwise explicitly specified and limited, the terms "installation," "connection," "linking," and "fixing" should be interpreted broadly. For example, they can refer to a fixed connection, a detachable connection, or an integral part; they can refer to a mechanical connection or an electrical connection; they can refer to a direct connection or an indirect connection through an intermediate medium; they can refer to the internal communication of two components or the interaction between two components. Those skilled in the art can understand the specific meaning of the above terms in this invention based on the specific circumstances.
[0036] In this invention, unless otherwise explicitly specified and limited, "above" or "below" the second feature can include direct contact between the first and second features, or contact between the first and second features through another feature between them. Furthermore, "above," "over," and "on top" of the second feature includes the first feature directly above or diagonally above the second feature, or simply indicates that the first feature is at a higher horizontal level than the second feature. "Below," "below," and "under" the second feature includes the first feature directly below or diagonally below the second feature, or simply indicates that the first feature is at a lower horizontal level than the second feature.
[0037] Although the present invention has been described in detail through the preferred embodiments above, it should be understood that the above description should not be considered as a limitation of the present invention. Various modifications and substitutions to the present invention will be apparent to those skilled in the art after reading the above description. Therefore, the scope of protection of the present invention should be defined by the appended claims.
Claims
1. A method for FPGA implementation of an eigenvalue decomposition of a Hermite matrix, characterized in that, The method comprises the following steps: On realizing the m-dimensional Hermite matrix to obtain an m-dimensional real matrix; Will The upper triangular elements of a 3D real matrix are split into Groups, each group includes indivual The matrix processing unit is divided into diagonal units and off-diagonal units according to its position in the realized Hermite matrix. calculating a rotation matrix of the diagonal element and the non-diagonal element based on the elements in the diagonal element; performing Jacobi rotation operation on a group of matrix processing units, and updating an eigenvector matrix according to the rotation matrix; After a set of Jacobi rotations is completed, data exchange is performed according to the grouping of the parallel Jacobi algorithm, and Jacobi rotation operations of other groups are executed until After all the group Jacobi rotations are completed, the first level of cleaning is completed.
2. The FPGA implementation method of Hermite matrix eigenvalue decomposition according to claim 1, wherein, the real number processing comprises calculating a real matrix according to the relationship between the Hermite matrix and the eigenvalue and the eigenvector.
3. The FPGA implementation method of Hermite matrix eigenvalue decomposition according to claim 2, wherein, The real number processing comprises: the relationship between the Hermite matrix and the eigenvalue and the eigenvector comprises: where R is a Hermite matrix, is an eigenvector, is an eigenvalue, and R and in complex form, we have wherein is the real part of the matrix is the imaginary part of the matrix is the imaginary part of the matrix is the imaginary part of the matrix written in a matrix form: the Hermite matrix is expressed as acquire a real matrix.
4. The FPGA implementation method of Hermite matrix eigenvalue decomposition according to claim 1, wherein, Said to The upper triangular elements of the identity matrix are split into Group, comprising: Based on the systolic array structure proposed by Brent, Luk and Van Loand, the systolic array structure is designed The upper triangular elements of the real matrix are split into groups.
5. The FPGA implementation of the Hermite matrix eigenvalue decomposition method of claim 1, wherein, The method for calculating the rotation matrix of the diagonal element and the non-diagonal element based on the elements in the diagonal element comprises: The rotation angle is calculated by the diagonal elements The value of the rotation angle is calculated by the diagonal elements wherein and are diagonal elements of a diagonal unit , and are off-diagonal elements; based on the formula: corresponding rotation matrix is calculated.
6. The FPGA implementation method of Hermite matrix eigenvalue decomposition according to claim 5, wherein, The calculation of the rotation angle is performed by calling the Arc Tan mode of the CORDIC IP core to calculate the inverse tangent value, thereby obtaining the rotation angle The calculation of the rotation matrix is performed by calling the Sin and Cos mode of the CORDIC IP core to calculate the sine value and the cosine value of the rotation angle, thereby obtaining the rotation matrix.
7. The FPGA implementation of the Hermite matrix eigenvalue decomposition method of claim 1, wherein, The method for performing Jacobi rotation operation on a group of matrix processing units comprises: based on the formula: Jacobi rotation is performed on the diagonal element based on the formula: Jacobi rotation operation is performed on the non-diagonal element.
8. The FPGA implementation method of Hermite matrix eigenvalue decomposition according to claim 1, wherein, The method for updating the eigenvector matrix according to the rotation matrix comprises: based on the formula updating the eigenvector matrix, wherein and are the first row and the first row of the eigenvector matrix, respectively.
9. The FPGA implementation of Hermite matrix eigenvalue decomposition method as claimed in claim 1, wherein, The data exchange directly performs register assignment operation by using a state machine.
10. The FPGA implementation method of Hermite matrix eigenvalue decomposition according to claim 1, wherein, The method further comprises the following steps: multi-stage cleaning is performed based on the expected error, and the more the number of cleaning is, the closer the eigenvalue matrix is to a diagonal matrix.