Сгенерируйте сигнал BLE и добавьте искажения RF

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

Сгенерируйте сигнал 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

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

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);

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 Technology. Bluetooth Technology Website | Официальный сайт Bluetooth Technology. Доступ к 27 сентября 2020 года. https://www.bluetooth.com/.

[2] Группа специальных интересов Bluetooth (SIG). Bluetooth Core Спецификации. Версия 5.2. https://www.bluetooth.com/.

Похожие темы