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). The bluetoothIdealReceiver функция использует bluetoothPhyConfig объект или bluetoothWaveformConfig объект для извлечения информации PHY и декодирования сигнала Bluetooth BR/EDR.

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

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

txconfig = bluetoothWaveformConfig;

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

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

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

rxConfig = bluetoothPhyConfig;

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

[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

Создайте объект строения сигнала Bluetooth BR/EDR с настройками по умолчанию. Установите тип пакета равным '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);

Демодулируйте и декодируйте сигнал Bluetooth BR/EDR. Сгенерированный выход отображает декодированные биты, структуру, содержащую декодированную информацию, состояние пакета и декодированный 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', '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'

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

LAP

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

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

PayloadLength

Скаляр типа double

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

LogicalTransportAddress

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

Активный ведомый сервер назначения для пакета Bluetooth BR/EDR в пазе передачи «главный-ведомый»

HeaderControlBits

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

Информация управления ссылкой, содержащая информацию управления потоком (FLOW), подтверждение для успешного приема полезной нагрузки пакета Bluetooth BR/EDR (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. Валидность определяется проверкой ошибок заголовка пакета Bluetooth BR/EDR (HEC) и циклической проверкой избыточности (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'.

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

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

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

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

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