Сгенерируйте форму волны BLE и добавьте нарушения RF

Библиотека Communications Toolbox™ для функций Протокола Bluetooth® позволяет вам добавить нарушения радиочастоты (RF) в Bluetooth низкую энергию (BLE) или форму волны базовой скорости / улучшенной скорости передачи данных (BR/EDR) Bluetooth.

Сгенерируйте форму волны BLE и добавьте нарушения RF

Задайте длину данных. Создайте вектор столбца сообщения из заданной длины данных, содержащей случайные двоичные значения.

dataLength = 2056;                                                                                                 % In bits
message = randi([0 1],dataLength,1);
symbolRate = 1e6;

Задайте значения режима (PHY) физического уровня, индекса канала, выборок на символ и указателя.

phyMode = 'LE125K';
chanIdx = 2;
SPS = 4;
accAdd = [1 1 1 1 0 1 0 0 1 1 0 1 0 0 1 0 0 1 1 0 1 1 1 0 1 ...
    0 1 0 1 1 0 0].';

Сгенерируйте форму волны BLE.

txWaveform = bleWaveformGenerator(message,'Mode',phyMode,'SamplesPerSymbol',sps,'ChannelIndex',chanIdx,'AccessAddress',accAdd);

Инициализируйте нарушения RF для заданного режима PHY и выборок на символ при помощи функции helperBLEImpairmentsInit. Функция помощника возвращает структуру со смещением частоты фазы и переменными дробными полями задержки.

initRFImp = helperBLEImpairmentsInit(phyMode,sps)
initRFImp = struct with fields:
         pfo: [1x1 comm.PhaseFrequencyOffset]
    varDelay: [1x1 dsp.VariableFractionalDelay]

Задайте значения смещения частоты и смещения фазы.

initRFImp.pfo.FrequencyOffset = 150;                                                       % In Hz
initRFImp.pfo.PhaseOffset = -1;                                                             % In degrees

Задайте значения статического смещения синхронизации, синхронизировав дрейф, переменное смещение синхронизации и смещение DC.

staticTimingOff = 0.15*sps;                                                                                         
timingDrift = 10;                                                                           % In ppm
initRFImp.vdelay = (staticTimingOff:timingDrift:staticTimingOff + timingDrift * (длина (txWaveform) - 1))';         
initRFImp.dc = 620;                                                                        

Добавьте нарушения RF в сгенерированную форму волны BLE при помощи функции helperBLEImpairmentsAddition.

txImpairedWaveform = helperBLEImpairmentsAddition(txWaveform,initRFImp);

Создайте dsp.SpectrumAnalyzer по умолчанию Системный объект. Затем установите частоту дискретизации спектра частоты. Визуализируйте сгенерированную и форму волны BLE, которой повреждают, в спектре анализатор.

scope = dsp.SpectrumAnalyzer;
scope.SampleRate = sps*symbolRate;
scope.NumInputPorts = 2;
scope.Title = 'Spectrum of Generated and Impaired BLE Waveform';
scope.ShowLegend = true;
scope.ChannelNames = {'Generated BLE Waveform','Impaired BLE Waveform'};
scope(txWaveform,txImpairedWaveform);

Figure Spectrum Analyzer contains an axes and other objects of type uiflowcontainer, uimenu, uitoolbar. The axes with title Spectrum of Generated and Impaired BLE Waveform contains 2 objects of type line. These objects represent Generated BLE Waveform, Impaired BLE Waveform.

Визуализируйте сгенерированную и форму волны BLE, которой повреждают, во временном интервале при помощи timescope объект.

timeScope = timescope('SampleRate',symbolRate*sps,'TimeSpanSource','Auto','ShowLegend',true);
timeScope.Title = 'Generated and Impaired BLE Waveform in Time-Domain';
timeScope.ChannelNames = {'Generated BLE Waveform','Impaired BLE Waveform'};
timeScope(real(txWaveform),real(txImpairedWaveform));

Ссылки

[1] Технологический Веб-сайт Bluetooth. “Технологический Веб-сайт Bluetooth | официальный сайт Технологии Bluetooth”. Полученный доступ 27 сентября 2020. https://www.bluetooth.com/.

[2] Специальная группа (SIG) Bluetooth. "Спецификация Ядра Bluetooth". Версия 5.2. https://www.bluetooth.com/.

Похожие темы