exponenta event banner

Анализ частоты битовых ошибок

Анализ производительности систем связи BER

Описание

Приложение Bit Error Rate Analysis вычисляет коэффициент битовых ошибок (BER) как функцию отношения спектральной плотности энергии на бит к мощности шума (Eb/N0). С помощью этого приложения можно:

  • Создание данных BER для системы связи и анализ производительности с помощью:

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

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

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

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

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

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

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

Дополнительные сведения см. в разделе Использование приложения для анализа частоты битовых ошибок.

Bit Error Rate Analysis app

Открыть приложение анализа частоты битовых ошибок

  • MATLAB Toolstrip: На вкладке Приложения в разделе Обработка сигналов и связь щелкните значок приложения.

  • командная строка MATLAB: Enter bertool.

Примеры

развернуть все

Создайте теоретическую оценку производительности BER для 16-QAM линии связи в AWGN.

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

bertool

Задайте для этих параметров указанные значения: Eb/N0 range to 0:10, Тип модуляции для QAMи порядок модуляции для 16.

Постройте график кривой BER, щелкнув График (Plot).

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

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

bertool

На вкладке Monte Carlo задайте для параметра диапазона Eb/N0 значение 1:.5:6. Выполните моделирование и постройте график расчетных значений BER, щелкнув Выполнить (Run).

На вкладке «Теоретический» задайте диапазон Eb/N0 равным 1:6 и установить порядок модуляции в 4. Включите сверточное кодирование, выбрав Сверточное. Щелкните График (Plot), чтобы добавить теоретическую верхнюю границу кривой BER к графику.

Добавьте код к шаблону функции моделирования, указанному в разделе «Шаблон функции моделирования», который будет запущен на вкладке «Монте-Карло» в разделе «Анализ частоты битовых ошибок».

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

Скопируйте шаблон из раздела «Шаблон для функции моделирования» в новый файл 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 to 0:10, Среда моделирования для MATLAB, Имя функции для bertool_simfcn, Количество ошибок для 5и количество битов для 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. Приложение анализирует производительность с помощью моделирования Monte Carlo функций MATLAB ® и моделей Simulink ® или теоретических выражений закрытой формы для выбранных типов систем связи. Код в функции mpsksim.m обеспечивает моделирование M-PSK, которое можно запустить с вкладки Monte Carlo приложения.

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

bertool

На вкладке Monte Carlo задайте для параметра диапазона Eb/N0 значение 1:1:5 и параметр Function name для 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 Figure показывают результаты для различных M значения.

Параллельный сдвиг SNR с использованием приложения для анализа частоты битовых ошибок

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

Используйте симуляционную модель 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 и проверив, что параметр Es/No имеет значение EbNo.

Примечание

Для модуляции BPSK Es/N0 эквивалентно Eb/N0.

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

  • Открытие диалогового окна для блока «Расчет частоты ошибок» и проверка того, что для параметра «Целевое количество ошибок» установлено значение maxNumErrs и максимальное количество символов устанавливается равным maxNumBits.

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

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

Совет

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

Использовать подготовленную модель

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

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

Задайте для этих параметров указанные значения: Eb/N0 range to 0:9, Среда моделирования для Simulink, Имя функции для doc_bpsk, Количество ошибок для 100и количество битов для 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.

Сравните эти результаты моделирования с теоретическими результатами, щелкнув вкладку «Теоретические» в приложении Bit Error Rate Analysis и установив Eb/N0 диапазон равным 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.

Параметры

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

Диапазон значений Eb/N0, по которым вычисляется BER, задается как скаляр или вектор. Единицы измерения находятся в дБ.

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

Тип канала, по которому оценивается BER, указанный как AWGN, Rayleigh, или Rician. 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.

Ошибка синхронизации в процессе демодуляции, заданная как совершенная синхронизация, нормализованная ошибка синхронизации или фазовый шум RMS (rad).

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

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

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

Зависимости

Чтобы включить этот параметр, установите для параметра Modulation type значение PSK, Порядок модуляции 2и канальное кодирование None.

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

Зависимости

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

Сверточная кодовая решетка, заданная как структурная переменная. Эту структуру можно создать с помощью poly2trellis функция.

Зависимости

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

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

Зависимости

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

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

Зависимости

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

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

Зависимости

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

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

Зависимости

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

Монте-Карло

Диапазон значений Eb/N0, по которым вычисляется BER, задается как скаляр или вектор. Единицы измерения находятся в дБ.

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

Среда моделирования, заданная как MATLAB или Simulink.

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

Зависимости

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

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

Зависимости

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

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

Совет

Существует несколько блоков «В рабочую область». Выберите блок «To Workspace» во вложенной библиотеке «DSP System Toolbox/Sinks».

Зависимости

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

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

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

Примечание

Моделирование Монте-Карло прекращается при достижении порогового значения количества ошибок или количества битов.

Совет

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

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

развернуть все

В R2020b изменилось поведение

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