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

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

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

Можно использовать блок To Workspace (Simulink) из библиотеки DSP System Toolbox™/Sinks, чтобы отправить данные в рабочее пространство MATLAB в качестве вектора. Для примера можно отправить данные о вероятности ошибок из модели кода Хемминга, описанные в разделе Уменьшение частоты ошибок с помощью кода Хемминга. Чтобы вставить блок To Workspace (Simulink) в модель, выполните следующие шаги:

  1. Чтобы открыть модель, в приглашении подсказка MATLAB doc_hamming.

  2. Чтобы добавить блок To Workspace (Simulink), начните вводить имя 'to workspace' в окне модели и выберите блок To Workspace из библиотеки DSP System Toolbox/Sinks. Соедините его как показано.

Совет

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

Сконфигурируйте блок To Workspace

Чтобы сконфигурировать блок To Workspace (Simulink), выполните следующие шаги:

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

  2. Тип hammcode_BER в поле Variable name.

  3. Тип 1 в поле Limit data points to last. Это ограничивает вектор выхода значениями на конечном временном шаге симуляции.

  4. Нажмите OK.

Когда вы запускаете симуляцию, модель отправляет выход блока Error Rate Calculation в рабочую область как вектор размера 3, называемый hamming_BER. Значения этого вектора совпадают с записями, показанными блоком Error Rate Display.

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

После выполнения симуляции можно просмотреть выход блока To Workspace (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. Дважды кликните блок «Двоичный симметричный канал», чтобы открыть его диалоговое окно и выбрать Output error vector. Это создает выход порт для данных об ошибке.

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

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

    Совет

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

  5. Дважды кликните левый To Workspace (Simulink) блок.

    • Тип Tx в Variable name поле в диалоговом окне блока. Блок отправляет переданный сигнал в рабочую область как массив, называемый Tx.

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

    • Нажмите OK.

  6. Дважды кликните средний To Workspace (Simulink) блок:

    • Тип errors в поле Variable name.

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

    • Нажмите OK.

  7. Дважды кликните правый To Workspace (Simulink) блок:

    • Тип Rx в поле Variable name.

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

    • Нажмите OK.

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

После выполнения симуляции можно отобразить отдельные системы координат данных. Для примера отобразить десятую систему координат 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))

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