An Efficient QR Decomposition Design for MIMO Systems
1 Jing-Shiun Lin, 2 Yin-Tsung Hwang, 1 Po-Han Chu,
1 Ming-Der Shieh, and 1 Shih-Hao Fang
1 Department of Electrical Engineering, National Cheng Kung University, Tainan, Taiwan
2 Department of Electrical Engineering, National Chung Hsing University,
Taichung, Taiwan
Contents
Introduction
Related Works
Experimental Results Conclusions
Proposed Method
Introduction (1/2)
MIMO system
N t transmit antennas and N r receive antennas
MIMO Detector Input data
Nt
x
x
1n
1Nr
n y
1Nr
y
Estimated Data
ˆx
1Nt
xˆ h
11h
12Transmitter Receiver
Nt
h
11
N
r1 1 1
r r t t r
N N N N N
y H x n
ˆ ML arg min
x
x y Hx
Ω is a possible signal set
Introduction (2/3)
QR decomposition
Q is an unitary matrix
R is an upper-triangle matrix
Q H
Q 1
r t r t t t
N N N N N N
H Q R
11 12 1
21 22 2
1 2
t
t
r r r t
N N
N N N N
q q q
q q q
q q q
Q
11 12 1
22 2
0
0 0
t
t
t t
N N
N N
r r r
r r
r
R
Introduction (3/3)
A MIMO detector solution
2 2
1 1 1
ˆ arg min arg min ' ,
t t t t
Nt Nt
N N N N
i ij j i ij j
x i j x i j i
H
x y h x y r x
where
y' Q y
5
Ω
Ω 1
1
1 Ω
Layer
Ω
1 1 Ω
N t
N t
Layer N t 1
Layer 1
N
ti j
j ij i
i
i x y r x
e
1 1 2
i i
i i
i
i x T x e x
T
Partial Euclidean Distance (PED)
PED Accumulation
ISCAS 2012 - 05/22
Related Methods
Gram-Schmidt method
Use projection principle to construct a new basis
Need extra operation to compute Q H y
Low latency and low throughput
Householder reflection
Find a orthogonal matrix to reflect a column
vector onto a multiple of a standard basis vector
Preserve vector norm
Related Methods
Givens rotation
2-dimension rotation method
High computation parallelism
CORDIC implementation
• Low complexity and high latency
• Pipeline & high throughput
cos sin
sin G cos
2 44 2
43 2
42
2 34 2
33 2
32 2
31
1 24 1
23 1
22
1 14 1
13 1
12 1
11
44 43
42 41
34 33
32 31
24 23
22 21
14 13
12 11
2 2
2 2
1 1
1 1
0 0
cos sin
0 0
sin cos
0 0
0 0
cos sin
0 0
sin cos
h h
h
h h
h h
h h
h
h h
h h
h h
h h
h h
h h
h h
h h
h h
h h
CORDIC
CORDIC (COordinate Rotation DIgital Computer)
Decompose the rotation angle into predefined elementary angles.(iterative)
k k k
k
k k
k k
y x y
x
cos sin
sin cos
1 1
0 1 0
0 1
0
tan 1
tan cos 1
y x y
x
k k
k n k
k k n
k
Let tan(α k )=2 -k , and we give n an iteration number and k = ±1, a direction index.
Rotation operation:
Multi-rotation
0 1 0
0
2 1
2 1
y K x
y x
k k
k k n
k n
n
K is a constant value.
(x(0), y(0)) (x(1), y(1))
(x(2), y(2)) (x(3), y(3))
(x(m), y(m))
45◦ -26.6◦ 14◦
30°
Block-wise Symmetric
Real-value decomposition
Symmetric process
n n x
x H
H
H H
y y
Im Re Im
Re Re
Im
Im Re
Im Re
Re(H) -Im(H)
Im(H) Re(H)
Re(y)
Im(y)
0
y
R
y
Re
y
Im
R Re
R
R Re Im
R
Im 0
0
0
Symmetric process 0
Traditional process
?
Modified Real-valued GR Scheme
( ) ( )
[Re(
k); Im(
k)]
H H H
For c 1 = 1 : N For i 1 = k : N
1 1 1 1
1
, ,
tan ( h
i N ch
i c)
H y | ( , i i
1 1 N , ) H y |
End
2 1 2 1
1
1, ,
tan ( h
i ch
i c)
H y | ( , i i
2 2 1, ) H y |
H y | ( i
2N i ,
2 N 1, ) H y |
If(c 1 < N)
For i 2 = N-1 : c 1
end end end
[Re( ), Im( );Im( ), Re( )]
R H H H H
For c 2 = 1 : N
2 2
2 2
:,1 2 1 : 2 2 1
[ (:, ), (:, 0.5 )]
c c
c c N
R
R R
2 2
2 2
1 2 1 : 2 2 1 ,:
[ ( ,:), ( 0.5 ,:)]
c c
c c N
R
R R
2 2
2 2
ˆ 1 2 1 : 2 2 1 ,:
[ ( ,:), ( 0.5 ,:)]
c c
c c N
Y
y y
end
12 13 14 1
22 23 24 2
32 33 34 3
42 43 44 4
52 53 54 5
62 63
11
2
64 6
72 73 74 7
82 83 84 8
31
41
7 1
6
1
1 1
8 51
0 0 0 0
0 0 0 0
0 0 0 0
0 0 0 0
0 0 0 0
0 0
0 0
0
0 0
0
0 0
0 0 0
0 0 0
0
0 0
0
h h h y
h h h y
h h h y
h h h y
h h h y
h h h
h h
h
y
h h h y
h h h y
h h h h
h
11 12 13 14 1
21 22 23 24 2
31 32 33 34 3
41 42 43 44 4
52 53 54 5
62 63 64 6
72 73 74 7
82 83 84 8
1 1 1 1 1
1 1 1 1 1
1 1 1 1 1
1 1 1 1 1
1 1 1 1
1 1 1 1
1 1 1 1
1 1 1 1
0 0 0 0
h h h h y
h h h h y
h h h h y
h h h h y
h h h y
h h h y
h h h y
h h h y
G(1,5,1) G(2,6,1) G(3,7,1) G(4,8,1)
R(1,5,2) R(2,6,2) R(3,7,2) R(4,8,2)
R(1,5,3) R(2,6,3) R(3,7,3) R(4,8,3)
R(1,5,4) R(2,6,4) R(3,7,4) R(4,8,4)
R(1,5,y) R(2,6,y) R(3,7,y) R(4,8,y)
Example for N t =N r =4
Matrix form Computation schedule
G(i,j,k) is angle generation based on matrix element (i,k) and (j,k)
R(i,j,k) is vector rotation based on matrix elements (i,k) and (j,k)
G(1,2,1) G(3,4,1) R(1,2,2) R(3,4,2)
R(7,8,2) R(5,6,2) R(1,2,3) R(3,4,3)
R(7,8,3) R(5,6,3) R(1,2,4) R(3,4,4)
R(7,8,4) R(5,6,4) R(1,2,y) R(3,4,y)
R(7,8,y) R(5,6,y)
11
21
31
12 13 14 1
22 23 24 2
32 33 34 3
42 43 44 4
53 54 5
63 64
52
62 6
73 74 7
83 84 8
41
72
82
1 1 1 1
1 1 1 1
1 1 1 1
1 1 1 1
1 1 1
1 1 1
1 1 1
1 1
1 1 1 1
1
1 1
1 1
0 0 0 0
h h h y
h h h y
h h h y
h h h y
h h y
h h y
h h y
h h y
h
h h h
h h
h
h
11 12 13 14 1
22 23 24 2
31 32 33 34 3
42 43 44 4
52 53 54 5
82 63 64 6
72 73 74 7
82 83 84 8
2 2 2 2 2
2 2 2 2
2 2 2 2 2
2 2 2 2
2 2 2 2
2 2 2 2
2 2 2 2
2 2 2 2
0
0 0 0 0 0
h h h h y
h h h y
h h h h y
h h h y
h h h y
h h h y
h h h y
h h h y
Example for N t =N r =4
Matrix form Computation schedule
12 13 14 1
22 23 24 2
32 33 34 3
42 43 44 4
53 54 5
82 63 64 6
52
73 74 7
82 11
3
83 8
7 1
8 2
4
2 2 2 2
2 2 2 2
2 2 2 2
2 2 2 2
2 2 2
2 2 2 2
2 2 2
2 2
2 2
2 2
2
2
0
0 0 0 0 0
h h h y
h h h y
h h h y
h h h y
h h y
h h h y
h h y
h h h
h
h
y h
h
12 13 14 1
22 23 24 2
32 33 34 3
42 43 44 4
53 54 5
82 63 64 6
73 74 7
82 83 84 8
7 1
52
2 1
3 3 3 3
2 2 2 2
3 3 3 3
2 2 2 2
3 3 3
2 2 2 2
3 3 3
2 3
2 3
2 3
2
0 0
0 0 0 0 0
h h h y
h h h y
h h h y
h h h y
h h
h
h
y
h h h y
h h y
h h h
h
y
G(1,3,1) R(1,3,2)
R(5,7,2) R(1,3,3)
R(5,7,3) R(1,3,4)
R(5,7,4) R(1,3,y)
R(5,7,y)
Example for N t =N r =4
Matrix form Computation schedule
3
11 12 13 14 1
23 24 2
33 34 3
43 44 4
52 53 54 5
63 6
42
4 6
73 74 7
22
82 2
72
2 84 8
8 83
3 3 3 3 3
2 2 2
3 3 3
2 2 2
3 3 3
2
3
2 2 2
3 3 3
2 2
2 2
2 3 2
3
0 0 0 0 0 0 0
h h h h y
h h y
h h y
h h y
h h
h
h y
h h y
h h y
h h y
h
h h
h
h
11 12 13 14 1
23 24 2
33 34 3
43 44 4
52 53 54 5
63 64 6
73 74 7
22
42
83 84 8
32
3 3 3 3 3
3 3 3
4 4 4
3 3 3
3 3 3
4
3
3 3 3
4 2
4 4
3 3 3
0 3
0 0 0
0 0 0 0 0 0
h h h h y
h h y
h h y
h h y
h h h y
h h y
h h
h y
h h y
h
h
G(2,6,2) G(4,8,2) G(3,7,2)
R(4,8,3) R(3,7,3)
R(4,8,4) R(3,7,4)
R(4,8,y) R(3,7,y)
R(2,6,4) R(2,6,y) R(2,6,3)
Example for N t =N r =4
Matrix form Computation schedule
11 12 13 14 1
22 23 24 2
33 34 3
43 44 4
52 53 54 5
63 64 6
73 7
8
4 7
8 3
32
4 8
3 3 3 3 3
3 3 3 3
5 5 5
4 4 4
3 3 3 3
3 3 3
5 5
4 5
5
4 4
0 0 0 0
0 0 0 0 0 0 0
h h h h y
h h h y
h h y
h h y
h h h y
h h y
h h h
h
y y h
11 12 13 14 1
22 23 24
32
73
83
2
33 34 3
43 44 4
52 53 54 5
63 64 6
74 7
84 2
8 4
3 3 3 3 3
3 3 3 3
4 4 4
3 3 3
3 3 3 3
3 3 3
4 4
3 2
4 4
3 3
0 0 0 0
0 0 0 0 0 0
h h h h y
h h h y
h h y
h h y
h h h y
h h y
h h h
h y
y h
h
G(3,4,2) R(3,4,3)
R(7,8,3) R(3,4,4)
R(7,8,4) R(3,4,y)
R(7,8,y)
Example for N t =N r =4
Matrix form Computation schedule
11 12 13 14 1
23 24 2
33 34 3
43 44 4
52 53 54 5
64 6
74 7
83 84 8
63
7 2
3 2
3 3 3 3 3
4 4 4
6 6 6
4 4 4
3 3 3 3
4 6
4 4
6 6
4 4 4
0 4
0
0 0 0
0 0 0 0
0
0
0
h h h h y
h h y
h h y
h h y
h h h y
h y
h y
h h
h
y h
h
G(2,3,2) R(2,3,3)
R(6,7,3) R(2,3,4)
R(6,7,4) R(2,3,y)
R(6,7,y)
11 12 13 14 1
23 24 2
33 34 3
43 44 4
52 53 54 5
64 6
74 7
83 84 8
2
7 3
6
3 22
3
3 3 3 3 3
3 3 3
5 5 5
4 4 4
3 3 3 3
3 3
5 5
4 4
3 5
4 3
5
0 0
0 0 0
0 0 0 0 0 0
h h h h y
h h y
h h y
h h y
h h h y
h
h y
h y
h h
h y
h h
Example for N t =N r =4
Matrix form Computation schedule
11 12 13 14 1
22 23 24 2
34 3
44 4
52 53 54 5
63 64 6
33
74 7
84 8
43
3 3 3 3 3
4 4 4 4
7 7
5 5
3 3 3 3
4 4
5
7 5 7
4 7 5
0
0 0 0 0 0
0 0 0 0
0 0 0
0
h h h h y
h h h y
h y
h y
h h h y
h h y
h h
h
y
h y
G(4,8,3) G(3,7,3)
R(4,8,4) R(3,7,4)
R(4,8,y) R(3,7,y)
11 12 13 14 1
22 23 24 2
34 3
44 4
52 53 54
33
73
5
63 64 6
74 7
8 43
84 83
3 3 3 3 3
4 4 4 4
6 6
4 4
3 3 3 3
4 4
4
4
6 6
4 4
6
6 4
0
0 0 0 0 0
0 0 0 0 0 0
h
h
h h h h y
h h h y
h y
h y
h h h y
h h y
h h
h h y
y
Example for N t =N r =4
Matrix form Computation schedule
11 12 13 14 1
22 23 24 2
34 3
44 4
52 53 54 5
63 64 6
33
7
8 3
84 4
74
3 3 3 3 3
4 4 4 4
6 6
4 4
3 3 3 3
4 4 4
6 4
4
4 6
6
0
0 0 0 0 0
0 0
0 0 0
0 0 0
h h h h y
h h h y
h y
h
h y
h h h y
h h y
y y h
h
h
11 12 13 14 1
22 23 24 2
34 3
44 4
52 53 54 5
63 64 6
74 7
8 33
4 8
3 3 3 3 3
4 4 4 4
7 7
5 5
3 3 3 3
4 4 4
7
7 7
5 5
0
0 0 0 0 0
0 0
0 0 0
0
0
0 0
h h h h y
h h h y
h y
h y
h h h y
h h y
h y
h y
h
G(3,4,3) R(7,8,4) R(3,4,4)
R(7,8,y) R(3,4,y)
Example for N t =N r =4
Matrix form Computation schedule
11 12 13 14 1
22 23 24
44
8
2
33 34 3
4
52 53 54 5
63 64 6
74 7
8 4
3 3 3 3 3
4 4 4 4
7 7 7
5
3 3 3 3
4 4 4
5
7 7
5 5
0
0 0
0 0 0
0
0 0
0 0 0
0 0 0
h h h h y
h h h y
h h y
y
h h h y
h h y
h y
y h
h
11 12 13 14 1
22 23 24 2
33 34 3
4
52 53 54 5
63 64 6
74 7
8 44
3 3 3 3 3
4 4 4 4
7 7 7
6
3 3 3 3
4 4 4
7 7
6
6
0
0 0
0 0 0
0
0 0
0 0 0
0 0 0 0
h h h h y
h h h y
h h y
y
h h h y
h h y
h y
y h
G(4,8,4)
R(4,8,y)
Example for N t =N r =4
Matrix form Computation schedule
Example for N t =N r =4
Block-wise symmetric from
11 12 13 14 52 53 54 1
22 23 24 63 64 2
33 34 74 3
44 4
52 53 54 11 12 13 14 5
63 64 22 23 24 6
74 33 34 7
44 8
3 3 3 3 3 3 3 3
4 4 4 4 4 4
7 7 7 7
6 6
3 3 3 3 3 3 3 1
4 4 4 4 4 4
7 7 7 7
6 6
0
0 0 0
0 0 0 0 0
0 0 0 0 0 0 0
0
0 0 0
0 0 0 0 0
0 0 0 0 0 0 0
h h h h h h h y
h h h h h y
h h h y
h y
h h h h h h h y
h h h h h y
h h h y
h y
Re{H}
Im{H}
Re{H}
-Im{H}
H
y Q y
Example for N t =N r =4
Interleaved operation for column vectors
52 53 54
63 64
74
1
11 12 13 14 1
22 23 24 2
33 34 3
44 4
52 53 54 5
6
1 12 13 14
22 23 24
3
3 64 6
74 7
3 34
44 8
3 3 3 3 3
5 5 5 5
7 7 7
7 7
1
1 1 1
2 2
3
3 3 1 3 1 1
2 2 2
3 3
4 3
5 5 5
7 7
7
0
0 0 0
0 0 0 0 0
0 0 0 0 0 0 0
0
0 0 0
0 0 0 0 0
0 0 0 0 0 0 0
h h h h y
h h h y
h h y
h y
h h
h h h
h h
h
h h h h
h h
h y
h h y
h y
y h
h h
h
11 12 13 14 1
22 23 24 2
33 34 3
44 4
5
52 53 54
63 64
74
1
2 53 54 5
63 64 6
7
1 12 13 14
22 23 24
33 34
4
4 7
4 8
3 3 3
4 4
7
3 3 3 3
4 4 4
7
3 3 3 3 3
4 4 4 4
7 7 7
6 6
3 3 3 3
4 4 4
7
6
7 7
6
0
0 0 0
0 0 0 0 0
0 0 0 0 0 0 0
0
0 0 0
0 0 0 0 0
0 0 0 0 0 0 0
h h h
h h
h
h h h
h h h h y
h h h y
h h y
h y
h h h h y
h h h
h
h y
h
y h
h
y h
11 52 12 53 13 54 14 5
22 63 23 64 24 6
33 7
11 12 52 13 53 14 54 1
22 23 63 24 64 2
33 34 74 3
44 4
4 34 7
44 8
3 3 3 3 3 3 3 3
4 4 4 4 4 4
7 7
3 3 3 3 3 3 3 3
4 4 4 4 4 5
7 7
7 7 7
6 6
6 6
7
0
0 0 0
0 0 0 0 0
0 0 0 0 0 0 0
0
0 0 0
0 0 0 0 0
0 0 0 0 0 0 0
h h h h h h h y
h h h h
h h h h h h h y
h h h h h y
h y
h h h y
h y
h h h y
h y
Example for N t =N r =4
Interleaved operation for row vectors
11 52 12 53 13 54 14 5
22 63 23 64 24 6
33 74 3
11 12 52 13 53 14 54 1
22 23 63 24 64 2
33 34
4
74 3
44 4
7
44 8
3 3 3 3 3 3 3 3
4 4 4 4 4 4
7 7 7 7
3 3 3 3 3 3 3 3
4 4 4 4 4 4
7 7 7 7
6 6
6 6
0 0
0 0 0
0 0 0
0 0 0 0 0
0 0 0 0 0
0 0 0 0 0 0 0
0 0 0 0 0 0 0
h h h h h h h y
h h h h
h h h h h h h y
h h
h y
h h h y
h
h h h y
h h h y
h y
y
CORDIC Implementation
Generation Processing Element (GPE)
Rotation Processing Element (RPE)
2*adder, 2*barrel shifter, others
M u x R eg
A d d /S u b A d d /S u b
>>n
GPE
>>n
R eg R eg
M u x
MSBMSB
Y
i+1X
i+1X
0Y
0X
lY
lR
dM u x R eg
A d d /S u b A d d /S u b
>>n
X
lY
lR
dRPE
>>n
R eg R eg
X
0Y
0M u x
R
dY
i+1X
i+1Low-complexity CORDIC Array (1/2)
Mapping direction for 8 parallel CORDIC modules
Pipeline structure
0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7
0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7
0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7
0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7
PE PE PE PE
PE PE PE PE
0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7
0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7
0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7
0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7
Add
Add
Add
Add
...
Add
Add Add
Add
Shift
Shift