2.4GHz 802.11a Software Receiver Design

UCLA Electrical Engineering Department-Communication Systems Laboratory
OCDMA Channel Coding
Progress Report
Jun Shi
Andres I. Vila Casado
Miguel Griot
Richard D. Wesel
Main results this quarter
 LDPC design for the Z Channel



Density Evolution
Design technique : Linear programming based on
density evolution
Status
 Simple codes for immediate hardware
implementation
The OR Channel
User 1
Output
+
User 2
 Bit synchronized
 No multi-level detection (receiver detects only
presence of light)
 This means that the channel can be seen as an
OR channel (1+ X = 1; 0 + X = X)
Successive Decoding
 We can decode the first user by treating
others as noise, then the first user’s ones
become erasures for the other users.
Proceed in this way until finish decoding all
the users.
 This is called successive decoding. For
binary OR channel, this process does not
lose capacity as compared to joint decoding.
Successive Decoding: The Z-Channel
 Successive decoding for n users:
 User with lowest rate is decoded first
 Other users are treated as noise
 The decoded data of the first user is used in
the decoding of the remaining users
 First user sees a “Z-channel”
x0
1  a1
y0
a1
y 1
x 1
 Where ai = 1-(1-p)n-i is the probability that at
least one of the n-i remaining users transmits
a1
Successive Decoding: Z with erasures
 Intermediate users see the following channel
assuming perfect previous decoding
Xi
0
1 - a1
Yi
0
e
1
1bi
1
 Where bi = 1-(1-p)i-1 is the probability that at
least one of the I-1previously decoded users
transmitted a 1
Successive Decoding
 The last user sees a BEC channel
Xn
0
1 - a1
Yn
0
e
1
1 - a1
1
Successive Decoding
 For two users


User 1 sees a Z-channel
User 2 sees the following channel
X2
0
1-p
Y2
0
e
1
1
(1-p)(1-BER1) + p(BER1)
 When BER1 is small, the channel can be
approximated to a BEC
A 3-user example
R1
1
User 1
User 2
User 3
1
R1  R2  R3  1
1
R2
User 1
?
?
?
?
?
?
?
?
User 2
?
?
?
?
?
?
?
?
User 3
?
?
?
?
?
?
?
?
Receiver
0
1
1
1
1
0
1
1
1
0
1
0
R3
A 3-user example
R1
1
User 1
User 2
User 3
1
R1  R2  R3  1
1
R2
User 1
0
1
0
0
1
0
0
1
User 2
?
?
?
?
?
?
?
?
User 3
?
?
?
?
?
?
?
?
Receiver
0
e
1
1
e
0
0
e
1
1
e
0
0
R3
A 3-user example
R1
1
User 1
User 2
User 3
1
R1  R2  R3  1
1
R2
User 1
0
1
0
0
1
0
0
1
User 2
0
0
0
1
0
0
1
0
User 3
?
?
?
?
?
?
?
?
Receiver
0
e
1
e
e
0
e
e
1
1
e
0
0
R3
A 3-user example
R1
1
User 1
User 2
User 3
1
R2
User 1
0
1
0
0
1
0
0
1
User 2
0
0
0
1
0
0
1
0
User 3
0
1
1
0
0
0
0
0
Receiver
0
1
1
1
1
0
1
1
R1  R2  R3  1
1
R3
LDPC codes
 There are essentially two elements
that must be designed when
building and LDPC code :


Degree distributions
Edge positioning
 This group has worked a lot on the
edge positioning problem, thus we
have all the necessary designing
tools
 Also, the degree distribution
design problem for symmetric
channels (AWGN, BSC, BEC) has
been thoroughly studied by many
authors.
LDPC codes for asymmetric channels
 Density evolution is a concept developed by




Richardson et al. that helps predict the LDPC code
behavior in symmetric channels
This concept can be used in the design of good
degree distribution in many different ways
Wang et al. recently generalized Richardson’s result
for asymmetric channels.
We took all these concepts and tried several different
linear programming based algorithms, and built a
program that efficiently designs degree distributions
for any binary memoryless channel.
Given a channel, the program tries to maximize the
rate while maintaining an acceptable performance.
Degree Distribution Design for Z-channels
Target alpha = 0.2731
Rates
0.485333
0.486675
0.487941
0.489139
0.490271
0.491342
0.492354
0.493311
0.494217
0.495076
0.495891
0.496662
0.497393
0.498086
0.498743
0.499366
0.499957
0.500516
0.501047
0.501550
0.502027
Capacity
0.532439
0.14
0.12
Probability of error of v2c messages
0.371989
0.380872
0.389073
0.396646
0.403669
0.410180
0.416236
0.421862
0.427106
0.431998
0.436565
0.440834
0.444828
0.448566
0.452070
0.455357
0.458442
0.461342
0.464062
0.466625
0.469032
0.471299
0.473436
0.475448
0.477345
0.479132
0.480820
0.482412
0.483915
0.1
0.08
0.06
0.04
0.02
0
0
10
20
30
40
50
alpha
60
70
80
90
100
l(x) = 0.27571047 x + 0.15042832 x2 + 0.18575028 x3 + 0.38811080 x11
Code Characteristics
MD 12
MD 13
MD 12 v2
Wang
RCEV
Max variable
node degree
12
13
12
12
10
Total number of
edges
7289
7305
7413
7316
7182
Simulation of Codes on the Z Channel
10
10
BER/FER
10
10
10
10
10
0
100 it, Rate 1/2, N = 1944
-1
-2
-3
-4
-5
-6
-7
RCEV
MD 13
MD 12
Wang
MD 12 v2
RCEV dist
10
0.17 0.18 0.19 0.2 0.21 0.22 0.23 0.24 0.25 0.26
alpha
Simulation of Codes on the Z Channel
10
10
BER/FER
10
10
10
10
0
40 it, Rate 1/2, N = 1944
-1
-2
-3
-4
-5
-6
RCEV
MD 13
MD 12
Wang
Wang Random
MD 12 v2
RCEV dist
10
0.17 0.18 0.19 0.2 0.21 0.22 0.23 0.24 0.25 0.26
Degree Distribution Design for Z-channels
Target alpha = 0.5
Rates
0.256000
0.258348
0.260559
0.262657
0.264637
0.266504
0.268278
0.269951
0.271536
0.273036
0.274453
0.275797
0.277072
0.278278
0.279422
0.280506
0.281533
0.282507
0.283431
0.284306
0.285137
0.285925
0.286673
0.287384
0.288059
0.288703
0.289321
0.289910
0.290461
0.290986
0.291486
0.291964
Capacity
0.321928
0.25
0.2
Probability of error of v2c messages
-0.051744
-0.026240
-0.003107
0.017941
0.037158
0.054751
0.070872
0.085686
0.099326
0.111926
0.123588
0.134406
0.144449
0.153785
0.162473
0.170558
0.178103
0.185163
0.191761
0.197937
0.203717
0.209134
0.214218
0.218996
0.223478
0.227695
0.231663
0.235397
0.238912
0.242225
0.245348
0.248085
0.250882
0.253517
0.15
0.1
0.05
0
0
10
20
30
40
50
iterations
60
70
80
90
100
Another code on the Z channel
0
10
40 it
100 it
-1
10
-2
BER/FER
10
-3
10
-4
10
-5
10
-6
10
0.36
0.38
0.4
0.42
alpha
0.44
0.46
0.48
Simple codes
 In order to have a hardware demo working for
the May meeting, some very simple codes
were produced.
 This demo consists of two transmitter and two
receivers
 Both receivers decode the information
independently
Simple Codes for Demo
 Short codes have been designed for a simple
demo for 2 users
 These were chosen to be as simple to
encode and decode as possible
 Each bit is encoded separately
 Bit synchronism is assumed, blocked
asynchronism is allowed
 Coordination is required
 These codes are error free
Simple codes for Demo (2)
1
Rate 1/4
0
Receiver 1 looks for
position of 0 (which
always exists)
0
Source 1
If 1 or 2, decide 1
1
If 3 or 4, decide 0
1
2
3
4
Sum Rate 5/12
Rate 1/6
Receiver 2 looks for
FIRST position of 0.
If 1, 3 or 5, decide 1
If 2, 4 or 6, decide 0
0
Source 2
1
1
2
3
4
5
6
Worst Case :
block i
block i+1
OR Channel
 Channel capacity for a two user OR channel
Density Transformer
First approach
 After the density transformer each user transmits a
one with probability p
Density Transformer
 The output bits of a binary linear code (such as LDPC
codes) are equally likely 1 or 0 if the information bits
are also equally likely
 Thus we need to change this distribution in order to
avoid such a large interference between users
Transmitter: Non-uniform mapper
1) Mapper
2) Huffman Decoder
Receiver: Use soft Huffman encoder
Future work in Successive Decoding
 Design degree distributions that work well for
the specific channels that the different users
see
 Develop the distribution transformer
 Test this successive decoding idea with a
simulation.
Joint decoding
 Joint decoding will be
done on graphs that
look like this one
 The formulas necessary
in this joint decoding
have already been
found and simplified
Future work on Joint decoding
 Develop a density evolution based design
tool to construct good LDPC codes for joint
decoding
 Test and compare the performance of joint
decoding and successive decoding
 Also evaluate and compare the complexity of
both techniques