bleWaveformGenerator

Генератор формы волны для BLE PHY

Загрузите Необходимый: Чтобы использовать bleWaveformGenerator, сначала загрузите Библиотеку Communications Toolbox™ для Протокола Bluetooth®. Для получения дополнительной информации смотрите, Получают и Управляют Дополнениями. В качестве альтернативы смотрите Библиотеку Communications Toolbox для Обмена файлами Протокола Bluetooth.

Описание

пример

waveform = bleWaveformGenerator(message) генерирует waveform, физический уровень Bluetooth низкой энергии (BLE) временного интервала (PHY) форма волны при помощи битов информации о входе message.

пример

waveform = bleWaveformGenerator(message,Name,Value) также задает опции с помощью одного или нескольких аргументов пары "имя-значение". Например, 'Mode','LE2M' задает значение режима генерации желаемой формы волны BLE.

Примеры

свернуть все

Создайте вектор-столбец входного сигнала длины 2056 содержащий случайные двоичные значения. Установите уровень символа на значение по умолчанию.

message = randi([0 1],2056,1);
symbolRate = 1e6;

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

waveform = bleWaveformGenerator(message);

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

scope = dsp.SpectrumAnalyzer;
scope.SampleRate = 8*symbolRate;

Постройте форму волны BLE.

scope(waveform);

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

message = randi([0 1],640,1);

Задайте значения генерации режима, индекса канала, выборок на символ и указатель. Установите уровень символа на значение по умолчанию.

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].';
symbolRate = 1e6;

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

scope = dsp.SpectrumAnalyzer;
scope.SampleRate = sps*symbolRate;

Сгенерируйте форму волны BLE с помощью заданных аргументов пары "имя-значение". Постройте форму волны BLE.

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

Задайте модуль данных о протоколе (PDU) канала данных о связи для постоянного тонального расширения (CTE) угла отъезда (AoD).

pduHex = '1B820127'; % Valid PDU in hexadecimal
pdu = de2bi(hex2dec(pduHex), 32)';

Сгенерируйте и добавьте контроль циклическим избыточным кодом (CRC) к PDU.

crcGen = comm.CRCGenerator('z^24+z^10+z^9+z^6+z^4+z^3+z+1',...
    'InitialConditions',de2bi(hex2dec('555551'),'left-msb',24),...
    'DirectMethod',true);
pduCRC = crcGen(pdu);

Сгенерируйте форму волны BLE с помощью заданных аргументов пары "имя-значение".

waveform = bleWaveformGenerator(pduCRC,'ChannelIndex',36,...
    'DFPacketType','ConnectionCTE')
waveform = 896×1 complex

   1.0000 + 0.0000i
   0.9892 + 0.1469i
   0.9441 + 0.3297i
   0.8507 + 0.5257i
   0.7071 + 0.7071i
   0.5257 + 0.8507i
   0.3297 + 0.9441i
   0.1469 + 0.9892i
   0.0000 + 1.0000i
   0.1469 + 0.9892i
      ⋮

Входные параметры

свернуть все

Биты входного сигнала в виде вектор-столбца с бинарным знаком числовых или логических значений. Это сообщение содержит данные о контроле циклическим избыточным кодом (CRC) и модуль данных о протоколе (PDU). Максимальная продолжительность этого значения составляет 2 080 битов.

Типы данных: double | logical

Аргументы в виде пар имя-значение

Задайте дополнительные разделенные запятой пары Name,Value аргументы. Name имя аргумента и Value соответствующее значение. Name должен появиться в кавычках. Вы можете задать несколько аргументов в виде пар имен и значений в любом порядке, например: Name1, Value1, ..., NameN, ValueN.

Пример: bleWaveformGenerator(message,'Mode','LE2M','ChannelIndex',36)

Примечание

Для получения информации о связи CTE и пакетная генерация определения направления CTE без установления соединения, смотрите Пакетную Структуру Bluetooth.

Режим Generating в виде разделенной запятой пары, состоящей из 'Mode' и 'LE1M', 'LE2M', 'LE500K', или 'LE125K'. Это значение указывает на тип формы волны BLE.

Типы данных: string | char

Индекс канала в виде разделенной запятой пары, состоящей из 'ChannelIndex'и целое число в области значений [0, 39]. Для каналов данных это значение должно быть в области значений [0, 36]. Это значение используется белящим данные блоком, чтобы рандомизировать биты.

Типы данных: single | double

Выборки на символ в виде разделенной запятой пары, состоящей из 'SamplesPerSymbol' и положительное целое число. Это значение используется для модуляции Гауссова манипулирования сдвига частоты (GFSK).

Типы данных: single | double

Указатель в виде разделенной запятой пары, состоящей из 'AccessAddress' и 32-битный вектор-столбец числовых или логических значений.

Типы данных: логический | single | double

Тип пакета определения направления в виде разделенной запятой пары, состоящей из 'DFPacketType' и 'ConnectionlessCTE', 'ConnectionCTE', или 'Disabled'.

Типы данных: string | char

Выходные аргументы

свернуть все

Выведите форму волны временного интервала, возвращенную как вектор-столбец с комплексным знаком размера Ns-by-1, где Ns представляет количество выборок временного интервала. waveform сгенерирован в форме комплексных выборок синфазной квадратуры (IQ).

Типы данных: double

Ссылки

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

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

Расширенные возможности

Генерация кода C/C++
Генерация кода C и C++ с помощью MATLAB® Coder™.

Введенный в R2019b