频段、频宽和信道

       我们常见的无线频段主要有两个:2.4G和5G。之所以叫2.4G,是因为这个频段的频率范围为:2.4GHZ~2.4835GHZ。5G频率范围是5.15-5.825GHz。所以频段就是一定的频率范围的说法。

        信道:就是无线路由器(终端)的工作信道。2,4G频段一共有14个信道,但在中国只允许使用前13个新道。每个信道22MHZ宽,实际使用来传输数据的只有20MHZ宽,其余的2MHZ用来隔离信道,就好比马路两侧的绿化带。而2.4G一共可用83.5MHZ,所以信道与信道之间大多会有重叠。每个信道的中心频率间隔5MHZ。

信道       中心频率    频率范围

01   2412  2401-2423
02   2417  2406-2428
03   2422  2411-2433
04   2427  2416-2438
05   2432  2421-2443
06   2437  2426-2448
07   2442  2431-2453
08   2447  2426-2448
09   2452  2441-2463
10   2457  2446-2468
11   2462  2451-2473
12   2467  2456-2478

13   2472  2461-2483



   频宽:分为20MHZ和40MHZ。正如前面所说,在2.4G频段信道与信道之间会有冲突,所以如果选取40MHZ频宽,而你周围使用无线的终端有很多(就等于你周围的很多信道都有人在使用),那你就会跟很多信道冲突,导致传输效率降低,可能还没有20的来得快。

    频段定义了一条大道,被划分成了很多小道(信道),一条道跑一些车。

  • 26
    点赞
  • 131
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在 Android 5.0(API 21)之前的版本中,可以通过WifiInfo类的getFrequency()方法获取当前连接的Wi-Fi的频率信息。但是在Android 5.0及以上版本中,getFrequency()方法已经被废弃,需要使用其他的方式来获取Wi-Fi的频率信息。 以下是在Android 5.0之前获取Wi-Fi频率的示例代码: ```java WifiManager wifiManager = (WifiManager) getSystemService(Context.WIFI_SERVICE); WifiInfo wifiInfo = wifiManager.getConnectionInfo(); int frequency = wifiInfo.getFrequency(); // 获取频率 ``` 如果要在Android 5.0及以上版本中获取Wi-Fi频率信息,可以使用WifiManager类的getWifiState()方法和WifiInfo类的getLinkSpeed()方法来计算。以下是示例代码: ```java WifiManager wifiManager = (WifiManager) getSystemService(Context.WIFI_SERVICE); WifiInfo wifiInfo = wifiManager.getConnectionInfo(); int linkSpeed = wifiInfo.getLinkSpeed(); // 获取连接速度 int frequency = 0; if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.LOLLIPOP) { frequency = wifiInfo.getFrequency(); } else { int wifiState = wifiManager.getWifiState(); if (wifiState == WifiManager.WIFI_STATE_ENABLED) { List<ScanResult> scanResults = wifiManager.getScanResults(); for (ScanResult scanResult : scanResults) { if (scanResult.BSSID.equals(wifiInfo.getBSSID())) { frequency = scanResult.frequency; break; } } } } int channelNumber = getChannelNumber(frequency); // 计算信道号 ``` 其中,getChannelNumber()方法用于计算Wi-Fi的信道号,示例代码如下: ```java private int getChannelNumber(int frequency) { int channelNumber = 0; if (frequency >= 2412 && frequency <= 2484) { channelNumber = (frequency - 2412) / 5 + 1; } else if (frequency >= 5170 && frequency <= 5825) { channelNumber = (frequency - 5170) / 5 + 34; } return channelNumber; } ``` 需要注意的是,计算信道号的方法只适用于2.4GHz和5GHz频段。如果是其他频段,需要根据实际情况进行调整。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值