Bit Error Rate Analysis

Анализ эффективности BER коммуникационных систем

Описание

Приложение Bit Error Rate Analysis вычисляет вероятность битовой ошибки (BER) как функцию от энергии на бит к шуму степени коэффициента спектральной плотности (E b/ N 0). Используя это приложение, вы можете:

  • Сгенерируйте данные BER для коммуникационной системы и анализируйте эффективность используя:

    • Симуляции Монте-Карло MATLAB® функции и Simulink® модели.

    • Теоретические выражения закрытой формы для выбранных типов коммуникационных систем.

    • Запустите системы, содержащиеся в функциях симуляции MATLAB или моделях Simulink. После того, как вы создали функцию или модель, которая симулирует систему, Bit Error Rate Analysis приложение итератирует над вашим выбором значений E b/ N 0 и собирает результаты.

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

  • Подбор кривой к набору данных моделирования.

  • Постройте график доверительных уровней данных моделирования.

  • Отправьте данные BER в рабочее пространство MATLAB или в файл для дальнейшей обработки.

Для получения дополнительной информации смотрите Использование приложения Bit Error Rate Analysis.

Bit Error Rate Analysis app

Откройте приложение Bit Error Rate Analysis

  • MATLAB Toolstrip: На вкладке Apps, в разделе Signal Processing and Communications, щелкните значок приложения.

  • Командная строка MATLAB: Ввод bertool.

Примеры

расширить все

Сгенерируйте теоретическую оценку эффективности BER для 16-QAM ссылки в AWGN.

Откройте приложение Bit Error Rate Analysis.

bertool

Установите эти параметры в заданные значения: Eb/N0 range в 0:10, Modulation type к QAM, и Modulation order к 16.

Постройте график кривой BER нажав Plot.

Симулируйте BER с помощью пользовательской функции MATLAB. По умолчанию приложение использует viterbisim.m симуляция.

Откройте приложение Bit Error Rate Analysis.

bertool

На вкладке Monte Carlo установите параметр Eb/N0 range равным 1:.5:6. Запустите симуляцию и постройте график предполагаемых значений BER нажатием Run.

На вкладке Theoretical установите Eb/N0 range равным 1:6 и установите Modulation order равным 4. Включите сверточное кодирование путем выбора Convolutional. Щелкните Plot, чтобы добавить теоретическую верхнюю границу кривой BER к графику.

Добавьте код в шаблон функции симуляции, заданный в теме Template for Simulation Function, чтобы запустить его на вкладке Monte Carlo Bit Error Rate Analysis.

Подготовка функции

Скопируйте шаблон из темы Template for Simulation Function в новый файл MATLAB в редакторе MATLAB. Сохраните файл в папке по пути MATLAB, используя имя файла bertool_simfcn.

Разместите строки кода, которые инициализируют параметры или создают объекты, используемые в симуляции, в отмеченном разделе шаблона Set up initial parameters. Этот код сопоставляет переменные симуляции с входными параметрами шаблона. Для примера, snr сопоставляется с EbNo.

% Set up initial parameters.
siglen = 1000; % Number of bits in each trial
M = 2;         % DBPSK is binary
snr = EbNo;    % Because of binary modulation

% Create an ErrorRate calculator System object to compare 
% decoded symbols to the original transmitted symbols.
errorCalc = comm.ErrorRate;

Поместите код для основных задач симуляции в отмеченный раздел шаблона Proceed with simulation. Этот код включает основные задачи симуляции, после выполнения всех работ по настройке.

    msg = randi([0,M-1],siglen,1); % Generate message sequence
    txsig = dpskmod(msg,M);        % Modulate
    hChan.SignalPower = ...        % Calculate and assign signal power
        (txsig'*txsig)/length(txsig); 
    rxsig = awgn(txsig,snr,'measured'); % Add noise
    decodmsg = dpskdemod(rxsig,M);      % Demodulate
    berVec = errorCalc(msg,decodmsg);   % Calculate BER
    totErr = totErr + berVec(2);
    numBits = numBits + berVec(3);

После вставки этих двух секций кода в шаблон, bertool_simfcn функция совместима с приложением Bit Error Rate Analysis. Полученный код напоминает этот сегмент кода.

function [ber,numBits] = bertool_simfcn(EbNo,maxNumErrs,maxNumBits,varargin)
%
%   See also BERTOOL and VITERBISIM.

% Copyright 2020 The MathWorks, Inc.

% Initialize variables related to exit criteria.
totErr = 0;  % Number of errors observed
numBits = 0; % Number of bits processed

% --- Set up the simulation parameters. ---
% --- INSERT YOUR CODE HERE.
% Set up initial parameters.
siglen = 1000; % Number of bits in each trial
M = 2;         % DBPSK is binary.
snr = EbNo;    % Because of binary modulation
% Create an ErrorRate calculator System object to compare
% decoded symbols to the original transmitted symbols.
errorCalc = comm.ErrorRate;

% Simulate until the number of errors exceeds maxNumErrs
% or the number of bits processed exceeds maxNumBits.
while((totErr < maxNumErrs) && (numBits < maxNumBits))

    % Check if the user clicked the Stop button of BERTool.
    if isBERToolSimulationStopped(varargin{:})
      break
    end
  
    % --- Proceed with the simulation.
    % --- Update totErr and numBits.
    % --- INSERT YOUR CODE HERE.
    msg = randi([0,M-1],siglen,1); % Generate message sequence
    txsig = dpskmod(msg,M);        % Modulate
    hChan.SignalPower = ...        % Calculate and assign signal power
        (txsig'*txsig)/length(txsig); 
    rxsig = awgn(txsig,snr,'measured'); % Add noise
    decodmsg = dpskdemod(rxsig,M);      % Demodulate
    berVec = errorCalc(msg,decodmsg);   % Calculate BER
    totErr = totErr + berVec(2);
    numBits = numBits + berVec(3);
end % End of loop

% Compute the BER.
ber = totErr/numBits;

Функция имеет входы, чтобы задать приложение и скалярные величины для EbNo, maxNumErrs, и maxNumBits которые предусмотрены приложением. приложение Bit Error Rate Analysis является входом, потому что функция контролирует и реагирует на команду stop в приложении bertool_simfcn функция исключает код, относящийся к графическому изображению, аппроксимированию кривыми и доверию интервалам, потому что Bit Error Rate Analysis приложение позволяет вам выполнять аналогичные задачи в интерактивном режиме без написания кода.

Использование подготовленной функции

Выполняйте bertool_simfcn в приложении Bit Error Rate Analysis.

Откройте приложение Bit Error Rate Analysis, а затем выберите вкладку Monte Carlo.

Установите эти параметры в заданные значения: Eb/N0 range в 0:10, Simulation environment к MATLAB, Function name к bertool_simfcn, Number of errors к 5, и Number of bits к 1e8.

Parameter settings on the Monte Carlo tab of the Bit Error Rate Analysis app.

Нажмите Run.

Приложение Bit Error Rate Analysis вычисляет результаты и затем строит их графики. В этом случае результаты не падают вдоль гладкой кривой, потому что симуляция требовалось только пять ошибок для каждого значения в EbNo.

DBPSK modulation BER plot generated with number of errors set to five.

Подбор кривой к ряду точек в окне BER Figure путем выбора параметра Fit в средстве просмотра данных.

Data set listed in the data viewer pane of the Bit Error Rate Analysis app

Приложение Bit Error Rate Analysis строит графики подобранной кривой, как показано на этом рисунке.

DBPSK modulation BER plot with fitted curve.

Используйте приложение Bit Error Rate Analysis, чтобы вычислить BER как функцию Eb/N0. Приложение анализирует эффективность с помощью симуляций Монте-Карло функций MATLAB ® и моделей Simulink ® или теоретических выражений закрытой формы для выбранных типов коммуникационных систем. Код в функции mpsksim.m обеспечивает симуляцию M-PSK, которую можно запустить с вкладки Monte Carlo приложения.

Откройте приложение Bit Error Rate Analysis при помощи bertool функция.

bertool

На вкладке Монте-Карло установите Eb/N0 параметр области значений 1:1:5 и параметр имя функции для mpsksim.

Откройте mpsksim функцию для редактирования, задать M=2, и сохраните измененный файл.

open mpsksim

Запуск mpsksim.m настроить функцию можно нажав Запуск на вкладке Monte Carlo в приложении.

После того, как приложение симулирует набор из Eb/N0 точки, обновите имя результатов набора данных BER путем выбора simulation0 в поле BER Data Set и вводе текста M=2 для переименования набора результатов. Легенда на рисунке BER обновляет метку на M=2.

Обновите значение для M в mpsksim функцию, повторяющую этот процесс для M = 4, 8, и 16. Для примера эти цифры приложения Bit Error Rate Analysis и BER Окна рисунка показа результаты для изменения M значения.

Параллельный сдвиг ОСШ с использованием приложения Bit Error Rate Analysis

Использование parfor функция, вы можете запустить каждый Eb/N0 Точка параллельно путем конфигурирования функции симуляции аналогична функции mpsksim_parfor.m. Потому что parfor не может передать стоповый сигнал параллельным рабочим, вы не сможете остановить симуляцию, нажав кнопку Stop в диалоговом окне Симуляция Монте-Карло.

Используйте симуляционную модель Simulink, чтобы запустить во вкладке Monte Carlo приложения Bit Error Rate Analysis. Сравните эффективность BER результатов симуляции Simulink с теоретическими результатами BER.

Подготовка модели

Откройте модель путем ввода doc_bpsk в командной строке MATLAB.

doc_bpsk

Simulink model of BPSK modulation simulation.

Инициализируйте параметры в рабочем пространстве MATLAB, чтобы избежать использования неопределенных переменных как параметры блоков.

EbNo = 0;
maxNumErrs = 100;
maxNumBits = 1e8;

Убедитесь, что приложение Bit Error Rate Analysis использует правильное количество шума каждый раз, когда оно запускает симуляцию, путем открытия диалогового окна для блока AWGN Channel и проверки, что параметр Es/No установлен на EbNo.

Примечание

Для BPSK-модуляции E s/ N 0 эквивалентно E b/ N 0.

Убедитесь, что приложение Bit Error Rate Analysis использует правильные критерии остановки для каждой итерации путем:

  • Открытие диалогового окна для блока Error Rate Calculation и проверка того, что для Target number of errors задано значение maxNumErrs и что Maximum number of symbols установлено на maxNumBits.

  • Проверка, что время остановки симуляции установлено на Inf.

Включите приложение Bit Error Rate Analysis для доступа к BER, результаты которого вычисляет блок Error Rate Calculation, убедившись, что параметр BER variable name в приложении соответствует Variable name набора параметров в блоке To Workspace (Simulink), который соединяется с выходом блока Error Rate Calculation.

Совет

Существует несколько To Workspace блоков. Выберите блок To Workspace из подфрагмента DSP System Toolbox™/Sinks.

Использование подготовленной модели

Запуск doc_bpsk модель в приложении Bit Error Rate Analysis.

Откройте приложение Bit Error Rate Analysis, а затем выберите вкладку Monte Carlo.

Установите эти параметры в заданные значения: Eb/N0 range в 0:9, Simulation environment к Simulink, Function name к doc_bpsk, Number of errors к 100, и Number of bits к 1e8.

Parameter settings on the Monte Carlo tab of the Bit Error Rate Analysis app.

Нажмите Run.

Приложение Bit Error Rate Analysis вычисляет результаты и затем строит их графики.

BER figure of BSPK modulation.

Сравните эти результаты симуляции с теоретическими результатами, щелкнув вкладку Theoretical в приложении Bit Error Rate Analysis и задав Eb/N0 range 0:9.

Theoretical tab on Bit Error Rate Analysis app configured for BPSK modulation.

Нажмите Plot.

Приложение Bit Error Rate Analysis строит графики теоретической кривой в окне BER Figure вместе с более ранними результатами симуляции.

BER figure of BSPK modulation with theoretical results curve.

Параметры

Теоретический

Область значений значений E b/ N 0, над которыми оценивается BER, задается в виде скаляра или вектора. Модули указаны в дБ.

Пример: 5:10 задает оценку значений E b/ N 0 в диапазоне [5, 10] с шагом 1 дБ.

Тип канала, по которому оценивается BER, задается как AWGN, Rayleigh, или Rician. The Rayleigh и Rician опции соответствуют плоским затухающим каналам.

Тип модуляции ссылки связи, заданный как PSK, DPSK, OQPSK, PAM, QAM, FSK, MSK, или CPFSK.

Порядок модуляции ссылки связи, заданный как 2, 4, 8, 16, 32, или 64.

Выберите этот параметр, чтобы включить дифференциальное кодирование входных данных.

Коэффициент корреляции, заданный как действительный скаляр в области значений [-1, 1].

Зависимости

Чтобы включить этот параметр, установите Modulation type равным FSK.

Индекс модуляции, заданный как положительный действительный скаляр.

Зависимости

Чтобы включить этот параметр, установите Modulation type равным CPFSK.

  • Выберите этот параметр, чтобы включить когерентную демодуляцию входных данных.

  • Очистите этот параметр, чтобы включить некогерентную демодуляцию входных данных.

Зависимости

Чтобы включить этот параметр, установите Modulation type равным FSK или MSK.

Тип канального кодирования, используемый при оценке теоретического BER, заданный как None, Convolutional или Block.

Ошибка синхронизации в процессе демодуляции, заданная как Perfect synchronization, Normalized timing error или RMS phase noise (rad).

  • Когда вы устанавливаете Synchronization, Perfect synchronization в процессе демодуляции не встречается ошибок синхронизации.

  • Когда вы устанавливаете Synchronization на Normalized timing error, можно задать нормированную ошибку синхронизации как скаляр в области значений [0, 0,5].

  • Когда вы устанавливаете Synchronization на RMS phase noise (rad), можно задать уровень шума фазы RMS как неотрицательный скаляр. Модули указаны в радианах

Зависимости

Чтобы включить этот параметр, установите Modulation type равным PSK, Modulation order к 2и Channel coding к None.

Способ принятия решения о декодировании, используемый для декодирования принятых данных, указанный как Hard или Soft.

Зависимости

Чтобы позволить этот параметр, установите Channel coding в Convolutional или установите Channel coding в Block и установите Coding type в General.

Решетка сверточного кода, заданная как структурная переменная. Вы можете сгенерировать эту структуру при помощи poly2trellis функция.

Зависимости

Чтобы включить этот параметр, установите Channel coding равным Convolutional.

Тип блочного кодирования, используемый в оценке BER, задается как General, Hamming, Golay, или Reed-Solomon.

Зависимости

Чтобы включить этот параметр, установите Channel coding равным Block.

Длина кодового слова, заданная как положительное целое число.

Зависимости

Чтобы включить этот параметр, установите Channel coding на Block и установите Coding type на General.

Длина сообщения, заданная как положительное целое число, такое что K меньше N.

Зависимости

Чтобы включить этот параметр, установите Channel coding на Block и установите Coding type на General.

Минимальное расстояние кода (N, K) блок, заданное в виде положительного целого числа.

Зависимости

Чтобы включить этот параметр, установите Channel coding на Block и установите Coding type на General.

Монте-Карло

Область значений значений E b/ N 0, над которыми оценивается BER, задается в виде скаляра или вектора. Модули указаны в дБ.

Пример: 4:2:10 задает оценку E b/ N 0 в диапазоне [4, 10] с шагом 2 дБ.

Среда симуляции, заданная как MATLAB или Simulink.

Имя функции MATLAB для запуска приложения для симуляции Монте-Карло.

Зависимости

Чтобы включить этот параметр, установите Simulation environment равным MATLAB.

Имя модели Simulink для запуска приложения для симуляции Монте-Карло.

Зависимости

Чтобы включить этот параметр, установите Simulation environment равным Simulink.

Имя переменной, содержащей данные моделирования BER. Чтобы вывести данные моделирования BER в рабочее пространство MATLAB, можно назначить это имя переменной в качестве Variable name значения параметров в блоке To Workspace (Simulink).

Совет

Существует несколько To Workspace блоков. Выберите блок To Workspace из вложенного списка DSP System Toolbox/Sinks.

Зависимости

Чтобы включить этот параметр, установите Simulation environment равным Simulink.

Количество ошибок, которые будут измерены до остановки симуляции, заданное в виде положительного целого числа. Обычно, чтобы получить точную оценку BER, достаточно 100 измеренных ошибок.

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

Примечание

Симуляция Монте-Карло останавливается, когда достигается либо количество ошибок, либо количество бит порога.

Совет

  • Остановить симуляцию можно нажав Stop в диалоговом окне Симуляции Монте-Карло.Monte Carlo Simulation progress dialog box, which has a stop button

Вопросы совместимости

расширить все

Поведение изменено в R2020b

Представлено до R2006a