Open main menu
Home
Random
Recent changes
Special pages
Community portal
Preferences
About Wikipedia
Disclaimers
Incubator escapee wiki
Search
User menu
Talk
Dark mode
Contributions
Create account
Log in
Editing
Code-division multiple access
(section)
Warning:
You are not logged in. Your IP address will be publicly visible if you make any edits. If you
log in
or
create an account
, your edits will be attributed to your username, along with other benefits.
Anti-spam check. Do
not
fill this in!
===Example=== [[Image:Cdma orthogonal signals.png|thumb|right|An example of 4 mutually orthogonal digital signals]] Start with a set of vectors that are mutually [[orthogonality|orthogonal]]. (Although mutual orthogonality is the only condition, these vectors are usually constructed for ease of decoding, for example columns or rows from [[Walsh matrix|Walsh matrices]].) An example of orthogonal functions is shown in the adjacent picture. These vectors will be assigned to individual users and are called the ''code'', ''[[chip (CDMA)|chip]] code'', or ''chipping code''. In the interest of brevity, the rest of this example uses codes '''v''' with only two bits. Each user is associated with a different code, say '''v'''. A 1 bit is represented by transmitting a positive code '''v''', and a 0 bit is represented by a negative code '''βv'''. For example, if '''v''' = (''v''<sub>0</sub>, ''v''<sub>1</sub>) = (1, β1) and the data that the user wishes to transmit is (1, 0, 1, 1), then the transmitted symbols would be :('''v''', '''βv''', '''v''', '''v''') = (''v''<sub>0</sub>, ''v''<sub>1</sub>, β''v''<sub>0</sub>, β''v''<sub>1</sub>, ''v''<sub>0</sub>, ''v''<sub>1</sub>, ''v''<sub>0</sub>, ''v''<sub>1</sub>) = (1, β1, β1, 1, 1, β1, 1, β1). For the purposes of this article, we call this constructed vector the ''transmitted vector''. Each sender has a different, unique vector '''v''' chosen from that set, but the construction method of the transmitted vector is identical. Now, due to physical properties of interference, if two signals at a point are in phase, they add to give twice the amplitude of each signal, but if they are out of phase, they subtract and give a signal that is the difference of the amplitudes. Digitally, this behaviour can be modelled by the addition of the transmission vectors, component by component. If sender0 has code (1, β1) and data (1, 0, 1, 1), and sender1 has code (1, 1) and data (0, 0, 1, 1), and both senders transmit simultaneously, then this table describes the coding steps: {| style="border: 1px #aaaaaa solid; background-color: #f7f8ff; margin-left: auto; margin-right: auto;" | align=center bgcolor="#CCCCCC" | Step | align=center bgcolor="#CCCCCC" | Encode sender0 | align=center bgcolor="#CCCCCC" | Encode sender1 |- | valign=top | 0 | code0 = (1, β1), data0 = (1, 0, 1, 1) | code1 = (1, 1), data1 = (0, 0, 1, 1) |- | valign=top | 1 | encode0 = 2(1, 0, 1, 1) β (1, 1, 1, 1) = (1, β1, 1, 1) | encode1 = 2(0, 0, 1, 1) β (1, 1, 1, 1) = (β1, β1, 1, 1) |- | valign=top | 2 | signal0 = encode0 β code0<br />= (1, β1, 1, 1) β (1, β1)<br />= (1, β1, β1, 1, 1, β1, 1, β1) | signal1 = encode1 β code1<br />= (β1, β1, 1, 1) β (1, 1)<br />= (β1, β1, β1, β1, 1, 1, 1, 1) |} Because signal0 and signal1 are transmitted at the same time into the air, they add to produce the raw signal :(1, β1, β1, 1, 1, β1, 1, β1) + (β1, β1, β1, β1, 1, 1, 1, 1) = (0, β2, β2, 0, 2, 0, 2, 0). This raw signal is called an interference pattern. The receiver then extracts an intelligible signal for any known sender by combining the sender's code with the interference pattern. The following table explains how this works and shows that the signals do not interfere with one another: {|style="border: 1px #aaaaaa solid; background-color: #f7f8ff; margin-left: auto; margin-right: auto;" |align=center bgcolor="#CCCCCC"|Step |align=center bgcolor="#CCCCCC"|Decode sender0 |align=center bgcolor="#CCCCCC"|Decode sender1 |- |0 |code0 = (1, β1), signal = (0, β2, β2, 0, 2, 0, 2, 0) |code1 = (1, 1), signal = (0, β2, β2, 0, 2, 0, 2, 0) |- |1 |decode0 = pattern.vector0 |decode1 = pattern.vector1 |- |2 |decode0 = ((0, β2), (β2, 0), (2, 0), (2, 0))βΒ·β(1, β1) |decode1 = ((0, β2), (β2, 0), (2, 0), (2, 0))βΒ·β(1, 1) |- |3 |decode0 = ((0 + 2), (β2 + 0), (2 + 0), (2 + 0)) |decode1 = ((0 β 2), (β2 + 0), (2 + 0), (2 + 0)) |- |4 |data0=(2, β2, 2, 2), meaning (1, 0, 1, 1) |data1=(β2, β2, 2, 2), meaning (0, 0, 1, 1) |} Further, after decoding, all values greater than 0 are interpreted as 1, while all values less than zero are interpreted as 0. For example, after decoding, data0 is (2, β2, 2, 2), but the receiver interprets this as (1, 0, 1, 1). Values of exactly 0 mean that the sender did not transmit any data, as in the following example: Assume signal0 = (1, β1, β1, 1, 1, β1, 1, β1) is transmitted alone. The following table shows the decode at the receiver: {|style="border: 1px #aaaaaa solid; background-color: #f7f8ff; margin-left: auto; margin-right: auto;" |align=center bgcolor="#CCCCCC"|Step |align=center bgcolor="#CCCCCC"|Decode sender0 |align=center bgcolor="#CCCCCC"|Decode sender1 |- |0 |code0 = (1, β1), signal = (1, β1, β1, 1, 1, β1, 1, β1) |code1 = (1, 1), signal = (1, β1, β1, 1, 1, β1, 1, β1) |- |1 |decode0 = pattern.vector0 |decode1 = pattern.vector1 |- |2 |decode0 = ((1, β1), (β1, 1), (1, β1), (1, β1))βΒ·β(1, β1) |decode1 = ((1, β1), (β1, 1), (1, β1), (1, β1))βΒ·β(1, 1) |- |3 |decode0 = ((1 + 1), (β1 β 1), (1 + 1), (1 + 1)) |decode1 = ((1 β 1), (β1 + 1), (1 β 1), (1 β 1)) |- |4 |data0 = (2, β2, 2, 2), meaning (1, 0, 1, 1) |data1 = (0, 0, 0, 0), meaning no data |} When the receiver attempts to decode the signal using sender1's code, the data is all zeros; therefore the cross-correlation is equal to zero and it is clear that sender1 did not transmit any data.
Edit summary
(Briefly describe your changes)
By publishing changes, you agree to the
Terms of Use
, and you irrevocably agree to release your contribution under the
CC BY-SA 4.0 License
and the
GFDL
. You agree that a hyperlink or URL is sufficient attribution under the Creative Commons license.
Cancel
Editing help
(opens in new window)