source: ReferenceDesigns/w3_802.11/sysgen/wlan_phy_rx_pmd/mcode_blocks/signal_rate_decode.m

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 
1function [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))
16BPSK = 0;
17QPSK = 1;
18QAM16 = 2;
19QAM64 = 3;
20
21CODE12 = 0;
22CODE23 = 1;
23CODE34 = 2;
24
25switch 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;
81end %end switch
82       
83end %end function
84
Note: See TracBrowser for help on using the repository browser.