exponenta event banner

bleIdealReceiver

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

Требуется загрузка: Для использования bleTaxedReceiver сначала загрузите библиотеку Communications Toolbox™ Library для протокола Bluetooth ®. Дополнительные сведения см. в разделе Получение надстроек и управление ими. Кроме того, см. библиотеку Communications Toolbox Library для обмена файлами по протоколу 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) без установления соединения для CTE угла прибытия (AoA).

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 мкс.

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

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

свернуть все

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

Значение 'Mode' Значение NsКратное
'LE1M'

40× sps

SPS
'LE2M'

48× sps

SPS
'LE500K'

376× sps

2× sps
'LE125K'

376× sps

8× sps

Типы данных: 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

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

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

Ссылки

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

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

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

Создание кода C/C + +
Создайте код C и C++ с помощью MATLAB ® Coder™

.
Представлен в R2019b