Bit Error Rate Analysis

Анализируйте эффективность BER систем связи

Описание

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

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

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

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

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

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

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

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

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

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

Bit Error Rate Analysis app

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

  • Панель инструментов MATLAB: На вкладке Apps, под Signal Processing and Communications, кликают по значку приложения.

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

Примеры

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

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

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

bertool

BER Analysis app mask

На вкладке Theoretical, установленной эти параметры на заданные значения: 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 к графику.

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

Подготовьте функцию

Скопируйте шаблон с Шаблона для темы Функции Симуляции в новый файл 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 является входом, потому что функция контролирует и отвечает на команду остановки в приложении. 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 путем выбора параметра 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 от вкладки Apps или путем выполнения bertool функция в командном окне MATLAB®.

На вкладке Monte Carlo, набор Eb/N0 параметр области значений к 1:1:5 и параметр Имени функции к mpsksim.

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

Запустите 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

Настройка по умолчанию для обработки Монте-Карло приложения Bit Error Rate Analysis автоматически использует параллельную обработку пула, чтобы обработать индивидуума Eb/N0 точки, когда у вас есть программное обеспечение Parallel Computing Toolbox™, но для обработки вашего кода симуляции:

  • Любой parfor функциональные циклы в вашем коде симуляции выполняются как стандартный for циклы.

  • Любой parfeval (Parallel Computing Toolbox) вызовы функции в вашем коде симуляции выполняется последовательно.

  • Любой spmd Вызовы оператора (Parallel Computing Toolbox) в вашем коде симуляции выполняются последовательно.

Используйте имитационную модель 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/N0 эквивалентен E b/N0.

Убедитесь, что приложение 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 наряду с более ранними результатами симуляции.

BER figure of BSPK modulation with theoretical results curve.

Параметры

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

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

Пример: 5:10 задает оценку значений E b/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.

Ошибка синхронизации в процессе демодуляции в виде 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/N0, по которым BER оценен в виде скаляра или вектора. Величины в дБ.

Пример: 4:2:10 задает оценку E b/N0 в области значений [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.

    Monte Carlo Simulation progress dialog box, which has a stop button

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

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

Поведение изменяется в R2020b

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