As the article concentrates on the SIC and the iterative power allocation concepts, it is sufficient to use the downlink transmission model for a single-input-single-output multi-code CDMA system operating over a frequency selective multipath channel. However, the methods reported here are also applicable to the MIMO based systems.

The system model in this section describes the process of transmitting parallel strings of data bits {\overrightarrow{u}}_{1} to {\overrightarrow{u}}_{K} which are first mapped to symbols according to the desired modulation scheme. Through processing, the transmit vector \overrightarrow{z}\left(\rho \right) for each symbol period *ρ* is obtained at the transmit antenna. These vectors are transmitted over the frequency selective multipath channel before reaching the receiver. At the receiver, the antenna collects the receive signal vector \overrightarrow{r}\left(\rho \right) for each symbol period *ρ* which are further processed to obtain the parallel data bits streams {\hat{\overrightarrow{u}}}_{1} to {\hat{\overrightarrow{u}}}_{K}.

Consider a multi-code CDMA downlink with *K* code channels, each of which is realizable with a bit rate of {b}_{{p}_{k}} bits per symbol from a set of bit rates, {\left\{{b}_{{p}_{k}}\right\}}_{{p}_{k}=1}^{P}, for a given total energy *E*_{
T
}and *p* = 1, 2,..., *P*. The data for each intended channel is placed in an (*N*_{
U
}× 1)-dimensional vector {\overrightarrow{u}}_{k} for *k* = 1, ..., *K*. Each of these data packets is then channel encoded to produce a (*B* × 1)-dimensional vector {\overrightarrow{d}}_{k} and mapped to symbols using a quadrature amplitude modulation scheme (QAM) with *M* constellations to transmit data at a rate *b* = log_{2}*M* bits per symbol. The channel encoder rate is {r}_{\text{code}}=\frac{{N}_{U}}{B} and the realizable discrete rates are given by *b*_{
p
}= *r*_{code} log_{2}*M*.

Data is transmitted in packets at a transmission-time-interval (*TTI*) and the number of symbols transmitted per packet is denoted as *N*^{(x)}, where {N}^{\left(x\right)}=\frac{\mathrm{TTI}}{N{T}_{c}} and *N* is the spreading sequence length, *T*_{
c
}is the chip period, and *NT*_{
c
}is the symbol period. Transmission symbols are used to produce a (*N*^{(x)}× 1)-dimensional symbol vector {\overrightarrow{x}}_{k}={\left[{x}_{k}\left(1\right),\dots ,{x}_{k}\left(\rho \right),\dots ,{x}_{k}\left({N}^{\left(x\right)}\right)\right]}^{T} for each vector {\overrightarrow{d}}_{k}. The entire block of transmission can be represented as an (*N*^{(x)}× *K*) dimensional transmit symbol matrix defined as

\mathbf{X}=\left[{\overrightarrow{x}}_{1},\dots ,{\overrightarrow{x}}_{k},\dots ,{\overrightarrow{x}}_{K}\right]

(1)

={\left[\overrightarrow{y}\left(1\right),\dots ,\overrightarrow{y}\left(\rho \right),\dots ,\overrightarrow{y}\left({N}^{\left(x\right)}\right)\right]}^{T}.

(2)

The transmitted vector \overrightarrow{y}\left(\rho \right)={\left[{y}_{1}\left(\rho \right),\dots ,{y}_{k}\left(\rho \right),\dots ,{y}_{K}\left(\rho \right)\right]}^{T} contains the symbols, over the symbol period *ρ* = 1,..., *N*^{(x)}, with the unit average energy E\left({y}_{k}\left(\rho \right){y}_{k}^{*}\left(\rho \right)\right)=1 for *k* = 1,...,*K*. Before transmission, the symbols are weighted with an amplitude matrix \mathbf{A}=\text{diag}\left(\sqrt{{E}_{1}},\dots ,\sqrt{{E}_{k}},\dots ,\sqrt{{E}_{K}}\right) and spread with an *N* × *K* dimensional signature sequence matrix

\mathbf{S}=\left[{\overrightarrow{s}}_{1},\dots ,{\overrightarrow{s}}_{k},\dots ,{\overrightarrow{s}}_{K}\right].

(3)

This results in the size *N* transmission column vector expressed as \overrightarrow{z}\left(\rho \right)={\left[{z}_{1}\left(\rho \right),\dots ,{z}_{n}\left(\rho \right),\dots ,{z}_{N}\left(\rho \right)\right]}^{T}=\mathbf{SA}\overrightarrow{y}\left(\rho \right). Each element, *z*_{
n
}(*ρ*), of the transmission vector \overrightarrow{z}\left(\rho \right), for *n* = 1,..., *N*, is then filtered using a pulse shaping function at regular intervals of chip period *T*_{
c
}before being modulated with an up converter to transmit the data at the desired frequency.

For the duration of packet transmission, the link between the transmitter and receiver antennas is then modeled using the multipath radio channel impulse response vector \overrightarrow{h}={\left[{h}_{0}\dots {h}_{L-1}\right]}^{T}. The ((*N* + *L*-1) × *N* )-dimensional channel convolution matrix **H** is formed as follows

\mathbf{H}=\left[\begin{array}{cccc}\hfill \overrightarrow{h}\hfill & \hfill 0\hfill & \hfill \cdots \phantom{\rule{0.3em}{0ex}}\hfill & \hfill 0\hfill \\ \hfill 0\hfill & \hfill \overrightarrow{h}\hfill & \hfill \ddots \hfill & \hfill \vdots \hfill \\ \hfill \vdots \hfill & \hfill \cdots \phantom{\rule{0.3em}{0ex}}\hfill & \hfill \ddots \hfill & \hfill 0\hfill \\ \hfill 0\hfill & \hfill \cdots \phantom{\rule{0.3em}{0ex}}\hfill & \hfill 0\hfill & \hfill \overrightarrow{h}\hfill \end{array}\right].

(4)

In the presence of more than one resolvable path (*L* > 1), the despreading signature sequences at the receiver antenna would be longer than the spreading signature sequences at the transmit antenna. The channel impulse response \overrightarrow{h} convolves with the transmission signature sequence matrix **S** to produce the (*N* + *L* - 1) × *K* dimensional receiver matched filter signature sequence matrix as

\mathbf{Q}=\mathbf{HS}=\left[{\overrightarrow{q}}_{1,}\dots {\overrightarrow{q}}_{k,}\dots {\overrightarrow{q}}_{K}\right]

(5)

where {\overrightarrow{q}}_{k}=\mathbf{H}{\overrightarrow{s}}_{k} is an (*N* + *L* - 1)-dimensional matched filter receiver signature sequence sequence which is a function of an (*N* × 1)-dimensional signature sequence {\overrightarrow{s}}_{k}.

At the receiver, it is assumed that the receiver carrier and clocks are fully synchronized with the transmitter carrier and clocks. The received signal at the receiver antenna is first down converted to the baseband which is passed through the receiver chip matched filter (CMF) and the filtered signal is sampled at the chip period intervals *T*_{
c
}.

The signal vector \overrightarrow{r}\left(\rho \right)={\left[{r}_{1}\left(\rho \right)\dots {r}_{N+L-1}\left(\rho \right)\right]}^{T} of size (*N* + *L* - 1) gives the received matched filtered signal samples at the *ρ* th symbol period for *ρ* = 1,..., *N*^{(x)}. The vector \overrightarrow{r}\left(\rho \right) consists of portions [*r*_{1}(ρ) ... *r*_{
L
}(*ρ*)] = [*r*_{
N
}(*ρ* - 1) ... *r*_{N + L - 1}(*ρ* - 1)] and [*r*_{
N
}(*ρ*) ... *r*_{N + L - 1}(*ρ*)] = [*r*_{1}(*ρ* + 1) ... *r*_{
L
}(*ρ* + 1)] which include the ISI components for *ρ* = 1,..., *N*^{(x)}- 1. The ISI is incorporated into the system model by producing the (*N* + *L* - 1) × 3*K* dimensional extended matched filter matrix

{\mathbf{Q}}_{e}=\left[\mathbf{Q},\phantom{\rule{1em}{0ex}}{\left({\mathbf{J}}_{N+L-1}^{T}\right)}^{N}\mathbf{Q},\phantom{\rule{1em}{0ex}}{\mathbf{J}}_{N+L-1}^{N}\mathbf{Q}\right].

(6)

In [32] the (*N* + *L* - 1) × (*N* + *L* - 1)-dimensional matrix is defined as {\mathbf{J}}_{N+L-1}=\left[\begin{array}{cc}\hfill {\overrightarrow{\mathbf{0}}}_{\left(N+L-2\right)}^{T}\hfill & \hfill 0\hfill \\ \hfill {\mathbf{I}}_{\left(N+L-2\right)}\hfill & \hfill {\overrightarrow{\mathbf{0}}}_{\left(N+L-2\right)}\hfill \end{array}\right]. For simplicity the subscript will be dropped from the **J** matrix notation. When the matrix **J** (**J**^{T}) operates on a column vector, it downshifts (upshifts) the column by *N* chips while filling the top (bottom) of the column with *N* zeros. The ISI interference signature sequence matrices {\left({\mathbf{J}}^{T}\right)}^{N}\mathbf{Q} and **J**^{N}**Q** are expressed {\left({\mathbf{J}}^{T}\right)}^{N}\mathbf{Q}=\left[{\overrightarrow{q}}_{1,1},\dots {\overrightarrow{q}}_{k,1},\dots {\overrightarrow{q}}_{K,1}\right] and {\mathbf{J}}^{N}\mathbf{Q}=\left[{\overrightarrow{q}}_{1,2},\dots {\overrightarrow{q}}_{k,2},\dots {\overrightarrow{q}}_{K,2}\right]. Both {\overrightarrow{q}}_{k,1} and {\overrightarrow{q}}_{k,2} are the receiver signature sequences corresponding to the previous and the next symbol periods and are used to handle the ISI.

The (*N + L-1*) dimensional received signal vector is given in terms of the transmitter vector \overrightarrow{y}\left(\rho \right) as

\overrightarrow{r}\left(\rho \right)={\mathbf{Q}}_{e}\left({\mathbf{I}}_{3}\otimes \mathbf{A}\right){\left[\overrightarrow{y}{\left(\rho \right)}^{T},\overrightarrow{y}{\left(\rho -1\right)}^{T},\overrightarrow{y}{\left(\rho +1\right)}^{T}\right]}^{T}+\overrightarrow{n}\left(\rho \right)

(7)

where ⊗ is the Kronecker product and the (*N* + *L* - 1) dimensional noise vector \overrightarrow{n}\left(\rho \right) has the noise covariance matrix E\left(\overrightarrow{n}\left(\rho \right){\overrightarrow{n}}^{H}\left(\rho \right)\right)=2{\sigma}^{2}{\mathbf{I}}_{N+L-1} with the noise variance {\sigma}^{2}=\frac{{N}_{0}}{2}.

The received signal vector \overrightarrow{r}\left(\rho \right) is used to produce the size *K* column vector \widehat{\overrightarrow{y}}\left(\rho \right)={\left[{\u0177}_{1}\left(\rho \right),\mathrm{...},{\u0177}_{k}\left(\rho \right),\mathrm{...},{\u0177}_{K}\left(\rho \right)\right]}^{T} as an estimate of the transmitted symbol vector \overrightarrow{y}\left(\rho \right) as follows

\widehat{\overrightarrow{y}}\left(\rho \right)={\mathbf{W}}^{H}\overrightarrow{r}\left(\rho \right).

(8)

The (*N + L*-1) × *K* dimensional matrix \mathbf{W}=\left[{\overrightarrow{w}}_{1},\mathrm{...},{\overrightarrow{w}}_{k},\mathrm{...},{w}_{K}\right] has the MMSE linear equalizer despreading filter coefficients {\overrightarrow{w}}_{K} for *k* = 1,..., *K*. To ensure that {\overrightarrow{w}}_{k}^{H}{\overrightarrow{q}}_{k}=1 while minimizing the cross-correlations {\overrightarrow{w}}_{k}^{H}{\overrightarrow{q}}_{j} for *j* ≠ *k*, a normalized MMSE despreading filter coefficient vector [30],

{\overrightarrow{w}}_{k}=\frac{{\mathbf{C}}^{-1}{\overrightarrow{q}}_{k}}{{q}_{k}^{-H}{\mathbf{C}}^{-1}{\overrightarrow{q}}_{k}}

(9)

is used. Where

\mathbf{C}={\mathbf{Q}}_{e}\left({\mathbf{I}}_{3}\otimes {\mathbf{A}}^{2}\right){\mathbf{Q}}_{e}^{H}+2{\sigma}^{2}{\mathbf{I}}_{N+L-1}

(10)

is the (*N + L*-1) × (*N* + *L* - 1) dimensional covariance matrix \mathbf{C}=E\left(\overrightarrow{r}\left(\rho \right){\overrightarrow{r}}^{H}\left(\rho \right)\right) of the received signal vector \overrightarrow{r}\left(\rho \right). The covariance matrix **C**, given in (10), can be iteratively calculated using

{\mathbf{C}}_{k}={\mathbf{C}}_{k-1}+{E}_{k}{\overrightarrow{q}}_{k}{\overrightarrow{q}}_{k}^{H}+{E}_{k}{\overrightarrow{q}}_{k,1}{q}_{k,1}^{H}+{E}_{k}{\overrightarrow{q}}_{k,2}{\overrightarrow{q}}_{k,2}^{H}

(11)

={\mathbf{D}}_{k}+{E}_{k}{\overrightarrow{q}}_{k}{\overrightarrow{q}}_{k}^{H}

(12)

for *k* = 1,..., *K* when using **C**_{0} = 2*σ*^{2}I_{N+L-1}and **C** = **C**_{
K
}. **D**_{
k
}is a covariance matrix which excludes {E}_{k}{\overrightarrow{q}}_{k}{\overrightarrow{q}}_{k}^{H} for the current channel *k* as shown below:

{\mathbf{D}}_{k}={\mathbf{C}}_{k-1}+{E}_{k}{\overrightarrow{q}}_{k,1}{\overrightarrow{q}}_{k,1}^{H}+{E}_{k}{\overrightarrow{q}}_{k,2}{\overrightarrow{q}}_{k,2}^{H}.

(13)

At the output of each receiver, the mean-square-error {\epsilon}_{k}=E\left({\left|{\u0177}_{k}\left(\rho \right)-{y}_{k}\left(\rho \right)\right|}^{2}\right) between the transmitted signal *y*_{
k
}(*ρ*) and the estimated signal {\u0177}_{k}\left(\rho \right) is given by [30]

{\epsilon}_{k}=1-{E}_{k}{\overrightarrow{q}}_{k}^{H}{\mathbf{C}}^{-1}{\overrightarrow{q}}_{k}

(14)

=\frac{1}{1+{\gamma}_{k}}=1-{\lambda}_{k}

(15)

for *k*= 1*, ..., K*; where

{\gamma}_{k}=\frac{1-{\epsilon}_{k}}{{\epsilon}_{k}}=\frac{{E}_{k}{\overrightarrow{q}}_{k}^{H}{\mathbf{C}}^{-1}{\overrightarrow{q}}_{k}}{1-{E}_{k}{\overrightarrow{q}}_{k}^{H}{\mathbf{C}}^{-1}{\overrightarrow{q}}_{k}}

(16)

is the SNR at the output of each receiver.

One of our main objectives is to minimize the total MSE {\epsilon}_{T}={\sum}_{k=1}^{K}{\epsilon}_{k} based on [17, 18] to maximize the total rate {b}_{T}={\sum}_{k=1}^{K}{b}_{{p}_{k}} where {b}_{{p}_{k}} is the number of discrete bits allocated to each spreading sequence symbol subject to the energy constraint {\sum}_{k=1}^{K}{E}_{k}\le {E}_{T}. This can be written in terms of Lagrangian dual objective function as

L\left({\epsilon}_{k},{E}_{k},\lambda \right)=\sum _{k=1}^{K}{\epsilon}_{k}+\lambda \left(\sum _{k=1}^{K}{E}_{k}-{E}_{T}\right)

(17)

to minimize {\epsilon}_{T}={\sum}_{k=1}^{K}{\epsilon}_{k} and

L\left({b}_{{p}_{k}},{E}_{k},\lambda \right)=\sum _{k=1}^{K}{b}_{{p}_{k}}+\lambda \left(\sum _{k=1}^{K}{E}_{k}-{E}_{T}\right)

(18)

when maximizing total rate {b}_{T}={\sum}_{k=1}^{K}{b}_{{p}_{k}}, where {b}_{{p}_{k}} are discrete values and *λ* is the Lagrangian multiplier.

Rearranging (15), the system value *λ*_{
k
}can be rewritten as follows:

{\lambda}_{k}=1-{\epsilon}_{k}=\frac{{\gamma}_{k}}{1+{\gamma}_{k}},

(19)

={E}_{k}{\overrightarrow{q}}_{k}^{H}{\mathbf{C}}^{-1}{\overrightarrow{q}}_{k}.

(20)

then, (17) and (18) are also equivalent to the optimizing the total system value {\lambda}_{T}={\sum}_{k=1}^{K}{\lambda}_{k}:

L\left({\lambda}_{k},{E}_{k},\lambda \right)=\sum _{k=1}^{K}{\lambda}_{k}+\lambda \left(\sum _{k=1}^{K}{E}_{k}-{E}_{T}\right).

(21)

The following section will introduce the system value optimization in (21) for sum capacity maximization.