Free Essay

Multi User Detection

In:

Submitted By oyku
Words 8974
Pages 36
A project reported submitted in partial fulfillment of the requirements of the course EEL6503: Spread Spectrum and CDMA, Fall 2001

Submitted by Arun Avudainaygam

LINEAR AND ADAPTIVE LINEAR MULTIUSER DETECTION IN CDMA SYSTEMS

Project Website: http://arun-10.tripod.com/mud/mud.html

SECTION 0

Introduction

Multiuser detection is a technology that spawned in the early 80’s. It has now developed into an important, full-fledged field in multi-access communications. Multiuser Detection (MUD) is the intelligent estimation/demodulation of transmitted bits in the presence of Multiple Access Interference (MAI). MAI occurs in multi-access communication systems (CDMA/ TDMA/ FDMA) where simultaneously occurring digital streams of information interfere with each other. Conventional detectors based on the matched filter just treat the MAI as additive white gaussian noise (AWGN). However, unlike AWGN, MAI has a nice correlative structure that is quantified by the cross-correlation matrix of the signature sequences. Hence, detectors that take into account this correlation would perform better than the conventional matched filter-bank. MUD is basically the design of signal processing algorithms that run in the black box shown in figure 0.1. These algorithms take into account the correlative structure of the MAI.

0.1 Overview of the project
This project investigates a couple of different approaches to linear multiuser detection in CDMA systems. Linear MUDs are detectors that operate linearly on the received signal statistic i.e., they perform only linear transformations on the received statistic. This report assumes that the reader has a basic knowledge of probability theory and random processes and is familiar with the fundamental concepts of spread spectrum and CDMA systems.

0.2 Organization of the report
This report has been typeset in the 2-column landscape format to help preserve continuity in the mathematical development in some sections. The reader need not keep flipping pages to keep up with the large number of equations that are involved in certain sections. The report is orgainzed as follows: • The next sub-section introduces the system model that will be used throught this project. • Section I presents the conventional method of demodulating mutually interfering signals: the matched filter (which treats the MAI as AWGN). • Section II studies the decorrelating detector which takes the matched filter one step further by taking into account the correlative structure of the MAI. • Section III presents the minimum mean square error (MMSE) linear detector which is a compromise between the matched filter approach and the decorrelating detector. Two different adaptive implementations (least mean square or LMS and blind adaptation) are implemented and the convergence properties are studied.

0.3 System model
The K-user discrete time basic synchronous CDMA model has been used throughout the development of this project. The case of antipodally modulated user information (BPSK modulation) spread using BPSK spreading is considered. To make the project realizable in the time allocated, a very small spreading sequence of length 31 was used. A preferred pair [1,2] of m-sequences generated by the primitive polynomials and were used for all the 2-user scenarios. For the number of users greater than 2, gold codes generated by the 2 m-sequences

Figure 0.1 A typical multiuser detector

described above were used. See Appendix A for a list of codes in this project. Unless otherwise mentioned, in all the simulations perfect power control is assumed (i.e, the received amplitudes of all the users are assumed to be the same. The signal at the receiver is given by

y(t) = ∑ A k b k s k (t) + n(t) ………………………………(0.1) k =1

K

, where



m-sequence of length 31, the signature waveform is defined as
30 k =0

sk is the signature waveform of the kth user (sk is normalized to have unit energy i.e., < sk ,sk > =1). For BPSK spreading with an

s k (t) = ∑ a k p T (t - kTc ) , T=bit period, Tc =chip interval… (0.2) where ak represents the normalized spreading sequence. • bk is the input bit of the kth user, bk ∈{-1,1}. • Ak is the received amplitude of the kth user. • n(t) is additive white gaussian noise with PSD No . Since synchronous CDMA is considered, it is assumed that the receiver has some means of achieving perfect chip synchronization. The cross-correlation of the signature sequences are defined as

ρ ij = s i s j = ∑ s i (k)s j (k) ………………………………(0.3) k =1

N

where N is the length of the signature sequence (31 in our case). The cross-correlation matrix is then defined as

i.e.,

R={ρij}    ρ11 ρ12  ρ1K    R =  ρ 21 ρ 22  ρ 21K  ……………………….………(0.4)       ρ   K 1 ρ K 2  ρ KK 

R is a symmetric, non-negative definite, toeplitz matrix.

SECTION I

The Matched-Filter Bank

This section introduces and analyses the matched filter bank detector which was the conventional and most simplest way of demodulating CDMA signals (or any other set of mutually interfering digital streams). The matched filter also forms the front-end in most MUDs and hence understanding the operation is crucial in appreciating the evolution of MUD technology.

The decision statistic a the output of the Kth matched filter is given by

y k = ∫ y(t)s k (t)dt ………………..………………….(2.1)
0

T

where y(t) and sk(t) is given by (0.1) and (0.2). Expanding (2.1),

2.0 Receiver Operation
In conventional single-user digital communication systems, the matched filter is used to generate sufficient statistics for signal detection. In the case of a multi-user system, the detector consists of a bank of matched filters (each matched to the signature waveforms of different users in the case of CDMA). This is shown in figure 1.1. This type of detector is referred to as the conventional detector in MUD literature. It is worth mentioning that we need exact knowledge of the users signature sequences and the signal timing in order to implement this detector. Using (0.3)

K  y k = ∫ ∑ A j b js j (t) + n(t)s k (t)dt …………….(2.2) 0  j=1 
T

y k = ∑ A j b jρ jk + n k ……………………………..(2.3) j=1 T

K

where

n k = ∫ n(t)s k (t)dt ……….…………………………(2.4)
0

Since ρ11=1, (2.3) simplifies to

y k = A k b k + ∑ A j b jρ jk + n k …………………..(2.5) j=1 j≠ k

K

The 2nd term in (2.5) is the MAI. The matched filter treats the MAI just as white noise. The noise variance at the output of the matched filter is given by

…(2.6) Similarly, the noise covariance can be shown to be E(n i n j ) = N o ρ ij …………………………………..……(2.7) Hence the noise covariance matrix can be defined as
T

E[nn T ] = {N o ρ ij }ij = N o R …………………………..(2.8)

where R is given by (0.4) and n=[n1,n2,…,nk] . Stacking up (2.5) for all the users we get Figure 1.2 A matched filter bank

     y1   ρ11 ρ12  ρ1K  A 1      y 2  =  ρ 21 ρ 22  ρ 21K   0            y  ρ   K   K 1 ρ K 2  ρ KK   0

0  A2    0 

    0   b1   n 1      0  b2  +  n 2         A K   b K  n K     

2.1 Limitations of the conventional detector Although {y1,y2,…,yk} are sufficient statistics for detecting {b1,b2,…,bk}, yk is not a sufficient statistic for detecting bk. The conventional detector makes the mistake of making this assumption (yk is a sufficient statistic for detecting bk) by ignoring the MAI as background noise. This is one reason for the poor performance of the matched filter bank when the number of users is large. Another serious limitation of the conventional detector is that it is seriously affected by the near-far problem. This causes a significant degradation in the system performance even when the number of users is very small. This fact will now be illustrated with an example. This example is a condensed version of a scenario described in [3]. Adapting (2.5) to the 2 user scenario we get, y1 = A1 b1 + A 2 b 2jρ12 + n 1 ……………………………..(2.11) It is now obvious that the bit error probability for user 1 is

….......(2.9) ∴ In matrix notation we have, y=RAb+n………………………………………………(2.10) Figure 2.2 shows the error rate performance of the bank of matched filters. The simulation scenario is explained in section 0.3. It is observed that as the MAI increases (the number of users increases) the performance becomes poor. This is because the detector ignores the cross-talk between users (the MAI) as white noise. Good MUDs, as described in the next few sections, take into the account the correlative property of the cross-talk.

Ps1 =

The probability of bit error is then readily upper bounded as

1   A1 + A 2 ρ12 Q 2  No  1  A 1 − A 2 ρ12 Q 2  No 

  A − A 2 ρ12  + Q 1   No  

   ………(2.12)  

Ps1 ≤

The fact that Q is a monotonically decreasing function was used to get the upper bound. If the interferer is not dominant i.e., A2ρ12A1, the bound becomes greater than half. Consider the case when there is no noise in the system (i.e., No=0) and the interferer

  ……………………….………(2.13)  

1 . This is because the polarity of the 2 matched filter outputs is now governed by b2 rather than b1. Hence we see is dominant, then (2,13) gives

Ps1 =

that in the absence of noise, though highly hypothetical, the matched filter receiver reduces to flipping a coin and deciding the output bits. This is an undesirable feature of the conventional detector (may perform better in the presence of noise than in the absence of noise).

Figure 1.2 B.E.R performance of the matched filter bank detector (perfect power control)

2.2 The conventional detector as a front end to MUDs
The front end of any MUD has a section to convert the continuous-time received signal to a discrete-time process. This is usually done by sampling or it can also be done using the matched filter bank. As shown earlier, the conventional detector takes the received signal y(t) and outputs the statistic y={y1,y2,…,yk}T. It has been proved [3] that the matched filter bank sacrifices no information relevant to demodulation. Hence y(t) can be replaced by y without any loss in system performance. Most MUDs therefore have the matched filter as the front end. With the matched filter front end, the objective of MUD can be stated as follows: Given the statistic {y1,y2,…,yk} at the output of the matched filter, find an estimate for the transmitted bits {b1,b2,…,bk} that minimizes the probability of error.

SECTION II

The Decorrelating Detector

While concluding Section 2.1 it was noted that the matched filter bank may decode erroneously even in the absence of background AWGN. This is not a very attractive property for any receiver. An optimal receiver must be capable of decoding the bits error-free when the noise power is zero. In this section the decorrelating detector is investigated. This detector makes use of the structure of MAI to improve the performance of the matched filter bank. The decorrelating detector falls into the category of linear multiuser detectors. This fact will be substantiated as this section progresses.

b = sgn R −1 (RAb + n ) ………………………………..(2.1) = sgn Ab + R −1n …………..…….…………………….(2.2) When the background noise is absent, i.e., No=0,



( (

)

)

b = sgn (Ab ) ……………………………….………………(2.3)
i.e., b = b ………………………………………………………(2.4) Hence, we observe that in the absence of background noise the decorrelating detector achieves perfect demodulation unlike the matched filter bank. One advantage of the decorrelating detector is that it does not require knowledge of the received signal amplitudes unlike the detector described in the next section. Consider the two user case, with R




2.0 Receiver Operation
As shown in figure 2.1, the decorrelating detector operates by processing -1 the output of the matched filter bank with the R operator where R is the cross-correlation matrix as defined in (0.4). The output of the decorrelating detector is given by

ρ is the cross-correlation between the normalized signature waveforms of user 1 and user 2. The decoded bits are given by (2.1),

1 ρ  =  , where ρ 1

b = sgn R −1 y …………………………………….……….(2.5)
∧  1  1 - ρ   y1    b = sgn   1 - ρ 2 - ρ 1   y   …………………...…….(2.6)    2    1 ρ   y1 − y2   2 2 ∧ 1- ρ 1- ρ b = sgn     …………………….(2.7)  ρ 1   - 1 - ρ 2 y 1 + 1 - ρ 2 y 2    



(

)

Figure 1.1 Decorrelating Detector

We see that the decorrelating receiver performs only linear operations on the received statistic y and hence it is indeed a linear detector. The decorrelating detector is proved to be optimal under 3 different criteria: least squares, near-far resistance and maximum-likelihood [3]. As in the previous section the bit error rate plots have been obtained for the 2 uses and 10 user cases and are shown in figure 2.2. The simulation scenario is described in section 0.3. Comparing figure 2.2 and figure1.2, we

see that for the 10 user case, as the SNR increases, the performance of the decorrelating detector is better. Again, in the simulations, perfect power control was assumed. Figure 3.4, figure 3.5 and figure 3.6 show a comparison of the performance of the matched filter bank and the decorrelating detector. It is observed that at low SNRs the matched filter performs better. Hence, the decorrelating detector is not an optimal (in terms of B.E.R) detector.

Figure 2.2 B.E.R performance of the decorrelating detector.

SECTION III

The MMSE Linear Detector

In section II we noted that the only information required by the decorrelating detector was the cross-correlation matrix R of the spreading sequences. At low SNRs, the matched filter bank performs better than the decorrelating detector as observed from figure 3.6. Hence, it might be possible to improve the performance by incorporating some SNR information in the MUD algorithms. In this section, one such approach is investigated where the mean squared error between the output and data is minimized. The detector resulting from the MMSE (minimum mean square error) criterion is a linear detector. Two different adaptive approaches of the MMSE linear detector are also studied at the end of this section. One of the approaches requires no prior information of the SNRs or the signature waveforms but requires a training sequence to adapt and compute the optimum weights to be applied on the received statistic. The other approach does not need a training sequence but requires exact knowledge of the signature sequence.

minimizes the MSE between the weighted received statistic and the transmitted bit is derived in the next section.

3.0.1

Optimal Weights for an MMSE Linear Detector in an AWGN Channel

The MMSE linear detector for user 1 determines a waveform c1(t) such that the MSE error between the transmitted bit and the correlation between c1(t) and the received signal y(t) is minimized. The objective function (the mean square error in this case) is defined as

Ψ (c1) = E (b1 − c1, y

{

) } …………………………………………(3.1)
2

In the finite dimensional representation (3.1) can be expressed as
2 K      Ψ ( w 1 , w 2 ,..., w K ) = E  b1 − ∑ w i y i   …………………….(3.2)  i =1     Where {w1, w2, … , wK} are the weights operating on the received statistic { y1, y2,…, yK}.

3.0 Receiver Operation
Being a linear detector like the decorrelating detector, the MMSE receiver also weights the received statistic y with a weight vector w to form the decision statistic. The receiver structure for user m is shown in figure 3.1.

Representing (3.2) in a compact and convenient matrix notation,

Ψ (w ) = E (b1 − w T y ) ……………………………………………(3.3)
2

{

}

Using linearity of the Expectation operator,
2 Ψ (w ) = E(b1 ) − E(2b1 w T y ) + E (w T y )(w T y ) ……………….(3.4) T

{

}

Since the bits of user 1 are i.i.d, Figure 3.1 MMSE linear transformation for user m It has been proved that minimizing the MSE at the output of the linear transformation is equivalent to maximizing the SIR at the output of the linear transformation [3]. The optimal value of the [w1,w2,…wk] that

2 E(b1 ) = 1 . Therefore, Ψ (w ) = 1 − 2w T E(b1y ) + E{w T yy T w}…………………………(3.5)

= 1 − 2w T E(b1y ) + w T E yy T w …………………………(3.6)
From (2.10), we have y = RAb + n ……………………………….………………………(3.7)

{ }

Consider,

E(b1 y ) = E(b1 RAb + b1n ) ………………………...…(3.8)
        b1   = RAE b1  b 2   + E(b1n ) …………………………(3.9)         b    K 

Now consider the second expectation term in (3.6),

   ρ11 A 1    ∴ E(b1 y ) =  ρ 21 A1  ……………………………………(3.14)   ρ A   K1 1 
T

  2  E b1    = RA  E(b1 b 2 ) + b1 E(n ) ………………………….(3.10)     E(b b )  1 K 

( )

E yy T = E (RAb )(RAb ) + E nn T
T T T

A R + NoR [using (1.3) ]……..(3.16) Using the fact that A and R are symmetric matrices, we get E yy T = RAE bb T AR + N o R …………………..………….(3.17)

{ } { = E{RAbb { }
2

}

} ( )

[using (3.7)]………(3.15)

{ }

= RA R + N o R …………………………….………….(3.18)
Substituting (3.14) and (3.18) in (3.6),

Since the bits of user 1 are i.i.d and are uncorrelated with the bits of other users we have,

Using (3.11) and the fact that the noise n is zero mean i.e.,E(n)=0 in (3.10), T E(b1 y ) = RA[1 0 0  0] ……………………………….…(3.12) Using the definition of

0 E(b1 b K ) =  1

,i ≠ j ,i = j

Ψ (w ) = 1 − 2w T [ρ11 A 1

ρ 21 A 1  ρ K1 A ]

T

……………………………….(3.11)

+ w T RA 2 R + N o R w

(

)

…(3.19)

Equation (3.19) gives the objective function (MSE) that should be minimized according to the MMSE criterion. Performing a matrix derivative operation on (3.19) we get,

∇ w Ψ (w ) = −2[ρ11 A1

ρ 21 A1  ρ K1 A ]

T

  ρ11  E(b1 y ) =  ρ 21   ρ  K1

A and R from (0.4)and (2.9),   ρ12  ρ1K  A 1 0  ρ 22  ρ 21K   0 A 2          0 ρ K 2  ρ KK   0 

  0  1   0  0 ..(3.13)       A K   0  

We used the fact that

(RA R + N R ) is a symmetric matrix to get
2 o T

+ 2 RA 2 R + N o R w

(

)

………..(3.20)

(3.20). The optimum weights that minimize the MSE can be obtained by equating ∇ w Ψ (w ) to zero. Hence,

− 2[ρ11 A 1

ρ 21 A 1  ρ K1A ]

+ 2(RA 2 R + N o R ) w opt = 0

….(3.21) Solving (3.21) the optimal weights are obtained as

w opt = RA 2 R + N o R

(

) [ρ
−1

11

A1

ρ 21 A 1  ρ K1A 1 ] ……...(3.22)
T

To calculate the optimal weights for user m, just replace ρ i1 by

ρ i m for all i

and replace A1 by Am in (3.22). (3.22) can be written in a more general and compact form as

It is shown in [3] that the MMSE receiver maximizes the SIR at the output of the transformation shown in the above figure. Figure 3.3 shows the performance of the MMSE linear detector in an AWGN channel. The simulation scenario is identical to the one used in the previous sections. For the sake of comparison the bit error rates of the detectors described so far have been plotted in figures 3.4, 3.5 and 3.6.

w opt = R + N o A −2 where (

)

−1

………………………………………..….(3.23)

(3.23) explains the operation of the receiver. The receiver just weights the received statistic with w opt and makes a decision as shown in figure 3.1. This leads to the receiver architecture shown in figure 3.2.

 N No No  N o A -2 = diag  o , 2 ,..., 2  ……………………….(3.24) 2 AK   A1 A 2

Figure 3.3 B.E.R performance of the MMSE linear detector

3.1 Adaptive Implementations
As seen in sections II and II, the implementations of the decorrelating detector and the MMSE linear detector involves matrix inversion operations. If the number of users become large the size of the matrix to be inverted grows and hence the computation time of such a matrix inversion -1 becomes unacceptable. For the decorrelating detector R can be precomputed and stored. However for an asynchronous system, R is time varying and hence such pre-computation will not work. The MMSE

Figure 3.2 MMSE linear detector

Figure 3.4.BER plots for the detectors described in section I ,II and III (2 user case) Fig 3.6 A zoomed version of the BER plot of the figure 3.4 showing the performance of the linear detectors at low SNRs detector requires the SNR information and hence again precomputation of the matrix inverse is not a feasible solution. Also, getting good estimates of the SNR is not temporally efficient. Therefore, it would be nice if there was some way to eliminate the need to compute matrix inverses and the need to have apriori information (signature sequences) and other additional information (SNR) for decoding. This objective can be realized through adaptive MUD algorithms. Adaptive algorithms “learn” the desired filter response from the received signals. There are different approaches to implement the “learning” capability. Two approaches will be studied in the next sub-sections. The first approach does not any apriori knowledge but calls for a training sequence. The second approach does not require any training sequence but requires exact knowledge of the signature sequences of the users and also takes longer to converge. Figure 3.5 BER plots for the detectors described in section I ,II and III (10 user case)

3.1.1 Adaptive MMSE Linear Detection (LMS Algorithm) Before the LMS (least mean square) algorithm is described, a brief review of the gradient descent optimization algorithm is presented. A more detailed presentation of this algorithm can be found in [3,4] The gradient descent algorithm is used for the optimization of convex penalty functions. Consider the optimization of the following convex penalty function : Ψ (u ) = E[g(X, u)] ……………………………………….(3.25) where E is the expectation operator , X is a random variable and u is the parameter to be optimized (X and u could be vectors). If ψ is convex, then according to the gradient descent algorithm, it is possible to converge to the minimum valuse of ψ by starting at any point uo and following the direction opposite to the gradient ∇ψ (steepest descent). The update rule is then given by u j+1 = u j - µ∇Ψ u j , where µ is the step size…..…….(3.26)

g( X, w ) = (b1 − w T y ) , where X=(b1, w)………...(3.28) T Differentiating w.r.t w, ∇g ( X, w ) = −2(b1 − w y ) y ………….(3.29) Since Xj=(b1[j], y[j]), the update rule in (3.27) becomes
2

w[ j] = w[ j - 1] - µ (w T [ j - 1]y[j] - b1 [ j]) y[ j] …….(3.30)
It is seen that we need to know the data bits b1 in order to implement the LMS algorithm. This requirement is handled by sending a training sequence at the beginning of each transmission. Once the training sequence has been sent, the adaptive algorithm can be allowed to run with the decisions made by the detector instead of the true transmitted data. This mode of operation is called decision directed operation.This might fine tune the weights if the SNR is high enough. However if the SNR is very low, the decisions of the detector are not reliable enough and may cause the weight to change drastically from the optimal value. In the simulation results presented in this report, the decision directed mode was not used. Once the training bits are sent, the weights were not changed. The longer the training sequence, the closer are the computed weights to the optimal value given by (3.23). The training bits however are a overhead and the number of training bits needs to be as small as possible in order to maintain system efficiency. Hence there is a tradeoff between efficiency and error performance that needs to be considered when deteremining the number of training bits that needs to be used in a system. This is observed by comparing figure 3.7 and figure 3.9 which show that the weights w1 and w2 (in the 2 user case) do not converge to the optimal value with just 1000 training bits. However when 5000 training bits are sent, the weight vectors were closer to the optimal value (as observed from the MSE curve, figures 3.8 and 3.10 ). The simulations were run with an SNR of 10dB and the optimal values required to calculate the MSE were obtained from (3.23). Apart from the number of training bits another important parameter that affects the performance and convergence speed of the the LMS algorithm is the step size. A larger step size makes the algorithm converge faster but has a higher ripple around the optimal value. This can be observed by comparing figures 3.9and 3.13 and also figures 3.10 and 3.14.

( )

However, if the distribution of X is not known then neither the penalty function given by (3.25) nor its gradient can be computed. But if a number of independent observations of X are available then it would be possible to get an estimate of the distribution of X and calculate the gradient of the penalty function and use the update rule given in (3.26). Therefore, at each iteration we could replace the gradient of the penalty function, ∇ψ=E[∇g(X,u)] by its approximate value ∇g(Xj+1,u). This is called the stochastic gradient descent algorithm. The update rule for the stochastic gradient is thus modified as u j+1 = u j - µ∇g X j+1 , u j …………………….……..(3.27)

(

)

If the step size is infinitesimally small, then the deviations on either side of the mean tend to cancel out and the trajectory of the stochastic descent will almost follow the steepest descent trajectory. For the special case of quadratic cost functions, the stochastic descent algorithim is also known as the least mean square (LMS) algorithm. For the case of MMSE multiuser detection in CDMA systems, the convex penalty function is given by (3.3) . Hence

Performance of the LMS linear detector with a step size µ=0.001

Figure 3.7 Weight vector convergence for 1000 training bits

Figure 3.9 Weight vector convergence for 5000 training bits

Figure 3.8 MSE variation for 1000 training bits

Figure 3.10 MSE variation for 5000 training bits

Performance of the LMS linear detector with a step size µ=0.01

Figure 3.11 Weight vector convergence for 1000 training bits

Figure 3.13 Weight vector convergence for 5000 training bits

Figure 3.12 : MSE variation for 1000 training bits

Figure 3.14 : MSE variation for 5000 training bits

Observing figure 3.7 and figure 3.11 we see that with a larger step size, the weights converge to the optimal value with a smaller number of training bits but at the cost of a higher residual error (weights do not converge to optimal value with a step size of 0.001 and 1000 training bits but if the step size is increased to 0.01, the weight vectors converge around the optimal value with just 1000 bits). Conversely, a smaller step size takes longer to converge(requires more training bits) . From the above discussion, it is clear that it would be nice to progressively decrease the step size as the LMS algorithm proceeds. A high value of step size should be used initially to cause fast convergence of the the algorithm and then in the latter iterations a smaller step size should be used to minimize the ripple around the optimal value (residual error). But great care should be excercised in using adaptive step sizes. Sometimes the step size may become really small as the algorithm progresses and the weights may never converge to the optimal value. One method of i progressively shrinking the step size is to multiply a fixed step size by γ where i is the iteration number and γ is a number just smaller than 1. Hence the update rule is given by

The convergence of the weights with this adaptive step size is shown in figure 3.15. In the simulations, γ =0.995 and µ=0.01. We can see that the step size becomes very small as the algorithm progresses and the weights do not converge. Hence, this is not a suitable strategy for varying the step size in this case. Another method of progressively decreasing the step size is to have a step size of the form 1/i, where i is the iteration number. Hence the update rule is modified as

w[ j] = w[ j - 1] -

1 T w [ j - 1]y[j] - b1 [ j] y[ j] ……………(3.32) i

(

)

w[ j] = w[ j - 1] - γ i µ (w T [ j - 1]y[j] - b1 [ j]) y[ j] …………(3.31)

The convergence plots for this step size is given in Figure (3.16). Also plotted are convergence plots with a fixed step size of 0.01 for comparison. We see that this method of varying the step size converges very fast to the vicinit of the optimal value. For the a step size of the form 1/i it has been proved [3] that the update rule given in (3.32) will always converge to the optimum value. If the channel changes often, then training bits need to be sent periodically. The choice of step size, whether it should be fixed or stationary, depends on the application, channel and other cost factors. Since, the detector requires no knowledge of the signature sequence, why

Figure 3.15 Weight vector convergence for the update rule in (3.31)

Figure 3.16 Weight vector convergence for the update rule in (3.32)

doesn’t the detector converge to some other users MMSE detector (say the user with the strongest power)? This is because of the training sequence which governs the desired users LMS algorithm. Hence, each user should have a different training sequence. Hence, we see that the LMS MUD is not limited by the near far problem.

x1 =

1 d 1 − s1 …………………………………..(3.36) < s1 , d 1 >

This can be verified by applying (3.35) to (3.36). Using (3.34) in (3.33) we have,

3.1.2 Blind Adaptive Multiuser Detection
The convergence of the LMS algorithm rests on the fact that the received amplitudes, cross-correlations and channel conditions remain constant. If any of these parameters change suddenly (a strong interfere is powered on or the channel suddenly goes into a deep fade), then in the decision directed mode of operation the weights may not converge because the detector starts making faulty decisions or in the fixed mode of operation the weights are no longer optimal. This calls for the training sequence to be sent again. Thus, the detector needs to be able to detect sudden changes in the system environment and request for the training sequence to be sent again. This is a cumbersome procedure requiring a lot of overhead. Hence, it is desirable to have an adaptive algorithm that operates without having to know the data. Algorithms that operate without knowledge of the channel input are known as blind algorithms (the algorithm is blind to the data). Blind adaptive multiuser detection was first introduced by Honig et al in 1995 [5]. Before the blind MUD algorithm is presented the canonical representation of linear multiuser detection introduced in [5] is discussed. The blind MUD approach is based on decomposing the linear MUD filter response into two orthogonal components. One of the components is equal to the signature waveform of the desired user. Consider the linear detector of user 1 which is characterized by the filter response c1,

b1 = sgn(< y, s1 + x 1 >) ……………………………..….(3.37) Using the definition of y from (0.1) b1 = sgn(A 1 b1 + ∑ A k b k (ρ1k + < s k , x 1 > ) + n 1 ……(3.38) k =2




K

~

Just as done in section 3.0.1, it can be proved that

The variance at the output of the linear transformation in (3.37) is given as

 ~ 2 2 E  n 1  = 1 + x ………………………………………………..(3.39)  

This is also referred to as the output energy in literature. Using the definition of in (3.40) we can express the output energy as

E{(< y, s1 + x 1 >) 2 } ……………………………………………(3.40)

b1 = sgn(< y, c1 >) ………………………………....(3.33) The canonical representation of c1 is c1= s1+ x1……………………………………………(3.34) where =0….………………………………………………(3.35) s1 in (3.34) and (3.35) is the signature waveform of user 1. Therefore, according to the canonical representation every linear MUD is characterized by its orthogonal signal x1 (since s1 is assumed to be known). Given a linear transformation d1 the orthogonal component is given by



……………………..(3.41) We have used the fact that the bits of user 1 are uncorrelated with the bits of the other users and the noise. The first term in (3.41) is the signal energy and the two other terms represent the interference energy (MAI + noise). Due to the canonical representation we can see that the signal energy is transparent to the choice of x1. We can intuitively see that choosing x1to minimize the output energy would be a sensible idea since this would just minimize the interference energy. This type of detector is referred to as the minimum output energy (MOE) detector. Denote the minimum output energy as From section 3.01, the minimum MSE is given by

MOE( x 1 ) = E{(< y, s1 + x 1 >) 2 }……………………….(3.42)

MSE ( x 1 ) = E{(A1 b1 - < y, s1 + x 1 >) 2 }……………….(3.43)

i.e.,

MSE(x 1 ) = ∑ A 2 (ρ1k + < s k , x 1 > ) + N o 1 + x k k =2 2

K

2

(

2

)….(3.44)

=> MSE(x 1 ) = MOE(x 1 ) − A 1 (using (3.41)) ………………(3.45) ∴ We can see that the MSE and MOE differ only by a constant (thanks to the canonical representation). Hence, the arguments that minimize both the functions are the same. This is a crucial observation from the point of view of the adaptive implementation. It tells us that if we try to minimize the MOE (same as minimizing the MSE), we do not need any training sequence to implement the gradient descent algorithm (since the MOE does not depend on the data). Hence we end up with an adaptive MMSE detector without the need for any training sequence. This is the basis for the blind adaptive multiuser detector. The steepest descent algorithm (described in the previous subsection) is again used to derive the update rule for the adaptive algorithm. We just need to update the orthogonal component to s1 since we are trying to obtain the minimum of the MOE by changing just x1. Therefore we just need to follow the steepest descent in the direction orthogonal to s1. To do this we just take the gradient of the MOE and project it on the subspace orthogonal to s1. The gradient of the MOE given in (3.42) is

Finite precision implementation of the above update rule can have effects that are not immediately visible but that have a cumulative effect. It may happen that finite precision round off errors drive the updates of x1 to be outside the orthogonal space. This is shown in figure 3.17 for two different values of step sizes. The simulations were run with 2 users and perfect power control. On the y axis, a measure of the orthogonality between x1and s1 () is plotted for each iteration. Though is small, we can see that the value keeps increasing implying that x1 keeps falling more and more outside the orthogonal subspace.

∇MOE( x 1 ) = 2 < y, s1 + x 1 > y ………………..……………..(3.46) The component orthogonal to s1 is y- s1. Using this in (3.46) we get the gradient projected onto a subspace orthogonal to s1 as 2< y,s1+x1>[y- s1]…………………..……….(3.47)
The adaptive algorithm update is done once every T seconds, where T is the bit period. The received waveform is slotted into waveforms of duration T,

...y[i-1], y[i], y[i+1]…
Define,

Z MF [i] = < y[i], s1 > …………………..……….…….…(3.48) Z[i] = < y[i], s1 + x 1 [i − 1] > ……………………….(3.49)




Figure 3.17 Finite precision implementation errors in the blind update rule This problem can be solved by replacing the update x1 by its orthogonal projection: x1[i]- s1.......................................................(3.51) Figure 3.18 plots the orthogonality between x1and s1 after replacing x1 by its orthogonal projection. We now observe that the value of oscillates around the same value.

Using (3.49) and (3.48) in (3.47) and using the update rule in (3.27), the update rule for the blind adaptive MUD is given by x 1 [i] = x 1 [i − 1] − µ Z[i](y[i] − Z MF [i]s1 ) …………(3.50)

Figure 3.19 SIR at each iteration of the blind MUD algorithm Figure 3.18 Effect of the substitution in (3.51) on finite precision errors It was observed earlier that the first term in (3.41) represented the signal energy and the second term in (3.42) represents the interference energy. Therefore, the signal to interference ratio for user 1 can be written as

SIR =

2 A1

∑ A (ρ k =2 2 k

K

1k

+ < s k , x1 >) + N o 1 + x

2

(

2

)

……(3.52)

It can be inferred from looking at (3.41) that minimizing the output energy is the same as minimizing the denominator of (3.52). Therefore just like the MMSE detector the MOE detector also maximizes the output SIR (another way to prove that the two detectors are equivalent). Figure 3.19 shows how the SIR increases with each iteration (the SNR was 10dB with 10 users in the system). Figure 3.20 shows the convergence of one of the components of x1. By looking at the convergence plots of the LMS detector we observe that the blind detector takes a lot longer converge.

Figure 3.20 Convergence of 1 componant of

x1

It is not really fair to compare the LMS and blind detectors in terms of the bit error rate because the performance depends on how long the algorithm is allowed to converge(also the two algorithms do not behave the same way for the same step size). Once the algorithms converge, the error performance should ideally be that of the MMSE linear detector. But to give a rough idea, the BER error rates for the 2 user case are plotted in Figure 3.21. The LMS algorithm was given 1000 training bits and had a step size of 0.01. The blind detector had a step size of 0.005. Hence, the comparison is not really a good one, however it seen that the performance is almost the same.

CONCLUDING REMARKS
This report is a compilation of different approaches to linear multiuser detection. The requirement of this technology was motivated by studying the conventional detector. The matched filter bank just ignores the correlative structure of the MAI present in CDMA systems. Further, it was also shown that in the absence of noise, the conventional detector is a totally unreliable detector. This called for the need for better detectors. The decorrelating detector was then introduced which takes the conventional detector one step further by incorporating the correlative structure of the MAI in the detection. However, it was noted that at low SNRs the conventional detector performed better than the decorrelating detector. This implied that the decorrelating detector could be improved upon. The MMSE linear detector was then shown to take the decorrelating detector one step further by incorporating some SNR information along with the correlative structure of MAI. Thus, the performance was better than the decorrelating detector at low SNRs. It must also be noted that when the background noise is totally absent (infinite SNR), the MMSE operator

(R + N

o

A −2

)

−1

reduces to

(R )−1 ,

which the decorrelating

Figure 3.21 BER performance of the MMSE,LMS and blind detectors

operator. Hence the decorrelating detector can be thought of as an asymptotic instance of the MMSE linear detector. However, the implementation of the MMSE linear detector required knowledge of received signal amplitudes (to calculate the SNR) apart from the correlation matrix and timing information (required by the decorrelating detector). Two different adaptive approaches to linear MMSE detection that operate without knowledge of received amplitudes was then discussed. The LMS detector required no knowledge of the signature sequences but called for training sequences. The blind detector required only the same knowledge as required by the conventional detector, the signature sequences and the timing. The convergence properties of the two adaptive algorithms were also studied. When compared to the LMS algorithm the blind algorithm takes a very long time to converge. The choice of the MUD algorithm depends on a lot of factors like the application, channel information available, availability of training sequences, complexity cost and overhead involved. To pick one out which is the optimal one or the best one is not an easy task!

APPENDIX A : The 10 gold codes used in the simulations
User 1 2 3 4 5 6 7 8 9 10 Code 1001011001111100011011101010000 1111101110001010110100001100100 0110000101101001110011110011001 0111100001010111001011011000011 0100101000101010111010001110111 0010111011010001011000100011111 1110011100100110011101111001111 0111010011001000010111001101110 0101001100010100000010100101101 0001110010101100101001110101011

APPENDIX B: The MATLAB codes used in the simulations.
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %code for generating the m-sequence of length 31%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

The codes must be converted to 1s and -1s and then normalized to have unit energy before they can be used in the simulations.

clear all; clc; %%%%%% enter tap weights as an array h=[h1,h2,..h6] %%%%%%%%%%% %h=[0 0 0 0 1 1];% 103 ---this is the primitive polynomial %h=[1 0 0 1 1 1];%147 h=[1 1 1 0 1];%75 %h=[0 0 1 0 1];%45 %h=[1 1 0 0 1 1];%163 %h=[1 0 0 0 0 1];%141 %%%%%% enter intial state of the register as an array u=[u1 u2 u3 u4 u5 u6] %%%%%%%%%%% %fid=fopen('/home/users/arun/sscdma/project/mseq31_primploy45.txt','a'); for i=1:31 u=dec2bin(i,5); u=u-48; u(6)=0; output=[]; for shift=1:31 output=[output,u(1)]; temp=u(1); for n=2:6 u(n-1)=xor( u(n),(h(n-1)*temp) ); end %u(1:6) end %output t=[output,output]; if t(1,2:31)==t(1,2*(2:31)-1) charphase=output; end end

u R;

save mseq31primpoly75.mat charphase; u=charphase;
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%code for generating the gold codes%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% clear all; clc; N=31%pn code length num_users=10; load '/home/users/arun/sscdma/project/mseq31primpoly45.mat' u(1,:)=charphase; load '/home/users/arun/sscdma/project/mseq31primpoly75.mat' u(2,:)=charphase; fid=fopen('/home/users/arun/sscdma/project/codes.txt','a +'); %shift and add for j=1:num_users-2 u(j+2,:)=xor(u(1,:),u(2,[j+1:end 1:j])); end for i=1:num_users for j=1:N fprintf(fid,'%d ',u(i,j)); end fprintf(fid,'\n'); end fclose(fid); %convert to ones and minus 1's u=2*u-ones(num_users,N); u=u/sqrt(31);%normalize the auto-correlation %calculate the cross-correlation matrix for i=1:10 for j=1:10 R(i,j)=sum(u(i,:).*u(j,:)); end end save '/home/users/arun/sscdma/project/10goldcodes.mat'…

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%code for generating the matched filter (2 users) %%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

clear all; clc; N=31; K=2;%%%%no of users No=0.6; Nodb=10*log10(1/No) %No=N*No; no_of_bits=1000; %%%%get signature sequences load '/home/users/arun/sscdma/project/mseq31primpoly45.mat' a1=charphase; load '/home/users/arun/sscdma/project/mseq31primpoly75.mat' a2=charphase; %%%%%%%generate the anitpodal sequence a1=2*a1-1; a2=2*a2-1; %%%%%%%normalize energy of signature waveforms a1=a1/sqrt(sum(a1.*a1)); a2=a2/sqrt(sum(a2.*a2)); A=[1 0;0 1]; rho=sum(a1.*a2); R=[1 rho;rho,1]; bits=round(rand(K,no_of_bits)); b=2*bits-1; n=sqrt(No)*randn(K,no_of_bits); y=sign(R*A*b + n); %convert to ones and b_hat=(y+ones(K,no_of_bits))/2; ber1=sum(xor(bits(1,:),b_hat(1,:)))/no_of_bits ber2=sum(xor(bits(2,:),b_hat(2,:)))/no_of_bits

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%code for the matched filter bank(2 users)%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

clear all; clc; N=31; K=10;%%%%no of users No=0.02; Nodb=10*log10(1/No) %No=N*No; no_of_bits=100000; %%%%get signature sequences %load '/home/users/arun/sscdma/project/mseq31primpoly45.mat' %a1=charphase; %load '/home/users/arun/sscdma/project/mseq31primpoly75.mat' %a2=charphase; %%%%%%%generate the anitpodal sequence %a1=2*a1-1; %a2=2*a2-1; %%%%%%%normalize energy of signature waveforms %a1=a1/sqrt(sum(a1.*a1)); %a2=a2/sqrt(sum(a2.*a2)); A=eye(K); load '/home/users/arun/sscdma/project/10goldcodes.mat' bits=round(rand(K,no_of_bits)); b=2*bits-1; n=sqrt(No)*randn(K,no_of_bits); y=sign(R*A*b + n); %convert to ones and b_hat=(y+ones(K,no_of_bits))/2; ber1=sum(xor(bits(1,:),b_hat(1,:)))/no_of_bits ber2=sum(xor(bits(2,:),b_hat(2,:)))/no_of_bits avg_ber=0.5*(ber1+ber2) ber=sum(sum(xor(bits(1:K,:),b_hat(1:K,:)))/no_of_bits)/K

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%code for the decorrelating detector (2 users)%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% clear all; clc; N=31; K=2;%%%%no of users No=0.03; Nodb=10*log10(1/No) no_of_bits=100000; %%%%get signature sequences load '/home/users/arun/sscdma/project/mseq31primpoly45.mat' a1=charphase; load '/home/users/arun/sscdma/project/mseq31primpoly75.mat' a2=charphase; %%%%%%%generate the anitpodal sequence a1=2*a1-1; a2=2*a2-1; %%%%%%%normalize energy of signature waveforms a1=a1/sqrt(sum(a1.*a1)); a2=a2/sqrt(sum(a2.*a2)); A=[1 0;0 1]; rho=sum(a1.*a2); R=[1 rho;rho,1]; bits=round(rand(K,no_of_bits)); b=2*bits-1; n=sqrt(No)*randn(K,no_of_bits); y=sign(inv(R)*(R*A*b + n)); %convert to ones and -1s b_hat=(y+ones(K,no_of_bits))/2; %get the b.e.r as the average of the 2 users ber1=sum(xor(bits(1,:),b_hat(1,:)))/no_of_bits; ber2=sum(xor(bits(2,:),b_hat(2,:)))/no_of_bits; avg_ber=0.5*(ber1+ber2) %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%code for the decorrelating detector (10 users)%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% clear all; clc; N=31;

K=10;%%%%no of users No=0.02; Nodb=10*log10(1/No) %No=N*No; no_of_bits=10000; A=eye(K); %get codes and R load '/home/users/arun/sscdma/project/10goldcodes.mat' bits=round(rand(K,no_of_bits)); b=2*bits-1; n=sqrt(No)*randn(K,no_of_bits);

%%%%%%%normalize energy of signature waveforms a1=a1/sqrt(sum(a1.*a1)); a2=a2/sqrt(sum(a2.*a2)); A=[1 0;0 1]; rho=sum(a1.*a2); R=[1 rho;rho,1]; novector(1:K)=No; sigma2Aminus2=diag(novector); bits=round(rand(K,no_of_bits)); b=2*bits-1; n=sqrt(No)*randn(K,no_of_bits); y=sign(inv(R+sigma2Aminus2)*(R*A*b + n)); %convert to ones and minu ones b_hat=(y+ones(K,no_of_bits))/2; ber1=sum(xor(bits(1,:),b_hat(1,:)))/no_of_bits; ber2=sum(xor(bits(2,:),b_hat(2,:)))/no_of_bits; avg_ber=0.5*(ber1+ber2) %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%code for the MMSE linear detector (10 users)%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% clear all; clc; N=31; K=10;%%%%no of users No=0.02; Nodb=10*log10(1/No) %No=N*No; no_of_bits=10000; %%%%get signature sequences A=eye(K); load '/home/users/arun/sscdma/project/10goldcodes.mat' bits=round(rand(K,no_of_bits)); b=2*bits-1; n=sqrt(No)*randn(K,no_of_bits); novector(1:K)=No; sigma2Aminus2=diag(novector);

y=sign(inv(R)*(R*A*b + n)); %convert to ones and b_hat=(y+ones(K,no_of_bits))/2; ber1=sum(xor(bits(1,:),b_hat(1,:)))/no_of_bits; ber2=sum(xor(bits(2,:),b_hat(2,:)))/no_of_bits; avg_ber=0.5*(ber1+ber2) %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%code for the MMSE linear detector (2 users)%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% clear all; clc; N=31; K=2;%%%%no of users No=0.1; Nodb=10*log10(1/No) %No=N*No; no_of_bits=1000; %%%%get signature sequences load '/home/users/arun/sscdma/project/mseq31primpoly45.mat' a1=charphase; load '/home/users/arun/sscdma/project/mseq31primpoly75.mat' a2=charphase; %%%%%%%generate the anitpodal sequence a1=2*a1-1; a2=2*a2-1;

y=sign(inv(R+sigma2Aminus2)*(R*A*b + n)); %convert to ones and b_hat=(y+ones(K,no_of_bits))/2; ber1=sum(xor(bits(1,:),b_hat(1,:)))/no_of_bits; ber2=sum(xor(bits(2,:),b_hat(2,:)))/no_of_bits; avg_ber=0.5*(ber1+ber2) %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%code for the LMS algorithm (2 users)%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% clear all; clc; mu=0.01; N=31; K=2;%%%%no of users No=0.08; Nodb=10*log10(1/No) %No=N*No; no_of_bits=100000; %%%%get signature sequences load '/home/users/arun/sscdma/project/mseq31primpoly45.mat' a1=charphase; load '/home/users/arun/sscdma/project/mseq31primpoly75.mat' a2=charphase; %%%%%%%generate the anitpodal sequence a1=2*a1-1; a2=2*a2-1; %%%%%%%normalize energy of signature waveforms a1=a1/sqrt(sum(a1.*a1)); a2=a2/sqrt(sum(a2.*a2)); A=[1 0;0 1]; rho=sum(a1.*a2); R=[1 rho;rho,1]; bits=round(rand(K,no_of_bits)); b=2*bits-1; n=sqrt(No)*randn(K,no_of_bits);

y=(R*A*b + n); %%%%%%%%%%%theoretical optimum weights Wopt=inv(R*A*A*R+No*R)*[1;rho]; c1=[1,1]'; mean_squared_error(1)=sum((Wopt-c1).^2)/K; c1=c1-mu*(c1'*y(:,1)-b(1,1))*y(:,1); w1(1)=c1(1,1); w2(1)=c1(2,1); for i=2:no_of_bits %c1=c1-mu*(0.995)^(i-1)*(c1'*y(:,i)-b(1,i))*y(:,i); %%%variable step size c1=c1-mu*(c1'*y(:,i)-b(1,i))*y(:,i);%%%%fixed step size w1(i)=c1(1,1); w2(i)=c1(2,1); mean_squared_error(i)=sum((Wopt-c1).^2)/K; end Wopt bits_hat=sign(c1(1)*y(1,:)+c1(2)*y(2,:)); b_hat=(bits_hat+ones(1,no_of_bits))/2; ber1=sum(xor(bits(1,:),b_hat(1,:)))/no_of_bits figure(3); subplot(2,1,1); plot(w1); subplot(2,1,2); plot(w2) figure(4) plot(mean_squared_error); %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%code for the blind MUD algo. (2 users)%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% clear all; clc; mu=0.0005; N=31; K=2;%%%%no of users No=0.1; Nodb=10*log10(1/No) no_of_bits=50000; %%%%get signature sequences

load '/home/users/arun/sscdma/project/mseq31primpoly45.mat' s1=charphase; load '/home/users/arun/sscdma/project/mseq31primpoly75.mat' s2=charphase; %%%%%%%generate the anitpodal sequence s1=2*s1-1; s2=2*s2-1; %%%%%%%normalize energy of signature waveforms s1=s1/sqrt(sum(s1.*s1)); s2=s2/sqrt(sum(s2.*s2)); bits=round(rand(K,no_of_bits)); b=2*bits-1; n=sqrt(No)*randn(K,no_of_bits); x1(1,1:N)=0; for i=1:no_of_bits transmitted_bits=b(1,i)*s1+b(2,i)*s2; y=transmitted_bits+sqrt(No)*randn(1,N);%%received %%statistic zmf=sum(y.*s1); z=sum(y.*(s1+x1(i,:))); x1(i+1,:)=x1(i,:)-mu*z*(y-zmf*s1); x1(i+1,:)=x1(i+1,:)-sum(s1.*x1(i+1,:))*s1;%replace by %the orthogonal projection %orth(i)=sum(s1.*x1(i+1,:)); b_hat(i)=sign(z); sir(i)=1/(No*(1+sum(x1(i+1,:).*x1(i+1,:)))+(sum((s1+x1(i +1,:)).*s2))^2); end b_hat=(b_hat+ones(1,no_of_bits))/2; ber1=sum(xor(bits(1,:),b_hat(1,:)))/no_of_bits %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%code for the blind MUD algo. (10 users)%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% clear all; clc; mu=0.005; N=31; K=10;%%%%no of users No=0.1;

Nodb=10*log10(1/No) no_of_bits=1000; load 10goldcodes.mat bits=round(rand(K,no_of_bits)); b=2*bits-1; n=sqrt(No)*randn(K,no_of_bits); x1(1,1:N)=0; for i=1:no_of_bits transmitted_bits=zeros(1,N); for k=1:10 transmitted_bits=b(k,i)*u(k,:)+transmitted_bits; end y=transmitted_bits+sqrt(No)*randn(1,N);%%received statistic s1=u(1,:); zmf=sum(y.*s1); z=sum(y.*(s1+x1(i,:))); x1(i+1,:)=x1(i,:)-mu*z*(y-zmf*s1); x1(i+1,:)=x1(i+1,:)-sum(s1.*x1(i+1,:))*s1;%replace by the orthogonal projection orth(i)=sum(s1.*x1(i+1,:)); b_hat(i)=sign(z); mai=0; for k=2:10 mai=mai+sum((s1+x1(i+1,:)).*u(k,:)); end sir(i)=1/(No*(1+sum(x1(i+1,:)))+mai)^2; end b_hat=(b_hat+ones(1,no_of_bits))/2; ber1=sum(xor(bits(1,:),b_hat(1,:)))/no_of_bits

REFERENCES:
[1] R.L.Peterson, R.E.Ziemer and D.E.Borth, Introduction to Spread Spectrum Communications, Prentice Hall, Inc., 1995. [2] Tan F. Wong, Spread Spectrum and CDMA :Class notes, Fall 2001. [3] S. Verdu, Multiuser Detection, Cambridge University Press, 1998. [4] J.G. Proakis, Digital Communications, 3rd Ed., McGraw-Hill, Inc., 1995. [5] M. Honig, U. Madhow, and S. Verdu, ``Blind Adaptive Multiuser Detection,'' IEEE Trans. Inform. Theory, vol. 41, pp. 944-960, Jul. 1995.

ACKNOWLEDGEMENTS I would like to thank Dr.Tan F. Wong for useful discussions that directed my simulations and helped me understand the material presented in this report. I would also like to thank my friend Yadu Rao for helping with the matrix calculus involved in section III.

Similar Documents

Free Essay

Artifical Intelligent

...partner or tag team. Weak Points: It has only few characters to choose from and the weapons aren’t buyable. Areas That Can Be Improved The program has no updates of new maps, characters and weapons. My Own Version / Story Board In my own version, it can be played by maximum of 4 players and if they have received and earn points/gold they can buy weapons. Program Rating Program Type | | Exploratory | | Drill & Practice | | | Tutorial | | Interdisciplinary | | | Simulation | | Creativity | | | Management | | Utility | | | Reference | | Quiz Game | | ✓ | Arcade Game | | Problem Solving | | | Critical Thinking | | Others: Virtual Reality | | | | | | Architecture | ✓ | Single User | ✓ | Multi-user | | | Network | | | RATING SHEET With 5 as the highest, put a check (✓) on the appropriate cell for the rating. CRITERIA | RATING | | 5 | 4 | 3 | 2 | 1 | Ease of installation, initial use and support | Installation process | ✓ | | | | | Instructions / documentation to begin use | | ✓ | | | | Easy to understand basic controls, major features and organization. | ✓ | | | | | Technical assistance available | | | ✓ | |...

Words: 563 - Pages: 3

Premium Essay

Ms Word

...1. What is free software? List three characteristics of free software. Free software gives the user the freedom to share, study and modify it. 2. What is free software foundation/GNU? What is Linux? Which parts of the Linux operating system did each provide? Who else has helped build and refine this operating system? The free software foundation is a nonprofit with a worldwide mission to promote computer user freedom and to defend the rights of all free software users, the GNU is an ongoing effort to provide a complete operating system licensed as free software. Linux is an operating system, it represents a free system. Savannah is a supporting source code repository and center for free software development. 3. Briefly, what does the process of installing an OS such as fedora/RHEL involve? Installing Fedora/RHEL is the process of copying operating system files from a CD, DVD, or USB flash drive to hard disk(s) on a system and setting up configuration files so Linux runs properly on the hardware. Several types of installations are possible, including fresh installations, upgrades from older releases of Fedora/RHEL, and dual-boot installations. 4. What is a live system? What advantages does it have over an installed system? Live System- A computer that runs the Wide Area Progressive games and displays the main system window. Advantages- Customization, cost, free market, stability, and community. 5. Where on the disk should you put your/boot partition or the /root...

Words: 504 - Pages: 3

Premium Essay

Accounting Systems

...QUALITY | INQUIRY | DAILY | MONTHLY | UNDERSTANDABLE | User can control format | User may not be able to control format | User may not be able to control format | RELEVANCE | Information may be tailored for the user | Information may be intended for a number of users | Information may be intended for a number of users | TIMELINESS | Most timely | Second most timely | May not be timely for some decisions | RELIABLE | A single users assessment may lead to bias | Central control and preparation for multiple users may lead to increased neutrality | Central control and preparation for multiple users may lead to increased neutrality | VERIFIABLE | Information may not have been checked for verifiability or accuracy | Controls may increase verifiability of this information | Controls may increase verifiability of this information | COMPLETENESS | Least complete | Average completeness | Most completeness | ACCESSABLE | Most accessible | Average | Average | What is an accounts receivable aging report? How long debts have been outstanding with debtors, management need to know for cash flow issues, customers’ accounts balance. Why is accounts receivable aging report needed for an audit? To see if accounts receivable is accurate in looking at provisions for bad debts What is an accounts receivable aging report used for normal company operations? Determining credit policies, if credit collections need to be chased up, appropriate...

Words: 400 - Pages: 2

Free Essay

Definition of Terms

...Definitions of Terms Grading System - In norm-referenced systems students are evaluated in relationship to one another. This grading system rests on the assumption that the level of student performance will not vary much from class to class. In this system the instructor usually determines the percentage of students assigned each grade, although it may be determined (or at least influenced) by departmental policy.  (http://wiki.answers.com/Q/What_is_the_Meaning_of_grading_system) Grade - A mark or rating indicating achievement or the worth of work done, as at school. (http://encyclopedia2.thefreedictionary.com/grades) System - An organized, purposeful structure that consists of interrelated and interdependent elements (components, entities, factors, members, parts etc.). These elements continually influence one another (directly or indirectly) to maintain their activity and the existence of the system, in order to achieve the goal of the system. (http://www.businessdictionary.com/definition/system.html) Entity-Relationship Diagram (ERD) - An entity-relationship diagram (ERD) is a data modeling technique that graphically illustrates an information system’s entities and the relationships between those entities. An ERD is a conceptual and representational model of data used to represent the entity framework infrastructure. (http://www.techopedia.com/definition/1200/entity-relationship-diagram-erd) Database - A database is a set of data that has a regular structure...

Words: 476 - Pages: 2

Free Essay

Admin Guide

...Administrators can set template sharing options for all the templates in the account and a procedure for sharing templates is included in this guide. Table of Contents Accessing the Account Preferences .............................................................................................................. 2 Account Administration Options .................................................................................................................. 2 Sharing Templates as an Administrator ...................................................................................................... 14 Features Section Information ..................................................................................................................... 15 User Permissions and Sharing ..................................................................................................................... 25 Time Zone Abbreviations ............................................................................................................................ 26 Recommended PayPal Account Settings...

Words: 8797 - Pages: 36

Premium Essay

Casestudy

...Akkasani 1. INTODUCTION TO UNIX 1.1 Single-User Systems The personal computer (PC) is a small General-purpose system that can execute programs to perform a wide variety of tasks. The PC, however, was designed for use by one person at a time, that is, it is Single-User oriented with MS-DOS as the de facto standard operating system for this range of machines. Single user systems became very popular due to the low cost hardware and wide range of software available for these machines. 1.2 Multi-User Systems As opposed to single-user systems there are also larger systems, which more than one person can use at any time. Such systems are referred to as multi-user systems. Multi-user systems would be required when a number of applications have to be run simultaneously, or common resources, like printers and disks, are to be shared by a number of users. 1.3 Hardware – Multi-User Systems While the hardware components of a multi-user system are similar to that of a singleuser system, the following differences should be noted. The CPU of a multi-user system is more powerful and has capabilities to support multi-programming and multi-tasking, two features essential for multi-user systems. The Hard disk of a multi-user system is bigger in capacity. Most multi-user systems use magnetic tape as external storage for backup of software. Single-user systems use floppies as the backup device. This is because multi-user systems have large hard disks, which have to...

Words: 8312 - Pages: 34

Premium Essay

It Strategy

...requirements, and use of the solution. II. PROPOSED IT SOLUTION The best solution for UMUC Haircuts to help manage customer and employee scheduling is Customer Appointment Manager by Atlas Business Solutions. Customer Appointment Manager is a system which allows a user to input and edit dates, times, and availabilities of employees in the salon. The user interface is easy to follow and understand, as well as, helpful to an individual whom has never used such software. This system is superior to other similar systems because in terms of IT requirements this system meets necessary needs. Customer Appointment Manager meets usability requirements in that it is easy to use for employees, scheduling of customer appointments can be done in a matter of seconds, and employee scheduling is quicker and easier. This system can handle high volume of usage, in the event of needed changes this system is extensible, and helps to ensure no missing data is entered nor inaccurate or duplicated. Another great feature to this system is the ability for authentication of users therefore ensuring security to stored information. From a Cost Leadership standpoint this system costs $295 for a single user license and each additional user added for $100, whereas, comparable systems can cost $400 or more for setup and usage...

Words: 971 - Pages: 4

Free Essay

File Management

...supports 5,000 users how would you make it so that 4,990 of those users have access to one file, using UNIX? After considering the proposed scenario there are two possible steps that will be used to achieving the proper way to make sure certain users see the proper information. The two steps are as implementing the use of Access Control List (ACL’s) or implementing the use of Access Control List along with using user groups. Unix is a multitasking, Multiuser operating system (encyclopedia) What this means is that while using Unix multiple users can access a single computer simultaneously, while still having in essence a personal computer workstation. These UNIX systems can perform achieve the same functions regardless if running on a small CPU or super computer the only difference will be how fast it is able to process data, and also its ability to store data. The first of the two potential steps that we may use to accomplish our goal is to utilize Access Control Lists (ACL’s). Now for those of you that don’t know these ACL’s are exactly what they sound like, they are list comprised of either users, computers or networks. These ACL’s are present for every file and they control who is able to read, write, and/or execute a particular file. (Temple University, n.d.) After these list are created they are then used in order to decide the amount of access that the members that are on each individual list will be afforded. So in this step we would add all 4990 users that we want to...

Words: 477 - Pages: 2

Free Essay

Nt1430 Linux

...and changed. 2. Why is Linux popular? Why is it popular in academia? a. It is very fast, easy to use and reliable. Writing programs and scripting on Linux is often times much easier than doing so on Windows as many of the users are that use Linux are computer savy but also because the framework that makes up Linux is completely open source, thus allowing programmers to program with Linux not around it. b. Students understand the source code for the operating system and how Linux works without complications. 3. What are multiuser systems? Why are they successful? a. A multi-user operating system is a computer operating system (OS) that allows multiple users on different computers or terminals to access a single system with one OS on it. b. Because you can add a user to your computer and have a different profile then another user, instead of buying another computer. This makes it cost effective. 4. What is the Free Software Foundation/GNU? What is Linux? Which parts of the Linux operating system did each provide? Who else has helped build and refine this operating system? a. The Free Software Foundation (FSF) is a nonprofit with a worldwide mission to promote computer user freedom and to defend the rights of all free software users. b. It is the software on a computer that enables applications and the...

Words: 382 - Pages: 2

Premium Essay

Nt1230Unit4

...Complete the following exercise by matching the terms with their corresponding definitions. a. switches an account from the standard user token to the administrative token b. displayed when a regular user requires administrative access c. confirmation of a user’s identity d. suppresses the operation of all controls except the UAC prompt e. enables users to access their desktops from any workstation f. grants a user a specific degree of access to a resource g. hosts an AD DS domain h. displayed when an administrator requires administrative access i. placeholder for a collection of users with a similar characteristic j. a profile that multiple users can run simultaneously ___d. __ 1. credential prompt ___e.___ 2. roaming user profile ___a.___ 3. Admin Approval Mode ___i.___ 4. special identity ___c.___ 5. Authentication ___b.___ 6. elevation prompt ___f.____ 7. mandatory user profile ___d.____ 8. secure desktop ___h.____ 9. authorization ___g.____10. domain controller Multiple Choice Select one or more correct answers for each of the following questions. 1. What is the term used to describe a read-only copy of a user profile stored on a network share? a. mandatory profile 2. When you create a new user account with the User Accounts control panel, you can only add it to which of the following groups? (Choose all that apply.) a. Administrators d. Guests 3. When you log on to a newly installed Windows 7 computer for the first time, why...

Words: 436 - Pages: 2

Premium Essay

Vulnerability Mangement

........................................................................... 11 Chapter 2 Rollout First Steps First Login......................................................................................................................... Complete the User Registration.......................................................................... Your Home Page................................................................................................... View Host Assets .................................................................................................. Add Hosts .............................................................................................................. Remove IPs from the Subscription..................................................................... Add Virtual Hosts ................................................................................................ Check Network Access to Scanners ................................................................... Review Password Security Settings ................................................................... Adding User Accounts ................................................................................................... User Roles and Privileges .................................................................................... Asset Groups and Business Units...

Words: 38236 - Pages: 153

Free Essay

Nt1430 Unit 1 Excercises

...Exercises Chapter 1. 1. Free software is user can uses software at no charge. The characteristics of free software are no cost, full version, no expiration. 4. Free software Foundation/GNU is free to redistribute, modify, and study it. Linux is operating system developed through the cooperation of numerous people around the world, is product of the internet and is a free operating system. Linux provides UNIX and GNU. Linus Torvalds helps refine Linux system. Chapter 2. 1. The process installing Fedora/RHEL: a. Make sure the BIOS is set to boot from DVD drive. b. Check installation medium. c. Creates RAM disk uses in place of the hard disk. d. Configure system. e. Writes the operating system files to the hard disk. f. Completing installation on boot up. g. Ready to use. Chapter 3. 1. Live system can run on computer without installing Linux on the computer. Live system does not require installation and hard drive. 4. The /boot partition should be on first partition on hard drive. 8. Fedora system start X by default when enters runlevel 5 (graphical environment). Chapter 11. 1. Single-user mode has only the system console is enabled. Multi-user mode has all appropriate file systems are mounted, users can log in from all connected terminals, dial-up lines, and network connections. 3 The su command, also referred to as substitute user, super user, or switch user, allows a computer operator to change the current user account associated with the running virtual...

Words: 328 - Pages: 2

Free Essay

Internal Data Protocol

...that are actually affected by the “Internal Use Only” data standard. These domains are the user domain, workstation domain and the LAN domain. As with all infrastructures these domains have their own tasks and responsibilities. The user domain is the first layer of the IT infrastructure defense system. This domain is used to access systems, applications, data and more. You will also find the AUP or Acceptable Use Policy here. The AUP is a policy tells the user what they are and are not allowed to do with any organization-owned IT equipment. This domain is affected by the Internal Use Only standard because it is the first partition of the IT Infrastructure. After the user domain, we have the workstation domain. This domain is used to configure hardware and hardening systems. Hardening systems is the process of ensuring that controls are in place to handle any known threats. This process is done by ensuring that the infrastructure has all the latest software revisions, security patches, and systems configurations. But these aren’t the only things that go on in the domain, this is also where the antivirus files are verified. While you would think that this would be a good place this domain needs additional layers of defense because multiple users can access the workstation domain. A way this can be done is by implementing workstation Logon ID’s and passwords. This way any user that is attempting to use the workstation domain has to verify who they are and their credentials...

Words: 453 - Pages: 2

Free Essay

Database Design Paper

...Database Design Paper DBM380 March 09, 2015 Database Design Paper A database is a computer structure that organizes a collection of data so that it can be accessed, updated and managed as fast and efficiently as possible. There are several classifications of databases, “For example, databases can be classified by the number of users supported, where the data are located, the type of data stored, the intended data usage, and the degree to which the data are structured. The number of users determines whether the database is classified as single-user or multiuser. A single-user database supports only one user at a time. In other words, if user A is using the database, users B and C must wait until user A is done. A single-user database that runs on a personal computer is called a desktop database. In contrast, a multiuser database supports multiple users at the same time. When the multiuser database supports a relatively small number of users (usually fewer than 50) or a specific department within an organization, it is called a workgroup database. When the database is used by the entire organization and supports many users (more than 50, usually hundreds) across many departments, the database is known as an enterprise database” (Coronel, Morris, & Rob, 2013, p. 9). Database architecture describes the rules that dictate how data is stored in a database and how data is accessed by components of a system. Database management software, such as Oracle, is designed to handle...

Words: 404 - Pages: 2

Free Essay

File Management

...supports 5,000 users how would you make it so that 4,990 of those users have access to one file, using UNIX? After considering the proposed scenario there are two possible steps that will be used to achieving the proper way to make sure certain users see the proper information. The two steps are as implementing the use of Access Control List (ACL’s) or implementing the use of Access Control List along with using user groups. Unix is a multitasking, Multiuser operating system (encyclopedia) What this means is that while using Unix multiple users can access a single computer simultaneously, while still having in essence a personal computer workstation. These UNIX systems can perform achieve the same functions regardless if running on a small CPU or super computer the only difference will be how fast it is able to process data, and also its ability to store data. The first of the two potential steps that we may use to accomplish our goal is to utilize Access Control Lists (ACL’s). Now for those of you that don’t know these ACL’s are exactly what they sound like, they are list comprised of either users, computers or networks. These ACL’s are present for every file and they control who is able to read, write, and/or execute a particular file. (Temple University, n.d.) After these list are created they are then used in order to decide the amount of access that the members that are on each individual list will be afforded. So in this step we would add all 4990 users that we want to...

Words: 477 - Pages: 2