bluetoothIdealReceiver

Идеальный приемник для Bluetooth форма волны BR/EDR PHY

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

Описание

пример

[bits,decodedInfo] = bluetoothIdealReceiver(waveform,rxConfig) демодулирует и декодирует синхронизируемый временной интервал форма волны Bluetooth, waveform, сгенерированный bluetoothWaveformGenerator функция для данного объекта конфигурации системы, rxConfig. Функция возвращает декодируемые биты полезной нагрузки, bits, и декодируемая информация, decodedInfo.

пример

[___,pktValidStatus,decodedCRC] = bluetoothIdealReceiver(___) возвращает флаг, pktValidStatus, указать на валидность полученного Bluetooth пакет BR/EDR. Функция также возвращает декодируемый контроль циклическим избыточным кодом (CRC), decodedCRC, из полученного пакета Bluetooth.

Примеры

свернуть все

Демодулируйте и декодируйте временной интервал Bluetooth форма волны BR/EDR с помощью двух различных способов получить физический уровень (PHY) информация. bluetoothIdealReceiver функционируйте использует bluetoothPhyConfig объект или bluetoothWaveformConfig возразите, чтобы извлечь информацию PHY и декодировать форму волны BR/EDR Bluetooth.

Используйте bluetoothPhyConfig объект получить информацию PHY

Создайте объект настройки формы волны BR/EDR Bluetooth с настройками по умолчанию.

txconfig = bluetoothWaveformConfig;

Создайте случайный входной битовый вектор, чтобы сгенерировать полезную нагрузку. Сгенерируйте временной интервал Bluetooth форма волны BR/EDR с помощью полезной нагрузки.

dataBits = randi([0 1],getPayloadLength(txconfig)*8,1);
waveform = bluetoothWaveformGenerator(dataBits,txconfig);

Создайте объект настройки для Bluetooth BR/EDR PHY с настройками по умолчанию. Этот объект отправляет информацию PHY в идеальный приемник.

rxConfig = bluetoothPhyConfig;

Демодулируйте и декодируйте форму волны BR/EDR Bluetooth. Сгенерированный выход отображает декодируемые биты и структуру, содержащую декодируемую информацию.

[bits,decodedInfo] = bluetoothIdealReceiver(waveform,rxConfig)
bits = 144×1

     1
     1
     0
     1
     1
     0
     0
     1
     1
     1
      ⋮

decodedInfo = struct with fields:
                        LAP: [24x1 double]
                 PacketType: 'FHS'
    LogicalTransportAddress: [3x1 double]
          HeaderControlBits: [3x1 double]
              PayloadLength: 18
                       LLID: [2x1 double]
              FlowIndicator: 0

Используйте bluetoothWaveformConfig объект получить информацию PHY

Создайте объект настройки формы волны BR/EDR Bluetooth с настройками по умолчанию. Установите пакетный тип на 'DM1'и длина полезной нагрузки к 10.

cfg = bluetoothWaveformConfig;
cfg.PacketType = 'DM1';
cfg.PayloadLength = 10;

Создайте случайный входной битовый вектор, чтобы сгенерировать полезную нагрузку.

numBits = getPayloadLength(cfg)*8;
dataBits = randi([0 1],numBits,1);

Сгенерируйте временной интервал Bluetooth форма волны BR/EDR с помощью полезной нагрузки.

waveform = bluetoothWaveformGenerator(dataBits,cfg);

Получите информацию PHY от bluetoothWaveformConfig возразите функции, getPhyConfigProperties.

rxConfig = getPhyConfigProperties(cfg);

Демодулируйте и декодируйте форму волны BR/EDR Bluetooth. Сгенерированный выход отображает декодируемые биты, структура, содержащая декодируемую информацию, пакетное состояние и декодируемый CRC.

[bits,decodedInfo,pktStatus,crc] = bluetoothIdealReceiver(waveform,rxConfig)
bits = 80×1

     0
     0
     0
     0
     0
     0
     0
     0
     1
     1
      ⋮

decodedInfo = struct with fields:
                        LAP: [24x1 double]
                 PacketType: 'DM1'
    LogicalTransportAddress: [3x1 double]
          HeaderControlBits: [3x1 double]
              PayloadLength: 10
                       LLID: [2x1 double]
              FlowIndicator: 1

pktStatus = logical
   1

crc = 16×1

     1
     1
     1
     1
     1
     1
     0
     0
     0
     0
      ⋮

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

свернуть все

Синхронизируемый временной интервал форма волны Bluetooth в виде вектор-столбца с комплексным знаком.

Типы данных: double
Поддержка комплексного числа: Да

Объект конфигурации системы в виде bluetoothPhyConfig объект. Функция использует это значение, чтобы установить его параметры конфигурации.

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

свернуть все

Декодируемые биты полезной нагрузки, возвращенные как вектор-столбец с бинарным знаком.

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

Декодируемая информация, возвращенная как структура, содержащая эти поля:

Поле ЗначениеОписание
PacketType'ID'пустой указатель, 'POLL', 'FHS', 'HV1', 'HV2', 'HV3', 'DV', 'EV3', 'EV4', 'EV5', 'AUX1', 'DM3', 'DM1', 'DH1', 'DM5', 'DH3', 'DH5', '2-DH1', '2-DH3', '2-DH5', '2-DH1', '2-DH3', '2-DH5', '2-EV3', '2-EV5', '3-EV3', или '3-EV5'

Тип полученного Bluetooth пакет BR/EDR

LAP

24-битный вектор-столбец типа double.

Декодируемый ниже обратитесь к части (LAP) адреса устройства Bluetooth

PayloadLength

Скаляр типа double

Количество байтов полезной нагрузки в полученном Bluetooth пакет BR/EDR

LogicalTransportAddress

3-битный вектор из типа double

Активное целевое ведомое устройство для пакета BR/EDR Bluetooth в пазе передачи ведущего устройства к ведомому устройству

HeaderControlBits

3-битный вектор из типа double

Соедините управляющую информацию, содержащую информацию об управлении потоками (FLOW), подтверждение для того, чтобы успешно получить пакетную полезную нагрузку BR/EDR Bluetooth (ARQN) и упорядочить схему полученных пакетов (SEQN) биты

LLID

2-битный бинарный вектор из типа double

Идентификатор логической ссылки. Это поле применимо только если значение PacketType поле является одним из них: 'DM1', 'DH1', 'DM3', 'DH3', 'DM5', 'DH5', 'AUX1', 'DV', '2-DH1', '2-DH3', '2-DH5', '3-DH1', '3-DH3', или '3-DH5'.

FlowIndicator

Скаляр типа double

Управляйте индикатором потока данных по логическим каналам. Это поле применимо только если значение PacketType поле является одним из них: 'DM1', 'DH1', 'DM3', 'DH3', 'DM5', 'DH5', 'AUX1', 'DV', '2-DH1', '2-DH3', '2-DH5', '3-DH1', '3-DH3', или '3-DH5'

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

Отметьте указание на валидность полученного Bluetooth пакет BR/EDR, возвращенный как 1 или 0 из типа данных logical. Валидность основана на пакетной проверке на ошибки заголовка (HEC) BR/EDR Bluetooth и контроле циклическим избыточным кодом (CRC). Значение этого аргумента верно только, когда оба, HEC и CRC верны.

Зависимости

Чтобы включить этот выходной аргумент, установите PacketType значение поля decodedInfo выходного аргумента любому из них: 'NULL', 'POLL', 'FHS', 'HV1', 'HV2', 'HV3', 'DV', 'EV3', 'EV4', 'EV5', 'AUX1', 'DM3', 'DM1', 'DH1', 'DM5', 'DH3', 'DH5', '2-DH1', '2-DH3', '2-DH5', '2-DH1', '2-DH3', '2-DH5', '2-EV3', '2-EV5', '3-EV3', или '3-EV5'.

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

Декодируемый CRC в виде CRC полученного Bluetooth пакет BR/EDR.

Зависимости

Чтобы включить этот выходной аргумент, установите пакетное значение поля типа декодируемого аргумента вывода информации к любому из них: 'FHS', 'DV', 'EV3', 'EV4', 'EV5', 'DM3', 'DM1', 'DH1', 'DM5', 'DH3', 'DH5', '2-DH1', '2-DH3', '2-DH5', '2-DH1', '2-DH3', '2-DH5', '2-EV3', '2-EV5', '3-EV3', или '3-EV5'.

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

Ссылки

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

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

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

Введенный в R2020a