IP Library Granted Patent US 9,201,849
Granted Patent B2
US 9,201,849 · App. 13/865,357 · Granted Dec 1, 2015

Implementing modified QR decomposition in hardware

View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 9,201,849
App. No.
13/865,357
Granted
Dec 1, 2015
Kind
B2
Abstract

System and method for computing QR matrix decomposition and inverse matrix R −1 . A circuit is configured to implement a QR decomposition of a matrix A into two matrices Q and R using a Modified Gram Schmidt (MGS) process. The circuit includes a specified portion dedicated to computing matrix Q. Matrix Q is computed via the specified portion based on first inputs using the MGS process, where the first inputs include the matrix A and possibly a scaling factor σ. The identity matrix may be scaled by the scaling factor σ, thereby generating scaled identity matrix σI. Scaled matrix σR −1 (or unscaled R −1 ) may be computed via the specified portion based on second inputs provided to the portion using the MGS process, where the second inputs include the (possibly scaled) identity matrix. If scaled, the scaled matrix σR −1 may be unscaled, thereby computing matrix R −1 . Matrix R −1 is stored and/or output.

Claims (110)

1. A circuit, configured to implement a QR decomposition of a matrix A into two matrices Q and R using a Modified Gram Schmidt (MGS) process, wherein Q represents an orthonormal basis that spans a column space of A, and wherein R is a triangular matrix, the circuit comprising:

an input;

a specified set of hardware components, coupled to the input, wherein the specified set of hardware components are dedicated to computing matrix Q; and

an output;

wherein the circuit is configured to:

receive a first set of inputs at the input, wherein the first set of inputs includes the matrix A and a scaling factor σ;

compute matrix Q via the specified set of hardware components dedicated to computing matrix Q, based on the first set of inputs using the MGS process;

scale the identity matrix by the scaling factor σ, thereby generating scaled identity matrix σI;

receive a second set of inputs to the specified set of hardware components dedicated to computing matrix Q, wherein the second set of inputs is different from the first set of inputs, wherein the second set of inputs comprises the scaled identity matrix;

compute scaled matrix σR −1 via the specified set of hardware components dedicated to computing matrix Q, based on the second set of inputs using the MGS process;

unscale the scaled matrix σR −1 , thereby computing matrix R −1 , wherein matrix R −1 is the inverse of matrix R;

output the matrix Q and/or matrix R −1 via the output; and

use the matrix Q and/or matrix R −1 to perform signal estimation on a noisy channel.

2. The circuit of claim 1 , wherein the circuit is further configured to:

compute matrix A −1 based on the matrix R −1 and the matrix Q.

3. The circuit of claim 1 , wherein the circuit is further configured to solve a system of linear equations specified by the expression Ax=b based on the matrix R −1 , the matrix Q, and vector b, and wherein x is a vector.

4. The circuit of claim 3 , wherein in being configured to solve the system of linear equations specified by the expression Ax=b, the circuit is inherently configured to determine an estimated signal s est with a minimum mean square error (MMSE) with respect to an observed signal y on a noisy channel, wherein to determine the estimated signal s est the circuit is configured to:

receive a third set of inputs at the input, wherein the third set of inputs includes a channel matrix H and the scaling factor σ;

scale the identity matrix by the scaling factor σ, thereby generating a scaled identity matrix σI;

extend the channel matrix H with the scaled identity matrix σI, thereby generating extended channel matrix B;

compute matrix Q via the specified set of hardware components dedicated to computing matrix Q, based on the extended matrix B using the MGS process;

divide matrix Q into matrix Q 1 and matrix Q 2 ;

store the matrix Q 1 and matrix Q 2 ;

scale matrix Q 2 by σ, thereby computing Q 2 /σ; and

compute the estimated signal s est based on Q 1 , Q 2 /σ, and the observed signal y; and

output the estimated signal s est .

5. The circuit of claim 1 , wherein the circuit comprises an application specific integrated circuit (ASIC).

6. The circuit of claim 1 , wherein the circuit comprises a programmable hardware element.

7. The circuit of claim 1 , wherein the circuit implements a systolic array to perform the MGS process.

8. The circuit of claim 7 , wherein the systolic array is implemented to perform the MGS process based on one or more of:

a specified throughput requirement; or

a specified footprint requirement.

9. A method, comprising:

providing a circuit, wherein the circuit is configured to implement a QR decomposition of a matrix A into two matrices Q and R using a Modified Gram Schmidt (MGS) process, wherein Q represents an orthonormal basis that spans a column space of A, wherein R is a triangular matrix, and wherein the circuit comprises a specified set of hardware components dedicated to computing matrix Q;

providing a first set of inputs to the circuit, wherein the first set of inputs includes the matrix A and a scaling factor σ;

computing matrix Q via the specified set of hardware components dedicated to computing matrix Q, based on the first set of inputs using the MGS process;

storing the matrix Q;

scaling the identity matrix by the scaling factor σ, thereby generating scaled identity matrix σI;

providing a second set of inputs to the specified set of hardware components dedicated to computing matrix Q, wherein the second set of inputs is different from the first set of inputs, wherein the second set of inputs comprises the scaled identity matrix;

computing scaled matrix σR −1 via the specified set of hardware components dedicated to computing matrix Q, based on the second set of inputs using the MGS process;

unscaling the scaled matrix σR −1 , thereby computing matrix R −1 , wherein matrix R −1 is the inverse of matrix R;

storing the matrix R −1 ; and

using the matrix Q and/or matrix R −1 to perform signal estimation on a noisy channel.

10. The method of claim 9 , wherein the circuit is further configured to compute matrix A −1 based on the matrix R −1 and the matrix Q, the method further comprising:

computing, via the circuit, matrix A −1 based on the matrix R −1 and the matrix Q.

11. The method of claim 9 , wherein the circuit is further configured to solve a system of linear equations specified by the expression Ax=b, wherein x and b are respective vectors, the method further comprising:

solving, via the circuit, the system of linear equations specified by the expression Ax=b to determine x, based on matrix R −1 , the matrix Q, and vector b, and wherein x is a vector.

12. The method of claim 11 , wherein in being configured to solve the system of linear equations specified by the expression Ax=b, the circuit is inherently configured to determine an estimated signal s est with a minimum mean square error (MMSE) with respect to an observed signal y on a noisy channel, the method further comprising:

receiving a third set of inputs at the input, wherein the third set of inputs includes a channel matrix H and the scaling factor σ;

scaling the identity matrix by the scaling factor σ, thereby generating a scaled identity matrix σI;

extending the channel matrix H with the scaled identity matrix σI, thereby generating extended channel matrix B;

computing matrix Q via the specified set of hardware components dedicated to computing matrix Q, based on the extended matrix B using the MGS process;

dividing matrix Q into matrix Q 1 and matrix Q 2 ;

storing the matrix Q 1 and matrix Q 2 ;

scaling matrix Q 2 by σ, thereby computing Q 2 /σ; and

computing the estimated signal s est based on Q 1 , Q 2 /σ, and the observed signal y; and

outputting the estimated signal s est .

13. The method of claim 9 , wherein the circuit comprises an application specific integrated circuit (ASIC).

14. The method of claim 9 , wherein the circuit comprises a programmable hardware element.

15. The method of claim 9 , wherein the circuit implements a systolic array to perform the MGS process.

16. The method of claim 15 , wherein the systolic array is implemented to perform the MGS process based on one or more of:

a specified throughput requirement; or

a specified footprint requirement.

17. A circuit, configured to implement a QR decomposition of a matrix A into two matrices Q and R using a Modified Gram Schmidt (MGS) process, wherein Q represents an orthonormal basis that spans a column space of A, and wherein R is a triangular matrix, the circuit comprising:

an input;

a specified set of hardware components, coupled to the input, wherein the specified set of hardware components are dedicated to computing matrix Q; and

an output;

wherein the circuit is configured to:

receive a first set of inputs at the input, wherein the first set of inputs includes the matrix A;

compute matrix Q via the specified set of hardware components dedicated to computing matrix Q, based on the first set of inputs using the MGS process;

receive a second set of inputs to the specified set of hardware components dedicated to computing matrix Q, wherein the second set of inputs is different from the first set of inputs, wherein the second set of inputs comprises the identity matrix;

compute matrix R −1 via the specified set of hardware components dedicated to computing matrix Q, based on the second set of inputs using the MGS process, wherein matrix R −1 is the inverse of matrix R;

output the matrix Q and/or matrix R −1 via the output; and

use the matrix Q and/or matrix R −1 to perform signal estimation on a noisy channel.

18. The circuit of claim 17 , wherein the circuit is further configured to:

compute matrix A −1 based on the matrix R −1 and the matrix Q.

19. The circuit of claim 17 , wherein the circuit is further configured to solve a system of linear equations specified by the expression Ax=b based on the matrix R −1 , the matrix Q, and vector b, and wherein x is a vector.

20. The circuit of claim 19 , wherein in being configured to solve the system of linear equations specified by the expression Ax=b, the circuit is inherently configured to determine an estimated signal s est with a minimum mean square error (MMSE) with respect to an observed signal y on a noisy channel, wherein to determine the estimated signal s est the circuit is configured to:

receive a third set of inputs at the input, wherein the third set of inputs includes a channel matrix H and a scaling factor σ;

scale the identity matrix by the scaling factor σ, thereby generating a scaled identity matrix σI;

extend the channel matrix H with the scaled identity matrix σI, thereby generating extended channel matrix B;

compute matrix Q via the specified set of hardware components dedicated to computing matrix Q, based on the extended matrix B using the MGS process;

divide matrix Q into matrix Q 1 and matrix Q 2 ;

store the matrix Q 1 and matrix Q 2 ;

scale matrix Q 2 by σ, thereby computing Q 2 /σ; and

compute the estimated signal s est based on Q 1 , Q 2 /σ, and the observed signal y; and

output the estimated signal s est .

21. A method, comprising:

providing a circuit, wherein the circuit is configured to implement a QR decomposition of a matrix A into two matrices Q and R using a Modified Gram Schmidt (MGS) process, wherein Q represents an orthonormal basis that spans a column space of A, wherein R is a triangular matrix, and wherein the circuit comprises a specified set of hardware components dedicated to computing matrix Q;

providing a first set of inputs to the circuit, wherein the first set of inputs includes the matrix A;

computing matrix Q via the specified set of hardware components dedicated to computing matrix Q, based on the first set of inputs using the MGS process;

storing the matrix Q;

providing a second set of inputs to the specified set of hardware components dedicated to computing matrix Q, wherein the second set of inputs is different from the first set of inputs, wherein the second set of inputs comprises the identity matrix;

computing matrix R −1 via the specified set of hardware components dedicated to computing matrix Q, based on the second set of inputs using the MGS process, wherein matrix R −1 is the inverse of matrix R;

storing the matrix R −1 ; and

use the matrix Q and/or matrix R −1 to perform signal estimation on a noisy channel.

22. The method of claim 21 , wherein the circuit is further configured to compute matrix A −1 based on the matrix R −1 and the matrix Q, the method further comprising:

computing, via the circuit, matrix A −1 based on the matrix R −1 and the matrix Q.

23. The method of claim 21 , wherein the circuit is further configured to solve a system of linear equations specified by the expression Ax=b, wherein x and b are respective vectors, the method further comprising:

solving, via the circuit, the system of linear equations specified by the expression Ax=b to determine x, based on matrix R −1 , the matrix Q, and vector b, and wherein x is a vector.

24. The method of claim 23 , wherein in being configured to solve the system of linear equations specified by the expression Ax=b, the circuit is inherently configured to determine an estimated signal s est with a minimum mean square error (MMSE) with respect to an observed signal y on a noisy channel, the method further comprising:

receiving a third set of inputs at the input, wherein the third set of inputs includes a channel matrix H and a scaling factor σ;

scaling the identity matrix by the scaling factor σ, thereby generating a scaled identity matrix σI;

extending the channel matrix H with the scaled identity matrix σ, thereby generating extended channel matrix B;

computing matrix Q via the specified set of hardware components dedicated to computing matrix Q, based on the extended matrix B using the MGS process;

dividing matrix Q into matrix Q 1 and matrix Q 2 ;

storing the matrix Q 1 and matrix Q 2 ;

scaling matrix Q 2 by σ, thereby computing Q 2 /σ; and

computing the estimated signal s est based on Q 1 , Q 2 /σ, and the observed signal y; and

outputting the estimated signal s est .

Assignments (5)
RELEASE OF SECURITY INTEREST IN PATENTS (REEL/FRAME 057280/0028) Recorded Oct 13, 2023
From: WELLS FARGO BANK, NATIONAL ASSOCIATION, AS ADMINISTRATIVE AGENT
To: NATIONAL INSTRUMENTS CORPORATION
Reel/Frame 065231/0466 →
RELEASE OF SECURITY INTEREST IN PATENTS (REEL/FRAME 052935/0001) Recorded Oct 13, 2023
From: WELLS FARGO BANK, NATIONAL ASSOCIATION, AS ADMINISTRATIVE AGENT
To: NATIONAL INSTRUMENTS CORPORATION; PHASE MATRIX, INC.
Reel/Frame 065653/0463 →
SECURITY INTEREST Recorded Jun 18, 2021
From: NATIONAL INSTRUMENTS CORPORATION
To: WELLS FARGO BANK, NATIONAL ASSOCIATION
Reel/Frame 057280/0028 →
SECURITY INTEREST Recorded Jun 14, 2020
From: NATIONAL INSTRUMENTS CORPORATION; PHASE MATRIX, INC.
To: WELLS FARGO BANK, NATIONAL ASSOCIATION
Reel/Frame 052935/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 18, 2013
From: RAO, YONG
To: NATIONAL INSTRUMENTS CORPORATION
Reel/Frame 030241/0561 →