Характеристики модуляции 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 к:

  • Обеспечьте функциональную совместимость между всеми bluetooth-устройствами.

  • Обеспечьте базовый уровень производительности системы для всех продуктов Bluetooth.

Каждый тест имеет заданную процедуру тестирования и ожидаемый результат, которому должна встретить реализация под тестом (IUT).

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

Основная цель тестовых измерений передатчика состоит в том, чтобы гарантировать, что характеристики передатчика в заданных пределах, как задано в тестовых технических требованиях [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

Симулируйте тесты передатчика

Чтобы симулировать тесты передатчика, выполните эти шаги:

  1. Сгенерируйте тестовую пакетную форму волны BLE с помощью helperBLETestWaveform.

  2. Добавьте смещение частоты, которое включает начальное смещение частоты и дрейф к форме волны с помощью comm.PhaseFrequencyOffset.

  3. Добавьте тепловой шум с помощью comm.ThermalNoise.

  4. Выполните фильтрацию на шумной форме волны с помощью helperModulationTestFilterDesign.

  5. Выполните демодуляцию FM на отфильтрованной форме волны.

  6. Выполните тестовое измерение и отобразите вердикт передачи.

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)

Figure contains 2 axes objects. Axes object 1 with title Frequency Demodulated Waveform for Sequence: 00001111 contains 3 objects of type line. These objects represent FM Demodulated Waveform, Average Frequency Deviation, Sequence Center Frequency. Axes object 2 with title Frequency Demodulated Waveform for Sequence: 10101010 contains 3 objects of type line. These objects represent FM Demodulated Waveform, Average Frequency Deviation, Sequence Center Frequency.

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].

Приложение

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

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

  1. Специальная группа (SIG) Bluetooth. “Bluetooth Тестовая Спецификация RF-PHY”, Версия: RF-PHY.TS.5.1.0, Раздел 4.4. 2018. https://www.bluetooth.com.

  2. Специальная группа (SIG) Bluetooth. "Спецификация Ядра Bluetooth". Версия 5.2. https://www.bluetooth.com.

Похожие темы