Этот пример представляет сквозную симуляцию, чтобы продемонстрировать, как адаптивное скачкообразное движение частоты (AFH) изменяет последовательность скачкообразного движения частоты в базовой скорости (BR) Bluetooth® и физическом уровне расширенной скорости передачи данных (EDR) (PHY) и минимизирует удар интерференции WLAN, пользующейся Библиотекой Communications Toolbox™ для Протокола Bluetooth®. В отличие от скачкообразного движения основной частоты, AFH исключает каналы Bluetooth, которые являются источниками интерференции. Исключением этих каналов из списка доступных каналов AFH повторно присваивает передачу и прием пакетов на каналах с относительно меньшей интерференцией. Результаты симуляции в примере показывают, что значения пакетного коэффициента ошибок (PER) и частоты ошибок по битам (BER) симуляции PHY Bluetooth с интерференцией WLAN меньше с AFH по сравнению со скачкообразным движением основной частоты. Кроме того, пример показывает выбранный индекс канала на паз для скачкообразного движения основной частоты и AFH. Спектральная плотность мощности Bluetooth формы волны BR/EDR с интерференцией WLAN визуализируется с помощью спектра анализатор.
Стандарт 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 при помощи механизма скачкообразного движения частоты, заданного в Спецификации [1] Ядра Bluetooth. Сгенерированный Bluetooth форма волны BR/EDR является модулируемой частотой и затем искаженной интерференцией WLAN. Эта блок-схема показывает цепь передатчика и приемника Bluetooth.
Цепь передатчика
Выберите индекс канала для передачи.
Сгенерируйте случайные входные биты.
Сгенерируйте форму волны BR/EDR Bluetooth.
Примените смещение частоты на основе выбранного индекса канала.
Цепь приемника
Выберите индекс канала для приема.
Примените смещение частоты на основе выбранного индекса канала.
Декодируйте форму волны BR/EDR Bluetooth, чтобы получить выходные биты.
Беспроводной канал
Добавьте WLAN (IEEE 802.11b) интерференция к Bluetooth форма волны BR/EDR.
Добавьте 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
На предыдущем рисунке график слева показывает спектр формы волны 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');
Этот график отображает выбранный индекс канала на передачу или паз приема с помощью скачкообразного движения основной частоты. В этом случае все каналы используются каналы.
Классификация каналов
Каналы с большим количеством пакетных ошибок отмечены как плохие каналы. На основе бита и пакетных ошибок, собранных из вышеупомянутой симуляции, вычислите 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
В предыдущем графике можно заметить, что передача пакетов 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');
Этот график отображает выбранный индекс канала на передачу или паз приема с помощью 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 образовывает канал индекс для скачкообразного движения частоты
Пример использует этих помощников:
helperBluetoothPHY: Сконфигурируйте и симулируйте Bluetooth PHY
helperBluetoothChannel: Сконфигурируйте и симулируйте беспроводной канал
helperBluetoothGenerateWLANWaveform: Генерирует форму волны WLAN, которая будет добавлена как интерференция к формам волны Bluetooth
helperBluetoothWLANDSSSSpectrumMask: Вычисляет смежную степень интерференции канала с помощью WLAN 802.11b (DSSS) маски спектра
helperBluetoothPacketDuration: Вычислите длительность пакета Bluetooth
Специальная группа (SIG) Bluetooth. "Версия 5.2.https:" спецификации ядра Bluetooth//www.bluetooth.com.