Linux 802.11 n CSI Tool移植問題の研究

3496 ワード

コンポーネント

  • 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をmexw 64ファイルにコンパイルすると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


  • userspacetoolsファイルリスト


    に注意
  • postfix _smはspatial mapping
  • を表す.
  • postfix _berはbit error rate
  • を表す
  • postfix _bfはbeamforming
  • を表す
  • postfix inv代表inverse operation
  • を求めるiw wlan0 set channel 64 HT20はwlan 0ポートを64チャネル、20 MHz帯域幅に設定し、802.11 nプロトコルでデータを伝送することを示す.
    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. The CSI is then used in the equalizer to compensate for channel effects before demodulation.
    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
    **詳細:**
  • QQ群:CSIチャネル状態情報交流群366102075
  • Github: https://github.com/wuzhiguocarter/Awesome-WiFi-CSI-Research