Last change
on this file was
2153,
checked in by murphpo, 11 years ago
|
Initial Tx/Rx PHY models with 64QAM support (incl. redesigned de-interleaver with much lower latency)
|
File size:
2.1 KB
|
Line | |
---|
1 | function [mod_order, code_rate, valid, supported, N_DBPS] = signal_rate_decode(signal_rate) |
---|
2 | |
---|
3 | %Inputs: |
---|
4 | % signal_rate: 4-bit RATE field from received SIGNAL field |
---|
5 | |
---|
6 | %Outputs: |
---|
7 | % mod_order: payload modulation order in bits-per-sym |
---|
8 | % ([1,2,4,6] for [BSPK,QPSK,16-QAM,64-QAM]) |
---|
9 | % code_rate: payload coding rate ([0,1,2] for [1/2, 2/3, 3/4]) |
---|
10 | % valid: 0 when signal_rate is not a valid 4-bit value |
---|
11 | % supported: 0 when this PHY can't decode the otherwise-valid RATE |
---|
12 | % N_DBPS: num data bits per OFDM symbol |
---|
13 | |
---|
14 | %Mod rates as selection indices |
---|
15 | % (helpfully equal to (bits-per-sym>>1)) |
---|
16 | BPSK = 0; |
---|
17 | QPSK = 1; |
---|
18 | QAM16 = 2; |
---|
19 | QAM64 = 3; |
---|
20 | |
---|
21 | CODE12 = 0; |
---|
22 | CODE23 = 1; |
---|
23 | CODE34 = 2; |
---|
24 | |
---|
25 | switch double(signal_rate) |
---|
26 | |
---|
27 | case 11 %13 %bin2dec('1101') |
---|
28 | mod_order = BPSK; |
---|
29 | code_rate = CODE12; |
---|
30 | valid = 1; |
---|
31 | supported = 1; |
---|
32 | N_DBPS = 24; |
---|
33 | case 15 %bin2dec('1111') |
---|
34 | mod_order = BPSK; |
---|
35 | code_rate = CODE34; |
---|
36 | valid = 1; |
---|
37 | supported = 1; |
---|
38 | N_DBPS = 36; |
---|
39 | case 10 %5 %bin2dec('0101') |
---|
40 | mod_order = QPSK; |
---|
41 | code_rate = CODE12; |
---|
42 | valid = 1; |
---|
43 | supported = 1; |
---|
44 | N_DBPS = 48; |
---|
45 | case 14 %7 %bin2dec('0111') |
---|
46 | mod_order = QPSK; |
---|
47 | code_rate = CODE34; |
---|
48 | valid = 1; |
---|
49 | supported = 1; |
---|
50 | N_DBPS = 72; |
---|
51 | case 9 %bin2dec('1001') |
---|
52 | mod_order = QAM16; |
---|
53 | code_rate = CODE12; |
---|
54 | valid = 1; |
---|
55 | supported = 1; |
---|
56 | N_DBPS = 96; |
---|
57 | case 13 %11 %bin2dec('1011') |
---|
58 | mod_order = QAM16; |
---|
59 | code_rate = CODE34; |
---|
60 | valid = 1; |
---|
61 | supported = 1; |
---|
62 | N_DBPS = 144; |
---|
63 | case 8 %1 %bin2dec('0001') |
---|
64 | mod_order = QAM64; |
---|
65 | code_rate = CODE23; |
---|
66 | valid = 1; |
---|
67 | supported = 1; |
---|
68 | N_DBPS = 192; |
---|
69 | case 12 %3 %bin2dec('0011') |
---|
70 | mod_order = QAM64; |
---|
71 | code_rate = CODE34; |
---|
72 | valid = 1; |
---|
73 | supported = 1; |
---|
74 | N_DBPS = 216; |
---|
75 | otherwise |
---|
76 | mod_order = BPSK; |
---|
77 | code_rate = CODE12; |
---|
78 | valid = 0; |
---|
79 | supported = 0; |
---|
80 | N_DBPS = 24; |
---|
81 | end %end switch |
---|
82 | |
---|
83 | end %end function |
---|
84 | |
---|
Note: See
TracBrowser
for help on using the repository browser.