В этом разделе объясняется, как отправить данные из Simulink® модель в MATLAB® рабочая область, чтобы можно было более подробно анализировать результаты симуляций.
Можно использовать блок To Workspace (Simulink) из библиотеки DSP System Toolbox™/Sinks, чтобы отправить данные в рабочее пространство MATLAB в качестве вектора. Для примера можно отправить данные о вероятности ошибок из модели кода Хемминга, описанные в разделе Уменьшение частоты ошибок с помощью кода Хемминга. Чтобы вставить блок To Workspace (Simulink) в модель, выполните следующие шаги:
Чтобы открыть модель, в приглашении подсказка MATLAB doc_hamming
.
Чтобы добавить блок To Workspace (Simulink), начните вводить имя 'to workspace' в окне модели и выберите блок To Workspace из библиотеки DSP System Toolbox/Sinks. Соедините его как показано.
Совет
Существует несколько To Workspace блоков. Выберите блок To Workspace из вложенного списка DSP System Toolbox/Sinks.
Чтобы сконфигурировать блок To Workspace (Simulink), выполните следующие шаги:
Дважды кликните блок, чтобы отобразить его диалоговое окно.
Тип hammcode_BER
в поле Variable name.
Тип 1
в поле Limit data points to last. Это ограничивает вектор выхода значениями на конечном временном шаге симуляции.
Нажмите 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, в рабочую область. Пример этого показан на следующем рисунке.
Тип doc_channel
в командной строке MATLAB, чтобы открыть стартовую модель.
Дважды кликните блок «Двоичный симметричный канал», чтобы открыть его диалоговое окно и выбрать Output error vector. Это создает выход порт для данных об ошибке.
Переместите блоки в место, чтобы можно было вставить Hamming Encoder и Hamming Decoder блоки. Чтобы найти их, начните печатать Hamming
в окне модели. Выберите их из представленных опций. Эти Hamming Encoder и блоки Hamming Decoder находятся в сублибрарии Communications Toolbox™/Error Detection and Correction/Block.
Добавьте три блока To Workspace (Simulink) в окно модели и соедините их, как показано на предыдущем рисунке.
Совет
Существует несколько To Workspace блоков. Выберите блок To Workspace из вложенного списка DSP System Toolbox/Sinks.
Дважды кликните левый To Workspace (Simulink) блок.
Тип Tx
в Variable name поле в диалоговом окне блока. Блок отправляет переданный сигнал в рабочую область как массив, называемый Tx
.
В Save 2-D signals as поле выберите 3-D array (concatenate along third dimension)
. Это сохраняет каждую систему координат как отдельный столбец массива Tx
.
Нажмите OK.
Дважды кликните средний To Workspace (Simulink) блок:
Тип errors
в поле Variable name.
В Save 2-D signals as поле выберите 3-D array (concatenate along third dimension)
. Это сохраняет каждую систему координат как отдельный столбец массива Tx
.
Нажмите OK.
Дважды кликните правый 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))
Проанализируйте эти данные, чтобы определить шаблоны ошибок, которые приводят к неправильному декодированию.