Simple MIMO precoding codebook design for a MIMO wireless communications system

Abstract
The present invention relates to methods and apparatus for establishing a precoding codebook for a Multiple Input Multiple Output (MIMO) wireless communication system. The precoding codebook includes a plurality of codebook entries. Each codebook entry includes four sets of vectors for four respective corresponding transmission ranks. The vectors may be predetermined, or generated from source unitary matrices. In addition, the codebook is fully nested.
Description
BACKGROUND OF THE INVENTION

1. Field of the Invention


The present invention relates to methods and apparatus for establishing a precoding codebook for a Multiple Input Multiple Output (MIMO) wireless communication system.


2. Description of the Related Art


Orthogonal Frequency Division Multiplexing (OFDM) is a popular wireless communication technology to multiplex data in frequency domain.


A multiple antenna communication system, which is often referred to as multiple input multiple output (MIMO) system, is widely used in combination with OFDM technology, in a wireless communication system to improve system performance.


In a MIMO system, both transmitter and receiver are equipped with multiple antennas. Therefore, the transmitter is capable of transmitting independent data streams simultaneously in the same frequency band. Unlike traditional means of increasing throughput (i.e., the amount of data transmitted per time unit) by increasing bandwidth or increasing overall transmit power, MIMO technology increases the spectral efficiency of a wireless communication system by exploiting the additional dimension of freedom in the space domain due to multiple antennas. Therefore MIMO technology can significantly increase the throughput and range of the system.


When the transmission channels between the transmitters and the receivers are relatively constant, it is possible to use a closed-loop MIMO scheme to further improve system performance. In a closed-loop MIMO system, the receiver informs the transmitter of feedback information regarding the channel condition. The transmitter utilizes this feedback information, together with other considerations such as scheduling priority, data and resource availability, to optimize the transmission scheme.


A popular closed-loop MIMO scheme is MIMO preceding. With precoding, the data streams to be transmitted are precoded, i.e., pre-multiplied by a precoding matrix, before being passed on to the multiple transmit antennas in a transmitter.


In a contemporary closed-loop MIMO precoding scheme, when a transmitter precodes data before transmitting the data to a receiver, the transmitter informs the receiver of the precoding information such as an identification of the precoding matrix by transmitting dedicated pilots (also referred to as reference signals) or explicit control information that carries the precoding information.


A significant problem with the contemporary single user precoding codebooks is that the codebooks require either too much memory for storage or too complicated math to generate in real time.


SUMMARY OF THE INVENTION

It is therefore an object of the present invention to provide an improved system and an improved method for transmitting data in a multiple input multiple output (MIMO) system.


It is another object to provide an improved system and an improved method to establish a simple precoding codebook.


According to one aspect of the present invention, a codebook is established to include a plurality of codebook entries. Each codebook entry includes four sets of vectors for four respective corresponding transmission ranks. The codebook is established by:


















Rank 1
Rank 2
Rank 3
Rank 4


























1
V1
V1
V4
V1
V2
V4
V1
V2
V3
V4


2
V5
V5
V6
V5
V6
V7
V5
V6
V7
V8


3
V3
V3
V4
V3
V4
V1
V1
V4
V3
V2


4
V7
V7
V8
V7
V8
V5
V5
V8
V7
V6


5
V9
V9
V12
V9
V10
V12
V9
V10
V11
V12


6
V13
V13
V16
V13
V14
V16
V13
V14
V15
V16


7
V11
V11
V9
V11
V9
V10
V11
V9
V12
V10


8
V15
V15
V13
V15
V13
V14
V15
V13
V16
V14


9
V2
V2
V1
V2
V1
V3
V2
V1
V4
V3


10
V6
V6
V7
V6
V8
V7
V6
V5
V8
V7


11
V4
V4
V2
V4
V3
V2
V4
V2
V3
V1


12
V8
V8
V6
V8
V6
V5
V8
V6
V7
V5


13
V17
V17
V18
V17
V18
V19
V17
V18
V19
V20


14
V18
V18
V20
V18
V17
V20
V18
V20
V17
V19


15
V19
V19
V17
V19
V20
V17
V17
V20
V19
V18


16
V20
V20
V19
V20
V19
V18
V20
V19
V18
V17










where V1 through V20 are certain vectors.


The vectors V1 through V20 may be respectively established by:





V1T=[1 1 1 1],






V
2
T=[1 1 −1 1],






V
3
T=[1 −1 1 −1],






V
4
T=[1 −1 −1 1],






V
5
T=[1 j −1 −j],






V
6
T
=[−j 1 −j 1],






V
7
T=[−1 j 1 −j],





V8T=[j 1 j 1],






V
9
T=└1(1+j)/√{square root over (2)}j(−1+j)/√{square root over (2)}┘,






V
10
T=└1−j)/√{square root over (2)}1(−1−j)/√{square root over (2)}−j┘,






V
11
T
=└−j(−1+j)/√{square root over (2)}1(−1−j)/√{square root over (2)}┘






V
12
T=└(−1−j)/√{square root over (2)}j(−1+j)/√{square root over (2)}1┘,






V
13
T=└1(−1+j)/√{square root over (2)}−j(1+j)/√{square root over (2)}┘,






V
14
T=└(−1−j)/√{square root over (2)}1(1−j)/√{square root over (2)}j┘,






V
15
T
=└j(1+j)/√{square root over (2)}1(1−j)/√{square root over (2)}┘,






V
16
T
=└(1−j)/√{square root over (2)}−j(1+j)/√{square root over (2)}1┘,






V
17
T=[1 1 1 −1],






V
18
T=[1 1 −1 1],






V
19
T=[1 −1 1 1], and






V
20
T=[−1 1 1 1].


Alternatively, the certain vectors V1 through V20 may be established from five matrices M1 to M5 generated from a Householder equation and five input vectors u1 to u5. The five matrices M1 to M5 are given as:










M
1

=

[




v
1




v
2




v
3




v
4




]







=


I
4

-

2






u
1




u
1
H

/




u
1



2











=

0.5
*

[



1


1


1


1




1


1



-
1




-
1





1



-
1



1



-
1





1



-
1




-
1



1



]



,







M
2

=

[




v
5




v
6




v
7




v
8




]







=


I
4

-

2






u
2




u
2
H

/




u
2



2











=

0.5
*

[



1


j



-
1




-
j






-
j



1



-
j



1





-
1



j


1



-
j





j


1


j


1



]



,







M
3

=

[




v
9




v
10




v
11




v
12




]







=


I
4

-

2






u
3




u
3
H

/




u
3



2











=

0.5
*

[



1




1
+
j


2




j





-
1

+
j


2








1
-
j


2




1




1
-
j


2





-
j






-
j






-
1

+
j


2




1





-
1

-
j


2









-
1

-
j


2




j





-
1

+
j


2




1



]



,







M
4

=

[




v
13




v
14




v
15




v
16




]







=


I
4

-

2






u
4




u
4
H

/




u
4



2











=

0.5
*

[



1





-
1

+
j


2





-
j





1
+
j


2









-
1

-
j


2




1




1
-
j


2




1




j




1
+
j


2




1




1
-
j


2








1
-
j


2





-
j





1
+
j


2




1



]



,







M
5

=

[




v
17




v
18




v
19




v
20




]







=


I
4

-

2






u
5




u
5
H

/




u
5



2











=

0.5
*

[



1


1


1



-
1





1


1



-
1



1




1



-
1



1


1





-
1



1


1


1



]



,







where the five input vectors u1 to u5 are:






u
1
T=[1 −1 −1 −1],






u
2
T=[1 j 1 −j],






u
3
T=└1(−1+j)/√{square root over (2)}j(1+j)/√{square root over (2)}┘,






u
4
T=└1(1+j)/√{square root over (2)}−j(−1+j)/√{square root over (2)}┘, and






u
5
T=[1 −1 −1 1].


Still alternatively, the certain vectors V1 through V20 may be established from five matrices M1 to M5 generated from rotating certain unitary matrices. The rotating operation is established by a rotation matrix Urot given as:







U
rot

=



1

2




[



1


0



-
1



0




0


1


0



-
1





1


0


1


0




0


1


0


1



]


.





In addition, the five matrices M1 to M5 are established by










M
1

=



[




v
1




v
2




v
3




v
4




]







=




U
rot

*


1

2




[



1


0


1


0




0


1


0


1




0



-
1



0


1





-
1



0


1


0



]










=



0.5
*

[



1


1


1


1




1


1



-
1




-
1





1



-
1



1



-
1





1



-
1




-
1



1



]



,







M
2

=



[




v
5




v
6




v
7




v
8




]







=




U
rot

*


1

2




[



0


j


0



-
j





0


1


0


1





-
1



0


1


0




j


0


j


0



]










=



0.5
*

[



1


j



-
1




-
j






-
j



1



-
j



1





-
1



j


1



-
j





j


1


j


1



]



,







M
3

=



[




v
9




v
10




v
11




v
12




]








=



0.5
*

[



1




(

1
+
j

)

/

2




j




(


-
1

+
j

)

/

2








(

1
-
j

)

/

2




1




(

1
-
j

)

/

2





-
j






-
j





(


-
1

+
j

)

/

2




1




(


-
1

-
j

)

/

2








(


-
1

-
j

)

/

2




j




(


-
1

+
j

)

/

2




1



]



,







M
4

=



[




v
13




v
14




v
15




v
16




]








=



[



1




(


-
1

+
j

)

/

2





-
j





(

1
+
j

)

/

2








(


-
1

-
j

)

/

2




1




(

1
-
j

)

/

2




1




j




(

1
+
j

)

/

2




1




(

1
-
j

)

/

2








(

1
-
j

)

/

2





-
j





(

1
+
j

)

/

2




1



]


,







M
5

=



[




v
17




v
18




v
19




v
20




]







=




U
rot

*


1

2




[



1


0


1


0




0


1


0


1




0



-
1



0


1





-
1



0


1


0



]









=



0.5
*


[



1


1


1



-
1





1


1



-
1



1




1



-
1



1


1





-
1



1


1


1



]

.









Still alternatively, the certain vectors V1 through V20 may be established from five matrices M1 to M5. The five matrices M1 to M5 are established by:








M
1

=


[




v
1




v
2




v
3




v
4




]

=

[



1


1


1


1




1


1



-
1




-
1





1



-
1



1



-
1





1



-
1




-
1



1



]



,






M
2

=


[




v
5




v
6




v
7




v
8




]

=

[



1


1


1


1




1


1



-
1




-
1





1



-
1



1



-
1





1



-
1




-
1



1



]



,






M
3

=


[




v
9




v
10




v
11




v
12




]

=

[



1



-
j




-
1



j




1


1


j


1





-
1




-
j



1


j





-
j



1



-
j



1



]



,









M
4

=



[




v
13




v
14




v
15




v
16




]








=



[



1




(


-
1

-
j

)

/

2




j




(

1
-
j

)

/

2








(


-
1

+
j

)

/

2




1




(

1
+
j

)

/

2





-
j






-
j





(

1
-
j

)

/

2




1




(

1
+
j

)

/

2








(

1
+
j

)

/

2




j




(

1
-
j

)

/

2




1



]


,
and














M
5

=



[




v
17




v
18




v
19




v
20




]







=




[



1




(

1
-
j

)

/

2





-
j





(


-
1

-
j

)

/

2








(

1
+
j

)

/

2




1




(


-
1

+
j

)

/

2




j





-
j





(

1
-
j

)

/

2




1




(

1
+
j

)

/

2








(


-
1

+
j

)

/

2





-
j





(


-
1

-
j

)

/

2




1



]

.








A subset of the vectors in the codebook may be phase shifted to generate a new codebook:


















Rank 1
Rank 2
Rank 3
Rank 4


























1
V1
V1
V4
V1
V2
V4
V1
V2
V3
V4


2
V5
V5
V6
V5
V6
V7
V5
V6
V7
V8


3
V3
V3
−V4
V3
−V4
V1
V1
−V4
V3
−V2


4
V7
−V7
V8
−V7
V8
−V5
−V5
V8
−V7
V6


5
V9
V9
V12
V9
V10
V12
V9
V10
V11
V12


6
V13
V13
V16
V13
V14
V16
V13
V14
V15
V16


7
V11
−jV11
jV9
−jV11
jV9
−jV10
−jV11
jV9
jV12
−jV10


8
V15
jV15
−jV13
jV15
−jV13
jV14
jV15
−jV13
−jV16
jV14


9
V2
V2
V1
V2
V1
−V3
V2
V1
−V4
−V3


10
V6
−jV6
−jV7
−jV6
jV8
−jV7
−jV6
jV5
jV8
−jV7


11
V4
V4
−V2
V4
−V3
−V2
V4
−V2
−V3
V1


12
V8
jV8
−jV6
jV8
−jV6
−jV5
jV8
−jV6
jV7
−jV5


13
V17
V17
V18
V17
V18
V19
V17
V18
V19
V20


14
V18
V18
V20
V18
V17
V20
V18
V20
V17
V19


15
V19
V19
V17
V19
V20
V17
V17
V20
V19
V18


16
V20
−V20
−V19
−V20
−V19
−V18
−V20
−V19
−V18
−V17












BRIEF DESCRIPTION OF THE DRAWINGS

A more complete appreciation of the invention, and many of the attendant advantages thereof, will be readily apparent as the same becomes better understood by reference to the following detailed description when considered in conjunction with the accompanying drawings in which like reference symbols indicate the same or similar components, wherein:



FIG. 1 schematically illustrates an Orthogonal Frequency Division Multiplexing (OFDM) transceiver chain;



FIG. 2 schematically illustrates a Multiple Input Multiple Output (MIMO) transceiver chain;



FIG. 3 schematically illustrates a single codeword MIMO transmission scheme;



FIG. 4 schematically illustrates a multiple codeword MIMO transmission scheme;



FIG. 5 schematically illustrates a multiple codeword MIMO transmission scheme for two transmission layers;



FIG. 6 schematically illustrates a multiple codeword MIMO transmission scheme for three transmission layers;



FIG. 7 schematically illustrates a multiple codeword MIMO transmission scheme for four transmission layers;



FIG. 8 schematically illustrates an example of a single user MIMO system;



FIG. 9 schematically illustrates an example of a multiple-user MIMO system; and



FIG. 10 schematically illustrates a feedback-based MIMO precoding and decoding system.





DETAILED DESCRIPTION OF THE INVENTION


FIG. 1 illustrates an Orthogonal Frequency Division Multiplexing (OFDM) transceiver chain. In a communication system using OFDM technology, at transmitter chain 110, control signals or data 111 is modulated by modulator 112 and is serial-to-parallel converted by Serial/Parallel (S/P) converter 113. Inverse Fast Fourier Transform (IFFT) unit 114 is used to transfer the signal from frequency domain to time domain. Cyclic prefix (CP) or zero prefix (ZP) is added to each OFDM symbol by CP insertion unit 116 to avoid or mitigate the impact due to multipath fading. Consequently, the signal is transmitted by transmitter (Tx) front end processing unit 117, such as an antenna (not shown), or alternatively, by fixed wire or cable. At receiver chain 120, assuming perfect time and frequency synchronization are achieved, the signal received by receiver (Rx) front end processing unit 121 is processed by CP removal unit 122. Fast Fourier Transform (FFT) unit 124 transfers the received signal from time domain to frequency domain for further processing.


The total bandwidth in an OFDM system is divided into narrowband frequency units called subcarriers. The number of subcarriers is equal to the FFT/IFFT size N used in the system. In general, the number of subcarriers used for data is less than N because some subcarriers at the edge of the frequency spectrum are reserved as guard subcarriers. In general, no information is transmitted on guard subcarriers.


Multiple Input Multiple Output (MIMO) schemes use multiple transmission antennas and multiple receive antennas to improve the capacity and reliability of a wireless communication channel. A MIMO system promises linear increase in capacity with K where K is the minimum of number of transmit (M) and receive antennas (N), i.e. K=min(M,N). A simplified example of a 4×4 MIMO system is shown in FIG. 2. In this example, four different data streams are transmitted separately from four transmission antennas. The transmitted signals are received at four receive antennas. Some form of spatial signal processing is performed on the received signals in order to recover the four data streams. An example of spatial signal processing is vertical Bell Laboratories Layered Space-Time (V-BLAST) which uses the successive interference cancellation principle to recover the transmitted data streams. Other variants of MIMO schemes include schemes that perform some kind of space-time coding across the transmission antennas (e.g., diagonal Bell Laboratories Layered Space-Time (D-BLAST)) and also beamforming schemes such as Spatial Division multiple Access (SDMA).


The MIMO channel estimation consists of estimating the channel gain and phase information for links from each of the transmission antennas to each of the receive antennas. Therefore, the channel for M×N MIMO system consists of an N×M matrix:









H
=

[




h
11




h
12







h

1





M







h
21




h
22







h

2





M





















h

N





1





h

M





2








h
NM




]





(
1
)







where hij represents the channel gain from transmission antenna j to receive antenna i. In order to enable the estimations of the elements of the MIMO channel matrix, separate pilots are transmitted from each of the transmission antennas.


An example of single-code word MIMO scheme is given in FIG. 3. In case of single-code word MIMO transmission, a cyclic redundancy check (CRC) is added to a single information block and then coding, for example, using turbo codes and low-density parity check (LDPC) code, and modulation, for example, by quadrature phase-shift keying (QPSK) modulation scheme, are performed. The coded and modulated symbols are then demultiplexed for transmission over multiple antennas.


In case of multiple codeword MIMO transmission, shown in FIG. 4, the information block is de-multiplexed into smaller information blocks. Individual CRCs are attached to these smaller information blocks and then separate coding and modulation is performed on these smaller blocks. After modulation, these smaller blocks are respectively demultiplexed into even smaller blocks and then transmitted through corresponding antennas. It should be noted that in case of multi-code word MIMO transmissions, different modulation and coding can be used on each of the individual streams, and thus resulting in a so-called Per Antenna Rate Control (PARC) scheme. Also, multi-code word transmission allows for more efficient post-decoding interference cancellation because a CRC check can be performed on each of the code words before the code word is cancelled from the overall signal. In this way, only correctly received code words are cancelled, and thus avoiding any interference propagation in the cancellation process.


In the third Generation Partnership Project (3GPP) Long Term Evolution (LTE) systems, a maximum of two codewords are used for transmission of two, three or four MIMO layers. As shown in FIG. 5, for rank-2 or two layers transmission, codeword-1 (CW1) is transmitted from Layer-0 while CW2 is transmitted from Layer-1. For rank-3 or three layers transmission, codeword-1 (CW1) is transmitted from Layer-0 while CW2 is transmitted from Layer-1 and Layer-2. For rank-4 or four layers transmission, codeword-1 (CW1) is transmitted from Layer-0 and Layer-1 while CW2 is transmitted from Layer-2 and Layer-3.


An example of single-user (SU) MIMO system is shown in FIG. 8. In case of single-user MIMO, all the MIMO layers are transmitted to a single user. In case of multi-user (MU) MIMO system as shown in FIG. 9, however, the total MIMO layers are shared among multiple units of user equipment (UEs).


In a closed-loop MIMO precoding system, for each transmission antenna size we construct a set of preceding matrices (i.e., codewords) and let this set be known at both the Node-B (i.e., the base station) and the user equipment (UE). We call this set of matrices as the “codebook” and denote it P={(P1 . . . , PL}. Here L=2q denotes the size of the codebook and q is the number of (feedback) bits needed to index the codebook. In a limited feedback precoding MIMO system illustrated in FIG. 10, once the codebook is specified for a MIMO system, the receiver observes a channel realization, selects the best precoding matrix (i.e., codeword) to be used at the moment, and feeds back the index of the codeword to the transmitter.


An example of precoding is discrete Fourier transform (DFT)-based or Fourier precoding. A Fourier matrix is a N×N square matrix with entries given by:






P
N
=e
j2πmn/N
m,n=0, 1 . . . (N−1)  (2)


For example, a 2×2 Fourier matrix can be expressed as:










P
2

=


[



1


1




1





j





π





]

=


[



1


1




1



-
1




]

.






(
3
)







Similarly, a 4×4 Fourier matrix can be expressed as:










P
4

=


[



1


1


1


1




1





j






π
/
2








j





π







j





3






π
/
2







1





j





π







j





2





π







j





3





π






1





j





3






π
/
2








j





3





π







j





9






π
/
2






]

=


[



1


1


1


1




1


j



-
1




-
j





1



-
1



1



-
1





1



-
j




-
1



j



]

.






(
4
)







Multiple Fourier matrices can be defined by introducing a shift parameter (g/G) in the Fourier matrix. The entry of the multiple Fourier matrices is given by:











P
mn

=




j





2





π



m
N

·

(

n
+

g
G


)









m


,

n
=
0

,
1
,









(

N
-
1

)

.






(
5
)







A set of four 2×2 Fourier matrices can be defined by taking G=4, and g=0, 1, 2 and 3, and are written as:











P
2
0

=

[



1


1




1



-
1




]


,


P
2
1

=

[



1


1







j






π
/
4






-



j






π
/
4







]


,






P
2
2

=

[



1


1







j






π
/
2






-



j






π
/
2







]


,


P
2
3

=


[



1


1







j





3






π
/
4






-



j





3






π
/
4







]

.






(
6
)







In a first embodiment according to the principles of the present invention, we design a SU-MIMO codebook as a function of a set of input vectors. Given a set of input vectors as shown Table 1, we can generate the codebooks per rank as shown in Table 2.









TABLE 1





Basic Vectors to Generate the Codebook according to the principles


of the current invention



















v1
1
1
1
1


v2
1
1
−1 
−1 


v3
1
−1 
1
−1 


v4
1
−1 
−1 
1


v5
1
j
−1 
−j


v6
−j
1
−j
1


v7
−1 
j
1
−j


v8
j
1
j
1


v9
1
(1 + j)/√2
j
(−1 + j))/√2


v10
(1 − j)/√2
1
(−1 − j)/√2
−j


v11
−j
(−1 + j)/√2
1
(−1 − j)/√2


v12
(−1 − j)/√2
j
(−1 + j)/√2
1


v13
1
(−1 + j)/√2
−j
(1 + j)/√2


v14
(−1 − j)/√2
1
(1 − j)/√2
j


v15
j
(1 + j)/√2
1
(1 − j)/√2


v16
(1 − j)/√2
−j
(1 + j)√2
1


v17
1
1
1
−1 


v18
1
1
−1 
1


v19
1
−1 
1
1


v20
−1 
1
1
1
















TABLE 2







Required Vectors for each Rank Codebook












Rank 1
Rank 2
Rank 3
Rank 4





















1
v1
v1
v4
v1
v2
v4
v1
v2
v3
v4


2
v5
v5
v6
v5
v6
v7
v5
v6
v7
v8


3
v3
v3
v4
v3
v4
v1
v1
v4
v3
v2


4
v7
v7
v8
v7
v8
v5
v5
v8
v7
v6


5
v9
v9
v12
v9
v10
v12
v9
v10
v11
v12


6
v13
v13
v16
v13
v14
v16
v13
v14
v15
v16


7
v11
v11
v9
v11
v9
v10
v11
v9
v12
v10


8
v15
v15
v13
v15
v13
v14
v15
v13
v16
v14


9
v2
v2
v1
v2
v1
v3
v2
v1
v4
v3


10
v6
v6
v7
v6
v8
v7
v6
v5
v8
v7


11
v4
v4
v2
v4
v3
v2
v4
v2
v3
v1


12
v8
v8
v6
v8
v6
v5
v8
v6
v7
v5


13
v17
v17
v18
v17
v18
v19
v17
v18
v19
v20


14
v18
v18
v20
v18
v17
v20
v18
v20
v17
v19


15
v19
v19
v17
v19
v20
v17
v17
v20
v19
v18


16
v20
v20
v19
v20
v19
v18
v20
v19
v18
v17









In a second embodiment according to the principles of the present invention, we can apply certain phase shifts to the vectors in order to maximize the chordal distance between each pair of matrices in each rank. Chordal distance is a distance between a pair of matrices. Exemplary phase shifts are given in Table 3.









TABLE 3







Required Phase shifts (degrees) to Vectors for each Rank Codebook











Rank 2
Rank 3
Rank 4




















1
0
0
0
0
0
0
0
0
0


2
0
0
0
0
0
0
0
0
0


3
0
180
0
180
0
0
180
0
180


4
180
0
180
0
180
180
0
180
0


5
0
0
0
0
0
0
0
0
0


6
0
0
0
0
0
0
0
0
0


7
−90
90
−90
90
−90
−90
90
90
−90


8
90
−90
90
−90
90
90
−90
−90
90


9
0
0
0
0
180
0
0
180
180


10
−90
−90
−90
90
−90
−90
90
90
−90


11
0
180
0
180
180
0
180
180
0


12
90
−90
90
−90
−90
90
−90
90
−90


13
0
0
0
0
0
0
0
0
0


14
0
0
0
0
0
0
0
0
0


15
0
0
0
0
0
0
0
0
0


16
180
180
180
180
180
180
180
180
180









These two tables can be compressed into a more compact form as shown in the table below.









TABLE 4







CodeBook Matrices as a function of input vectors












Rank 1
Rank 2
Rank 3
Rank 4



Matrices
Matrices
Matrices
Matrices





















1
v1
v1
v4
v1
v2
v4
v1
v2
v3
v4


2
v5
v5
v6
v5
v6
v7
v5
v6
v7
v8


3
v3
v3
−v4
v3
−v4
v1
v1
−v4
v3
−v2


4
v7
−v7
v8
−v7
v8
−v5
−v5
v8
−v7
v6


5
v9
v9
v12
v9
v10
v12
v9
v10
v11
v12


6
v13
v13
v16
v13
v14
v16
v13
v14
v15
v16


7
v11
−jv11
jv9
−jv11
jv9
−jv10
−jv11
jv9
jv12
−jv10


8
v15
jv15
−jv13
jv15
−jv13
jv14
jv15
−jv13
−jv16
jv14


9
v2
v2
v1
v2
v1
−v3
v2
v1
−v4
−v3


10
v6
−jv6
−jv7
−jv6
jv8
−jv7
−jv6
jv5
jv8
−jv7


11
v4
v4
−v2
v4
−v3
−v2
v4
−v2
−v3
v1


12
v8
jv8
−jv6
jv8
−jv6
−jv5
jv8
−jv6
jv7
−jv5


13
v17
v17
v18
v17
v18
v19
v17
v18
v19
v20


14
v18
v18
v20
v18
v17
v20
v18
v20
v17
v19


15
v19
v19
v17
v19
v20
v17
v17
v20
v19
v18


16
v20
−v20
−v19
−v20
−v19
−v18
−v20
−v19
−v18
−v17









In a third embodiment according to the principles of the present invention, the basis vectors v1 to v20 in Table 2 and Table 4 may be generated from source unitary matrices M1 to M5 generated from a Householder equation and five input vectors u1 to u5, or any unitary rotation thereof. The input vectors u1 to u5 are given as:






u
1
T=[1 −1 −1 −1]  (7)






u
2
T=[1 j 1 −j]  (8)






u
3
T=└1(−1+j)/√{square root over (2)}j(1+j)/√{square root over (2)}┘  (9)






u
4
T=└1(1+j)/√{square root over (2)}−j(−1+j)/√{square root over (2)}┘  (10)






u
5
T=[1 −1 −1 1]  (11)


Accordingly, the matrices M1 to M5 generated from the Householder equation and the input vectors u1 to u5 are established as:













M
1

=

[




v
1




v
2




v
3




v
4




]







=


I
4

-

2






u
1




u
1
H

/




u
1



2










=

0.5
*

[



1


1


1


1




1


1



-
1




-
1





1



-
1



1



-
1





1



-
1




-
1



1



]









(
12
)










M
2

=

[




v
5




v
6




v
7




v
8




]







=


I
4

-

2






u
2




u
2
H

/




u
2



2










=

0.5
*

[



1


j



-
1




-
j






-
j



1



-
j



1





-
1



j


1



-
j





j


1


j


1



]









(
13
)










M
3

=

[




v
9




v
10




v
11




v
12




]







=


I
4

-

2






u
3




u
3
H

/




u
3



2










=

0.5
*

[



1




1
+
j


2




j





-
1

+
j


2








1
-
j


2




1




1
-
j


2





-
j






-
j






-
1

+
j


2




1





-
1

-
j


2









-
1

-
j


2




j





-
1

+
j


2




1



]









(
14
)










M
4

=

[




v
13




v
14




v
15




v
16




]







=


I
4

-

2






u
4




u
4
H

/




u
4



2










=

0.5
*

[



1





-
1

+
j


2





-
j





1
+
j


2









-
1

-
j


2




1




1
-
j


2




1




j




1
+
j


2




1




1
-
j


2








1
-
j


2





-
j





1
+
j


2




1



]









(
15
)










M
5

=

[




v
17




v
18




v
19




v
20




]







=


I
4

-

2






u
5




u
5
H

/




u
5



2










=

0.5
*

[



1


1


1



-
1





1


1



-
1



1




1



-
1



1


1





-
1



1


1


1



]









(
16
)







In addition, matrices M1, M2 and M5 may be rotated to generated new matrices M1′, M2′ and M5′, respectively, to be used as source matrices. The rotation operation may be established by a rotation matrix Urot given as:










U
rot

=



1

2




[



1


0



-
1



0




0


1


0



-
1





1


0


1


0




0


1


0


1



]


.





(
17
)







Accordingly, the rotated matrices M1′, M2′ and M5′, are established as:













M
1


=


U
rot

*

M
1








=


U
rot

*


1

2




[



1


0


1


0




0


1


0


1




0



-
1



0


1





-
1



0


1


0



]









=

0.5
*

[



1


1


1


1




1


1



-
1




-
1





1



-
1



1



-
1





1



-
1




-
1



1



]









(
18
)










M
2


=


U
rot

*

M
2








=


U
rot

*


1

2




[



0


j


0



-
j





0


1


0


1





-
1



0


1


0




j


0


j


0



]









=

0.5
*

[



1


j



-
1




-
j






-
j



1



-
j




-
1






-
1



j


1



-
j





j


1


j


1



]









(
19
)










M
5


=


U
rot

*

M
5








=


U
rot

*


1

2




[



1


0


1


0




0


1


0


1




0



-
1



0


1





-
1



0


1


0



]









=

0.5
*

[



1


1


1



-
1





1


1



-
1



1




1



-
1



1


1





-
1



1


1


1



]









(
20
)







We could also use as source a combination of a DFT matrix M2 as given by Equation (13), a Walsh matrix M1 as given by Equation (12), block diagonal matrix and any unitary rotation thereof. Block diagonal matrix MB refers to a class of matrices that are given by the following 4 by 4 matrix:











M
B

=

[



A














B



]


,




(
21
)







where A and B are both 2 by 2 matrices.


Given these source matrices M1 to M5, and M1′, M2′ and M5′, we can generate the codebook as rotated column subset selections of these matrices as listed in Table 4.


One of the properties of the codebooks shown in Table 2 and 4 is that these codebook are fully nested. In other words, the rank-1 vectors are column subsets of the rank-2 matrices, the rank-2 matrices are a subset of the rank-3 matrices, and the rank-3 matrices are a subset of the rank-4 precoding matrices. The advantage of this is that when the precoded channel is calculated for a given rank, no further complex multiplications and additions are required to calculate the precoded channel of the lower ranks. In fact the lower rank precoded channels are column subsets of the higher rank precoded channels.


While the present invention has been shown and described in connection with the preferred embodiments, it will be apparent to those skilled in the art that modifications and variations can be made without departing from the spirit and scope of the invention as defined by the appended claims.

Claims
  • 1. A method for communication, the method comprising: establishing and broadcasting a codebook comprising a plurality of codebook entries, with each codebook entry comprising four sets of vectors for four respective corresponding transmission ranks, and the codebook being established by:
  • 2. The method of claim 1, comprised of the certain vectors v1 through v20 are respectively established by: v1T=[1 1 1 1],v2T=[1 1 −1 1],v3T=[1 −1 1 −1],v4T=[1 −1 −1 1],v5T=[1 j −1 −j], v6T=[−j 1 −j 1],v7T=[−1 j 1 −j], v8T=[j 1 j 1],v9T=└1(1(1+j)/2j(−1+j)/√{square root over (2)}┘,v10T=└1(1−j)/√{square root over (2)}1(−1−j)/√{square root over (2)}−j┘, v11T=└−j(−1+j)/√{square root over (2)}1(−1−j)/√{square root over (2)}┘v12T=└(−1−j)/√{square root over (2)}j(−1+j)/√{square root over (2)}1┘,v13T=└(−1+j)/√{square root over (2)}−j(1+j)/√{square root over (2)}1┘,v14T=└(−1−j)/√{square root over (2)}1(1−j)/√{square root over (2)}j┘, v15T=└j(1+j)/√{square root over (2)}1(1−j)/√{square root over (2)}┘,v16T=└(1−j)/√{square root over (2)}−j(1+j)/√{square root over (2)}1┘,v17T=[1 1 1 −1],v18T=[1 −1 1],v19T=[1 −1 1 1], andv20T=[−1 1 1 1].
  • 3. The method of claim 1, comprised of the vectors v1 through v20 being established from five matrices M1 to M5 generated from a Householder equation and five input vectors u1 to u5, with the five matrices M1 to M5 being established by:
  • 4. The method of claim 3, comprised of the matrices M1, M2 and M5 being rotated to generate new unitary matrices M1′, M2′ and M5′, with the rotating operation being established by a rotation matrix Urot give as:
  • 5. The method of claim 1, comprised of the vectors v1 through v20 being established from a combination of a discrete Fourier transform (DFT) matrix, a Walsh matrix, a block diagonal matrix, and any unitary rotation of the discrete Fourier transform (DFT) matrix, the Walsh matrix, the block diagonal matrix, with: the discrete Fourier transform (DFT) matrix being established by:
  • 6. A wireless terminal in a communication network, with the wireless terminal comprising a memory unit storing a codebook comprising a plurality of codebook entries, with each codebook entry comprising four sets of vectors for four respective corresponding transmission ranks, and the codebook being established by:
  • 7. The wireless terminal of claim 6, comprised of the certain vectors v1 through v20 are respectively established by: v1T[1 1 1 1],v2T=[1 1 −1 1],v3T=[1 −1 1 −1],v4T=[1 −1 −1 1],v5T=[1 j −1 −j], v6T=[−j 1 −j 1],v7T=[−1 j 1 −j], v8T=[j 1 j 1],v9T=└1(1+j)/√{square root over (2)}(−1+j)/√{square root over (2)}┘,v10T=└(1−j)/√{square root over (2)}1(−1−j)/√{square root over (2)}−j┘, v11T=└−j(−1+j)/√{square root over (2)}1(−1−j)/√{square root over (2)}┘v12T=└(−1−j)/√{square root over (2)}j(−1+j)/√{square root over (2)}1 ┘,v13T=└1(−1+j)/√{square root over (2)}−j(1+j)/√{square root over (2)}, ┘,v14T=└(−1−j)/√{square root over (2)}1(1−j)/√{square root over (2)}j┘, v15T=└j(1+j)/√{square root over (2)}1(1−j)/√{square root over (2)}┘,v16T=└j(1−j)/√{square root over (2)}−j(1+j)/√{square root over (2)}1┘,v17T=[1 1 1 −1],v18T=[1 1 −1 1],v19T=[1 −1 1 1], andv20T=[−1 1 1 1].
  • 8. The wireless terminal of claim 6, comprised of the certain vectors V1 through V20 being established from five matrices M1 to M5 generated from a Householder equation and five input vectors u1 to u5, with the five matrices M1 to M5 being established by:
  • 9. The wireless terminal of claim 8, comprised of the matrices M1, M2 and M5 being rotated to generated new unitary matrices M1′, M2′ and M5′ with the rotating operation being established by a rotation matrix Urot give as:
  • 10. The wireless terminal of claim 6, comprised of the vectors v1 through v20 being established from a combination of a discrete Fourier transform (DFT) matrix, a Walsh matrix, a block diagonal matrix, and any unitary rotation of the discrete Fourier transform (DFT) matrix, the Walsh matrix, the block diagonal matrix, with: the discrete Fourier transform (DFT) matrix being established by:
CLAIM OF PRIORITY

This application makes reference to, incorporates the same herein, and claims all benefits accruing under 35 U.S.C. §119 from a provisional application earlier filed in the U.S. Patent & Trademark Office on 26 Jun. 2007 and there duly assigned Ser. No. 60/929,396.

Provisional Applications (1)
Number Date Country
60929396 Jun 2007 US