Linux 802.11n CSI Tool移植问题研究

组件

  • Modified Firmware
    作用: enable CSI measurements
    iwlwifi-5000-2.ucode.sigcomm2010 (close source)
    只要往网卡中烧录一次就可以了,与CPU和操作系统无关

  • Modified Wireless Driver
    作用: access point functionality for controlling both ends of the link
    based on iwlwifi wireless driver(open source)

  • Application(userspace tools)
    作用: Matlab (or Octave) scripts for data analysis

    • 从日志文件中提取CSI矩阵以及辅助信息
      read_bf_file.m Reads in a file of beamforming feedback logs
      read_bfee.c C语言调用Matlab函数提取CSI,编译成mexw64文件后可供Matlab程序/脚本调用
    • 计算信道矩阵(dBm)
      get_scaled_csi.m
    • 计算effective SNR
      get_eff_SNRs.m
    • compute standard features such as the channel’s singular value decomposition and its MIMO condition number

userspace tools 文件列表

注意

  • postfix _sm 代表spatial mapping
  • postfix _ber 代表bit error rate
  • postfix _bf 代表beamforming
  • postfix inv 代表求inverse operation

iw wlan0 set channel 64 HT20 表示将wlan0网口设置为64信道,20MHz带宽,采用802.11n协议传输数据

Channel Center Frequency(GHz) Frequency Range(GHz) Bandwidth(MHz)
64 5.320 5.310-5.330 20
linux-80211n-csitool-supplementary
│  .gitattributes
│  .gitignore
│  CONTRIBUTING.md
│  README.md
│  tree.md
│  
├─firmware
│      iwlwifi-5000-2.ucode.sigcomm2010
│      
├─hostap-config-files
│      hostap-dotconfig
│      hostapd.conf-real
│      hostapd.conf-test
│      
├─injection
│      .gitignore
│      Makefile
│      random_packets.c
│      README
│      setup_inject.sh
│      setup_monitor_csi.sh
│      util.c
│      util.h
│      
├─matlab
│  │  apply_sm.m
│  │  bpsk_ber.m
│  │  bpsk_berinv.m
│  │  dbinv.m
│  │  get_eff_SNRs.m
│  │  get_eff_SNRs_sm.m
│  │  get_mimo2_SNRs.m
│  │  get_mimo2_SNRs_sm.m
│  │  get_mimo3_SNRs.m
│  │  get_mimo3_SNRs_sm.m
│  │  get_scaled_csi.m
│  │  get_scaled_csi_sm.m
│  │  get_simo_SNRs.m
│  │  get_total_rss.m
│  │  qam16_ber.m
│  │  qam16_berinv.m
│  │  qam64_ber.m
│  │  qam64_berinv.m
│  │  qpsk_ber.m
│  │  qpsk_berinv.m
│  │  read_bfee.c
│  │  read_bfee.mexa64
│  │  read_bfee.mexmaci64
│  │  read_bfee.mexw32
│  │  read_bfee.mexw64
│  │  read_bf_file.m
│  │  remove_sm.m
│  │  sm_matrices.m
│  │  
│  └─sample_data
│          log.all_csi.6.7.6
│          
└─netlink
        .gitignore
        bfee.h
        bf_to_eff.c
        bf_to_eff.h
        get_first_bfee.c
        iwl_connector.h
        iwl_nl.c
        iwl_nl.h
        iwl_structs.h
        log_to_file.c
        Makefile
        nl_bf_to_eff.c
        parse_log.c
        print_packets.c
        q_approx.c
        q_approx.h
        util.c
        util.h
        

工作原理

Every 802.11n NIC measures the channel state for each received packet during the packet preamble. <u> The CSI is then used in the equalizer to compensate for channel effects before demodulation.</u>

Our firmware modifications enable an Intel debug mode that records CSI for each correctly received 802.11n packet and sends it up to the kernel driver on the host computer. The driver in turn passes the CSI to a user-space program for processing.

需要移植的部分

lwlwifi

**更多讨论: **

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 崔健 丁武。 唐朝乐队主唱 李彤。 黑豹乐队吉他手 张楚 何勇 窦唯 高旗。 超载乐队主唱 李延亮...
    胡荔枝阅读 670评论 0 0
  • 花白鲢是水产养殖中从南到北普遍套养的品种,它不仅可以提高经济效益,最重要的作用是能调节水质。然而,在四川西北地区一...
    金山魚阅读 2,239评论 0 0
  • 文/若凡 好像过了三十岁以后,便再也找不到十几二十几岁时那种简单的快乐,耳边大多充斥的都是谁谁家的儿子做什么生意赚...
    璃若凡阅读 378评论 4 5