В этом примере показано, как выполнить Bluetooth® низкая энергия (BLE) физический уровень радиочастоты (RF) (PHY), передатчик тестирует характерный для характеристик модуляции, смещения несущей частоты и дрейфа, пользующегося Библиотекой Communications Toolbox™ для Протокола Bluetooth. Тестовые измерения вычисляют отклонение частоты, смещение несущей частоты и значения дрейфа. Этот пример также проверяет, являются ли эти тестовые значения измерения в пределах, заданных Тестовыми Техническими требованиями RF-PHY Bluetooth [1].
Тестовые Технические требования RF-PHY Bluetooth [1] заданный Специальной группой (SIG) Bluetooth включают тесты RF-PHY и для передатчика и для приемника. Цели этих тестов RF-PHY к:
Обеспечьте функциональную совместимость между всеми bluetooth-устройствами.
Обеспечьте базовый уровень производительности системы для всех продуктов Bluetooth.
Каждый тест имеет заданную процедуру тестирования и ожидаемый результат, которому должна встретить реализация под тестом (IUT).
Основная цель тестовых измерений передатчика состоит в том, чтобы гарантировать, что характеристики передатчика в заданных пределах, как задано в тестовых технических требованиях [1]. Этот пример включает тесты передатчика, относящиеся к характеристикам модуляции, смещению несущей частоты и дрейфу. Эта таблица показывает различные тесты передатчика RF-PHY, выполняемые в этом примере.
Эта блок-схема обобщает процедуру тестирования для тестов передатчика, относящихся к характеристикам модуляции, смещению несущей частоты и дрейфу.
Сгенерируйте тестовые пакеты и передайте их через bleWaveformGenerator
чтобы сгенерировать BLE тестируют формы волны. Тестовые формы волны, требуемые для различных тестовых идентификаторов:
Проверяйте, установлена ли 'Библиотека Communications Toolbox для пакета поддержки' Протокола Bluetooth.
commSupportPackageCheck('BLUETOOTH');
Инициализируйте переменные, такие как тестовый ID передатчика, количество отсчетов на символ, длину полезной нагрузки и максимальный дрейф несущей частоты. Функция, helperBLEModulationTestConfig.m, может быть сконфигурирована, чтобы сгенерировать тестовые параметры.
txTestID = "RF-PHY/TRM/BV-09-C"; payloadLen = 240; % Payload length in bytes, must be in the range [37,255] SPS = 32; % Number of samples per symbol, minimum of 32 samples per % symbol as per the test specifications % Frequency offset and drift for the tests: RF-PHY/TRM/BV-06-C, % RF-PHY/TRM/BV-12-C, RF-PHY/TRM/BV-14-C. maxFreqDrift = 0; % In Hz, must be in the range [-50e3,50e3] initFreqOffset = 23000; % In Hz, must be in the range [-100e3,100e3] testParams = helperBLEModulationTestConfig (txTestID, SPS); % Generate test parameters
Чтобы симулировать тесты передатчика, выполните эти шаги:
Сгенерируйте тестовую пакетную форму волны BLE с помощью helperBLETestWaveform.
Добавьте смещение частоты, которое включает начальное смещение частоты и дрейф к форме волны с помощью comm.PhaseFrequencyOffset
.
Добавьте тепловой шум с помощью comm.ThermalNoise
.
Выполните фильтрацию на шумной форме волны с помощью helperModulationTestFilterDesign.
Выполните демодуляцию FM на отфильтрованной форме волны.
Выполните тестовое измерение и отобразите вердикт передачи.
testWfmLen = (testParams.nonPDULen+testParams.codingFactor*payloadLen*testParams.bitsPerByte)*sps; driftRate = maxFreqDrift/length(testWfmLen);% Drift rate freqDrift = driftRate*(0:1:(length(testWfmLen)-1))';% Frequency drift freqOffset = freqDrift+initFreqOffset;% Frequency offset and frequency drift % Create a phase frequency offset System object pfo = comm.PhaseFrequencyOffset('FrequencyOffset',freqOffset,'SampleRate',testParams.sampleRate); % Create a thermal noise System object NF = 12; % Noise figure (dB) thNoise = comm.ThermalNoise('NoiseMethod','Noise figure',... 'SampleRate',testParams.sampleRate,... 'NoiseFigure',NF); filtDesign = helperModulationTestFilterDesign(testParams.phyMode,sps); filtTestWfm = zeros(testWfmLen,testParams.numOfTestSeqs); for wfmIdx = 1:testParams.numOfTestSeqs % Generate BLE test waveforms testWfm = helperBLETestWaveform(testParams.testSeqIds(wfmIdx),... payloadLen,sps,testParams.phyMode); wfmFreqOffset = pfo(testWfm); wfmChannel = thNoise(wfmFreqOffset); filtTestWfm(:,wfmIdx) = conv(wfmChannel,filtDesign.Coefficients.','same'); % Perform filtering end
Функция, helperBLEModulationTestMeasurements.m, выполняет демодуляцию FM и вычисляет или отклонение частоты, или дрейф частоты и начальное смещение частоты на основе обеспеченного ID теста.
[waveformDiffFreq,fOut1,fOut2,fOut3] = helperBLEModulationTestMeasurements(filtTestWfm,txTestID,testParams);
Функция, helperBLEModulationTestVerdict.m, проверяет, являются ли измерения в заданных пределах, и отображает вердикт по командному окну.
helperBLEModulationTestVerdict(waveformDiffFreq,txTestID,testParams,fOut1,fOut2,fOut3)
Test sequence: 00001111 Measured average frequency deviation = 250 kHz Expected average frequency deviation = 247.5 kHz to 252.5 kHz Result: Pass Test sequence: 10101010 Expected 99.9% of all maximum frequency deviation > 185000 kHz Result: Pass Ratio of frequency deviations between two test sequences = 1.163 Expected Ratio > 0.8 Result: Pass
Этот пример продемонстрировал тестовые измерения передатчика BLE, характерные для характеристик модуляции, смещения несущей частоты и, дрейф. Результаты симуляции проверяют, что эти вычисленные тестовые значения измерения являются в пределах, заданных Bluetooth Тестовыми Техническими требованиями RF-PHY [1].
Помощники, используемые в этом примере:
helperBLETestWaveform.m: Генерирует тестовую пакетную форму волны BLE
helperBLEModulationTestConfig.m: Конфигурирует тестовые параметры передатчика BLE
helperBLEModulationTestMeasurements.m: отклонение частоты Мер, смещение несущей частоты и дрейф
helperBLEModulationTestVerdict.m: Подтверждает тестовые значения измерения и отображает результат
helperModulationCharacteristicsTest.m: Выполняет тест характеристик модуляции
helperModulationTestFilterDesign.m: Проекты образовывают канал фильтр
Специальная группа (SIG) Bluetooth. “Bluetooth Тестовая Спецификация RF-PHY”, Версия: RF-PHY.TS.5.1.0, Раздел 4.4. 2018. https://www.bluetooth.com.
Специальная группа (SIG) Bluetooth. "Спецификация Ядра Bluetooth". Версия 5.2. https://www.bluetooth.com.