maksimio / csidata

Данные экспериментов Wi-Fi-распознавания Channel State Information (CSI)

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

smart Wi-Fi

Данные экспериментов CSI

Здесь хранятся структурированные данные экспериментов по классификации объектов. Во время эксперимента собирается Channel State Information (CSI). Используются 2 роутера одинаковой модели TL-WR842NDv2.

Структура репозитория

В каждой папке лежит README.md с подробным описанием эксперимента, а также сами данные в виде бинарных файлов. Список экспериментов:

  1. 📗1_distortion_objects - классификация 3 металлических объектов с искажениями + без объектов. Расстояние 2 метра.
  2. 📗2_multiple - распознавание трех объектов одновременно (multilabel). В канале может быть от 0 до 3-х заранее известных объектов одновременно. Расстояние 1.4 метра.
  3. 📕3_overlap_objects - в планах - в канале может быть несколько классов одновременно. Расстояние 2 метра.
  4. 📕4_person_position - в планах - классификация местоположения человека в квартире + состояние без человека

Проведение эксперимента

Тренировочные и тестовые выборки

Эксперимент проводится так:

  1. Снимаются тренировочные выборки для всех объектов
  2. Снимаются тестовые выборки для всех объектов

Физическое разнесение train и test позволяет эмулировать реальные условия эксплуатации системы распознавания, где мы сначала учимся, а потор распознаем. Многие пакеты CSI похожи между собой, и если просто перемешать их и взять 20% как тестовые данные, то точность классификации будет искусственно завышена

Конфигурация локальной сети

Помните, что один из маршрутизаторов обязательно должен быть точкой доступа. Ведь, согласно стандарту Wi-Fi, пакеты между двумя клиентами передаются через точку доступа. То есть Rx в таком случае будет измерять CSI точки доступа.

Как подключиться по Wi-Fi по SSH к роутеру-клиенту? Нужно сделать 2 вещи у роутера клиента: отключить службу firewall полностью и изменить адрес сети в LAN интерфейсе клиента, чтобы не было конфликта. Например, IP AP: 192.168.1.1, а IP клиента 192.168.2.1 при масках 255.255.255.0

Команды для записи CSI

  1. readCSI - принимает и записывает CSI в файл
  2. sendData - отправляет пакеты с включенным флагом CSI
  3. client_main - перенаправляет пакеты CSI на указанный сервер

Чтение данных

Чтение CSI из файлов проще всего осуществлять при помощи библиотеки csiread - это самый быстрый вариант

Как обрабатывать CSI

CSI - матрица комплексных чисел. Из каждого числа можно получить амплитуду и фазу поднесущей сигнала. Если число поднесущих, например, равно 56, у роутеров по 2 антенны, значит на каждый пакет приходится 56·2·2 = 224 комплексных числа.

Графики амплитудных и фазовых значений

В фазовых значениях убраны разрывы при помощи np.unwrap

About

Данные экспериментов Wi-Fi-распознавания Channel State Information (CSI)

License:MIT License


Languages

Language:Python 100.0%