1. Trang chủ
  2. » Kỹ Thuật - Công Nghệ

Mobile and Wireless Communications-Physical layer development and implementation 2012 Part 8 docx

20 304 0
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 20
Dung lượng 670,83 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

sorted QR decomposition and OSIC, that takes advantage of the structure of the linear dispersion matrices to achieve low complexity and high performance.. 5.1 OSIC Detection for Hybrid S

Trang 1

symbols to antennas is shown in Table 2 Using this code, n S + n B symbols are transmitted

per channel use, for a code rate equal to

T

B S

n

n

n 

(23)

Fig 6 ZF-SQRD LQOSTBC Architecture Transmitter/Receiver

(VBLAST)

S n

 2 1

3

5 1

k

s

s s

* 2

* 6

* 2

k s

s s

1

7 3

k

s

s s

*

* 8

* 4

k s

s s

(ABBA)

T

S S

n

n n

 2

1

B

n k

k k

s

s s

4

2 1

* 1

4

* 1

* 2

B

n k

k k

s

s s

2 4

4 3

B

n k

k k

s

s s

* 3

4

* 3

* 4

B

n k

k k

s

s s

Table 2 ZF-SQRD LQOSTBC Symbol to Antenna Mapping with k 4nS

Since the transmitter has no knowledge of the channel, all symbols must be transmitted with

equal energy In the ABBA layers, each symbol’s transmission is spread across multiple time

intervals; in consequence, the signal constellations must be scaled accordingly If E v is the

average energy of the signal constellation employed by each antenna in the VBLAST layers,

then the average constellation energy E a of the ABBA layers is given by E a =E v /n a It should

be noted that the coding schemes referenced above use a single constellation, resulting in

unequal symbol energy and suboptimal BER performance

The system equation for ZF-SQRD LQOSTBC over four symbol periods may be written as

follows, where subindices indicate antenna number, and superindices indicate symbol period within a block:

) 4 ( ) 1 (

) 4 ( 1 ) 1 ( 1

, 2 , 1 ,

, 1 2 , 1 1 , 1

) 4 ( ) 1 (

) 4 ( 1 ) 1 ( 1

R R T

R R R

T

R

A abba n

n n n

n

n

n n S

S h

h h

h h h

y y

y y

or equivalently,

N HS

Matrix YCn R4 represents the symbols received in a block Matrix H is the channel

matrix defined above Matrix NCn R 4 represents the noise added to each received

symbol Matrix S is composed of a spatial multiplexing block and n B ABBA blocks The spatial multiplexing block S spa is defined as:

) 4 ( 1 ) 1 ( 1

* 4 1 4

* 2 4 3 4

* 4 3

* 2 1

S S S

S S

n

spa

s s

s s

s s

s s

s s

s s

S

which corresponds to the VBLAST layer mapping in Table 2 The ABBA block is defined as:

n abba abba

where every element of equation (27) is given by:

) 4 ( ) 1 (

) 4 ( 1 ) 1 ( 1

) 4 ( 2 ) 1 ( 2

) 4 ( 3 ) 1 ( 3

* 1 2

* 3 4

* 2 1

* 4 3

* 3 4

* 1 2

* 4 3

* 2 1

l l

l l

l l

l l

k k

k k

k k

k k

k k

k k

k k

k k

abba B

s s

s s

s s

s s

s s

s s

s s

s s

s s

s s

s s

s s

S

with l = n S + 4B, k = 4(B − 1 + n S ) and B = 1, 2,…, n B Rewriting the system equation (24) as a linear dispersion code, we have:

Trang 2

 

* ) 4 (

) 3 (

* ) 2 (

) 1 (

* ) 4 ( 1

) 3 ( 1

* ) 2 ( 1

) 1 ( 1

* ) 4 (

) 3 (

* ) 2 (

) 1 (

* ) 4 ( 1

) 3 ( 1

* ) 2 ( 1

) 1 ( 1

R R R R

R R R R

n n n n

LD abba spa

n n n n

n n n n

n n n n

S H H

y y y y

y y y y

expressed in compact form as:

LD LD LD

where H LD is a linear dispersion matrix with two blocks, one corresponding to the V-BLAST

layers and another to the ABBA layers The V-BLAST block H spa is given by:

spa n n

spa n

spa n

spa n spa

spa spa

S R R

R

S

H H

H

H H

H H

, 2

, 1 ,

, 1 2

, 1 1 , 1

where

* , ,

* , ,

,

0 0 0

0 0

0

0 0 0

0 0 0

j j j

j spa j

h h h

h

for i  ,1  2 , , nR and j  ,1  2 , , nS The ABBA block Habba is itself a block matrix; it is given by:

Trang 3

 

* )

4 (

) 3

(

* )

2 (

) 1

(

* )

4 (

1

) 3

( 1

* )

2 (

1

) 1

( 1

* )

4 (

) 3

(

* )

2 (

) 1

(

* )

4 (

1

) 3

( 1

* )

2 (

1

) 1

( 1

R R R R

R R R R

n n n n

LD abba

spa

n n n n

n n n n

n n n n

S H

H

y y y y

y y y y

expressed in compact form as:

LD LD

LD

where H LD is a linear dispersion matrix with two blocks, one corresponding to the V-BLAST

layers and another to the ABBA layers The V-BLAST block H spa is given by:

spa n

n

spa n

spa n

spa n

spa spa

spa

S R

R R

S

H H

H

H H

H H

, 2

, 1

,

, 1

2 ,

1 1

, 1

where

* ,

,

* ,

,

,

0 0

0

0 0

0

0 0

0

0 0

0

j j

j

j spa

j

h h

h

h

for i  ,1  2 , , nR and j  ,1  2 , , nS The ABBA block Habba is itself a block matrix; it is

given by:

abba n n

abba n

abba n

abba n abba

abba abba

S R R R

S

H H H

H H

H H

, 2 , 1 ,

, 1 2

, 1 1 , 1

where every element of equation (33) is given by:

* 3 ,

* 2 ,

* 1 ,

* ,

2 , 3 , , 1 ,

* 1 ,

* ,

* 3 ,

* 2 ,

, 1 , 2 , 3 , ,

l l

l l

l l

l l

l l

l l

l l

l l

abba k i

h h

h h

h h

h h

h h

h h

h h

h h

for i 1,2,,n R, k 1,2,,n B and l = n S + 4B The matrix spa

j

H , of H LD that links the

j th spatial antenna with the i th receiver antenna Likewise, abba

k i

H , links the k th ABBA block to the ith receiver antenna To complete the reformulation of system equation (24), it remains to

rearrange matrix S We define S LD as:

abbaT

LD

spa LD

where

n n n n

spa

LD s s s s sS s S s S s S

S ( 4 ) ( 1 ) ( 2 ) ( 3 ) ( 4 )

1 ) 3 ( 1 ) 2 ( 1 ) 1 (

and the ABBA block for n A = 4 is, then, given by:

l l l l n

n n n

abba

1 ) 1 ( 2 ) 1 ( 3 )

1 ( 4 ) 1 ( 3 ) 1 ( 2 ) 1 (

We have rewritten the hybrid space-time matrices as linear dispersion code matrices Now

we can substitute the original V-BLAST plus ABBA hybrid transceiver with a simpler,

purely spatial system with N T = 4n S +n A n B transmit antennas like is depicted in Figure 7 and

without distinction between the ABBA and VBLAST layers

5 Receiver Architectures for Hybrid Space-Time Codes

Since schemes ZF-SQRD LSTBC and ZF-SQRD LQOSTBC are equivalent to a purely spatial

system with N T transmit antennas, it is possible to propose a linear detector based on the

Trang 4

sorted QR decomposition and OSIC, that takes advantage of the structure of the linear dispersion matrices to achieve low complexity and high performance

5.1 OSIC Detection for Hybrid Schemes Proposed

We first calculate HC Sorted QR (Hybrid Coding Sorted QR) of the matrix H LD =Q LD R LD where Q LD is a unitary matrix and RLD is an upper triangular matrix By multiplying the received signal equations (10) and (35) by H

LD

Q , the modified received vector is:

LD LD LD LD

H LD

if vector S LD is transmitted Note that the statistical properties of the noise term N~LD

remain unchanged Due to the upper triangular structure of R LD , the k th element of Y~LDis:

k

i k i i k k

k k

y

1 ,

Symbols are estimated in sequence, from lower stream to higher stream, using OSIC; assuming that all previous decisions are correct; the interference can be perfectly cancelled

in each step except for the additive noise The estimated symbol sk is given by:

k

N k

i k i i k

s r

y s

T

,

1 ,ˆ

where k is the estimate of sk and D[.] is a decision device that maps its argument to the

closest constellation point Therefore the receiver requires calculating the QR decomposition

for the linear dispersion matrix H LD; the main challenge lies in finding the most efficient way

to obtain this decomposition

We use the permutation vector order provided by HC Sorted QR algorithm to reorder the

received symbols; the QR decomposition is obtained using the modified Gram-Schmidt (MGS) algorithm

5.2 HC Sorted QR Decomposition

Matrix H LD is N T nAnR for both hybrid schemes A direct application of MGS on it would result in unacceptable complexity However, taking advantage of the structure imposed on

H LD by the proposed code, we can decrease this complexity significantly We now explain

how this simplification is obtained

From the equations (15) and (30) we can see that the structure presented for the H LD matrix

allows us to reduce the computational complexity that is required for to calculate the HC

Trang 5

sorted QR decomposition and OSIC, that takes advantage of the structure of the linear

dispersion matrices to achieve low complexity and high performance

5.1 OSIC Detection for Hybrid Schemes Proposed

We first calculate HC Sorted QR (Hybrid Coding Sorted QR) of the matrix H LD =Q LD R LD

where Q LD is a unitary matrix and RLD is an upper triangular matrix By multiplying the

received signal equations (10) and (35) by H

LD

Q , the modified received vector is:

LD LD

LD LD

H LD

if vector S LD is transmitted Note that the statistical properties of the noise term N~LD

remain unchanged Due to the upper triangular structure of R LD , the k th element of Y~LD is:

k

i k i i k k

k k

y

1 ,

Symbols are estimated in sequence, from lower stream to higher stream, using OSIC;

assuming that all previous decisions are correct; the interference can be perfectly cancelled

in each step except for the additive noise The estimated symbol sk is given by:

k

N k

i k i i k

s r

y s

T

,

1 , ˆ

where k is the estimate of sk and D[.] is a decision device that maps its argument to the

closest constellation point Therefore the receiver requires calculating the QR decomposition

for the linear dispersion matrix H LD; the main challenge lies in finding the most efficient way

to obtain this decomposition

We use the permutation vector order provided by HC Sorted QR algorithm to reorder the

received symbols; the QR decomposition is obtained using the modified Gram-Schmidt

(MGS) algorithm

5.2 HC Sorted QR Decomposition

Matrix H LD is N T nAnR for both hybrid schemes A direct application of MGS on it would

result in unacceptable complexity However, taking advantage of the structure imposed on

H LD by the proposed code, we can decrease this complexity significantly We now explain

how this simplification is obtained

From the equations (15) and (30) we can see that the structure presented for the H LD matrix

allows us to reduce the computational complexity that is required for to calculate the HC

Sorted QR decomposition, since many of the elements of each matrix are equal, and their

locations in each matrix are fixed and can be calculated in advance This method involves

obtaining the QR decomposition of the H LD matrix in two stages: first we obtain the QR decomposition corresponding to the spatial layers of the hybrid system; in the second stage

we calculate the QR decomposition for the diversity layers

As a first step, we calculate the QR decomposition H = Q m R m using the Sorted QR algorithm;

in this process, we also produce vector order which specifies the detection order of the spatial layers Then, using Q m and R m, and non normalized columns of the matrix H, we build the matrices ala

div

H or abba

div

H The next step is analogous to MGS: column k + 1 is normalized and used to fill column k+2 of each block (Alamouti/ABBA); the process is

repeated for the remaining columns for each block of ala

div

div

H In the process, matrix

R LD is also calculated A block diagram of the process is shown in the Figure 7

Fig 7 HC Sorted QR Process Using MGS Algorithm The structure of matrices Q LD and R LD , and their relation to Q m and R m, has been detailed in (Cortez et al., 2007), (Kim et al., 2006), (Le et al., 2005) The complete process is presented in

two stages In the first stage the algorithm 1 takes the channel matrix H and outputs the intermediate matrices Q m , R m and vector order

Trang 6

Algorithm 1 HC Sorted QR of the Spatial Layers

1: INPUT: Hn Rn T

, L, nsym, nS

2: OUPUT: Qm, Rm, order

3: QmH , n Tn T  0

m

R , orden  [ 1 : 1 : nsym ]

4: for i  1 to nS do

5: k  arg minji:n S Qm  :, j

6: Exchange columns i and k of Qm and Rm

7: Exchange columns Li :  1 : i ( L  1 )  1 and Lk :  1 : k ( L  1 )  1 of order

8: Rm( i , i )  Qm(:, i )2

9: Qm(:, i )  Qm(:, i ) / Rm( i , i )

10: for ji  1 to nT do

11: R ( i , j ) Q (:, i )HQm(:, j )

m

12: Qm(:, j )  Qm(:, j )  Qm(:, i ) Rm( i , j )

13: endfor

14: endfor

The structure for the matrices Q m and R m are:

T R S

R S R R

T S

S

T S

S

n n n

n n n n

n n

n

n n

n m

h h

q q

h h

q q

h h

q q Q

, 1

, , 1 ,

, 2 1 , 2 , 2 1 , 2

, 1 1 , 1 , 1 1 , 1

T S S s

T S

S

T S

S

n n n n

n n

n

n n

n m

r r

r r

r

r r

r r R

, ,

, 2 1 , 2 , 2

, 1 1 , 1 , 1 1 , 1

0 0

0

We choose the first n S columns of Q m and the first n S rows of R m to built the matrices Q spa

and R spa with the next structure:

Trang 7

Algorithm 1 HC Sorted QR of the Spatial Layers

1: INPUT: Hn Rn T

, L, nsym, nS

2: OUPUT: Qm, Rm, order

3: QmH, n Tn T  0

m

R , orden  [ 1 : 1 : nsym ]

4: for i  1 to nS do

5: k  arg minji:n S Qm  :, j

6: Exchange columns i and k of Qm and Rm

7: Exchange columns Li :  1 : i ( L  1 )  1 and Lk :  1 : k ( L  1 )  1 of order

8: Rm( i , i )  Qm(:, i )2

9: Qm(:, i )  Qm(:, i ) / Rm( i , i )

10: for ji  1 to nT do

11: R ( i , j ) Q (:, i )HQm(:, j )

m

12: Qm(:, j )  Qm(:, j )  Qm(:, i ) Rm( i , j )

13: endfor

14: endfor

The structure for the matrices Q m and R m are:

T R

S R

S R

R

T S

S

T S

S

n n

n n

n n

n

n n

n

n n

n m

h h

q q

h h

q q

h h

q q

Q

, 1

, ,

1 ,

, 2

1 ,

2 ,

2 1

, 2

, 1

1 ,

1 ,

1 1

, 1

T S

S s

T S

S

T S

S

n n

n n

n n

n

n n

n m

r r

r r

r

r r

r r

R

, ,

, 2

1 ,

2 ,

2

, 1

1 ,

1 ,

1 1

, 1

0 0

0

We choose the first n S columns of Q m and the first n S rows of R m to built the matrices Q spa

and R spa with the next structure:

S R R

R

S S

n n n

n

n

n spa

q q

q

q q

q

q q

q Q

, 2 , 1 ,

, 2 2 , 2 1 , 2

, 1 2

, 1 1 , 1

T S S s

T S

S

T S

S

n n n n

n n

n

n n

n spa

r r

r r

r

r r

r r R

, ,

, 2 1 , 2 , 2

, 1 1 , 1 , 1 1 , 1

0 0

0

The matrices Q spa and R spa represent the contribution of the spatial layers in both hybrid schemes The columns with elements h,j in equation (41) are non normalized columns that

we used to build the matrices ala

div

H and abba

div

H that are required in the second stage of the

QR decomposition for the diversity layers In the case of ZF-SQRD LDSTBC the matrix

ala div

H has the following structure:

* ,

* ,

* 1 ,

* 2 ,

* , 1

* , 1

* 1 , 1

* 2 , 1

, 1 1 , 1 2

, 1 1 , 1

1 1

T R T R S

R S

R

T T

S S

T T

S S

n n n n n

n n

n

n n

n n

n n

n n

ala div

h h

h h

h h

h h

h h

h h

H

For the case of ZF-SQRD LQOSTBC the matrix Hdiv abba with nA  4 has the structure:

* 2 ,

* ,

* 2 ,

* 4 ,

* , 1

* 2 , 1

* 4 , 1

* 2 , 1

1 , 1 3 , 1 3

, 1 1 , 1

T R T R S

R S R

T T

S S

T T

S S

n n n n n

n n n

n n

n n

n n

n n

abba div

h h

h h

h h

h h

h h

h h

H

Once the matrix ala abba

div

H / is found, the next step is to apply the Sorted QR decomposition

on it This calculation may be carried out using Algorithm 2 below; the ordering among elements of the matrix ala abba

div

H / is by block and not by column It is only necessary to

Trang 8

calculate the odd rows and columns of matrices Qdiv and Rdiv It can be seen as ala

div

H and

abba

div

H have the same structure, the matrix abba

div

H can be seen as a particular case of ala

div H

with two Alamouti coders in each block ABBA The above consideration allows us to use the

same algorithm to calculate the HC Sorted QR decomposition for both schemes The matrices

div

Q and R div generated in this part of the process represent the contribution of diversity

layers in the HC Sorted QR decomposition

Algorithm 2 HC Sorted QR of the Diversity Layers

1: INPUT: Hdiv ala/abba, L, nsym, nB,nS,order

2: OUPUT: Qdiv, Rdiv, order

3: QdivHdiv ala/abba, Rdiv  0, m  LnS

4: for i  1 : 2 to 2 nB do

n i

min

arg :2:2

6: Exchange columns i and i+1 for k and k+1 of Qdiv and Rdiv

7: Exchange columns mLi :  1 : mi ( L  1 )  1 and

mLk :  1 : mk ( L  1 )  1 of order

8:

2 ) (:, )

,

Rdivdiv

9: Qdiv(:, i )  Qdiv(:, i ) / Rdiv( i , i )

10: Rdiv( i  1 , i  1 )   Rdiv( i , i )

11: Q ( 1 : 2 : Ln ,1 i 1 ) Qdiv( 2 : 2 : LnR, i )*

R

12: Q ( 2 : 2 : Ln , i 1 ) Qdiv( 1 : 2 : LnR ,1 i )*

R

13: for ji  1 to nB do

14: Rdiv( i , j )  Qdiv(:, i )HQdiv(:, j )

15: endfor

16: ( ,1 2 : 2 : 1 ) div( , 3 : 2 : B)*

B

17: (  ,1  3 : 2 : )   div( ,  2 : 2 : B  1 )*

B

R

18: for ji  1 to nB do

19: Qdiv(:, j )  Qdiv(:, j )  Qdiv(:, i ) Rdiv( i , j )

20: Qdiv(:, j )  Qdiv(:, j )  Qdiv(:, i  1 ) Rdiv( i  ,1 j )

21: endfor

22: endfor

Trang 9

calculate the odd rows and columns of matrices Qdiv and Rdiv It can be seen as ala

div

H and

abba

div

H have the same structure, the matrix abba

div

H can be seen as a particular case of ala

div H

with two Alamouti coders in each block ABBA The above consideration allows us to use the

same algorithm to calculate the HC Sorted QR decomposition for both schemes The matrices

div

Q and R div generated in this part of the process represent the contribution of diversity

layers in the HC Sorted QR decomposition

Algorithm 2 HC Sorted QR of the Diversity Layers

1: INPUT: Hdiv ala/abba, L, nsym, nB,nS,order

2: OUPUT: Qdiv, Rdiv, order

3: QdivHdiv ala/abba, Rdiv  0, m  LnS

4: for i  1 : 2 to nB do

n i

min

arg :2:2

6: Exchange columns i and i+1 for k and k+1 of Qdiv and Rdiv

7: Exchange columns mLi :  1 : mi ( L  1 )  1 and

mLk :  1 : mk ( L  1 )  1 of order

8:

2 )

(:, )

,

( i i Q i

Rdivdiv

9: Qdiv(:, i )  Qdiv(:, i ) / Rdiv( i , i )

10: Rdiv( i  ,1 i  1 )   Rdiv( i , i )

11: Q ( 1 : 2 : Ln ,1 i 1 ) Qdiv( 2 : 2 : LnR, i )*

R

12: Q ( 2 : 2 : Ln , i 1 ) Qdiv( 1 : 2 : LnR ,1 i )*

R

13: for ji  1 to nB do

14: Rdiv( i , j )  Qdiv(:, i )HQdiv(:, j )

15: endfor

16: ( ,1 2 : 2 : 1 ) div( , 3 : 2 : B)*

B

17: (  ,1  3 : 2 : )   div( ,  2 : 2 : B  1 )*

B

R

18: for ji  1 to nB do

19: Qdiv(:, j )  Qdiv(:, j )  Qdiv(:, i ) Rdiv( i , j )

20: Qdiv(:, j )  Qdiv(:, j )  Qdiv(:, i  1 ) Rdiv( i  ,1 j )

21: endfor

22: endfor

The matrices Q LD and R LD are generated from the matrices Q spa , R spa , Q div and R div The

construction process is described in Algorithms 3 and 4 Once the matrices Q LD and R LD are generated the detection of the received symbols was carried out according to the procedure described in section 5.1

Algorithm 3 Generation of matrices Q LD and R LD for the scheme ZF-SQRD LDSTBC 1: INPUT: Qspa, Rspa, Qdiv, Rdiv, nB, nS

2: OUPUT: QLD, RLD

3: col  1

4: for i  1 to nS do

5: Q ( 1 : 2 : 2 n ,1 col ) Qspa(:, k )

R

spa

6: colcol  1

7: Q ( 2 : 2 : 2 n , col ) Qspa(:, k )*

R

spa

8: colcol  1

9: endfor

10: row  1

11: for i  1 to nS do

12: ( , 1 : 2 : 2 1 ) spa( 1, : S)

S

spa

13: ( , 1 : 2 : 2 1 ) spa( 1, : S)

S

spa

14: rowrow  2

15: endfor

16: row  ,1 col  2 nS  1

17: for i  1 to n S nB do 18: for j  1 to nB do

19: spa( , ) spa( , 2 1 S)

LD row col R i j n

20: spa( , 1 ) spa( , 2 S)

LD row col R i j n

21: spa( ,1 ) spa( , 2 S)*

LD row col R i j n

22: RLD spa( row  ,1 col  1 )   Rspa( i , 2 j  1  nS)*

23: colcol  2

24: endfor

25: col  2  nS 1 26: rowrow  2

27: endfor

Trang 10

28: RLD ala( 2 nS  1 : 2 ( nSnB), 2 nS  1 : 2 ( nSnB))  Rdiv

29:

ala

LD

spa LD LD

R

R

LD

Q 

Algorithm 4 Generation of matrices Q LD and R LD for the scheme ZF-SQRD LQOSTBC 1: INPUT: Qspa, Rspa, Qdiv, Rdiv, nB, nS

2: OUPUT: QLD, RLD

3: row  1; k 4nS

4: for i  1 to nS do

5: spa( , 1 : 4 : ) spa( , 1 : S)

6: spa( 1 , 2 : 4 : ) spa( , 1 : S)*

7: spa( 2 , 3 : 4 : ) spa( , 1 : S)

8: spa( 3 , 4 : 4 : ) spa( , 1 : S)*

9: rowrow  4

10: endfor

11: col  1

12: for i  1 to nS do

13: Q ( 1 : 4 : 4 n , col ) Qspa(:, i )

R

spa

14: Q ( 2 : 4 : 4 n , col 1 ) Qspa(:, i )*

R

spa

15: Q ( 3 : 4 : 4 n , col 2 ) Qspa(:, i )

R

spa

16: Q ( 4 : 4 : 4 n , col 3 ) Qspa(:, i )*

R

spa

17: colcol  4

18: endfor

19: row  ,1 col  4 nS  ,1 col 2  nS  1

20: for i  1 to nS do

21: for j  1 to nB do

22: Rabba( row , col ) Rspa( i , col 2 )

23: Rabba( row  ,1 col )  Rspa( i , col 2  1 )*

LD

24: Rabba( row  2 , col )  Rspa( i , col 2  2 )

LD

25: Rabba( row  3 , col )  Rspa( i , col 2  3 )*

LD

Ngày đăng: 21/06/2014, 19:20

TỪ KHÓA LIÊN QUAN