fixed.jacobiSVD
Description
returns a vector containing the singular values of matrix
S
= fixed.jacobiSVD(A
)A
in descending order.
[___] = fixed.jacobiSVD(___,
performs numberOfSweeps
)numberOfSweeps
Jacobi iterations. If
numberOfSweeps
is not supplied, the default is 10.
Examples
Input Arguments
Output Arguments
Tips
The
fixed.jacobiSVD
function generates an economy sized vector output of the singular value decomposition.[U,s,V] = fixed.jacobiSVD(A)
produces a vectors
and unitary matricesU
andV
such that the dimensions ofU
,s
andV
are the same as the dimensions ofsvd
with the"econ"
and"vector"
flags:[U,s,V] = svd(A,"econ","vector")
.The behavior of the Square Jacobi SVD HDL Optimized block is equivalent to
[U,s,V] = fixed.jacobiSVD(A)
. Thefixed.JacobiSVD
function uses the same algorithm as the Square Jacobi SVD HDL Optimized block, with the same output data types. However, small numerical differences may exist in the least significant bit between the function and the block.
Algorithms
The fixed.jacobiSVD
function uses the two-sided Jacobi algorithm for
singular value decomposition (SVD) [1][2][3]. Compared to the
sequential Golub-Kahan-Reinsch algorithm for SVD [4], the Jacobi algorithm
has inherent parallelism and performs better for FPGA and ASIC applications [5]. The Jacobi method is
an iterative algorithm. The numberOfSweeps parameter determines the number of iterations performed. Most
sources indicate that 10 iterations is sufficient for the Jacobi algorithm to converge.
References
[1] Jacobi, Carl G. J. “Über ein leichtes Verfahren die in der Theorie der Säcularstörungen vorkommenden Gleichungen numerisch aufzulösen.” Journal fur die reine und angewandte Mathematik 30 (1846): 51–94.
[2] Forsythe, George E., and Peter Henrici. “The Cyclic Jacobi Method for Computing the Principal Values of a Complex Matrix.” Transactions of the American Mathematical Society 94, no. 1 (January 1960): 1–23. https://doi.org/10.1090/S0002-9947-1960-0109825-2.
[3] Shiri, Aidin and Ghader Khosroshahi. 2019. “An FPGA Implementation of Singular Value Decomposition.” ICEE 2019:27th Iranian Conference on Electrical Engineering, Yazd, Iran, April 30–May 2, 2019, 416–22. IEEE. https://doi.org/10.1109/IranianCEE.2019.8786719.
[4] Golub, Gene H., and Charles F. Van Loan. Matrix Computations, 4th ed. Baltimore, MD: Johns Hopkins University Press, 2013.
[5] Athi, Mrudula V., Seyed R. Zekavat, and Allan A. Struthers. “Real-Time Signal Processing of Massive Sensor Arrays via a Parallel Fast Converging SVD Algorithm: Latency, Throughput, and Resource Analysis.” IEEE Sensors Journal 16, no. 8 (January 2016): 2519–26.https://doi.org/10.1109/JSEN.2016.2517040.
Extended Capabilities
Version History
Introduced in R2023a