Характеристики модуляции BLE, смещение несущей частоты и тестовые измерения дрейфа

В этом примере показано, как измерить Bluetooth® низкая энергия (BLE) физический уровень радиочастоты (RF-PHY), передатчик тестирует характерный для характеристик модуляции, смещения несущей частоты и дрейфа, пользующегося Библиотекой Communications Toolbox™ для Протокола Bluetooth. Этот пример также проверяет, являются ли тестовые измерения в заданных пределах согласно Тестовым Спецификациям RF-PHY Bluetooth [1]

Цели тестов BLE RF-PHY

Тестовые Спецификации RF-PHY Bluetooth [1] заданный Специальной группой (SIG) Bluetooth включают тесты RF-PHY и для передатчика и для получателя. Цели этих тестов RF-PHY состоят в том, чтобы гарантировать функциональную совместимость между всеми устройствами BLE и проверять, что базовый уровень производительности системы гарантируется для всех продуктов BLE. Каждый тест имеет заданную процедуру тестирования и ожидаемый результат, которому должна встретить реализация под тестом (IUT).

Тесты передатчика RF-PHY

Основная цель тестовых измерений передатчика состоит в том, чтобы гарантировать, что характеристики передатчика в заданных пределах, как задано в тестовых спецификациях [1]. Этот пример покрывает тесты передатчика, относящиеся к характеристикам модуляции, смещению несущей частоты и дрейфу. Идентификаторы теста и тестовые цели продуманных тестов следующие:

Процедура тестирования передатчика

Эта блок-схема обобщает процедуру тестирования для тестов передатчика, относящихся к характеристикам модуляции, смещению несущей частоты и дрейфу, как задано в [1].

  • Сгенерируйте тестовые пакеты и передайте их через bleWaveformGenerator чтобы сгенерировать BLE тестируют формы волны. Тестовые формы волны, требуемые для различных тестовых идентификаторов:

  • Выполните фильтрацию, как задано в Тестовых Спецификациях RF-PHY Bluetooth [1].

  • Добавьте смещение несущей частоты и дрейфуйте для тестов: RF-PHY/TRM/BV-06-C, RF-PHY/TRM/BV-12-C, RF-PHY/TRM/BV-14-C.

  • FM демодулирует и измеряет тестовые характеристики (отклонение частоты или дрейф частоты).

  • Получите тестовый вердикт и отобразите результаты.

Сконфигурируйте тестовые параметры

Инициализируйте переменные, такие как тестовый ID передатчика, количество выборок на символ, длину полезной нагрузки и максимальный дрейф несущей частоты.

txTestID = "RF-PHY/TRM/BV-09-C";    % Select one from these test cases:
                                    % RF-PHY/TRM/BV-09-C,RF-PHY/TRM/BV-11-C,
                                    % RF-PHY/TRM/BV-13-C,RF-PHY/TRM/BV-06-C,
                                    % RF-PHY/TRM/BV-12-C,RF-PHY/TRM/BV-14-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 = 5000;     % In Hz, must be in the range [-50e3,50e3]
initFreqOffset = 12000;   % In Hz, must be in the range [-100e3,100e3]

% The function, <matlab:edit(helperBLEModulationTestConfig.m')
% helperBLEModulationTestConfig.m>, can be configured to generate test
% parameters and to design a channel filter based on test case ID and samples
% per symbol.

[filtDesign, testParams] = helperBLEModulationTestConfig (txTestID, SPS);

Сгенерируйте тестовые формы волны и выполните фильтрацию

На основе тестовых параметров сгенерируйте тестовые формы волны BLE с помощью функции помощника helperBLETestWaveform. После этого выполните фильтрацию на сгенерированных тестовых формах волны.

testWfmLen = (testParams.nonPDULen+testParams.codingFactor*payloadLen*testParams.bitsPerByte)*sps;
[testWfm,filtTestWfm] = deal(zeros(testParams.numOfTestSeqs,testWfmLen));
for wfmIdx = 1:testParams.numOfTestSeqs
    % Generate BLE test waveforms
    testWfm(wfmIdx,:) = helperBLETestWaveform(testParams.testSeqIds(wfmIdx),...
                                        payloadLen,sps,testParams.phyMode);
    % Perform filtering on the test waveforms
    filtTestWfm(wfmIdx,:) =  conv(testWfm(wfmIdx,:),...
        filtDesign.Coefficients.','same');
end

Добавьте дрейф смещения и частоты частоты

Добавьте смещение частоты и дрейф частоты только для тестов смещения и дрейфа несущей частоты: RF-PHY/TRM/BV-06-C, RF-PHY/TRM/BV-12-C, RF-PHY/TRM/BV-14-C.

if any(strcmp(txTestID,{'RF-PHY/TRM/BV-06-C','RF-PHY/TRM/BV-12-C','RF-PHY/TRM/BV-14-C'}))
    driftRate = maxFreqDrift/length(filtTestWfm);% Drift rate
    freqOffset = driftRate*(0:1:(length(filtTestWfm)-1))';% Frequency drift
    freqOffset = freqOffset+initFreqOffset;% Frequency offset and frequency drift
    pfo = comm.PhaseFrequencyOffset('FrequencyOffset',freqOffset,'SampleRate',testParams.sampleRate);
    wfmFreqOffset = pfo(filtTestWfm.');
else
    wfmFreqOffset = filtTestWfm;
end

FM демодулирует и измеряет тестовые характеристики

Функция, helperBLEModulationTestMeasurements.m, выполняет демодуляцию FM и вычисляет или отклонение частоты, или дрейф частоты и начальное смещение частоты на основе обеспеченного ID теста.

[waveformDiffFreq,fOut1,fOut2] = helperBLEModulationTestMeasurements(wfmFreqOffset,txTestID,testParams);

Отображение результатов тестирования

Функция, helperBLEModulationTestVerdict.m, проверяет, являются ли измерения в заданных пределах или нет, и отображает вердикт по командному окну.

helperBLEModulationTestVerdict(waveformDiffFreq,txTestID,testParams,fOut1,fOut2)

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
    Measured average frequency deviation = 244.0016 kHz
    Expected average frequency deviation > 185 kHz
    Result: Pass
Ratio of deviations between two test sequences = 0.97601
Expected Ratio > 0.8 
    Result: Pass

Этот пример продемонстрировал тестовые измерения передатчика BLE, характерные для характеристик модуляции, смещения несущей частоты и дрейфа согласно Тестовым Спецификациям RF-PHY Bluetooth [1].

Приложение

Помощники, используемые в этом примере:

Выбранная библиография

  1. Разделите 4.4 из тестовой спецификации RF-PHY Bluetooth, версии: РФ-PHY.TS.5.1.0.

  2. Объем 6 из спецификации ядра Bluetooth, системный пакет ядра версии 5.0 [низкий энергетический контроллер объем].

Для просмотра документации необходимо авторизоваться на сайте