In previous section, we discussed different techniques for construction of single thread delto codes. To improve the rate of these codes, we combine multiple delto threads in single codeword matrices. There is more than one way of packing such threads. Here, we discuss two methods as follows.
4.1. Cyclic shift
This method has a very simple and interesting structure. We use to shift each column of thread matrix Λ
k
(k = 1, 2, ..., N
t
) by one element in thread matrix Λk+1. We repeat the process till the last thread Λ
M
.
Let Λ
k
be thread k for N
t
transmit antennas and T vector channel uses. Then, for N
t
= 4 and , for thread matrix , we get
(16)
For ease to understand, we replace the non-zero elements in their respective locations by alphabets a, b, c and d in Λ1 to Λ4, respectively. So, the above codeword matrix is reproduced as
(17)
After making a shift by one element in each column in above codeword matrix, we get
(18)
After making a shift by one element in each column in above codeword matrix, we get
(19)
After making a shift by one element in each column in above codeword matrix, we get
(20)
Equivalently, we can construct such a codeword threads matrix by following expression
(21)
where Xmod is ordinary modulo N
t
function with a small difference that it replaces the output zero by N
t
, and the Kronecker delta function is defined as
(22)
From this packing of threads, we get an N
t
× T space-time code which transmits N
t
repetition codes simultaneously, one per thread by selecting the code codewords [7].
(23)
For arbitrary.
(Note that the notations a, b, c, d... used in above codewords matrices are replaced by ).
For HM thread structure when N
t
= 4 and
by packing threads to , we get
(24)
Similarly for N
t
= 3, we have
(25)
and when N
t
= 2, we have
In case of UU threads
UU threads can also be packed in the same way as we did above for HM threads.
For N
t
= 4 and T = 2N
t
, we have
(27)
(28)
(29)
(30)
and packing all the four threads into a single codeword matrix, we get
(31)
For N
t
= 3, we get
(32)
and for N
t
= 2, get
4.2. Algebraically packed multiple-threads
The codes constructed in Section 3 are individually delto and fully diverse, but when they are packed together in a single codeword matrix in a way as we did above, it is not guaranteed that they are delto and fully diverse because the threads may interact in a detrimental way [7]. The remarkable work of El Gamal and Damen [10] can be used to make it sure that the packed codewords are delto and fully diverse.
Let Λ be the HM thread for N
t
transmit antennas and vector channel uses. Let fi, j: Ω → C be a one-to-one function for each choice i = 1, 2, ..., N
t
and j = 1, 2, ..., T. For each thread, Λ
k
derived from Λ in accordance with (6), form the threaded matrix function F
k
(x) whose (i, j) th entry is fi, j(x)·Λ
k
(i, j) [[7], th: 12].
Consider the N
t
× T space-time code with L ≤ N
t
active threads consisting of all modulated codewords of the form:
for a1, a2, ..., a
L
∈ Ω arbitrary.
Then, achieve full spatial diversity and is fully delto.
Proof: Assume a and b are two distinct codewords and are subject to the delay profile Δ.
Then, sΔ is given as
where
Let m denote the largest index for which a
m
≠ b
m
but a
i
= b
i
for i > m. Then,
(34)
The non-zero elements in main diagonal form a submatrix, and are given by
This submatrix has determinant
(35)
where G(ϕ) is a polynomial in ϕ over of degree < N
t
(m-1). Since the functions are all one-to-one and a
m
≠ b
m
, Equation (35) is a non-trivial polynomial in ϕ of degree N
t
(m-1) over .
By design choice, ϕ is not the root of any non-trivial polynomial of degree N
t
(m-1) over . Hence, D(ϕ) ≠ 0, so the matrix is of full rank. We conclude that achieves full spatial diversity and is fully delto.
Code rate
In the multiple thread code construction, the rate of the space-time code is given [7] as
Thus, we can make full rate by proper selection of parameters L and P for a given set of code parameters N
t
, N
r
and T. In other words, we make the modulation parameters flexible to match the specified spatio-temporal structure. This selection of modulation parameters can be done in different ways, a natural choice is to take L = min(N
t
, N
r
) and P = T.
4.3. Packing of threads (when L< N
t
)
In previous section, we developed a technique of packing the single thread codeword matrices into L = N
t
threads codeword matrices. Selecting fewer threads than N
t
may increase the spectral efficiency of the code without increasing the constellation size by reducing the code interval length, but for that we have to relax the condition of antenna usage per time unit within each thread. In this section, we pack the threads in such a way that we allow the usage of more than one antenna per time unit within each thread.
4.3.1. HM thread
We denote the smallest code length for transmission of L threads from N
t
transmit antennas by . From Section 3, we know that for HM threads the total number of channel usage is , where n
i
= i.
Now let η1, η2, ..., η
L
denote permutation assigning the values to the transmit antennas 1,2,...,N
t
. Then, according to [7], we may write
(36)
From (36), for L = 1, we have
and for L > 1, we have
(38)
For N
t
= 4 and L = 1 and 2, we have for example
(39)
(40)
4.3.2. UU thread
We denote the smallest code length for transmission of L threads from N
t
transmit antennas by . From Section 3, we saw that for UU thread, the maximum expansion between two channel uses is 2N
t
-1. So, we may deduce that
(41)
For example, for N
t
= 4 and L = 1, we have
(42)
For N
t
= 4, L = 2
(43)
when N
t
= 4 and L = 3
(44)
For N
t
= 3 and L = 3 we have for example
(45)
Such type of codes will work efficiently for larger value of L. For smaller value of L, we can delete zero columns in (17) and (18), even after amputation of these columns the obtained codes still retain their properties of full diversity and delto.