Библиотека Communications Toolbox™ для 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 и выборок на символ с помощью функции 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
Задайте значения статического смещения синхронизации, дрейфа синхронизации, переменного смещения тимимга и смещения постоянного тока.
staticTimingOff = 0.15*sps; timingDrift = 10; % In ppm initRFImp.vdelay = (staticTimingOff: timingDrift: staticTimingOff + timingDrift * (length (txWaveform) - 1) ) '; initRFImp.dc = 620;
Добавьте нарушения RF к сгенерированной форме волны BLE с помощью функции helperBLEImpairmentsAddind.
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 Technology. Bluetooth Technology Website | Официальный сайт Bluetooth Technology. Доступ к 27 сентября 2020 года. https://www.bluetooth.com/.
[2] Группа специальных интересов Bluetooth (SIG). Bluetooth Core Спецификации. Версия 5.2. https://www.bluetooth.com/.