Этот пример показывает, как выполнить тесты передатчика физического слоя (RF) с низкой энергией (BLE) Bluetooth ® (PHY), характерные для характеристик модуляции, смещения частоты несущей и дрейфа, используя библиотеку Communications Toolbox™ для протокола Bluetooth. Тестовые измерения вычисляют отклонение частоты, смещение частоты несущей и значения дрейфа. Этот пример также проверяет, находятся ли эти значения тестовых измерений в пределах, заданных спецификациями тестирования Bluetooth RF-PHY [1].
Спецификации тестирования Bluetooth RF-PHY [1], определенные Bluetooth Special Interest Group (SIG), включают тесты RF-PHY как для передатчика, так и для приемника. Цели этих тестов RF-PHY состоят в том, чтобы:
Обеспечьте совместимость между всеми устройствами Bluetooth.
Обеспечьте базовый уровень производительности системы для всех продуктов Bluetooth.
Каждый тест имеет определенную процедуру тестирования и ожидаемый результат, который должен быть удовлетворен тестируемой реализацией (IUT).
Основная цель тестовых измерений датчика состоит в том, чтобы убедиться, что характеристики датчика находятся в заданных пределах, как указано в спецификациях испытаний [1]. Этот пример включает тесты передатчика, относящиеся к характеристикам модуляции, смещению частоты несущей и дрейфу. Эта таблица показывает различные тесты передатчика RF-PHY, выполненные в этом примере.
Этот блок суммирует процедуру тестирования для тестов передатчика, имеющих отношение к характеристикам модуляции, смещению частоты несущей и дрейфу.
Сгенерируйте тестовые пакеты и передайте их через bleWaveformGenerator
для генерации тестовых сигналов BLE. Тестовые формы, необходимые для различных тестовых идентификаторов:
Проверьте, установлен ли пакет поддержки 'Communications Toolbox Library for the Bluetooth Protocol'.
commSupportPackageCheck('BLUETOOTH');
Инициализируйте переменные, такие как идентификатор теста передатчика, количество выборок на символ, длину полезной нагрузки и максимальный дрейф несущей частоты. Функция 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-демодуляцию и вычисляет либо отклонение частоты, либо дрейф частоты и начальное смещение частоты на основе предоставленного идентификатора теста.
[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: Проектирует фильтр канала
Bluetooth Special Interest Group (SIG). «Bluetooth RF-PHY Test Спецификации», редакция: RF-PHY.TS.5.1.0, раздел 4.4. 2018. https://www.bluetooth.com.
Bluetooth Special Interest Group (SIG). Bluetooth Core Спецификации. Версия 5.2. https://www.bluetooth.com.