Этот раздел объясняет, как отправить данные от модели Simulink® до рабочей области MATLAB®, таким образом, можно анализировать результаты симуляций более подробно.
Можно использовать блок To Workspace от DSP System Toolbox™ / библиотека Sinks, чтобы отправить данные в рабочее пространство MATLAB как вектор. Например, можно отправить данные о коэффициенте ошибок из модели Кода Хемминга, описанной в разделе Reducing the Error Rate Using a Hamming Code. Чтобы вставить блок To Workspace в модель, выполните эти шаги:
Чтобы открыть модель, в посдказке MATLAB, вводят doc_hamming
.
Чтобы добавить блок To Workspace, начните вводить имя 'к рабочей области' в окне модели и выберите блок To Workspace из DSP System Toolbox / библиотека Sinks. Соедините его как показано.
Больше чем один блок To Workspace доступен. Обязательно выберите To Workspace из подбиблиотеки DSP System Toolbox / Sinks.
Чтобы сконфигурировать блок To Workspace, выполните эти шаги:
Дважды кликните блок, чтобы отобразить его диалоговое окно.
Введите hammcode_BER
в поле Variable name.
Введите 1
в поле Limit data points to last. Это ограничивает выходной вектор значениями на итоговом временном шаге симуляции.
Нажмите OK.
Когда вы запускаете симуляцию, модель отправляет выход блока Error Rate Calculation к рабочей области как вектор размера 3, названный hamming_BER
. Записи этого вектора совпадают с показанными блоком Error Rate Display.
После выполнения симуляции можно просмотреть выход блока To Workspace путем ввода следующих команд в посдказке 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 к open the starter model
,
Дважды кликните блок Binary Symmetric Channel, чтобы открыть его диалоговое окно и выбрать Output error vector. Это создает выходной порт для ошибочных данных.
Переместите блоки, чтобы создать место так, чтобы можно было вставить блоки Hamming Decoder и Hamming Encoder. Чтобы найти их, начните вводить Hamming
в окне модели. Выберите их из представленных опций. Они Hamming Encoder и блоки Hamming Decoder находятся в Communications Toolbox™ / Выявление ошибок и Коррекция / подбиблиотека Block.
Добавьте три блока To Workspace в окно модели и соедините их как показано в предыдущей фигуре.
Больше чем один блок To Workspace доступен. Обязательно выберите To Workspace из подбиблиотеки DSP System Toolbox / Sinks.
Дважды кликните левый блок To Workspace.
Введите Tx
в поле Variable name в диалоговом окне блока. Блок отправляет переданный сигнал в рабочую область как массив под названием Tx
.
В поле Save 2-D signals as выберите 3-D array (concatenate along third dimension)
. Это сохраняет каждую систему координат как отдельный столбец массива Tx
.
Нажмите OK.
Дважды кликните средний блок To Workspace:
Введите errors
в поле Variable name.
В поле Save 2-D signals as выберите 3-D array (concatenate along third dimension)
. Это сохраняет каждую систему координат как отдельный столбец массива Tx
.
Нажмите OK.
Дважды кликните правильный блок To Workspace:
Введите 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
. 1 в diffs
указывает на тот Tx
и Rx
отличайтесь в том положении.
Можно определить индексы систем координат, соответствующих, чтобы передать слова, которые неправильно декодируются со следующей командой MATLAB:
error_indices = find(diffs);
1 в векторном not_equal
указывает, что существует по крайней мере одно различие между соответствующей системой координат Tx
и Rx
. Векторный error_indices
записывает индексы где Tx
и Rx
отличаться. Чтобы просмотреть первое неправильно декодируемое слово, ввести
Tx(:,:,error_indices(1))
Чтобы просмотреть соответствующую систему координат ошибок, ввести
errors(:,:,error_indices(1))
Анализируйте эти данные, чтобы определить ошибочные шаблоны, которые приводят к неправильному декодированию.