Библиотека Communications Toolbox™ Library для функций протокола Bluetooth ® позволяет добавлять радиочастотные (RF) нарушения в форму сигнала низкой энергии Bluetooth (BLE) или базовой скорости Bluetooth/повышенной скорости передачи данных (BR/EDR).
Укажите длину данных. Создайте вектор столбца сообщения указанной длины данных, содержащий случайные двоичные значения.
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 и выборки для каждого символа с помощью функции helperBLEVENTmpairesInit. Вспомогательная функция возвращает структуру со смещением частоты фазы и полями переменной дробной задержки.
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
Задайте значения статического смещения синхронизации, дрейфа синхронизации, переменного смещения timimg и смещения DC.
staticTimingOff = 0.15*sps; timingDrift =10; % In ppm initRFImp.vdelay = (staticTimingOff:timingDrift:staticTimingOff + timingDrift * (length(txWaveform) - 1))'; initRFImp.dc =
620;
Добавление РЧ-нарушений в генерируемую форму сигнала BLE с помощью функции helperBLEmpairSunesAddition.
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);

Визуализация сгенерированной и нарушенной формы сигнала 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 Technology | Официальный веб-сайт Bluetooth Technology». Доступ состоялся 27 сентября 2020 года. https://www.bluetooth.com/.
[2] Группа специальных интересов Bluetooth (SIG). «Спецификация ядра Bluetooth». Версия 5.2. https://www.bluetooth.com/.