exponenta event banner

Экспорт данных в MATLAB

Использование блока в рабочей области

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

Можно использовать блок «В рабочую область» (Simulink) из библиотеки Toolbox™/Sinks системы DSP для отправки данных в рабочую область MATLAB в виде вектора. Например, можно отправить данные частоты ошибок из модели кода Хэмминга, описанной в разделе Уменьшение частоты ошибок с помощью кода Хэмминга. Чтобы вставить в модель блок В рабочую область (Simulink), выполните следующие действия.

  1. Для открытия модели по запросу MATLAB введите doc_hamming.

  2. Чтобы добавить блок «В рабочую область» (Simulink), начните вводить имя «в рабочую область» в окне модели и выберите блок «В рабочую область» из библиотеки DSP System Toolbox/Sinks. Подключите его, как показано на рисунке.

Совет

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

Настройка блока «В рабочую область»

Чтобы настроить блок «В рабочую область» (Simulink), выполните следующие действия.

  1. Дважды щелкните блок, чтобы открыть его диалоговое окно.

  2. Напечатать hammcode_BER в поле Имя переменной.

  3. Напечатать 1 в поле Limit data указывает на последнее. Это ограничивает выходной вектор значениями на последнем этапе моделирования.

  4. Нажмите кнопку ОК.

При выполнении моделирования модель отправляет выходные данные блока «Расчет частоты ошибок» в рабочую область в виде вектора размера 3, называемого hamming_BER. Значения этого вектора те же, что и в блоке отображения частоты ошибок.

Просмотр данных о частоте ошибок в рабочей области

После выполнения моделирования можно просмотреть выходные данные блока «В рабочую область» (Simulink), введя в подсказке MATLAB следующие команды:

format short e
hammcode_BER

Векторный вывод выглядит следующим образом:

hammcode_BER =
5.4066e-003  1.0000e+002  1.8496e+004

Команда format short e отображает записи вектора в экспоненциальной форме. Записи следующие:

  • Первая запись - это частота ошибок.

  • Вторая запись - общее число ошибок.

  • Третья запись представляет собой общее число проведенных сравнений.

Отправка данных о сигналах и ошибках в рабочую область

Чтобы проанализировать эффективность исправления ошибок кода Хэмминга, отправьте переданный сигнал, принятый сигнал и векторы ошибок, созданные блоком Binary Symmetric Channel, в рабочую область. Пример этого показан на следующем рисунке.

  1. Напечатать doc_channel в командной строке MATLAB для открытия стартовой модели.

  2. Дважды щелкните блок «Бинарный симметричный канал», чтобы открыть его диалоговое окно, и выберите «Вектор ошибки вывода». При этом создается выходной порт для данных об ошибках.

  3. Переместите блоки, чтобы освободить место для вставки блоков Hamming Encoder и Hamming Decoder. Чтобы найти их, начните вводить Hamming в окне модели. Выберите их из представленных опций. Эти блоки кодера Хэмминга и декодера Хэмминга находятся в поддиапазоне обнаружения Toolbox™/Error связи и коррекции/блока.

  4. Добавьте три блока в рабочую область (Simulink) в окно модели и соедините их, как показано на предыдущем рисунке.

    Совет

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

  5. Дважды щелкните левый блок «В рабочее пространство» (Simulink).

    • Напечатать Tx в поле Имя переменной в диалоговом окне блока. Блок отправляет передаваемый сигнал в рабочую область в виде массива с именем Tx.

    • В поле Save 2-D signals as выберите 3-D array (concatenate along third dimension). При этом каждый кадр сохраняется в виде отдельного столбца массива Tx.

    • Нажмите кнопку ОК.

  6. Дважды щелкните средний блок «В рабочее пространство» (Simulink):

    • Напечатать errors в поле Имя переменной.

    • В поле Save 2-D signals as выберите 3-D array (concatenate along third dimension). При этом каждый кадр сохраняется в виде отдельного столбца массива Tx.

    • Нажмите кнопку ОК.

  7. Дважды щелкните правой кнопкой мыши блок «В рабочее пространство» (Simulink):

    • Напечатать Rx в поле Имя переменной.

    • В поле Save 2-D signals as выберите 3-D array (concatenate along third dimension). При этом каждый кадр сохраняется в виде отдельного столбца массива Tx.

    • Нажмите кнопку ОК.

Просмотр данных о сигналах и ошибках в рабочей области

После выполнения моделирования можно просмотреть отдельные кадры данных. Например, для отображения десятого кадра Tx, в приглашении MATLAB

Tx(:,:,10)

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

Для отображения соответствующего кадра ошибок введите

errors(:,:,10)

Это возвращает вектор столбца длиной 7, соответствующий длине кодового слова.

Для отображения кадров 1-5 передаваемого сигнала введите

Tx(:,:,1:5)

Анализ данных о сигналах и ошибках

Для анализа данных моделирования можно использовать MATLAB. Например, чтобы идентифицировать различия между переданным и принятым сигналами, введите

diffs = Tx~=Rx;

Вектор diffs - XOR векторов Tx и Rx. A 1 в diffs указывает, что Tx и Rx отличаются в этом положении.

Определить индексы кадров, соответствующих неверно декодированным словам сообщения, можно с помощью следующей команды MATLAB:

error_indices = find(diffs);

A 1 в векторе not_equal указывает, что существует, по меньшей мере, одно различие между соответствующим кадром Tx и Rx. Вектор error_indices записывает индексы, где Tx и Rx различаются. Для просмотра первого неправильно декодированного слова введите

Tx(:,:,error_indices(1))

Чтобы просмотреть соответствующий кадр ошибок, введите

errors(:,:,error_indices(1))

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