exponenta event banner

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

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

Цели испытаний BLE RF-PHY

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

  • Обеспечение совместимости между всеми устройствами Bluetooth.

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

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

Испытания передатчика RF-PHY

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

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

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

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

Проверка установки пакета поддержки

Проверьте, установлена ли библиотека Communications Toolbox Library для пакета поддержки протокола Bluetooth.

commSupportPackageCheck('BLUETOOTH');

Конфигурирование параметров тестирования

Инициализируйте переменные, такие как идентификатор теста передатчика, количество выборок на символ, длина полезной нагрузки и максимальный дрейф несущей частоты. Функция, helperBLEModulationStartConfig.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. Фильтрацию по шумовой форме сигнала выполняйте с помощью helperTharkingStartFilterDesign.

  5. Выполните демодуляцию ЧМ для отфильтрованного сигнала.

  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

Функция, helperBLEModulationStartMeasurements.m, выполняет ЧМ-демодуляцию и вычисляет либо отклонение частоты, либо дрейф частоты и начальный сдвиг частоты на основе предоставленного идентификатора тестового случая.

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

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

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

Figure contains 2 axes. Axes 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 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. Группа специальных интересов Bluetooth (SIG). «Bluetooth RF-PHY Test Specification», редакция: RF-PHY.TS.5.1.0, раздел 4.4. 2018. https://www.bluetooth.com.

  2. Группа специальных интересов Bluetooth (SIG). «Спецификация ядра Bluetooth». Версия 5.2. https://www.bluetooth.com.

Связанные темы