Здесь хранятся структурированные данные экспериментов по классификации объектов. Во время эксперимента собирается Channel State Information (CSI). Используются 2 роутера одинаковой модели TL-WR842NDv2.
В каждой папке лежит README.md
с подробным описанием эксперимента, а также сами данные в виде бинарных файлов. Список экспериментов:
- 📗
1_distortion_objects
- классификация 3 металлических объектов с искажениями + без объектов. Расстояние 2 метра. - 📗
2_multiple
- распознавание трех объектов одновременно (multilabel). В канале может быть от 0 до 3-х заранее известных объектов одновременно. Расстояние 1.4 метра. - 📕
3_overlap_objects
- в планах - в канале может быть несколько классов одновременно. Расстояние 2 метра. - 📕
4_person_position
- в планах - классификация местоположения человека в квартире + состояние без человека
Эксперимент проводится так:
- Снимаются тренировочные выборки для всех объектов
- Снимаются тестовые выборки для всех объектов
Физическое разнесение 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
- readCSI - принимает и записывает CSI в файл
- sendData - отправляет пакеты с включенным флагом CSI
- client_main - перенаправляет пакеты CSI на указанный сервер
Чтение CSI из файлов проще всего осуществлять при помощи библиотеки csiread - это самый быстрый вариант
CSI - матрица комплексных чисел. Из каждого числа можно получить амплитуду и фазу поднесущей сигнала. Если число поднесущих, например, равно 56, у роутеров по 2 антенны, значит на каждый пакет приходится 56·2·2 = 224 комплексных числа.
Графики амплитудных и фазовых значений
В фазовых значениях убраны разрывы при помощи np.unwrap