Лабораторная работа
по дисциплине: «Программно-определяемое и когнитивное радио»
Adalm Pluto
Выполнили: магистранты
группы РМГ-01-19/1101
Васильева Л.
Игнатьев Д.
Милкин Ю.
Санаттулова И.
Федоров А.
Проверил: доцент
Чумаров С.Г.
Чебоксары 2020
Передача и прием изображений с использованием WLAN Toolbox и One PlutoSDR
В лабораторной работе показано, как передавать и принимать пакеты WLAN на одном устройстве
PlutoSDR с использованием пакета поддержки Communications Toolbox ™ для ADALM-PLUTO Radio и
WLAN Toolbox ™. Файл изображения кодируется и упаковывается в пакеты WLAN для передачи, а
затем декодируется при приеме.
Используемые инструменты, требуемое оборудование и программное обеспечение:
-Communications Toolbox ™
- Радиомодуль ADALM-PLUTO и соответствующее программное обеспечение Communications Toolbox
Support Package для ADALM-PLUTO Radio
Ход работы:
Можно использовать WLAN Toolbox для генерации кадров и сигналов MAC, соответствующих
стандарту. Эти сигналы основной полосы частот могут быть преобразованы с повышением частоты для
передачи RF с использованием оборудования SDR, такого как PlutoSDR. Функция передатчика
повторяющихся сигналов PlutoSDR позволяет передавать сигналы по воздуху и принимать их с
использованием того же оборудования SDR. Полученный сигнал захватывается и субдискретизируется
до основной полосы частот с помощью PlutoSDR и декодируется для восстановления переданной
информации, как показано на следующем рисунке.
% Создать MPDU
[mpdu, lengthMPDU] = wlanMACFrame (frameBody, cfgMAC);
end
Генерация сигнала основной полосы частот WLAN IEEE 802.11a
Сигнал без HT синтезируется с помощью wlanWaveformGenerator с объектом конфигурации без
HT. Объект создается с помощью функции wlanNonHTConfig . Свойства объекта содержат
конфигурацию. В этом примере объект настроен для полосы пропускания 20 МГц, 1 передающей
антенны и скорости 64QAM 2/3 (MCS 6).
nonHTcfg = wlanNonHTConfig; % Создать конфигурацию пакета
nonHTcfg.MCS = 6; % Модуляция: 64QAM Скорость: 2/3
nonHTcfg.NumTransmitAntennas = 1; % Количество передающей антенны
chanBW = nonHTcfg.ChannelBandwidth;
nonHTcfg.PSDULength = lengthMPDU; % Установите длину PSDU
sdrTransmitter.BasebandSampleRate = fs * osf;
sdrTransmitter.CenterFrequency = 2.432e9; % Канал 5
sdrTransmitter.ShowAdvancedProperties = true;
sdrTransmitter.Gain = txGain;
Приемника структура
Общую структуру приемника WLAN можно описать следующим образом:
1. Захват нескольких пакетов переданного сигнала WLAN с помощью оборудования SDR.
2. Обнаружить пакет
3. Оценивается и корректируется грубый сдвиг несущей частоты
4. Установлена точная синхронизация по времени. Выборки L-STF, L-LTF и L-SIG
предназначены для точной синхронизации, чтобы можно было настроить обнаружение пакетов в
начале или в конце L-STF.
5. Оценивается и корректируется точный сдвиг несущей частоты
6. Выполните оценку канала для принятого сигнала с помощью L-LTF
7. Определить формат пакета
8. Декодируйте поле L-SIG, чтобы восстановить значение MCS и длину части данных.
9. Декодируйте поле данных, чтобы получить передаваемые данные в каждом пакете.
10. Декодируйте полученный PSDU и проверьте, прошла ли последовательность проверки кадра
(FCS) для PSDU.
11. Упорядочить декодированные MSDU на основе SequenceNumberсвойства в объекте
конфигурации восстановленного кадра MAC.
12. Объедините декодированные MSDU из всех переданных пакетов, чтобы сформировать
полученное изображение
В этом примере строится график спектральной плотности мощности (PSD) захваченной формы волны
и показаны визуализации выровненных символов данных и полученного изображения.
Настройка приемника
SdrReceiver управляется с помощью свойств, определенных в sdrReceiverобъекте. Частота
дискретизации приемника составляет 30 МГц, что в 1,5 раза превышает частоту дискретизации
основной полосы частот 20 МГц.
SDR приемник объект система используется с PlutoSDR получить модулирующие данные от
оборудования SDR.
sdrReceiver = sdrrx (имя_устройстваSDR);
sdrReceiver.RadioID = 'usb: 0' ;
sdrReceiver.BasebandSampleRate = sdrTransmitter.BasebandSampleRate;
sdrReceiver.CenterFrequency = sdrTransmitter.CenterFrequency;
sdrReceiver.GainSource = 'Руководство' ;
sdrReceiver.Gain = 10;
sdrReceiver.OutputDataType = 'двойной' ;
% Обработка получателя
при (searchOffset + minPktLen) <= rxWaveformLen % Обнаружение
пакетов
pktOffset = wlanPacketDetect (rxWaveform, chanBW, searchOffset, 0.8);
% Оценка шума
noiseVarNonHT = helperNoiseEstimate (demodLLTF);
если неуспешно
fprintf ( 'Ошибка проверки L-SIG \ n' );
searchOffset = pktOffset + 1.5 * lstfLen;
продолжить ;
else
fprintf ( 'L-SIG check pass \ n' );
конец
else % Декодирование
завершилось неудачно, если strcmp (status, 'FCSFailed' )
% FCS failed
disp ( 'Ошибка проверки MAC FCS' );
иначе
% FCS пройден, но обнаружены другие ошибки декодирования
disp ( 'MAC FCS check pass' );
конец
pktInd = pktInd + 1;
% Завершить обработку при обнаружении повторяющегося пакета.
% Извлекают данные включают в себя биты из дублированного кадра ,
если длина (уникальный (packetSeq)) <длина (packetSeq)
Перерыв
конец
конец
decdata = bi2de (reshape (rxData (1: length (txImage) * bitsPerOctet), 8, []) ');
Рекомендации по ознакомлению
Вы можете изменить txGainусиление sdrTransmitter, чтобы увидеть разницу в EVM и BER после приема
и обработки сигнала. Вы также должны увидеть любые ошибки в отображаемом полученном
изображении. Попробуйте изменить коэффициент масштабирования scaleна 0,5. Это должно улучшить
качество полученного изображения за счет генерации большего количества передаваемых битов. Это
также должно увеличить количество передаваемых PPDU.
Поиск проблемы
Общие советы по устранению неполадок оборудования SDR и пакета поддержки Communications
Toolbox для ADALM-PLUTO Radio можно найти в разделе Общие проблемы и исправления .
Список литературы
1. IEEE Std 802.11 ™ -2012 Стандарт IEEE для информационных технологий - Телекоммуникации
и обмен информацией между системами - Локальные и городские сети - Особые требования - Часть
11: Спецификации управления доступом к среде (MAC) и физического уровня (PHY) беспроводной
локальной сети.