В этом примере показано, как выполнить физический уровень радиочастоты (RF) базовой скорости (BR) Bluetooth® (PHY), передатчик тестирует характерный для характеристик модуляции, смещения несущей частоты и дрейфа, пользующегося Библиотекой Communications Toolbox™ для Протокола Bluetooth. Тестовые измерения вычисляют отклонение частоты, смещение несущей частоты и значения дрейфа. Этот пример также проверяет, являются ли эти тестовые значения измерения в пределах, заданных Тестовыми Техническими требованиями RF-PHY Bluetooth [1].
Тестовые Технические требования RF-PHY Bluetooth [1] заданный Специальной группой (SIG) Bluetooth включают тесты RF-PHY для передатчиков и приемников. Цели этих тестов RF-PHY к:
Обеспечьте функциональную совместимость между всеми bluetooth-устройствами.
Обеспечьте базовый уровень производительности системы для всех продуктов Bluetooth.
Каждый тест имеет заданную процедуру тестирования. Ожидаемому результату должна встретить реализация под тестом (IUT).
Главная цель тестовых измерений передатчика состоит в том, чтобы гарантировать, что характеристики передатчика в пределах, заданных Тестовыми Техническими требованиями RF-PHY Bluetooth [1]. Этот пример включает тесты передатчика, относящиеся к характеристикам модуляции, смещению несущей частоты и дрейфу. Эта таблица показывает различные тесты передатчика RF-PHY, выполняемые в этом примере.
Эта блок-схема обобщает процедуру тестирования для тестов передатчика, относящихся к характеристикам модуляции, смещению несущей частоты и дрейфу.
Сгенерируйте пакеты DH/DM и пройдите через bluetoothWaveformGenerator
функция, чтобы сгенерировать Bluetooth тестирует формы волны. Эта таблица показывает тестовые формы волны и пакетный тип (типы), требуемый для различных тестовых идентификаторов:
Проверяйте, установлена ли 'Библиотека Communications Toolbox для пакета поддержки' Протокола Bluetooth.
commSupportPackageCheck('BLUETOOTH');
Можно изменить txTestID
, packetType
, initFreqOffset
, maxFreqDrift
и sps
параметры на основе теста передатчика, пакетного типа, начального смещения частоты, максимального дрейфа частоты и выборок на символ, соответственно.
txTestID = 'RF/TRM/CA/BV-07-C'; packetType = 'DH1'; % Select packet type as per transmitter test case ID initFreqOffset =0; % Initial frequency offset in Hz maxFreqDrift =0; % Maximum frequency drift in Hz, [-25e3, 25e3] for one slot packet % [-40e3, 40e3] for three and five slot packets SPS = 32; % Minimum of 4 samples per symbol as per test specifications
Тестовые параметры сгенерированы на основе теста передатчика, пакетного типа, начального смещения частоты, максимального дрейфа частоты и выборок на символ. Чтобы сгенерировать полезную нагрузку, пакетная длительность и параметры конфигурации формы волны, используют функцию helperBRModulationTestPacketConfig.m. Чтобы спроектировать фильтр канала на основе частоты дискретизации, используйте функцию helperModulationTestFilterDesign.m. Чтобы добавить смещение частоты и тепловой шум, создайте и configurecomm.PhaseFrequencyOffset
и comm.ThermalNoise
Системные объекты, соответственно.
[payload,packetDuration,cfg] = helperBRModulationTestPacketConfig(txTestID,packetType,sps); filtDesign = helperModulationTestFilterDesign('BR',sps); % Design channel filter driftRate = maxFreqDrift/(packetDuration*sps); % Drift rate freqDrift = driftRate*(0:1:(packetDuration*sps-1))'; % Frequency drift for the packet freqOffset = freqDrift + initFreqOffset; % Frequency offset, includes initial frequency offset and drift % Create a phase frequency offset System object sampleRate = sps*1e6; % Sample rate in Hz pfo = comm.PhaseFrequencyOffset('FrequencyOffset',freqOffset,'SampleRate',sampleRate); % Create a thermal noise System object NF = 12; % Noise figure (dB) thNoise = comm.ThermalNoise('NoiseMethod','Noise figure', ... 'SampleRate',sampleRate, ... 'NoiseFigure',NF);
Чтобы симулировать тесты передатчика, выполните эти шаги:
Сгенерируйте форму волны BR Bluetooth для выбранного пакетного типа и настройки формы волны.
Добавьте смещение частоты, которое включает начальное смещение частоты и дрейф к форме волны.
Добавьте шум в форму волны.
Выполните фильтрацию на шумной форме волны.
Выполните демодуляцию FM на отфильтрованной форме волны.
Выполните тестовые измерения и отобразите вердикт передачи.
filtWaveform = zeros(packetDuration*sps,size(payload,2)); % Initialization for i = 1:size(payload,2) txWaveform = bluetoothWaveformGenerator(payload(:,i),cfg); txWaveformValid = txWaveform(1:packetDuration*sps); wfmFreqOffset = pfo(txWaveformValid); wfmChannel = thNoise(wfmFreqOffset); filtWaveform(:,i) = conv(wfmChannel,filtDesign.Coefficients.','same'); end
На основе теста передатчика функция helperBRModulationTestMeasurements.m выполняет демодуляцию FM и возвращает эти значения:
RF/TRM/CA/BV-07-C: Возвращает отклонения частоты и центральные частоты для двух тестовых последовательностей, freq1
, freq2
, соответственно и максимальное отклонение частоты для второй тестовой последовательности, freq3
.
RF/TRM/CA/BV-08-C: Возвращает начальное смещение частоты, freq1
.
RF/TRM/CA/BV-09-C: Возвращает начальное смещение частоты и дрейф частоты, freq1
и freq2
, соответственно.
[waveform,freq1,freq2,freq3] = helperBRModulationTestMeasurements(filtWaveform,txTestID,sps,packetType);
Функция helperBRModulationTestVerdict.m проверяет, являются ли тестовые измерения в заданных пределах, и отображает вердикт.
helperBRModulationTestVerdict(waveform,txTestID,sps,freq1,freq2,freq3)
Test sequence: 11110000 Measured average frequency deviation: 160 kHz Expected average frequency deviation range: [140 kHz, 175 kHz] Result: Pass Test sequence: 10101010 Expected 99.9% of all maximum frequency deviation greater than 115 kHz Result: Pass Ratio of frequency deviations in the two test sequences: 1.1462 Expected Ratio greater than 0.8 Result: Pass
Этот пример демонстрирует тестовые измерения передатчика BR Bluetooth, характерные для характеристик модуляции, смещения несущей частоты и дрейфа. Результаты симуляции проверяют, что эти вычисленные тестовые значения измерения являются в пределах, заданных Bluetooth Тестовыми Техническими требованиями RF-PHY [1].
Пример использует этих помощников:
helperBRModulationTestPacketConfig.m: Конфигурирует тестовые параметры передатчика Bluetooth
helperModulationTestFilterDesign.m: Проекты образовывают канал фильтр
helperBRModulationTestMeasurements.m: отклонение частоты Мер, смещение несущей частоты и дрейф
helperModulationCharacteristicsTest.m: Выполняет тест характеристик модуляции
helperBRModulationTestVerdict.m: Подтверждает тестовые значения измерения и отображает результат
helperBluetoothPacketDuration.m: Возвращает пакетную длительность
Специальная группа (SIG) Bluetooth. “Bluetooth Тестовая Спецификация RF-PHY”, v1.2/2.0/2.0, EDR/2.1/2.1, EDR/3.0/3.0, HS (), RF.TS/3.0. H.1, Раздел 4.5. 2009. https://www.bluetooth.com.
Специальная группа (SIG) Bluetooth. "Базовый Системный пакет [диспетчер BR/EDR Вольюм]". Спецификация Ядра Bluetooth. Версия 5.2, Вольюм 2. https://www.bluetooth.com.