bleIdealReceiver

Идеальный приемник для BLE PHY волны

Требуется загрузка: Чтобы использовать bleIdealReceiver, сначала загрузите библиотеку Communications Toolbox™ для Bluetooth® Протокол. Для получения дополнительной информации см. раздел «Получение и управление дополнениями». Другой способ см. в разделе Библиотека Communications Toolbox для обмена файлами протокола Bluetooth.

Описание

пример

[bits,accessAddr] = bleIdealReceiver(waveform) декодирует Bluetooth низкую энергию (BLE) waveform, сгенерирован bleWaveformGenerator и возвращает полученные биты bits, и адресной информации доступа, accesAddr.

пример

[bits,accessAddr] = bleIdealReceiver(waveform,Name,Value) также задает опции, использующие один или несколько аргументы пары "имя-значение". Для примера, 'Mode','LE2M' задает режим передачи физического (PHY) слоя требуемой формы волны BLE.

пример

[___,IQsamples] = bleIdealReceiver(___) также возвращает синфазную и квадратурную (IQ) выборки, IQsamples, соответствующий внутренней линии постоянного тонального сигнала (CTE).

Примеры

свернуть все

Создайте вход сообщения вектора-столбца длиной 1000, содержащее случайные двоичные значения. Сгенерируйте сигнал передачи BLE из бит передачи при помощи bleWaveformGenerator функция.

txBits = randi([0 1],1000,1);
txWaveform = bleWaveformGenerator(txBits);

Передайте сигнал передачи через зашумленный канал и получите принятый сигнал.

snr = 30; % specified in dB
rxWaveform = awgn(txWaveform,snr);

Восстановите биты данных из принятой формы волны BLE с помощью bleIdealReceiver. Проверьте количество битовых ошибок в восстановленных битах. Возвращенное значение указывает, что сигнал BLE был успешно декодирован.

[rxBits,accessAddr] = bleIdealReceiver(rxWaveform);
numErr = biterr(txBits,rxBits)
numErr = 0

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

phyMode = 'LE125K';
chanIndex = 2;
sps = 4;

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

txBits = randi([0 1],100,1);
txWaveform = bleWaveformGenerator(txBits,'Mode',phyMode,...
    'SamplesPerSymbol',sps,'ChannelIndex',chanIndex);

Восстановите биты данных, а затем сравните их с битами передачи. Восстановленные биты данных совпадают с битами передачи, что указывает на отсутствие ошибок в декодированной форме волны BLE.

rxBits = bleIdealReceiver(txWaveform,'Mode',phyMode,...
    'SamplesPerSymbol',sps,'ChannelIndex',chanIndex);
isequal(txBits,rxBits)
ans = logical
   1

Задайте без подключения модуля данных протокола рекламного канала (PDU) для угла прибытия (AoA) CTE.

pduHex = '02049B0327';
pdu = de2bi(hex2dec(pduHex),40)';

Сгенерируйте и добавьте циклическую проверку избыточности (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 с помощью заданных аргументов пары "имя-значение".

txWaveform = bleWaveformGenerator(pduCRC,'ChannelIndex',36,...
    'DFPacketType','ConnectionlessCTE');

Восстановите биты данных путем демодуляции, отключения и IQ-дискретизации в течение паза длительности 2 μs.

[bits,accAddr,iqSamples] = bleIdealReceiver(txWaveform,...
    'ChannelIndex',36,'DFPacketType','ConnectionlessCTE');

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

свернуть все

Принятый сигнал временной области, заданный как комплексный сигнал с размером N s-на-1, где N s представляет количество принятых выборок. Значения N s зависят от 'Mode' и 'SamplesPerSymbol' (sps) пар имя-значение, согласно ограничениям, указанным в этой таблице. Для примера, если значение 'Mode' является 'LE1M' и значение 'SamplesPerSymbol' равен 4, тогда значение N s должно быть больше или равно 160 и кратным 'SamplesPerSymbol'.

Значение 'Mode' Значение N сКратный
'LE1M'

40× <reservedrangesplaceholder0>

sps
'LE2M'

48× <reservedrangesplaceholder0>

sps
'LE500K'

376× <reservedrangesplaceholder0>

2× <reservedrangesplaceholder0>
'LE125K'

376× <reservedrangesplaceholder0>

8× <reservedrangesplaceholder0>

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

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

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

Пример: bleIdealReceiver(waveform,'Mode','LE2M','ChannelIndex',36)

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

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

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

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

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

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

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

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

Переключатель и длительность паза выборки, заданная как разделенная запятой пара, состоящая из 'SlotDuration' и 1 или 2. Это значение должно быть выражено в микросекундах.

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

Состояние отбеливания данных, заданное как 'On' или 'Off'. Установите это значение равным 'On' для функции, чтобы выполнить отключение от демодулированных бит (для 'LE1M' и 'LE2M' PHY) и декодированные биты (для 'LE500K' и 'LE125K' PHY).

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

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

свернуть все

Биты полезной нагрузки, возвращенные как вектор-столбец максимальной длины 260 байт. Этот выход представляет восстановленные информационные биты.

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

Доступ к адресной информации, возвращаемый как 32-разрядный вектор-столбец. Этот выход используется более высокими слоями для проверки пакета.

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

Q- выборок, заданный как комплексный вектор-столбец. Этот аргумент соответствует значению 8 мкс опорного периода и длительности паза. Если значение аргумента 'DFPacketType' 'ConnectionlessCTE' или 'ConnectionCTE', затем функция возвращает этот аргумент.

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

Ссылки

[1] Веб-сайт Bluetooth Technology. Bluetooth Technology Website | Официальный сайт Bluetooth Technology. Доступ к 22 ноября 2019 года. https://www.bluetooth.com/.

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

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

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

.
Введенный в R2019b