# PROFEE: A Probabilistic-Feedback Based Speed Rate Adaption for IEEE 802.11 bc
## 4 Adaptive Modulation Algorithm  
The general purpose of an adaptive modulation algorithm is to find the best MCS that maximizes the physical transmission speed at the physical layer with a low Bit Error Rate (BER). Historically, these algorithms have been used in unicast scenarios, where the AP adapts the MCS independently for each user. Each MCS changes the number of bits encoded in each symbol and the coding rate, resulting in a different transmission speed at the physical layer. Figure 5 shows an example of the network coverage for MCS(0)-MCS(8). A disk with a different color represents the area covered by a different MCS. Notice that MCS(0) covers 53.41% of the total area, while MCS(8) covers only 0.01%. Table 2 shows the different MCSs and their characteristics for the IEEE 802.11 ax standard. The same table shows (in the right-hand part) the various H.265 video levels that can be supported by the corresponding MCS on the left. Each H.265 level provides a different video resolution and refresh rate, generating a different transmission bandwidth. This table does not show an exhaustive list of all the different H.265 levels but lists some to illustrate how a different MCS will support all H.265 levels up to a particular level. For example, MCS(5) can support all H.265 levels up to level 5.1. In summary, the proposed method in this work will look for the best MCS(i) that supports the best video quality to users yet keeps the percentage of STAs receiving no video content correctly within the desired tolerated limits. In the case of WiFi broadcast, one transmission performed by the AP is expected to reach hundreds, if not thousands, of receiving STAs simultaneously. Thus, the concept of an adaptive \begin{table}
\begin{tabular}{c c c c c c} \hline \hline
**MCS(0) Index** & **Speed [Mbps]** & \
\begin{tabular}{c} **Modulation and** \\ **Coding Rate (R)** \\ \end{tabular} & **Video Resolution** &
\begin{tabular}{c} **-Bandwidth** \\ **Required** \\ \end{tabular} & **Level** \\ \hline MCS(0) & 7.3 & BPSK, R = 1/2 & 1280 \(\times\) 720 at 60 fps & 4 Mbps & 4 \\ MCS(1) & 14.6 & QPSK, R = 1/2 & 1920 \(\times\) 1080 at 60 fps & 9 Mbps & 4.1 \\ MCS(2) & 21.9 & QPSK, R = 3/4 & & & \\ MCS(3) & 29.3 & 16-QAM, R = 1/2 & 3840 \(\times\) 2160 at 30 fps & 19 Mbps & 5 \\ MCS(4) & 43.9 & 16-QAM, R = 3/4 & & & \\ MCS(5) & 58.5 & 64-QAM, R = 3/4 & & & \\ MCS(6) & 65.8 & 64-QAM, R = 3/4 & & & \\ MCS(7) & 73.1 & 64-QAM, R = 5/6 & & & \\ MCS(8) & 87.8 & 256-QAM, R = 3/4 & & & \\ MCS(9) & 97.5 & 256-QAM, R = 5/6 & & & \\ MCS(10) & 109.7 & 1024-QAM, R = 3/4 & & & \\ MCS(11) & 121.9 & 1024-QAM, R = 5/6 & & & \\ \hline \hline \end{tabular}
\end{table} 
Table 2: OFDM MCS for 802.11 ax for one spatial stream, 20 MHz channel, and 3.2 \(\upmu\)s GI (first three columns). H.265 video resolution and approximate bandwidth required for different levels (last three columns). Figure 5: Coverage of each MCS. modulation algorithm takes a slightly new turn, and now it seeks to find the best MCS that maximizes the transmission speed with a low BER for a given percentage of STAs. In the previous section, we proposed an algorithm that estimates, for a current MCS(i), \(n_{ACK}\) and \(n_{NACK}\). Thus, we can compute the percentage of STAs receiving messages incorrectly (\(\%n_{NACK}\)) as  
\[\%n_{NACK}=\frac{n_{NACK}}{n_{ACK}+n_{NACK}}\times 100. \tag{9}\]  
We now define \(\%n_{NACK}^{range}=\left[\%n_{NACK}^{min},\ \%n_{NACK}^{max}\right]\) as a range of values of \(\%n_{NACK}\) that is considered acceptable, and then the Algorithm 2 modifies (or not) the current MCS(i) at the end of each frame of \(2f\) messages according to  
\[MCS(i)= \begin{cases}MCS(i+1),&\%n_{NACK}<\%n_{NACK}^{min}\\ MCS(i-1),&\%n_{NACK}>\%n_{NACK}^{max}\\ MCS(i),&\%n_{NACK}^{min}\leq\%n_{NACK}\leq\%n_{NACK}^{max}\end{cases}