Main Content

Bluetooth BR RF-PHY Transmitter Tests for Modulation Characteristics, Carrier Frequency Offset, and Drift

This example shows you how to perform Bluetooth® basic rate (BR) radio frequency (RF) physical layer (PHY) transmitter tests specific to modulation characteristics, carrier frequency offset, and drift using the Bluetooth® Toolbox. The test measurements compute frequency deviation, carrier frequency offset, and drift values. This example also verifies whether these test measurement values are within the limits specified by the Bluetooth RF-PHY Test Specifications [1].

Objectives of Bluetooth RF-PHY Tests

The Bluetooth RF-PHY Test Specifications [1] defined by the Bluetooth Special Interest Group (SIG) include RF-PHY tests for transmitters and receivers. The objectives of these RF-PHY tests are to:

  • Ensure interoperability between all Bluetooth devices.

  • Ensure a basic level of system performance for all Bluetooth products.

Each test case has a specified test procedure. The expected outcome must be met by the implementation under test (IUT).

RF-PHY Transmitter Tests

The main goal of the transmitter test measurements is to ensure that the transmitter characteristics are within the limits specified by the Bluetooth RF-PHY Test Specifications [1]. This example includes transmitter tests relevant to modulation characteristics, carrier frequency offset, and drift. This table shows various RF-PHY transmitter tests performed in this example.

RF-PHY Transmitter Test Procedure

This block diagram summarizes the test procedure for transmitter tests relevant to modulation characteristics, carrier frequency offset, and drift.

This table shows the test waveforms and packet type(s) required for different test IDs:

Generate Bluetooth BR test waveforms by passing DH or DM packets through bluetoothTestWaveform function.

Configure Simulation Parameters

You can change the txTestID, packetType, initFreqOffset, maxFreqDrift, and sps parameters based on the transmitter test, packet type, initial frequency offset, maximum frequency drift, and samples per symbol, respectively.

txTestID = 'RF/TRM/CA/BV-07-C';
packetType = 'DH1';             % Select packet type according to the 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 according to the test specifications

Generate Test Parameters

The example generates test parameters based on transmitter test, packet type, initial frequency offset, maximum frequency drift and samples per symbol. Create and configure Bluetooth test waveform by using the bluetoothTestWaveformConfig object. To design channel filter based on the sample rate, use helperModulationTestFilterDesign.m helper function. To add frequency offset and thermal noise, create and configure comm.PhaseFrequencyOffset and comm.ThermalNoise System objects™, respectively.

% Create a Bluetooth test waveform configuration object
cfg = bluetoothTestWaveformConfig('Mode','BR','PacketType',packetType,'SamplesPerSymbol',sps);
if strcmp(txTestID,'RF/TRM/CA/BV-07-C')
    payloadType = [1 2];
elseif strcmp(txTestID,'RF/TRM/CA/BV-08-C')
    payloadType = 0;
else
    payloadType = 2;
end

% Design channel filter
filtDesign = helperModulationTestFilterDesign('BR',sps);

% Create a phase frequency offset System object
sampleRate = sps*1e6; % Sample rate in Hz
pfo = comm.PhaseFrequencyOffset('SampleRate',sampleRate);

% Create a thermal noise System object
NF = 12;              % Noise figure (dB)
thNoise = comm.ThermalNoise('NoiseMethod','Noise figure', ...
                            'SampleRate',sampleRate, ...
                            'NoiseFigure',NF);

Simulate Transmitter Tests

To simulate the transmitter tests, perform these steps:

  1. Generate a Bluetooth BR test waveform.

  2. Add frequency offset, which includes initial frequency offset and drift to the waveform.

  3. Add noise to the waveform.

  4. Perform filtering on the noisy waveform.

  5. Perform frequency modulation (FM) demodulation on the filtered waveform.

  6. Perform test measurements and display the pass verdict.

filtWaveform = cell(1,size(payloadType,2));              % Initialization
for i = 1:size(payloadType,2)
    cfg.PayloadType = payloadType(i);
    txWaveform = bluetoothTestWaveform(cfg);
    driftRate = maxFreqDrift/length(txWaveform);         % Drift rate
    freqDrift = driftRate*(0:1:(length(txWaveform)-1))'; % Frequency drift for the packet
    pfo.FrequencyOffset =  freqDrift + initFreqOffset;   % Frequency offset, includes initial frequency offset and drift
    wfmFreqOffset = pfo(txWaveform);
    wfmChannel = thNoise(wfmFreqOffset);
    filtWaveform{i} = conv(wfmChannel,filtDesign.Coefficients.','same');
end

Based on the transmitter test, the helperBRModulationTestMeasurements.m helper function performs FM demodulation and returns these values:

  • RF/TRM/CA/BV-07-C: Returns the frequency deviations and center frequencies for the two test sequences, freq1 and freq2, respectively and maximum frequency deviation for the second test sequence, freq3.

  • RF/TRM/CA/BV-08-C: Returns initial frequency offset, freq1.

  • RF/TRM/CA/BV-09-C: Returns initial frequency offset, freq1, and frequency drift, freq2.

[waveform,freq1,freq2,freq3] = helperBRModulationTestMeasurements(filtWaveform,txTestID,sps,packetType);

The helperBRModulationTestVerdict.m helper function verifies whether the test measurements are within the specified limits and displays the verdict.

helperBRModulationTestVerdict(waveform,txTestID,sps,freq1,freq2,freq3)

Figure contains 2 axes objects. Axes object 1 with title Frequency Demodulated Waveform for Test Sequence 11110000, xlabel Time (in microseconds), ylabel Frequency (in Hz) 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 Test Sequence 10101010, xlabel Time (in microseconds), ylabel Frequency (in Hz) contains 3 objects of type line. These objects represent FM Demodulated Waveform, Average Frequency Deviation, Sequence Center Frequency.

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

This example demonstrates the Bluetooth BR transmitter test measurements specific to modulation characteristics, carrier frequency offset, and drift. The simulation results verify that the computed test measurement values are within the limits specified by Bluetooth RF-PHY Test Specifications [1].

Appendix

The example uses these helpers:

Selected Bibliography

  1. Bluetooth Special Interest Group (SIG). “Bluetooth RF-PHY Test Specification”, v1.2/2.0/2.0, EDR/2.1/2.1, EDR/3.0/3.0, HS (), RF.TS/3.0.H.1, Section 4.5. 2009. https://www.bluetooth.com.

  2. Bluetooth Special Interest Group (SIG). "Core System Package [BR/EDR Controller Volume]". Bluetooth Core Specification. Version 5.3, Volume 2. https://www.bluetooth.com.

See Also

Functions

Objects

Related Topics