Этот пример показывает, как выполнить тесты передатчика физического слоя (RF) базовой скорости (BR) 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).
Основная цель тестовых измерений датчика состоит в том, чтобы убедиться, что характеристики датчика находятся в пределах, заданных спецификациями тестирования Bluetooth RF-PHY [1]. Этот пример включает тесты передатчика, относящиеся к характеристикам модуляции, смещению частоты несущей и дрейфу. Эта таблица показывает различные тесты передатчика RF-PHY, выполненные в этом примере.
Этот блок суммирует процедуру тестирования для тестов передатчика, имеющих отношение к характеристикам модуляции, смещению частоты несущей и дрейфу.
Сгенерируйте пакеты DH/DM и передайте через bluetoothWaveformGenerator
функция для генерации тестовых сигналов Bluetooth. В этой таблице показаны тестовые формы сигналов и типы пакетов, необходимые для различных идентификаторов тестов:
Проверьте, установлен ли пакет поддержки 'Communications Toolbox Library for the Bluetooth Protocol'.
commSupportPackageCheck('BLUETOOTH');
Можно изменить txTestID
, packetType
, initFreqOffset
, maxFreqDrift
и sps
параметры на основе теста передатчика, типа пакета, начального смещения частоты, максимального дрейфа частоты и выборок на символ, соответственно.
txTestID = 'RF/TRM/CA/BV-07-C'; packetType = 'DH1'; % Select packet type as per transmitter test case ID initFreqOffset =0; % Initial frequency offset in Hz maxFreqDrift =0; % Maximum frequency drift in Hz, [-25e3, 25e3] for one slot packet % [-40e3, 40e3] for three and five slot packets sps = 32; % Minimum of 4 samples per symbol as per test specifications
Параметры тестирования генерируются на основе теста передатчика, типа пакета, начального смещения частоты, максимального дрейфа частоты и выборок на символ. Чтобы сгенерировать полезную нагрузку, длительность пакета и параметры конфигурации формы сигнала, используйте функцию helperBRModulationTestPacketConfig.m. Чтобы спроектировать фильтр канала на основе частоты дискретизации, используйте функцию helperModulationTestFilterDesign.m. Чтобы добавить смещение частоты и тепловой шум, создайте и сконфигурируйте comm.PhaseFrequencyOffset
и comm.ThermalNoise
Системные объекты, соответственно.
[payload,packetDuration,cfg] = helperBRModulationTestPacketConfig(txTestID,packetType,sps); filtDesign = helperModulationTestFilterDesign('BR',sps); % Design channel filter driftRate = maxFreqDrift/(packetDuration*sps); % Drift rate freqDrift = driftRate*(0:1:(packetDuration*sps-1))'; % Frequency drift for the packet freqOffset = freqDrift + initFreqOffset; % Frequency offset, includes initial frequency offset and drift % Create a phase frequency offset System object sampleRate = sps*1e6; % Sample rate in Hz pfo = comm.PhaseFrequencyOffset('FrequencyOffset',freqOffset,'SampleRate',sampleRate); % Create a thermal noise System object NF = 12; % Noise figure (dB) thNoise = comm.ThermalNoise('NoiseMethod','Noise figure', ... 'SampleRate',sampleRate, ... 'NoiseFigure',NF);
Чтобы симулировать тесты передатчика, выполните следующие шаги:
Сгенерируйте сигнал Bluetooth BR для выбранного типа пакета и строения сигнала.
Добавьте смещение частоты, которое включает в себя начальное смещение частоты и дрейф к форме волны.
Добавьте шум в форму волны.
Выполните фильтрацию на шумной форме волны.
Выполните FM-демодуляцию на отфильтрованной форме волны.
Выполните тестовые измерения и отобразите вердикт прохождения.
filtWaveform = zeros(packetDuration*sps,size(payload,2)); % Initialization for i = 1:size(payload,2) txWaveform = bluetoothWaveformGenerator(payload(:,i),cfg); txWaveformValid = txWaveform(1:packetDuration*sps); wfmFreqOffset = pfo(txWaveformValid); wfmChannel = thNoise(wfmFreqOffset); filtWaveform(:,i) = conv(wfmChannel,filtDesign.Coefficients.','same'); end
На основе теста передатчика функция helperBRModulationTestMeasurements.m выполняет FM-демодуляцию и возвращает эти значения:
RF/TRM/CA/BV-07-C: Возвращает отклонения частоты и центральные частоты для двух тестовых последовательностей, freq1
, freq2
, соответственно и максимальное отклонение частоты для второй тестовой последовательности, freq3
.
RF/TRM/CA/BV-08-C: Возвращает начальное смещение частоты, freq1
.
RF/TRM/CA/BV-09-C: Возвращает начальное смещение частоты и дрейф частоты, freq1
и freq2
, соответственно.
[waveform,freq1,freq2,freq3] = helperBRModulationTestMeasurements(filtWaveform,txTestID,sps,packetType);
Функция helperBRModulationTestVerdict.m проверяет, находятся ли тестовые измерения в заданных пределах, и отображает вердикт.
helperBRModulationTestVerdict(waveform,txTestID,sps,freq1,freq2,freq3)
Test sequence: 11110000 Measured average frequency deviation: 160 kHz Expected average frequency deviation range: [140 kHz, 175 kHz] Result: Pass Test sequence: 10101010 Expected 99.9% of all maximum frequency deviation greater than 115 kHz Result: Pass Ratio of frequency deviations in the two test sequences: 1.1462 Expected Ratio greater than 0.8 Result: Pass
Этот пример демонстрирует тестовые измерения передатчика Bluetooth BR, характерные для характеристик модуляции, смещения несущей частоты и дрейфа. Результаты симуляции проверяют, что эти вычисленные значения тестовых измерений находятся в пределах, заданных спецификациями тестирования Bluetooth RF-PHY [1].
В примере используются следующие помощники:
helperBRModulationTestPacketConfig.m: настраивает параметры тестирования передатчика Bluetooth
helperModulationTestFilterDesign.m: Проектирует фильтр канала
helperBRModulationTestMeasurements.m: Измеряет отклонение частоты, смещение несущей частоты и дрейф
helperModulationCharacteristicsTest.m: Выполняет тест характеристик модуляции
helperBRModulationTestVerdict.m: проверяет значения тестовых измерений и отображает результат
helperBluetoothPacketDuration.m: возвращает длительность пакета
Bluetooth Special Interest Group (SIG). «Bluetooth RF-PHY Test Спецификации», v1.2/2.0/2.0, EDR/2.1/2.1, EDR/3.0/3.0, HS (), RF.TS/3.0.H.1, раздел 4.5. 2009. https://www.bluetooth.com.
Bluetooth Special Interest Group (SIG). «Основной системный пакет [том контроллера BR/EDR]». Спецификация ядра Bluetooth. Версия 5.2, том 2. https://www.bluetooth.com.