Hermitian matrix eigenvalue solving method and FPGA solving system thereof

By employing a reduced-QR decomposition method based on double-precision floating-point numbers and a pipelined design, large-scale data parallel computation is achieved, solving the accuracy and resource consumption problems of Hermitian matrix eigenvalue decomposition. This results in fast and high-precision eigenvalue decomposition, suitable for FPGA systems.

CN120994943APending Publication Date: 2025-11-21SOUTHWEST CHINA RES INST OF ELECTRONICS EQUIP
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
CN202510964894.4
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Filing Date
2025-07-14
Publication Date
2025-11-21

AI Technical Summary

Technical Problem

Existing Hermitian matrix eigenvalue decomposition methods are insufficient in terms of accuracy, speed, and hardware adaptability, making it difficult to meet the real-time processing requirements of high-frequency feature space updates, especially in large-scale matrix processing where resource consumption is too high.

Method used

We employ a double-precision floating-point Reduced-QR decomposition method, combined with pipelined design and large-scale data parallel computation. By constructing an orthogonal basis and performing eigenvalue matrix multiplication, we achieve high-precision and fast Hermitian matrix eigenvalue decomposition, thereby reducing hardware resource consumption.

Benefits of technology

A high-precision eigenvalue decomposition of an 8th-order Hermitian matrix within 70µs was achieved at a clock frequency of 200MHz, with an error of less than 10⁻¹⁰, reducing the engineering wiring area and improving processing speed and calculation accuracy.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN120994943A_ABST
    Figure CN120994943A_ABST
Patent Text Reader

Abstract

The invention provides a Hermitian matrix eigenvalue solving method and an FPGA (Field Programmable Gate Array) solving system thereof, relates to the technical field of signal processing, and solves the problem of how to make up defects of a current solving method from multiple aspects such as precision, convergence speed, eigenvalue generation and resource consumption. The method comprises the following steps: constructing m orthogonal bases which are mutually orthogonal from m columns of a Hermitian matrix, combining the m orthogonal bases into an eigenvalue matrix Q and an eigenvector matrix R, and multiplying the eigenvalue matrix Q and the eigenvector matrix R to obtain a new Hermitian matrix; through multiple rounds of iteration, the matrix Q and the matrix R obtained through the last iteration are solving results; the input data in the solving process adopts a double-precision floating-point number form and is kept; during solving, an accumulator is adopted to calculate a complex matrix multiplication result; when the matrixes are multiplied, each matrix element outputs data in a real part and imaginary part alternation mode, and a result is obtained after alternation multiplication is carried out by a plurality of floating-point complex multipliers. According to the method, a high-precision and rapid Hermitian matrix eigenvalue decomposition effect can be realized under the condition of low FPGA (Field Programmable Gate Array) resource consumption.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] This invention relates to the field of signal processing technology, specifically to a method for solving the eigenvalues ​​of a Hermitian matrix based on double-precision floating-point numbers and its FPGA solution system. Background Technology

[0002] Hermitian matrices, as a class of complex matrices with a special structure, have real elements on their main diagonal and satisfy conjugate symmetry on their off-diagonal elements. This mathematical property determines that their eigenvalues ​​must be real numbers, and their eigenvectors are orthogonal. These matrices hold a fundamental position in signal processing, especially in applications such as spectral estimation and beamforming. Their real eigenvalues ​​can intuitively characterize the signal energy distribution, facilitating the division of signal and noise subspaces, thus providing mathematical support for engineering practices such as array signal processing and channel parameter estimation. With the increasing demands for real-time signal processing in modern electronic systems, how to efficiently implement eigenvalue decomposition of Hermitian matrices in hardware architecture has become a key technical challenge.

[0003] Current mainstream eigenvalue decomposition methods mainly fall into two categories: iterative algorithms based on Jacobi rotation and iterative methods based on QR decomposition. The former eliminates off-diagonal elements through successive planar rotation transformations, exhibiting high numerical stability and excellent computational accuracy. However, it suffers from slow convergence due to its serial computation structure, and its computational process requires converting complex matrices into real matrices, increasing computational complexity. In contrast, the QR iterative method decomposes the matrix into the product of an orthogonal matrix and an upper triangular matrix, and gradually approximates the eigenvalues ​​using similarity transformations. Its computational process inherently possesses parallelization characteristics, significantly improving computational efficiency. It can also directly handle complex matrix inputs. However, accumulated rounding errors during iteration can affect eigenvalue accuracy, especially in low signal-to-noise ratio scenarios, potentially impacting the preservation of eigenvector orthogonality.

[0004] In the specific implementation of QR decomposition, three main technical paths are adopted in engineering practice: the GSO (Gram-Schmidt Orthogonalization) method based on orthogonalization definition, the Givens method based on iterative rotation transformation, and the Householder method based on mirror reflection. The GSO method generates the Q matrix through column-by-column orthogonalization, exhibiting good real-time performance advantages in small-scale matrix operations. During its iteration, the eigenvector matrix is ​​updated synchronously with each orthogonalization, facilitating dynamic adjustment of the iteration count to balance accuracy and time consumption according to actual needs. However, this method is highly sensitive to numerical errors, limiting its application in high-dimensional data processing. The Givens rotation method uses a planar rotation transformation matrix to nullify specific elements, exhibiting localized computational units, making it suitable for sparse matrix processing. However, its computational complexity increases with the square of the matrix dimension, leading to a significant increase in hardware resource consumption. The Householder method achieves matrix triangulation by constructing reflection vectors, and a single-step transformation can complete the nullification of multiple elements, demonstrating significant computational efficiency advantages. However, its construction of the reflection matrix involves vector norm calculations, placing high demands on floating-point arithmetic units.

[0005] In summary, existing technical solutions each have their own strengths in terms of accuracy, speed, and hardware adaptability in eigenvalue decomposition, but a universal solution that balances multiple performance metrics has not yet been formed. For real-time processing scenarios requiring frequent updates to the feature space, improving computational throughput while ensuring eigenvalue calculation accuracy and reducing the hardware complexity of complex domain operations remains a critical technical bottleneck that needs to be overcome by those skilled in the art. Furthermore, with the emergence of new applications such as smart antennas and MIMO communication that demand large-scale matrix processing, the limitations of traditional algorithm architectures in terms of scalability and energy efficiency are becoming increasingly apparent, further driving the continuous optimization and innovation of Hermitian matrix eigenvalue decomposition methods. Summary of the Invention

[0006] Based on the advantages and disadvantages of existing methods, the purpose of this invention is to address the shortcomings of current Hermitian matrix eigenvalue decomposition methods in terms of accuracy, convergence speed, eigenvalue generation, and resource consumption. Therefore, this invention proposes a Hermitian matrix eigenvalue decomposition method based on double-precision floating-point numbers and its FPGA solution system. This invention is a double-precision GSO Reduced-QR decomposition method, possessing advantages such as fast convergence speed and high parallelism. In terms of accuracy, it ensures the precision of the eigenvalue decomposition results by using double-precision floating-point numbers as the computational unit. Furthermore, through pipelined design, large-scale data parallel computation, and efficient resource reuse, it achieves high-precision and fast Hermitian matrix eigenvalue decomposition results with low FPGA resource consumption.

[0007] The present invention employs the following technical solutions to achieve its objective: A method for solving the eigenvalues ​​of a Hermitian matrix based on double-precision floating-point numbers includes: obtaining the Hermitian matrix whose eigenvalues ​​are to be solved; constructing m mutually orthogonal bases from the m columns of the Hermitian matrix; selecting the first column of the Hermitian matrix to construct the first orthogonal base; subtracting the portion parallel to the first orthogonal base from the terms of the second column of the Hermitian matrix; and constructing the second orthogonal base based on the remaining portion perpendicular to the first orthogonal base; and so on, after constructing all m orthogonal bases, combining them to form the eigenvalue matrix Q and eigenvector matrix R corresponding to the Hermitian matrix, and performing matrix multiplication to obtain a new Hermitian matrix; after multiple iterations, the eigenvalue matrix Q and eigenvector matrix R obtained in the last iteration are the solution result of the Hermitian matrix whose eigenvalues ​​are to be solved. For the Hermitian matrix whose eigenvalues ​​are to be solved, the input data is in double-precision floating-point form and this form is maintained during the iterative solution process. During the matrix multiplication operation, an accumulator is used to calculate the complex matrix multiplication result between the eigenvalue matrix Q and the eigenvector matrix R. When the eigenvalue matrix Q and the eigenvector matrix R are multiplied, each matrix element is output with alternating real and imaginary parts, and the corresponding calculation result is obtained after alternating multiplication by multiple floating-point complex multipliers.

[0008] Specifically, the first column of the Hermitian matrix is ​​selected to construct the first orthogonal basis. Specifically, the first column vector a1 of matrix A is selected, thus forming the first orthogonal basis. ;in This represents the conjugate transpose of the first column vector a1. That is, the Euclidean norm of the first column vector a1.

[0009] Specifically, after constructing the first orthogonal basis r1, we continue to select the second column vector a2 of matrix A. The parallel part of the second column vector a2 with the first orthogonal basis r1 is (a2, r1) * r1. Then, we subtract this parallel part from the second column vector a2. The perpendicular part of the obtained second column vector a2 with the first orthogonal basis r1 is constructed in the same way as when constructing the first orthogonal basis, to obtain the second orthogonal basis r2. This process is repeated to complete the construction of all m orthogonal bases.

[0010] Preferably, when using an accumulator to calculate the result of complex matrix multiplication, addition and subtraction operations are performed on the multiplication results of the real part and the imaginary part respectively.

[0011] Specifically, two accumulators are used to calculate the result of complex matrix multiplication, where accumulator 1 receives the real part under the switching control of addition / subtraction. Real part, imaginary part The imaginary part is input, and the real part is output after accumulation; accumulator 2 is only configured for addition control and accepts the imaginary part. Real part, real part Input the imaginary part of the data, and output the result of the imaginary part after accumulation.

[0012] Preferably, during the multi-round iteration process, when constructing its i-th orthogonal basis ri in each round of iteration, the inner product between the i-th column of the current Hermitian matrix and all orthogonal bases rj constructed in the current round of iteration is calculated simultaneously, j∈[1,i); when constructing its i-th orthogonal basis ri in each round of iteration, the portion parallel to all orthogonal bases rj constructed in the current round of iteration is subtracted in turn.

[0013] Preferably, the method for solving the eigenvalues ​​of a Hermitian matrix according to claim 1 is characterized in that: both the eigenvalue matrix Q and the eigenvector matrix R are m-row m-column matrices; when multiplying the two, the following data are read from matrix Q / R: data in the order of row 1 to row m, with alternating real and imaginary parts of each matrix element, and data in the order of row 1 to row m, with alternating real and imaginary parts of each matrix element; correspondingly, the following data are read from matrix R / Q: data in the order of column 1 to column m, with alternating real and imaginary parts of each matrix element, and data in the order of column m to column 1; multiple floating-point complex multipliers are used to alternately multiply the read data to obtain the corresponding calculation result.

[0014] This invention also provides an FPGA-based solution system for solving Hermitian matrix eigenvalues. This system, designed based on an FPGA architecture, is used to implement the Hermitian matrix eigenvalue solution method of claim 1, comprising: RAM1 is used to store the Hermitian matrix of the eigenvalues ​​to be solved and the new Hermitian matrix obtained after each iteration. RAM2 is used to store multiple orthogonal basis data constructed during each iteration. The parallel part calculation module is used to determine the parallel part of the i-th column of the current Hermitian matrix with all the orthogonal bases rj that have been constructed in the current iteration when constructing its i-th orthogonal basis ri in each iteration, and at the same time provide the corresponding data of the eigenvector matrix R; The subtraction module is used to subtract the parallel parts of all orthogonal bases rj already constructed in the current iteration from the i-th column of the current Hermitian matrix when constructing its i-th orthogonal basis ri in each iteration. The orthogonal basis calculation module is used to construct the first orthogonal basis r1 in the current iteration; and when constructing the i-th orthogonal basis ri in the current iteration, it constructs the i-th orthogonal basis ri in the same way as constructing the first orthogonal basis r1 in the current iteration, based on the output of the subtraction module. The module for multiplying m-order complex matrices is used to obtain a new Hermitian matrix by performing matrix multiplication on the eigenvector matrix R obtained by combining corresponding data and the eigenvalue matrix Q obtained by combining all m orthogonal basis data constructed in the current iteration. In the last iteration, the module outputs the combined eigenvalue matrix Q and eigenvector matrix R as the solution result of the Hermitian matrix of the eigenvalues ​​to be solved.

[0015] Preferably, the m-order complex matrix multiplication module includes two accumulators, which are used together to calculate the complex matrix multiplication result between the eigenvalue matrix Q and the eigenvector matrix R; wherein, accumulator 1 is used to accept the real part under the addition / subtraction switching control. Real part, imaginary part The imaginary part is input, and the real part is output after accumulation; accumulator 2 is used only when addition control is configured to accept the imaginary part. Real part, real part Input the imaginary part of the data, and output the result of the imaginary part after accumulation.

[0016] Preferably, the m-order complex matrix multiplication module includes multiple floating-point complex multipliers, each of which is used to alternately multiply the read data to obtain the corresponding calculation result; the read data is as follows: Both the eigenvalue matrix Q and the eigenvector matrix R are m-row m-column matrices. Data is read from matrix Q / R in the order of row 1 to row m, alternating between the real and imaginary parts of each matrix element; and data is read from matrix R / Q in the order of column 1 to column m, alternating between the real and imaginary parts of each matrix element.

[0017] In summary, due to the adoption of this technical solution, the beneficial effects of this invention are as follows: This invention addresses the requirements of high performance and low resource consumption for Hermitian matrix eigenvalue decomposition in engineering practice. The proposed method, at a clock frequency of 200MHz, controls the resource consumption of DSP, LUT, REG, BRAM, etc., within the resource range of a Xilinx 7 series FPGA when performing eigenvalue decomposition on an 8th-order Hermitian matrix, achieving a processing time of less than 70µs and an error of less than 10. -10 The fast and high-precision eigenvalue decomposition calculation effect.

[0018] Compared with existing technologies, this invention reduces the layout area of ​​the project due to its pipelined design and module reuse, resulting in significant optimization of routing space. The operating frequency of the FPGA project can be increased from 100MHz to 200MHz under this method, thus halving the eigenvalue decomposition processing time. Furthermore, because this invention uses double-precision floating-point numbers, the calculation precision is increased from 10... -6 Increased to 10 -10 . Attached Figure Description

[0019] The present invention is further described in detail with reference to the following figures, which include four figures as follows: Figure 1 This is a schematic diagram of the operation flow of the method of the present invention; Figure 2 This is a schematic diagram illustrating the module division and implementation flow of the FPGA solving system of the present invention; Figure 3 This is a schematic diagram of the accumulator pipeline operation process in this invention; Figure 4 This is a schematic diagram of the efficient parallel computing process for large-scale data in this invention. Detailed Implementation

[0020] To make the objectives, technical solutions, and advantages of the embodiments of the present invention clearer, the technical solutions of the embodiments of the present invention will be clearly and completely described below with reference to the accompanying drawings. Obviously, the described embodiments are only some embodiments of the present invention, and not all embodiments. The components of the embodiments of the present invention described and shown in the accompanying drawings can generally be arranged and designed in various different configurations.

[0021] Therefore, the following detailed description of the embodiments of the invention provided in the accompanying drawings is not intended to limit the scope of the claimed invention, but merely to illustrate selected embodiments of the invention. All other embodiments obtained by those skilled in the art based on the embodiments of the invention without inventive effort are within the scope of protection of the invention.

[0022] Example 1 A method for solving the eigenvalues ​​of Hermitian matrices based on double-precision floating-point numbers can be found here. Figure 1As illustrated, this method first obtains the Hermitian matrix of the eigenvalues ​​to be solved, and constructs m mutually orthogonal bases from the m columns of the Hermitian matrix. After selecting the first column of the Hermitian matrix to construct the first orthogonal base, the terms of the second column of the Hermitian matrix are subtracted from the parts parallel to the first orthogonal base, and the remaining parts perpendicular to the first orthogonal base are used to construct the second orthogonal base. After constructing all m orthogonal bases in this way, they are combined to form the eigenvalue matrix Q and eigenvector matrix R corresponding to the Hermitian matrix, and matrix multiplication is performed to obtain the new Hermitian matrix. After multiple iterations, the eigenvalue matrix Q and eigenvector matrix R obtained in the last iteration are the solution to the Hermitian matrix of the eigenvalues ​​to be solved.

[0023] The above method is based on the Reduced-QR decomposition method, but in FPGA implementations, it is usually performed using single-precision floating-point numbers. This embodiment converts the input single-precision floating-point number (32-bit) to a double-precision floating-point number (64-bit) for calculation. Compared to single-precision floating-point arithmetic, this significantly reduces the computational error (e.g., <10). -10 The required number of iterations is as follows: Double-precision floating-point operations require only 4 iterations to meet the required accuracy, while single-precision floating-point operations require more than 12 iterations. However, double-precision floating-point operation IPs consume significant resources and have high processing latency. This embodiment will further explain how to optimize the process design to reduce the performance impact of using double-precision floating-point operations.

[0024] Given that the data used in the method involves double-precision floating-point IP resources and has a large latency, this embodiment mitigates the above-mentioned impacts through pipelined design, large-scale data parallel computing, and efficient reuse of FPGA resources.

[0025] See also Figure 3 As illustrated, this embodiment uses an accumulator to calculate the results of complex matrix multiplication. When multiplying complex matrices, addition and subtraction operations are required on the multiplication results of the real and imaginary parts. Compared to calling multiple double-precision floating-point addition and subtraction IPs, using an accumulator for pipelined computation not only saves DSP resources but also improves operational efficiency.

[0026] In this embodiment, the application of the Reduced-QR decomposition method relies heavily on the results of previous operations. Based on this characteristic, overall computational performance can be improved through method flow design; for example, during the operation of a certain eigenvalue, the inner product operation in the generation of an orthogonal basis corresponding to a previous eigenvalue can be calculated; during the generation of the minuend of an orthogonal basis, the subtraction of a previous orthogonal basis can be calculated, etc. Simulation experiments show that this efficient reuse design consumes less computation time than the sequential Reduced-QR decomposition method.

[0027] See also Figure 4 The method involves multiplying m-order matrices. To balance resource consumption and computational performance, this embodiment employs a large-scale, efficient parallel computing approach. Both the eigenvalue matrix Q and the eigenvector matrix R are m-row, m-column matrices. When multiplying them, data is read from matrix Q / R: alternating real and imaginary parts of each matrix element in the order of row 1 to row m, and alternating real and imaginary parts of each matrix element in the order of row 1 to row m. Similarly, data is read from matrix R / Q: alternating real and imaginary parts of each matrix element in the order of column 1 to column m, and alternating real and imaginary parts of each matrix element in the order of column m to column 1. Multiple floating-point complex multipliers are used to alternately multiply the read data to obtain the corresponding calculation result. After multiplying the read data, the order of assignment of the product matrix can be used for auxiliary control, thereby saving resources and quickly obtaining the product of two m-order matrices.

[0028] After multiple iterations, the eigenvalue matrix Q and eigenvector matrix R obtained by decomposing the Hermitian matrix will gradually approximate the eigenvalues ​​and eigenvectors of the Hermitian matrix to be solved. The overall execution process of this method can maintain good accuracy and processing speed, achieving a balance between various factors.

[0029] Example 2 Based on Example 1, this example provides an optimized introduction to the details of the method for solving the eigenvalues ​​of Hermitian matrices.

[0030] In this embodiment, an 8th-order Hermitian matrix is ​​used as an example. The first column of the Hermitian matrix is ​​selected to construct the first orthogonal basis. Specifically, the first column vector a1 of matrix A is selected, and then the first orthogonal basis is... ;in This represents the conjugate transpose of the first column vector a1. That is, the Euclidean norm of the first column vector a1.

[0031] Following the construction of the first orthogonal basis r1, the second column vector a2 of matrix A is selected. The parallel part of the second column vector a2 with the first orthogonal basis r1 is (a2, r1) * r1. The second column vector a2 is then subtracted from this parallel part. The perpendicular part of the second column vector a2 with the first orthogonal basis r1 is constructed in the same way as when constructing the first orthogonal basis, thus obtaining the second orthogonal basis r2.

[0032] For the third orthogonal basis r3, we select the third column vector a3 of matrix A. Similarly, we need to determine the parallel portions of the third column vector a3 with the first orthogonal basis r1 and the second orthogonal basis r2, subtract them, and then use the same method as when constructing the first orthogonal basis to construct the third orthogonal basis r3. This process is repeated to complete the construction of all eight orthogonal bases.

[0033] In this embodiment, as Figure 3 As shown, the method uses two accumulators to calculate the result of complex matrix multiplication, where accumulator 1 receives the real part under the addition / subtraction switching control. Real part, imaginary part The imaginary part is input, and the real part is output after accumulation; accumulator 2 is only configured for addition control and accepts the imaginary part. Real part, real part Input the imaginary part of the data, and output the result of the imaginary part after accumulation.

[0034] In this embodiment, the computational process related to orthogonal bases can be optimized and summarized in terms of workflow. Considering that functional modules should be reused as efficiently as possible during the final FPGA implementation, and the data requirements of the computation process itself, in the multi-round iteration process, when constructing its i-th orthogonal base ri in each round of iteration, the inner product between the i-th column of the current Hermitian matrix and all orthogonal bases rj constructed in the current round of iteration is calculated simultaneously, j∈[1,i). Based on the aforementioned content of parallel subtraction, when constructing its i-th orthogonal base ri in each round of iteration, the part parallel to all orthogonal bases rj constructed in the current round of iteration is subtracted in turn.

[0035] In this embodiment, both the eigenvalue matrix Q and the eigenvector matrix R are 8x8 matrices. When multiplying them, the following data is read from matrix Q / R: data with alternating real and imaginary parts of each matrix element in the order of row 1 to row 8, and data with alternating real and imaginary parts of each matrix element in the order of row 1 to row 8. Correspondingly, the following data is read from matrix R / Q: data with alternating real and imaginary parts of each matrix element in the order of column 1 to column 8, and data with alternating real and imaginary parts of each matrix element in the order of column 8 to column 1. The read data is then multiplied alternately using four floating-point complex multipliers to obtain the corresponding calculation result.

[0036] like Figure 4 As shown, its 8th-order complex matrix A can be represented by the eigenvector matrix R, and the corresponding 8th-order complex matrix B represents the eigenvalue matrix Q; specifically, the data read by the four floating-point complex multipliers is as follows: Floating-point complex multiplier A: Data in rows 1 to 8 of matrix A with alternating real and imaginary parts, and data in columns 1 to 8 of matrix B with alternating real and imaginary parts; Floating-point complex multiplier B: Data in rows 1 to 8 of matrix A with alternating real and imaginary parts, and data in columns 8 to 1 of matrix B with alternating real and imaginary parts; Floating-point complex multiplier C: Data in rows 1 to 8 of matrix A with alternating real and imaginary parts, and data in columns 1 to 8 of matrix B with alternating real and imaginary parts; The floating-point complex multiplier D contains data from rows 1 to 8 of matrix A, which alternate between real and imaginary parts, and data from column 8 to column 1 of matrix B, which alternate between real and imaginary parts.

[0037] Example 3 Based on Embodiment 1 or 2, this embodiment provides an FPGA-based solution system for solving Hermitian matrix eigenvalues. This system is designed based on an FPGA architecture and is used to implement the Hermitian matrix eigenvalue solving method in Embodiment 1 or 2. Figure 2 As shown, the system includes: RAM1 is used to store the Hermitian matrix of the eigenvalues ​​to be solved and the new Hermitian matrix obtained after each iteration. RAM2 is used to store multiple orthogonal basis data constructed during each iteration. The parallel part calculation module is used to determine the parallel part of the i-th column of the current Hermitian matrix with all the orthogonal bases rj that have been constructed in the current iteration when constructing its i-th orthogonal basis ri in each iteration, and at the same time provide the corresponding data of the eigenvector matrix R; The subtraction module is used to subtract the parallel parts of all orthogonal bases rj already constructed in the current iteration from the i-th column of the current Hermitian matrix when constructing its i-th orthogonal basis ri in each iteration. The orthogonal basis calculation module is used to construct the first orthogonal basis r1 in the current iteration; and when constructing the i-th orthogonal basis ri in the current iteration, it constructs the i-th orthogonal basis ri in the same way as constructing the first orthogonal basis r1 in the current iteration, based on the output of the subtraction module. The module for multiplying m-order complex matrices is used to obtain a new Hermitian matrix by performing matrix multiplication on the eigenvector matrix R obtained by combining corresponding data and the eigenvalue matrix Q obtained by combining all m orthogonal basis data constructed in the current iteration. In the last iteration, the module outputs the combined eigenvalue matrix Q and eigenvector matrix R as the solution result of the Hermitian matrix of the eigenvalues ​​to be solved.

[0038] As a preferred embodiment of this example, Figure 3 As shown, the m-order complex matrix multiplication module includes two accumulators, which are used together to calculate the complex matrix multiplication result between the eigenvalue matrix Q and the eigenvector matrix R; wherein, accumulator 1 is used to accept the real part under the addition / subtraction switching control. Real part, imaginary part The imaginary part is input, and the real part is output after accumulation; accumulator 2 is used only when addition control is configured to accept the imaginary part. Real part, real part Input the imaginary part of the data, and output the result of the imaginary part after accumulation.

[0039] As a preferred embodiment of this example, Figure 4 As shown, the m-order complex matrix multiplication module includes multiple floating-point complex multipliers. Each floating-point complex multiplier is used to alternately multiply the read data to obtain the corresponding calculation result; the read data is as follows: Both the eigenvalue matrix Q and the eigenvector matrix R are m-row m-column matrices. Data is read from matrix Q / R in the order of row 1 to row m, alternating between the real and imaginary parts of each matrix element; and data is read from matrix R / Q in the order of column 1 to column m, alternating between the real and imaginary parts of each matrix element.

[0040] Based on the above embodiments, this invention conducted a comprehensive simulation of the method's implementation on an FPGA in simulation software. The final resource consumption was as follows: DSP consumption 262, LUT consumption 42097, REG consumption 45731, and BRAM consumption 15. Further simulation of engineering applications revealed that the final processing time for an 8th-order Hermitian matrix was 65.5µs, with a calculation error of less than 10. -10 .

Claims

1. A method for solving the eigenvalues ​​of a Hermitian matrix based on double-precision floating-point numbers, characterized in that: Obtain the Hermitian matrix of the eigenvalues ​​to be solved, and construct m mutually orthogonal bases from the m columns of the Hermitian matrix; After constructing the first orthogonal basis by selecting the first column of the Hermitian matrix, subtract the parts parallel to the first orthogonal basis from the terms of the second column of the Hermitian matrix. Based on the remaining parts perpendicular to the first orthogonal basis, construct the second orthogonal basis. After constructing all m orthogonal bases in this way, combine them to obtain the eigenvalue matrix Q and eigenvector matrix R corresponding to the Hermitian matrix. Perform matrix multiplication to obtain the new Hermitian matrix. After multiple iterations of the above method, the eigenvalue matrix Q and eigenvector matrix R obtained in the last iteration are the solution to the Hermitian matrix of the eigenvalues ​​to be solved. For the Hermitian matrix whose eigenvalues ​​are to be solved, the input data is in double-precision floating-point form and this form is maintained during the iterative solution process. During the matrix multiplication operation, an accumulator is used to calculate the complex matrix multiplication result between the eigenvalue matrix Q and the eigenvector matrix R. When the eigenvalue matrix Q and the eigenvector matrix R are multiplied, each matrix element is output with alternating real and imaginary parts, and the corresponding calculation result is obtained after alternating multiplication by multiple floating-point complex multipliers.

2. The method for solving the eigenvalues ​​of a Hermitian matrix according to claim 1, characterized in that, The first orthogonal basis is constructed by selecting the first column of the Hermitian matrix, specifically by selecting the first column vector a1 of matrix A. ;in This represents the conjugate transpose of the first column vector a1. That is, the Euclidean norm of the first column vector a1.

3. The method for solving the eigenvalues ​​of a Hermitian matrix according to claim 2, characterized in that: After constructing the first orthogonal basis r1, we continue to select the second column vector a2 of matrix A. The parallel part of the second column vector a2 with the first orthogonal basis r1 is (a2, r1) * r1. Then, we subtract this parallel part from the second column vector a2. The perpendicular part of the obtained second column vector a2 with the first orthogonal basis r1 is constructed in the same way as when constructing the first orthogonal basis, to obtain the second orthogonal basis r2. We continue in this way to complete the construction of all m orthogonal bases.

4. The method for solving the eigenvalues ​​of a Hermitian matrix according to claim 1, characterized in that: When using an accumulator to calculate the result of complex matrix multiplication, addition and subtraction operations are performed on the multiplication results of the real and imaginary parts respectively.

5. The method for solving the eigenvalues ​​of a Hermitian matrix according to claim 4, characterized in that: Two accumulators are used to calculate the result of complex matrix multiplication, where accumulator 1 receives the real part under the switching control of addition / subtraction. Real part, imaginary part The imaginary part is input, and the real part is output after accumulation; accumulator 2 is only configured for addition control and accepts the imaginary part. Real part, real part Input the imaginary part of the data, and output the result of the imaginary part after accumulation.

6. The method for solving the eigenvalues ​​of a Hermitian matrix according to claim 1, characterized in that: During the multi-round iteration, when constructing its i-th orthogonal basis ri in each round of iteration, the inner product between the i-th column of the current Hermitian matrix and all orthogonal bases rj constructed in the current round of iteration is calculated simultaneously, j∈[1,i); when constructing its i-th orthogonal basis ri in each round of iteration, the part parallel to all orthogonal bases rj constructed in the current round of iteration is subtracted in turn.

7. The method for solving the eigenvalues ​​of a Hermitian matrix according to claim 1, characterized in that: Both the eigenvalue matrix Q and the eigenvector matrix R are m-row m-column matrices. When they are multiplied, the following data is read from matrix Q / R: the real and imaginary parts of each matrix element are output alternately in the order of row 1 to row m, and the imaginary and real parts of each matrix element are output alternately in the order of row 1 to row m. Correspondingly, the following data is read from matrix R / Q: the real and imaginary parts of each matrix element are output alternately in the order of column 1 to column m, and the real and imaginary parts of each matrix element are output alternately in the order of column m to column 1. Multiple floating-point complex multipliers are used to alternately multiply the read data to obtain the corresponding calculation result.

8. An FPGA solution system for solving Hermitian matrix eigenvalues, characterized in that, This system, based on an FPGA architecture, is used to implement the Hermitian matrix eigenvalue solving method as described in claim 1, comprising: RAM1 is used to store the Hermitian matrix of the eigenvalues ​​to be solved and the new Hermitian matrix obtained after each iteration. RAM2 is used to store multiple orthogonal basis data constructed during each iteration. The parallel part calculation module is used to determine the parallel part of the i-th column of the current Hermitian matrix with all the orthogonal bases rj that have been constructed in the current iteration when constructing its i-th orthogonal basis ri in each iteration, and at the same time provide the corresponding data of the eigenvector matrix R; The subtraction module is used to subtract the parallel parts of all orthogonal bases rj already constructed in the current iteration from the i-th column of the current Hermitian matrix when constructing its i-th orthogonal basis ri in each iteration. The orthogonal basis calculation module is used to construct the first orthogonal basis r1 in the current iteration; and when constructing the i-th orthogonal basis ri in the current iteration, it constructs the i-th orthogonal basis ri in the same way as constructing the first orthogonal basis r1 in the current iteration, based on the output of the subtraction module. The module for multiplying m-order complex matrices is used to obtain a new Hermitian matrix by performing matrix multiplication on the eigenvector matrix R obtained by combining corresponding data and the eigenvalue matrix Q obtained by combining all m orthogonal basis data constructed in the current iteration. In the last iteration, the module outputs the combined eigenvalue matrix Q and eigenvector matrix R as the solution result of the Hermitian matrix of the eigenvalues ​​to be solved.

9. The FPGA solving system according to claim 8, characterized in that: The m-order complex matrix multiplication module includes two accumulators, which work together to calculate the complex matrix multiplication result between the eigenvalue matrix Q and the eigenvector matrix R; accumulator 1 is used to receive the real part under addition / subtraction switching control. Real part, imaginary part The imaginary part is input, and the real part is output after accumulation; accumulator 2 is used only when addition control is configured to accept the imaginary part. Real part, real part Input the imaginary part of the data, and output the result of the imaginary part after accumulation.

10. The FPGA solving system according to claim 8, characterized in that: The m-order complex matrix multiplication module includes multiple floating-point complex multipliers. Each floating-point complex multiplier is used to alternately multiply the read data to obtain the corresponding calculation result; the read data is as follows: Both the eigenvalue matrix Q and the eigenvector matrix R are m-row m-column matrices. Data is read from matrix Q / R in the order of row 1 to row m, alternating between the real and imaginary parts of each matrix element; and data is read from matrix R / Q in the order of column 1 to column m, alternating between the real and imaginary parts of each matrix element.