Code Division Multiple Access (C.D.M.A.)****
A Java applet simulates here multiple bit transmissions on the same communication
link. The receiver extracts one of the transmitter messages from the transmitted
signal by a correlation computation with the tranmitter code which is assumed
known.. This technique of multiple access is used in wireless network (IEEE
802.11), in IS-95, CDMA2000 or UMTS mobile telephony.
Create transmitters with their own codes ?
After adjustment of the number of code bits ("chips"), you have to enter
a code or to ask the program to generate codes (different methods) . The
codes have to look like noise : balance of '1's and 0's, geometric distribution
of runs of 1's : 1/2 of sequences are of length 1, 1/4 are of length 2 etc
...autocorrelation ~ 0 except for lag=0 (or period).
- m-sequence : (code of length 2^N -1), the menu < m-sequence>
generates a pseudo random sequence with a looped shift-register. Other codes
for other transmitters can be generated by a simple circular shift<button
: code shift> . These generated codes are quasi-orthogonal : the auto
correlation function has a maximum= 2^N-1 for shift 0, and -1 (close to 0)
for other shift values. To generate a family of transmitters,
the steps are : m-sequence, new transmitter, code shift, new transmitter,
code shift, new transmitter etc.
- Gold code : A gold code is built by XORing two 'paired' m-sequences.
One m-sequence can be shifted (adjust 'lag'), and thus different gold codes
can be obtained.
- Hadamard-Walsh : (code of length 2^N) the menu < Hadamard-Walsh>
generate Hadamard matrix whose each row, except the first one, can be a code.
All the rows are fully orthogonal, and thus valid to be associated with transmitters.
Once the codes are generated and selected, menu <transmitter family>
will create all the transmitters.
- The menu <cross correlation> allows to check the orthogonality.
Create the transmitted signal ?
The program computes the transmitted signal (button <one byte> for
8 bits by all transmitters) by adding the signals issued by transmitters.
Each transmitter generates its signal : the code is substituted to each bit
1 and the complement of the code to each bit 0. (Signal in blue and bits
in red in transmitter windows). The message of each transmitter is the editable
text at the bottom. This text can be a random sequence of characters : button
<random bits> for all transmitters at once.
The transmitted signal appears in blue in the main window. If many
users, it should look like gaussian noise. This can be seen through menu
<statistics> which gives the histogram (a "bell curve"), and a large
spectrum (theoretically the bandwidth should be the signal bandwidth times
the number of chips of codes). The signal bandwidth itself can be observed
by trying special codes like '111111111'.
Extract the message of one transmitter ?
While the signal is transmitted, the correlation with the code appearing
in the main window is computed for each duration of a bit. When the correlation
is positive (rectangle in blue), the bit 1 is detected, when the correlation
is negative (blue rectangle in yellow) the bit 0 is detected, while
when it is weak, the code does not correspond to a transmitter.
Back to main page of the Montpellier Photonics
group