从2019年末的iphone11系列开始,到后来的三星S10,在手机参数中总会有WIFI6这么一条参数,这里的WIFI6就是802.11的一个比较新的协议规范:802.11AX。

因为笔者软件出生,对射频了解的不多,基本上也是靠查查找到,学习到了无线速率的计算方法,因为手头上的相关WIFI6的资料有限,网上也查不到比较全的无线速率对照表,所以干脆学习了一下,写了一段代码来计算无线各个参数下的WIFI6协商速率。

能查到这里来的应该都是对802.11有一定了解的,所以一些细节东西就不展开去讲。

下面要讲的东西基本上是从华为学习过来的,原文链接如下:
https://support.huawei.com/enterprise/zh/doc/EDOC1100102758
公式如下:
*WiFi理论协商速率 =(符号位长×码率×子载波数量×空间流)÷ 传输时间*符号位长:不同调制方式的大小不同,某种调制方式下为一定值码率:不同调制方式的大小不同,某种调制方式下为一定制子载波数量:这里只计算有效子载波数量,即携带有效数据的载波数量空间流:就是我们常说的几发几收,1T1R,2T2R这种东西传输时间:不同协议时间不同,为一定值,注意我们计算时这里的时间要加上GI(帧间间隙)这个值在协议规范也是有一系列固定值的。

讲到这里就要列出来这些变量的主要取值了,首先是不同协议和不同频宽下的有效子载波数量。
有效子载波数量:

传输时间:

符号位长,码率以及调制方式:

有了以上的东西,再加上空间流即可完成计算,如计算11AX最大理论速率,8T8R:
11ax理论最大速率 =(10bit × 5/6 × (2*980) * 8) ÷ (12.8 + 0.8) = 9607.86Mbps

如果遇到查不到表的情况,并且有时候表不全的时候怎么办呢,笔者抽空写了段代码,可以计算并输出11ax的速率,附上代码:

/** =====================================================================================**       Filename:  ax_rate.c**    Description:  cal 802.11AX wireless rate**        Version:  1.0*        Created:  2020年03月06日 21时23分14秒*       Revision:  none*       Compiler:  gcc**         Author:  lyx *        Company:  xxx** =====================================================================================*/#include <stdio.h>#define TRANS_TIME_AX   12.8   //11ax基本传输耗时
#define BAND_WIDTH_20   20      //20M频宽
#define BAND_WIDTH_40   40      //40M频宽
#define BAND_WIDTH_80   80      //80M频宽
#define BAND_WIDTH_160   160    //160M频宽float bit_symbol[12] = {1,2,3,4,4,5,5,5,8,8,10,10};   //不同解调方式/mcs对应的符号位长
float mcs_bit_rate[12] = {(float)1/2, (float)1/2, (float)3/4, (float)1/2, (float)3/4,\(float)1/2, (float)3/4, (float)5/6, (float)3/4, (float)5/6, (float)3/4, (float)5/6};  //mcs index对应的码率
float num_word_carr[4] = {234, 468, 980, 1960}; //不同频宽的子载波数量20/40/80/160float cal_rate(int bandwidth, float GI, int mcs_index, float space_flow)
{float rate = 0;int bandwidth_index = -1;switch (bandwidth){case BAND_WIDTH_20:bandwidth_index = 0;break;case BAND_WIDTH_40:bandwidth_index = 1;break;case BAND_WIDTH_80:bandwidth_index = 2;break;case BAND_WIDTH_160:bandwidth_index = 3;break;default:break;}rate = ( bit_symbol[mcs_index] * mcs_bit_rate[mcs_index] * num_word_carr[bandwidth_index] * space_flow ) / (TRANS_TIME_AX + GI);return rate;
}int main(int argc, char **argv)
{
//    float rate1 = cal_rate(40,0.8,9,2);int mcs_idx = 0, band = 0;for (band = BAND_WIDTH_20; band <=BAND_WIDTH_80; band*=2){for (mcs_idx = 0; mcs_idx < 12; mcs_idx++){printf("%.1f\t", cal_rate(band,3.2,mcs_idx,2));}printf("\n");for (mcs_idx = 0; mcs_idx < 12; mcs_idx++){printf("%.1f\t", cal_rate(band,1.6,mcs_idx,2));}printf("\n");for (mcs_idx = 0; mcs_idx < 12; mcs_idx++){printf("%.1f\t", cal_rate(band,0.8,mcs_idx,2));}printf("\n");}return 0;
}

编译:

运行:

因为图省事,就没用argv参数,调用全是写死了,只写了20M 40M 80M 和分别对应的GI, 2GI, 4GI 对应的速率。需要修改的自己修改吧,a,b,g,n,ac,ax的计算方式一样,注意GI,调制方式以及空间流合法就好了。

【WIFI】802.11AX(WIFI6)无线协商速率计算相关推荐

  1. 无线协商速率计算原理

    一.计算公式 无线协商速率=(符号位长x码率x子载波数量x空间流)/传输时间 1.符号位长 不同调制方式的大小不同,某种调制方式下为一定值,即1个Symbol里面能承载的bit数量. 调制方式与符号位 ...

  2. WiFi5 (802.11ac) Vs WiFi6(802.11ax)频宽及速率对比

  3. WiFi 802.11ax

  4. 802.11AX无线速率计算

    802.11AX(WIFI6)无线协商速率计算 从2019年末的iphone11系列开始,到后来的三星S10,在手机参数中总会有WIFI6这么一条参数,这里的WIFI6就是802.11的一个比较新的协 ...

  5. 第6代无线技术802.11ax详解

    802.11ax,也称为高效无线网络(High-Efficiency Wireless-HEW),通过一系列系统特性和多种机制增加系统容量,通过更好的一致覆盖和减少空口介质拥塞来改善Wi-Fi网络的工 ...

  6. 第6代无线技术802.11ax详解(技术构成、特点、误区)

    802.11ax,也称为高效无线网络(High-Efficiency Wireless-HEW),通过一系列系统特性和多种机制增加系统容量,通过更好的一致覆盖和减少空口介质拥塞来改善Wi-Fi网络的工 ...

  7. 第二十二节:通信之WLAN(802.11ax@TWT-I)

    欢迎大家一起学习探讨通信之WLAN.本节探讨802.11ax(即WiFi6)协议规定的TWT功能.该功能主要通过"允许管理STA在BSS中的活动,通过调度STA在不同的时间运行,以达到最小化 ...

  8. WLAN协商速率的计算方法

    http://www.h3c.com/cn/d_201708/1018836_30005_0.htm 802.11a/g的 54Mbps ,802.11n的300Mbps. 450Mbps,还有802 ...

  9. 最全的WiFi速率对应表(802.11b、802.11g、802.11a、802.11n、802.11ac、802.11ax)及速率计算方法

    Wi-Fi理论带宽计算方式 计算公式 Wi-Fi理论带宽 =(符号位长×码率×子载波数量×空间流)÷ 传输时间 符号位长 一个Symbol能承载的bit数量,这个与调试有关. 11a/g 11n 11 ...

最新文章

  1. 手工纸盒子_【创意手工】怒赞!如此有趣的儿童折纸,你不学我学!
  2. walle(瓦力)部署系统的安装和简单使用
  3. root cause of message type unknown during BP delta upload
  4. Serverless简介
  5. 逆向映射是干嘛的anon_vma, vma, anon_vma_chain
  6. 计算机表格怎么求面积,在wps表格中怎么把数据生成面积图?
  7. 分布式6大核心专题_分布式Session
  8. Ubuntu 16.04 下修改免安裝版tomcat的內存大小
  9. PyCharm编辑器的安装
  10. 1小时搞懂设计模式之策略模式
  11. 最新大润发优鲜小程序逆向分析
  12. Spring攻略学习笔记(13)------继承Bean配置
  13. Windows7与Window2008 64位IIS7上面配置操作Excel
  14. PHP压缩CSS文件
  15. python调用高德接口获取国内行政区经纬度数据
  16. 项目管理:如何提高团队效率
  17. 高通msm8953平台射频调试
  18. linux设置开机自启动网络,linux设置开机自启动
  19. Generate public key from private key in keychain
  20. 软件测试之项目实战,必须知道的事与测试面试项目测试流程......

热门文章

  1. 电涡流传感器测转速得互相干扰问题
  2. 百度莱茨狗python自动抢狗,调用百度OCR或者人工识别验证码
  3. 【113期分享】4款教学课件PPT模板免费下载
  4. 考研计算机统考知识点,09计算机考研统考大纲权威解读之考试范围
  5. 杰理之静电测试方法【篇】
  6. Redmine部署以及插件安装
  7. “附近的人”功能实现
  8. 【R语言数据科学】:(十)数据清洗之日期型数据处理
  9. Android离线打包文档
  10. twitch.tv打不开_开发人员真人秀-程序员的Twitch.tv在哪里?