Bug 1758 - Missing Yans and Nist error rate models for 5/6 code rate of 802.11n HT
Missing Yans and Nist error rate models for 5/6 code rate of 802.11n HT
Status: RESOLVED FIXED
Product: ns-3
Classification: Unclassified
Component: wifi
ns-3.18
All All
: P5 normal
Assigned To: Nicola Baldo
:
Depends on:
Blocks:
  Show dependency treegraph
 
Reported: 2013-09-09 14:35 EDT by sebastien.deronne
Modified: 2014-11-29 13:30 EST (History)
6 users (show)

See Also:


Attachments
Proposed patch, validation script and results (28.79 KB, application/zip)
2013-09-09 14:35 EDT, sebastien.deronne
Details
patch v2 (4.29 KB, patch)
2013-11-11 05:48 EST, sebastien.deronne
Details | Diff
patch v3 (5.60 KB, application/octet-stream)
2014-11-20 16:09 EST, sebastien.deronne
Details
patch v4 (10.14 KB, patch)
2014-11-21 16:01 EST, sebastien.deronne
Details | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description sebastien.deronne 2013-09-09 14:35:18 EDT
Created attachment 1667 [details]
Proposed patch, validation script and results

The 802.11n HT model (implemented in the simulator since ns-3.18) suffers from the lack of an accurate error rate model for 5/6 code rates, which is a new code rate allowed in 802.11n standard in order to obtain higher throughputs.

In order to show this bug, I ran the ofdm-validation script with the newest rate introduced by wi-fi ht (see script in attachment). 

We can observe that:

1. The Nist error rate model is not correct for 65 Mbit/s rates, since it uses a 5/6 code rate whereas other rates use the same code rates as older wi-fi versions. Indeed, we can observe (see pictures in attachment) that the FSR (Frame Success Rate) vs SNR curves are the same for both 58,5 Mbit/s and 65 Mbit/s rates, which is not correct. Indeed, we should expect instead a higher SNR for 65 Mbit/s rates to perform the same FSR than 58,5 Mbit/s rates. 

2. The Yans error rate model gives the same output for all ht rates (see attachment), since it never computes the FSR due to a test condition which is not fulfilled. Note that even if we change this condition, we need to adapt the model for the 5/6 code rate as previously (see pictures in attachment).

Based on "Multi-rate Convolutional Codes" written by Pal Frenger et al. which had been used to implement those models for 802.11a/b/g, I brought some modifications to YansErrorRateModel and NistErrorRateModel classes (see patch in attachment) in order to be able to use those models with wi-fi ht. I provide also the ofdm-validation results in this case. We observe that the expected behaviour is now well obtained. 

Could you give me your feedback about those proposed modifications?

Thanks,
Sébastien Deronne
Comment 1 l.salameh 2013-10-25 10:28:40 EDT
Hi,

Would it be correct to include more fields in the pe calculation, in nist-error-rate-model.cc?

What I have is: 

if (bValue == 5)
  {
    
    pe = 1.0 / (2.0 * bValue) *
    ( 92.0 * std::pow (D, 4.0)
     + 528.0 * std::pow (D, 5.0)
     + 8694.0 * std::pow (D, 6.0)
     + 79453.0 * std::pow (D, 7.0)
     + 792114.0 * std::pow (D, 8.0)
     + 7375573.0 * std::pow (D, 9.0)
     + 67884974.0 * std::pow (D, 10.0)
     + 610875423.0 * std::pow (D, 11.0)
     + 5427275376.0 * std::pow (D, 12.0)
     + 47664215639.0 * std::pow (D, 13.0)
     );
  }
Comment 2 sebastien.deronne 2013-11-02 13:10:27 EDT
(In reply to comment #1)
> Hi,
> 
> Would it be correct to include more fields in the pe calculation, in
> nist-error-rate-model.cc?
> 
> What I have is: 
> 
> if (bValue == 5)
>   {
> 
>     pe = 1.0 / (2.0 * bValue) *
>     ( 92.0 * std::pow (D, 4.0)
>      + 528.0 * std::pow (D, 5.0)
>      + 8694.0 * std::pow (D, 6.0)
>      + 79453.0 * std::pow (D, 7.0)
>      + 792114.0 * std::pow (D, 8.0)
>      + 7375573.0 * std::pow (D, 9.0)
>      + 67884974.0 * std::pow (D, 10.0)
>      + 610875423.0 * std::pow (D, 11.0)
>      + 5427275376.0 * std::pow (D, 12.0)
>      + 47664215639.0 * std::pow (D, 13.0)
>      );
>   }

Maybe we could, but I kept the same number of fields as it was done for other modulation formats.
Comment 3 sebastien.deronne 2013-11-11 05:48:00 EST
Created attachment 1703 [details]
patch v2

New patch which includes more fields in the pe calculation in nist-error-rate-model.cc
Comment 4 sebastien.deronne 2014-04-23 04:45:42 EDT
Could we merge the patch in ns-3-dev and close the bug?
Comment 5 Gary Pei 2014-11-14 12:12:51 EST
The patch looks good. Please add the exact table reference from work "Multi-rate Convolutional Codes" written by Pal Frenger et al. Any validation results from real hardware as in Appendix B of http://www.nsnam.org/~pei/80211ofdm.pdf ?
Thanks,
Gary
Comment 6 sebastien.deronne 2014-11-14 15:17:46 EST
I based the numbers in patch 1 from Table B.32 in "Multi-rate Convolutional Codes" written by Pal Frenger et al.

However, I realized that the numbers in patch 2, which are based on the values proposed by L. Salame, are slightly different that those in that table (the first values in common with patch 1 are the same).

Should we correct patch 2 according to Table B.32? 
From where comes the values provided by L. Salame?

For real measurements, I had a setup we could have used for such purpose but unfortunately I don't have it anymore. Nevertheless, I'm pretty sure we could compare the obtain results with some experimental results provided in the literature (I can quickly have a look at that in the coming days). 

Regards,
Sébastien
Comment 7 l.salameh 2014-11-14 15:45:27 EST
I found the values in the following paper, table IV:

Haccoun and Begin, "High Rate Punctured Convolutional Codes for Viterbi Sequential Decoding".

Cheers,
Lynne
Comment 8 l.salameh 2014-11-14 15:45:44 EST
I found the values in the following paper, table IV:

Haccoun and Begin, "High Rate Punctured Convolutional Codes for Viterbi Sequential Decoding".

Cheers,
Lynne
Comment 9 sebastien.deronne 2014-11-14 15:47:52 EST
Thanks for your comment Lynne.

Any idea which paper/values should be trusted?
Comment 10 l.salameh 2014-11-14 16:02:11 EST
I honestly don't know. I can investigate a bit and get back to you. My intuition would be to trust your source since it seems to be about 10 years newer.
Comment 11 Gary Pei 2014-11-14 16:03:02 EST
I think work done by Haccoun and Begin, "High Rate Punctured Convolutional Codes for Viterbi Sequential Decoding" is solid. That was NIST model based on. Table IV of the above reference should be used, namely, Entry (M,G1,G2) = (6,133,171) 

Best,
Gary
Comment 12 sebastien.deronne 2014-11-14 16:25:16 EST
Thanks for your good comment Gary.

Maybe some last opinions so that we can choose if we keep patch 2 so far?
Comment 13 sebastien.deronne 2014-11-18 15:08:03 EST
If they are no additional comment, I propose to keep patch v2.
Comment 14 Gary Pei 2014-11-18 15:15:35 EST
Sounds good to me. I suggest that reference to the coefficients should be added in the documentation.
Comment 15 Tom Henderson 2014-11-18 16:18:04 EST
Sebastien, can you please prepare a 'v3' patch that:

- strips all comments such as:
  //802.11n support by S. Deronne
  from the body of the code

- wherever the source code has coefficients drawn from a reference, include a very brief citation comment in the code, such as:

  // 5/6 code rate coefficients drawn from Haccoun and Begin, "High Rate   
 // Punctured Convolutional Codes for Viterbi Sequential Decoding", Table IV

- perhaps at this location in the .rst file:

http://code.nsnam.org/ns-3-dev/file/dc318c5a42de/src/wifi/doc/wifi.rst#l526

add the additional reference also
Comment 16 sebastien.deronne 2014-11-20 16:08:55 EST
Taking your remarks into consideration, here is a "v3" patch.
Comment 17 sebastien.deronne 2014-11-20 16:09:35 EST
Created attachment 1924 [details]
patch v3
Comment 18 sebastien.deronne 2014-11-21 16:01:59 EST
Created attachment 1925 [details]
patch v4

New version of the patch to include an ofdm-ht-validation example.
Comment 19 Tom Henderson 2014-11-21 17:28:27 EST
thanks, I will schedule to apply v4 of the patch next week if there are no other comments.
Comment 20 Tom Henderson 2014-11-29 13:30:42 EST
changeset 11079:fde91036410a