results from removing the ith row and jth column of A. It’stIMEf A is a square matrix then the minor of a(i,j) ,(i,j) , is the determinant of the submatrix thatim - Definition 1 denoted by Definition 2- if A is a square matrix then the cofactor of a(i,j), denoted by C(i,j), is the number (-1)i+j *M(i,j) tO BRING the minor 3x3 determinants can be calculated as: tiplications from twelve to nine. once the cofactor matrix C(i,j) is ANALOG-Using this equation, we reduce the number of complex mul computed, the result is used to calculate the determinant of A. in our case, A is 4x4 a complex matrix. Theorem 1: if A is a matrix. TOGETHER.det(A) = a(i,1)C(i,1) + a(i,2)C(i,2) + ... + a(i,n)C(i,n) •Choose any row, say row i, then, •Choose any column, say column j, then, det(A) = a(1,j)C(1,j) + a(2,j)C(2,j) + ... + a(n,j)C(n,j) Fixed point and optimizations considerations We assume that the input matrix elements are complex rep- resented in fixed point Q15, and that the matrix is fully scaled, that is; the maximum element value is in the range 0.5 to 1. The output matrix elements may be larger than 1. Thus, a scaling factor is calculated. mixed precision complex multiplication of 16-bit (Q15) by 32-bit (Q31) is used in order to improve preci- sion. Complex matrix inversion implementation Cofactor calculation From eq. 3, we can see that each minor element is calcu- lated in three parts. a(ei - hf) + d(hc - bi) + g(bf - ec) Notice that the minor calculation of M(i,1) and M(i,2) uses the same matrix elements except for the first column. Similarly, m(i,3) and m(i,4) use the same matrix elements except for the last column. thus, calculation of two minor elements requires six 16x16 complex multiplications and six 32x16 complex MAC. The code of example 4 calculates the first part of the first two minor elements: a0(ei – hf) and a1(ei –hf). The appendix provides floating-point MATLAB code for comparison and test- ing purposes. to use the 4 DmUs, we calculate one row at a time (i.e., all minors for the same removed row.) each row requires twelve 16x16 complex multiplications and twelve 32x16 complex mACs. the data loading is done by the address generation unit in parallel to the data arithmetic-logic. to avoid the transpose operation, we calculate the cofactor values column by column and write the output row by row. After we calculate the first cofactor column, we calculate the determi- nant using theorem 1 (choosing the first column): www.electronics-eetimes.
EETE OCTOBER 2012
To see the actual publication please follow the link above