Сквозной Bluetooth Симуляция BR/EDR PHY с Интерференционным и Адаптивным Скачкообразным движением Частоты WLAN

Этот пример представляет сквозную симуляцию, чтобы продемонстрировать, как адаптивное скачкообразное движение частоты (AFH) изменяет последовательность скачкообразного движения частоты в базовой скорости (BR) Bluetooth® и физическом уровне расширенной скорости передачи данных (EDR) (PHY) и минимизирует удар интерференции WLAN, пользующейся Библиотекой Communications Toolbox™ для Протокола Bluetooth®. В отличие от скачкообразного движения основной частоты, AFH исключает каналы Bluetooth, которые являются источниками интерференции. Исключением этих каналов из списка доступных каналов AFH повторно присваивает передачу и прием пакетов на каналах с относительно меньшей интерференцией. Результаты симуляции в примере показывают, что значения пакетного коэффициента ошибок (PER) и частоты ошибок по битам (BER) симуляции PHY Bluetooth с интерференцией WLAN меньше с AFH по сравнению со скачкообразным движением основной частоты. Кроме того, пример показывает выбранный индекс канала на паз для скачкообразного движения основной частоты и AFH. Спектральная плотность мощности Bluetooth формы волны BR/EDR с интерференцией WLAN визуализируется с помощью спектра анализатор.

Bluetooth BR/EDR PHY

Стандарт Bluetooth задает два режима PHY: BR и EDR. Библиотека Communications Toolbox™ для пакета поддержки Протокола Bluetooth позволяет ссылкам системы связи модели Bluetooth BR/EDR, как задано в Спецификации [1] Ядра Bluetooth.

Режим Bluetooth BR обязателен, тогда как режим EDR является дополнительным. Радио BR/EDR Bluetooth реализует 1 600 методов частоты, скачкообразно перемещающей спектр распространения (FHSS) транзитных участков/с. Радио скачкообразно двигается псевдослучайным способом на 79 обозначенных каналах Bluetooth. Каждый канал Bluetooth имеет полосу пропускания 1 МГц. Каждый канал сосредоточен в (2402 + k) МГц, где k = 0, 1..., 78. Метод модуляции на полезных нагрузках режима BR и EDR является Гауссовым shift-keying частоты (GFSK) и дифференциальным shift-keying фазы (DPSK), соответственно. Скорость в бодах является 1 MSymbols/s. Радио BR/EDR Bluetooth использует дуплекс деления времени (TDD), в котором передача данных происходит в одном направлении одновременно. Передача чередуется в двух направлениях, один за другим.

Для получения дополнительной информации о радио BR/EDR Bluetooth и стеке протокола, смотрите Стек Протокола Bluetooth. Для получения дополнительной информации о Bluetooth пакетные структуры BR/EDR, смотрите Пакетную Структуру Bluetooth.

Адаптивное скачкообразное движение частоты

Цель использования FHSS в Bluetooth состоит в том, чтобы обеспечить разнообразие, которое позволяет минимизировать BER, даже если вмешивающиеся сети или физическая среда представляют некоторые неприменимые каналы. Методы скачкообразного движения частоты могут или реализовать фиксированную последовательность транзитных участков канала такой как со скачкообразным движением основной частоты или адаптировать его последовательность скачкообразного движения динамически с AFH к различным интерференционным условиям.

До возможности AFH bluetooth-устройства реализовали схему скачкообразного движения основной частоты. В этом подходе радио Bluetooth скачкообразно двигается псевдослучайным способом по курсу 1 600 транзитных участков/с. Когда другое беспроводное устройство, действующее в той же полосе на 2,4 ГГц, входит в среду, результаты схемы скачкообразного движения основной частоты в случайных столкновениях. Например, Bluetooth и WLAN являются двумя такими сетями, которые действуют в диапазоне частот на 2,4 ГГц. Bluetooth и радио WLAN часто действуют в том же физическом сценарии и на том же устройстве. В этих случаях Bluetooth и передачи WLAN могут вмешаться друг в друга. Эта интерференция влияет на эффективность и надежность обеих сетей. Этот рисунок показывает сценарий, в котором Bluetooth и пакетные передачи WLAN вмешиваются друг в друга.

AFH позволяет Bluetooth минимизировать столкновения путем предотвращения, чтобы источники интерференции и, исключая их из списка доступной фигуры channels.This показали предыдущий сценарий с включенным AFH.

Эта процедура переотображения включает сокращение количества каналов, которые будут использоваться Bluetooth. Технические требования Ядра Bluetooth [1] требуют по крайней мере 20 каналов для передач Bluetooth.

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

% Check if the 'Communications Toolbox Library for the Bluetooth Protocol'
% support package is installed.
commSupportPackageCheck('BLUETOOTH');

Bluetooth Передатчик BR/EDR и Цепь Приемника

Этот пример демонстрирует сквозной Bluetooth обработка формы волны BR/EDR при помощи механизма скачкообразного движения частоты, заданного в Спецификации [1] Ядра Bluetooth. Сгенерированный Bluetooth форма волны BR/EDR является модулируемой частотой и затем искаженной интерференцией WLAN. Эта блок-схема показывает цепь передатчика и приемника Bluetooth.

Цепь передатчика

  1. Выберите индекс канала для передачи.

  2. Сгенерируйте случайные входные биты.

  3. Сгенерируйте форму волны BR/EDR Bluetooth.

  4. Примените смещение частоты на основе выбранного индекса канала.

Цепь приемника

  1. Выберите индекс канала для приема.

  2. Примените смещение частоты на основе выбранного индекса канала.

  3. Декодируйте форму волны BR/EDR Bluetooth, чтобы получить выходные биты.

Беспроводной канал

  1. Добавьте WLAN (IEEE 802.11b) интерференция к Bluetooth форма волны BR/EDR.

  2. Добавьте AWGN в Bluetooth форма волны BR/EDR.

Результаты

Пример отображает эти результаты для скачкообразного движения основной частоты и AFH.

  • PER и BER для симуляций, выполняемых под аддитивным белым гауссовым шумом (AWGN), образовывают канал для данной энергии, подведенной к долоту к шумовому отношению плотности (Eb/No) значение

  • Полученный спектр сигнала и спектрограмма канала

  • График, отображающий выбранный канал, индексирует на паз приема или передачу

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

Сконфигурируйте желаемый пакетный тип Bluetooth, длину полезной нагрузки, режим PHY и время симуляции.

simulationTime = 2*1e6; % Simulation time in microseconds
packetType     = 'DM1'; % Specify baseband packet type
режим = 'BR'; % Specify PHY mode ('BR', 'EDR2M', 'EDR3M')
payloadLength = 10; % Length of baseband packet in bytes

Сконфигурируйте скачкообразное движение частоты

Используйте bluetoothFrequencyHop возразите, чтобы выбрать индекс канала для передачи и приема Bluetooth формы волны BR/EDR.

% Bluetooth frequency hopping
frequencyHop = bluetoothFrequencyHop;
frequencyHop.SequenceType = 'Connection Adaptive';

Сконфигурируйте Bluetooth PHY

Используйте helperBluetoothPHY объект помощника смоделировать передачу формы волны BR/EDR Bluetooth и прием.

% Configure Bluetooth PHY transmission
phyTx = helperBluetoothPHY;
phyTx.Mode = mode;

% Configure Bluetooth PHY reception
phyRx = helperBluetoothPHY;
phyRx.Mode = mode;

Сконфигурируйте канал и интерференцию WLAN:

Используйте объект helperBluetoothChannel сконфигурировать беспроводной канал. Можно установить EbNo значение для канала AWGN. Чтобы сгенерировать вмешательство форма волны WLAN, используйте функцию helperBluetoothGenerateWLANWaveform. Задайте источники интерференции WLAN при помощи wlanInterferenceSource параметр. Сигнал WLAN присутствует между-10 к 10 МГц в течение симуляции. Используйте одну из этих опций, чтобы задать источник интерференции WLAN.

  • 'Сгенерированный': Чтобы добавить сигнал WLAN из WLAN Toolbox™, выберите эту опцию.

  • ‘BasebandFile’: Чтобы добавить WLAN сигнализируют из основополосного файла (.bb), выберите эту опцию и задайте основополосное имя файла в WLANBBFilename свойство. Если вы не задаете .bb файл, пример использует .bb по умолчанию файл, WLANNonHTDSSS.bb, добавить сигнал WLAN.

  • 'none': Никакой сигнал WLAN не добавляется.

AWGN присутствует в течение симуляции.

% Specify as one of 'Generated' | 'BasebandFile' | 'None'
wlanInterferenceSource = 'BasebandFile';
wlanBBFilename = 'WLANNonHTDSSS.bb'; % Default baseband file
% Configure wireless channel
образуйте канал = helperBluetoothChannel;
channel.EbNo = 22; % Ratio of energy per bit (Eb) to the spectral noise density (No) in dB
channel.SIR =-20; % Signal to interference ratio in dB
if ~strcmpi (wlanInterferenceSource, 'None')
    % Generate the WLAN waveform
    wlanWaveform = helperBluetoothGenerateWLANWaveform (wlanInterferenceSource, wlanBBFilename);
    % Add the WLAN interference to Bluetooth channel
    addWLANWaveform (канал, wlanWaveform);
end

Setup симуляции

Инициализируйте параметры, чтобы выполнить сквозной Bluetooth симуляция BR/EDR.

slotTime = 625; % Bluetooth slot duration in microseconds
% Simulation time in terms of slots
numSlots = floor(simulationTime/slotTime);
% Slot duration, including transmission and reception
slotValue = phyTx.slotsRequired(packetType)*2;
% Number of Master transmission slots
numMasterTxSlots = floor(numSlots/slotValue);
% Total number of Bluetooth physical channels
numBtChannels = 79;
% errorsBasic and errorsAdaptive store relevant bit and packet error
% information per channel. Each row stores the channel index, bit errors,
% packet errors, total bits, and BER per channel. errorsBasic and
% errorsAdaptive arrays store these values for basic frequency hopping
% and AFH, respectively.
[errorsBasic, errorsAdaptive] = deal(zeros(numBtChannels,5));
% Initialize first column with channel numbers
[errorsBasic(:,1), errorsAdaptive(:,1)] = deal(0:78);
% Initialize variables for calculating PER and BER
[berBasic, berAdaptive, bitErrors] = deal(0);
badChannels = zeros(1,0);
totalTransmittedPackets = numMasterTxSlots;
% Number of bits per octet
octetLength = 8;
% Sample rate and input clock used in PHY processing
samplePerSymbol = 88;
symbolRate = 1e6;
sampleRate = symbolRate*samplePerSymbol;
inputClock = 0;
% Store hop index
hopIndex = zeros(1, numMasterTxSlots);
% Index to hop index vector
hopIdx = 1;
% Baseband packet structure
basebandData = struct(...
    'LTAddr',1,             ... % Logical transport address
    'PacketType',packetType,... % Packet type
    'Payload',zeros(1,phyTx.MaxPayloadSize), ... % Payload
    'PayloadLength',0,  ... % Payload length
    'LLID',[0; 0],      ... % Logical link identifier
    'SEQN',0,           ... % Sequence number
    'ARQN',1,           ... % Acknowledgment flag
    'IsValid',false);   ... % Flag to identify the status of
    % cyclic redundancy check (CRC) and
% header error control (HEC)

% Bluetooth signal structure
bluetoothSignal = struct(...
    'PacketType',packetType, ... % Packet type
    'Waveform',[],           ... % Waveform
    'NumSamples',[],         ... % Number of samples
    'SampleRate',sampleRate, ... % Sample rate
    'SamplesPerSymbol',samplePerSymbol,      ... % Samples per symbol
    'Payload',zeros(1,phyTx.MaxPayloadSize), ... % Payload
    'PayloadLength',0, ... % Payload length
    'SourceID',0,      ... % Source identifier
    'Bandwidth',1,     ... % Bandwidth
    'NodePosition',[0 0 0], ... % Node position
    'CenterFrequency',centerFrequency(phyTx), ... % Center frequency
    'StartTime',0, ... % Waveform start time
    'EndTime',0,   ... % Waveform end time
    'Duration',0); ... % Waveform duration

% Clock ticks(one slot is 2 clock ticks)
clockTicks = slotValue*2;

Чтобы визуализировать формы волны BR/EDR Bluetooth, создайте dsp.SpectrumAnalyzer Система object™.

% Spectrum analyzer for basic frequency hopping
spectrumAnalyzerBasic = dsp.SpectrumAnalyzer(...
    'Name','Bluetooth Basic Frequency Hopping', ...
    'ViewType','Spectrum and spectrogram', ...
    'TimeResolutionSource','Property', ...
    'TimeResolution',0.0005, ...
    'SampleRate',sampleRate, ...
    'TimeSpanSource','Property', ...
    'TimeSpan', 0.05, ...
    'FrequencyResolutionMethod', 'WindowLength', ...
    'WindowLength', 512, ...
    'AxesLayout', 'Horizontal', ...
    'FrequencyOffset',2441*1e6, ...
    'ColorLimits',[-20 15]);

% Spectrum analyzer for AFH
spectrumAnalyzerAdaptive = dsp.SpectrumAnalyzer(...
    'Name','Bluetooth Adaptive Frequency Hopping', ...
    'ViewType','Spectrum and spectrogram', ...
    'TimeResolutionSource','Property', ...
    'TimeResolution',0.0005, ...
    'SampleRate',sampleRate, ...
    'TimeSpanSource','Property', ...
    'TimeSpan',0.05, ...
    'FrequencyResolutionMethod','WindowLength', ...
    'WindowLength',512, ...
    'AxesLayout','Horizontal', ...
    'FrequencyOffset',2441*1e6, ...
    'ColorLimits',[-20 15]);

Симуляции

Цепь передатчика и приемника Bluetooth симулирована с помощью скачкообразного движения основной частоты и AFH. Используя на PER канала и результаты BER скачкообразного движения основной частоты, выведите список используемых каналов. Список используемых каналов питается как вход симуляцию с помощью AFH.

Скачкообразное движение основной частоты

Симуляция запускается для всего конкретного количества Основных пазов передачи. Симулирует цепь передатчика, цепь приемника и канал для каждого паза. В конце симуляции пример вычисляет PER и BER для всех форм волны BR/EDR Bluetooth.

sprev = rng('default'); % Set random number generator seed
for slotIdx = 0:slotValue:numSlots-slotValue
    % Update clock
    inputClock = inputClock + clockTicks;

    % Frequency hopping
    [channelIndex,~] = nextHop(frequencyHop,inputClock);
    % PHY transmission
    stateTx = 1; % Transmission state
    TxBits = randi([0 1],payloadLength*octetLength,1);
    basebandData.Payload = TxBits;
    basebandData.PayloadLength = payloadLength;
    % Generate whiten initialization vector from clock
    clockBinary = comm.internal.utilities.de2biBase2RightMSB(inputClock,28);
    whitenInitialization = [clockBinary(2:7)'; 1];
    % Update the PHY with request from the baseband layer
    updatePHY(phyTx,stateTx,channelIndex,whitenInitialization,basebandData);
    % Initialize and pass elapsed time as zero
    elapsedTime = 0;
    [nextTxTime,btWaveform] = run(phyTx,elapsedTime); % Run PHY transmission
    run(phyTx, nextTxTime); % Update next invoked time

    % Channel
    bluetoothSignal.Waveform = btWaveform;
    bluetoothSignal.NumSamples = numel(btWaveform);
    bluetoothSignal.CenterFrequency = centerFrequency(phyTx);
    channel.ChannelIndex = channelIndex;
    bluetoothSignal = run(channel,bluetoothSignal,mode);
    distortedWaveform = bluetoothSignal.Waveform;

    % PHY reception
    stateRx = 2; % Reception state
    % Update the PHY with request from the baseband layer
    updatePHY(phyRx,stateRx,channelIndex,whitenInitialization);
    [nextRxTime,~] = run(phyRx,elapsedTime,bluetoothSignal);
    bluetoothSignal.NumSamples = 0;
    run(phyRx,nextRxTime,bluetoothSignal); % Run PHY reception
    chIdx = channelIndex + 1;

    % Calculate error rate upon successful decoding the packet
    if phyRx.Decoded
        rxBitsLength = phyRx.DecodedBasebandData.PayloadLength*octetLength;
        RxBits = phyRx.DecodedBasebandData.Payload(1:rxBitsLength);
        % BER calculation
        txSymLength = length(TxBits);
        rxSymLength = length(RxBits);
        minSymLength = min(txSymLength,rxSymLength);
        if minSymLength > 0
            bitErrors = sum(xor(TxBits(1:minSymLength),RxBits(1:minSymLength)));
            totalBits = minSymLength;
            % Bit errors found in channel
            errorsBasic(chIdx,2) = errorsBasic(chIdx,2) + bitErrors;
            % Total bits transmitted in channel
            errorsBasic(chIdx,4) = errorsBasic(chIdx,4) + totalBits;
        end
        if ~phyRx.DecodedBasebandData.IsValid || bitErrors
            % Packet errors found in channel
            errorsBasic(chIdx,3) = errorsBasic(chIdx,3) + 1;
        end
    else
        % Packet errors found in channel
        errorsBasic(chIdx,3) = errorsBasic(chIdx,3) + 1;
    end
    hopIndex(hopIdx) = channelIndex;
    hopIdx = hopIdx + 1;

    % Plot spectrum
    spectrumAnalyzerBasic(btWaveform + wlanWaveform(1:numel(btWaveform)));
    pause(0.01);
end

Figure Bluetooth Basic Frequency Hopping contains 2 axes objects and other objects of type uiflowcontainer, uimenu, uitoolbar. Axes object 1 contains an object of type line. This object represents Channel 1. Axes object 2 contains an object of type image.

На предыдущем рисунке график слева показывает спектр формы волны BR/EDR Bluetooth, искаженной интерференцией WLAN в частотный диапазон, и прошел через канал AWGN. График справа показывает, что сигнал WLAN присутствует от –10 до 10 МГц. Результаты показывают, что пакеты Bluetooth с вмешательством WLAN сигнализируют о перекрытии.

% Plot selected channel index per slot
figBasic = figure('Name','Basic frequency hopping');
axisBasic = axes(figBasic);
xlabel(axisBasic,'Slot');
ylabel(axisBasic,'Channel Index');
ylim(axisBasic,[0 numBtChannels+3]);
title(axisBasic,'Bluetooth Basic Frequency Hopping');
hold on;
plot(axisBasic,0:slotValue:numSlots-slotValue,hopIndex,'-o');

Figure Basic frequency hopping contains an axes object. The axes object with title Bluetooth Basic Frequency Hopping contains an object of type line.

Этот график отображает выбранный индекс канала на передачу или паз приема с помощью скачкообразного движения основной частоты. В этом случае все каналы используются каналы.

Классификация каналов

Каналы с большим количеством пакетных ошибок отмечены как плохие каналы. На основе бита и пакетных ошибок, собранных из вышеупомянутой симуляции, вычислите PER и BER.

% Select 25 channels with highest packet errors as bad channels
[~,indexes] = sort(errorsBasic(:,3),'descend');
badChannelIdx = min(nnz(errorsBasic(:,3)),25);
if badChannelIdx ~= 0
    badChannels = indexes(1:badChannelIdx) - 1;
end
usedChannels = setdiff(0:numBtChannels-1,badChannels);

% BER per channel calculation
errorsBasic(:,5) = errorsBasic(:,2)./errorsBasic(:,4);
errorsBasic(:,5) = fillmissing(errorsBasic(:,5),'constant',0);
ber = nonzeros(errorsBasic(:,5));
if ~isempty(ber)
    berBasic = mean(ber);
end

% PER calculation
packetErrorsBasic = sum(errorsBasic(:,3));
perBasic = packetErrorsBasic/totalTransmittedPackets;

% Reset
hopIdx = 1;
[inputClock,bitErrors] = deal(0);
fprintf('PER of Bluetooth BR/EDR waveforms using basic frequency hopping: %.4f\n',perBasic);
PER of Bluetooth BR/EDR waveforms using basic frequency hopping: 0.2787
fprintf('BER of Bluetooth BR/EDR waveforms using basic frequency hopping: %.4f\n',berBasic);
BER of Bluetooth BR/EDR waveforms using basic frequency hopping: 0.0550

Адаптивное скачкообразное движение частоты

Установите значение типа последовательности как 'Connection adaptive' и задайте классифицированные используемые каналы.

frequencyHop.SequenceType = 'Connection adaptive';
frequencyHop.UsedChannels = usedChannels;

Запустите симуляцию с помощью AFH и вычислите PER и BER.

%rng('default'); % Set random number generator seed
for slotIdx = 0:slotValue:numSlots-slotValue
    % Update clock
    inputClock = inputClock + clockTicks;

    % Frequency hopping
    [channelIndex,~] = nextHop(frequencyHop,inputClock);

    % PHY transmission
    stateTx = 1; % Transmission state
    TxBits = randi([0 1],payloadLength*octetLength,1);
    basebandData.Payload = TxBits;
    basebandData.PayloadLength = payloadLength;
    % Generate whiten initialization vector from clock
    clockBinary = comm.internal.utilities.de2biBase2RightMSB(inputClock,28);
    whitenInitialization = [clockBinary(2:7)'; 1];
    % Update the PHY with request from the baseband layer
    updatePHY(phyTx,stateTx,channelIndex,whitenInitialization,basebandData);
    % Initialize and pass elapsed time as zero
    elapsedTime = 0;
    [nextTxTime,btWaveform] = run(phyTx,elapsedTime); % Run PHY transmission
    run(phyTx,nextTxTime); % Update next invoked time

    % Channel
    bluetoothSignal.Waveform = btWaveform;
    bluetoothSignal.NumSamples = numel(btWaveform);
    bluetoothSignal.CenterFrequency = centerFrequency(phyTx);
    channel.ChannelIndex = channelIndex;
    bluetoothSignal = run(channel,bluetoothSignal,mode);
    distortedWaveform = bluetoothSignal.Waveform;

    % PHY reception
    stateRx = 2; % Reception state
    % Update the PHY with request from the baseband layer
    updatePHY(phyRx,stateRx,channelIndex,whitenInitialization);
    [nextRxTime,~] = run(phyRx,elapsedTime,bluetoothSignal);
    bluetoothSignal.NumSamples = 0;
    run(phyRx,nextRxTime,bluetoothSignal); % Run PHY reception
    chIdx = channelIndex + 1;
    
    % Calculate error rate upon successful decoding the packet
    if phyRx.Decoded
        rxBitsLength = phyRx.DecodedBasebandData.PayloadLength*octetLength;
        RxBits = phyRx.DecodedBasebandData.Payload(1:rxBitsLength);
        % BER calculation
        txSymLength = length(TxBits);
        rxSymLength = length(RxBits);
        minSymLength = min(txSymLength,rxSymLength);
        if minSymLength > 0
            bitErrors = sum(xor(TxBits(1:minSymLength),RxBits(1:minSymLength)));
            totalBits = minSymLength;
            % Bit errors found in channel
            errorsAdaptive(chIdx,2) = errorsAdaptive(chIdx,2) + bitErrors;
            % Total bits transmitted in channel
            errorsAdaptive(chIdx,4) = errorsAdaptive(chIdx,4) + totalBits;
        end

        if ~phyRx.DecodedBasebandData.IsValid || bitErrors
            % Packet errors found in channel
            errorsAdaptive(chIdx, 3) = errorsAdaptive(chIdx, 3) + 1;
        end
    else
        % Packet errors found in channel
        errorsAdaptive(chIdx, 3) = errorsAdaptive(chIdx, 3) + 1;
    end
    hopIndex(hopIdx) = channelIndex;
    hopIdx = hopIdx + 1;

    % Plot spectrum
    spectrumAnalyzerAdaptive(btWaveform + wlanWaveform(1:numel(btWaveform)));
    pause(0.01);
end

Figure Bluetooth Adaptive Frequency Hopping contains 2 axes objects and other objects of type uiflowcontainer, uimenu, uitoolbar. Axes object 1 contains an object of type line. This object represents Channel 1. Axes object 2 contains an object of type image.

В предыдущем графике можно заметить, что передача пакетов Bluetooth не перекрывается с сигналом WLAN. AFH исключает каналы, которые являются источниками интерференции WLAN, и повторно присваивает передачу пакетов Bluetooth на каналах с относительно меньшей интерференцией.

% Plot selected channel index per slot
figAdaptive = figure('Name','Adaptive Frequency Hopping');
axisAdaptive = axes(figAdaptive);
xlabel(axisAdaptive,'Slot');
ylabel(axisAdaptive,'Channel Index');
title(axisAdaptive,'Bluetooth Adaptive Frequency Hopping');
ylim(axisAdaptive,[0 numBtChannels+3]);
hold on;
plot(axisAdaptive,0:slotValue:numSlots-slotValue,hopIndex,'-o');

Figure Adaptive Frequency Hopping contains an axes object. The axes object with title Bluetooth Adaptive Frequency Hopping contains an object of type line.

Этот график отображает выбранный индекс канала на передачу или паз приема с помощью AFH. Чтобы минимизировать пакет и битовые ошибки в беспроводном канале, AFH выбирает только используемые каналы для передачи или приема Bluetooth формы волны BR/EDR

Вычислите PER и BER форм волны BR/EDR Bluetooth с AFH.

% BER per channel calculation
errorsAdaptive(:,5) = errorsAdaptive(:,2)./errorsAdaptive(:,4);
errorsAdaptive(:,5) = fillmissing(errorsAdaptive(:,5),'constant',0);
ber = nonzeros(errorsAdaptive(:,5));
if ~isempty(ber)
    berAdaptive = mean(ber);
end

% PER calculation
packetErrorsAdaptive = sum(errorsAdaptive(:,3));
perAdaptive = packetErrorsAdaptive/totalTransmittedPackets;
fprintf('PER of Bluetooth BR/EDR waveforms using adaptive frequency hopping: %.4f\n',perAdaptive);
PER of Bluetooth BR/EDR waveforms using adaptive frequency hopping: 0.0625
fprintf('BER of Bluetooth BR/EDR waveforms using adaptive frequency hopping: %.4f\n',berAdaptive);
BER of Bluetooth BR/EDR waveforms using adaptive frequency hopping: 0.0020
% Restore previous setting of random number generation
rng(sprev);

PER и значения BER форм волны BR/EDR Bluetooth меньше с AFH по сравнению со скачкообразным движением основной частоты.

Этот пример симулирует сквозную цепь приемника передатчика, чтобы учиться, как AFH смягчает интерференцию между BR/EDR Bluetooth и сигналами WLAN. Результаты симуляции проверяют, что PER и BER форм волны BR/EDR Bluetooth с интерференцией WLAN меньше с AFH по сравнению со скачкообразным движением основной частоты.

Приложение

Пример использует эту функцию.

  • bluetoothFrequencyHop: Bluetooth BR/EDR образовывает канал индекс для скачкообразного движения частоты

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

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

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

Похожие темы