Материал: Методические указания к самостоятельным работам по дисциплине «Моделирование систем и сетей телекоммуникаций» для студентов специальности «Информационная безопасность телекоммуникационных систем». Разинкин К.А

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам

Рис. 10. Результаты моделирования: Ошибка кратности T2=ER=2. Code_T и Code_R не одинаковы. Часть ошибок осталась

Кодек Рида-Соломона

Выполнить моделирование кодека Рида-Соломона RS(5,15) без ошибок T0=0 и с ошибками с кратностью T1=4, T2=8. Создаем модель в среде Simulink (рис. 11).

Рис. 11. Модель в среде Simulink 14

В модель включаем:

Источник данных, генератор случайных целых чисел

– Random-Integer. Communications Blockset =>Comm Sources => Random Data Sources. Он вырабатывает числа в интервале от 0 до N-1. Выход генератора нужно сделать в виде фрейма из K чисел (рис. 12).

Рис. 12. Окно параметров блока

Кодер Рида-Соломона – RS encoder (рис. 13). Блок находится в Communications Blockset => Error Detection and Correction => Block. Он по сообщению K формирует передаваемый код из N символов.

15

Рис. 13. Окно параметров блока

Умножитель Gain. Блок находится в Simulink => Commonly Used Blocks. Он умножает выход кодера на вектор ошибки E из 0 и 1, имитирующий ошибки в канале связи (ошибка может получиться при компоненте E, равном 0). Вектор E должен содержать N компонент, которые вычислим функцией rot90(randerr(N,1,N -ER)) (рис. 14). Получим вектор-

строку из N равновероятных нулей и единиц, из которых N -ER равны 1.

Декодер Рида-Соломона – RS decoder. Блок находится в Communications Blockset => Error Detection and Correction => Block. Декодер имеет два выхода: верхний декодированное сообщение, нижний – число исправленных ошибок. Для работы с нижним выходом в окне параметров блока нужно установить флаг отображения этого выхода.

16

Рис. 14. Окно параметров блока

Блоки Unbuffer Блок находится в Signal Processing Blockset => Signal management => Buffers. Они преобразуют фреймы в линейные последовательности, направляемые к виртуальному наблюдателю Scope.

Наблюдатель Scope. Блок находится в Simulink => Sinks. Он позволяет в общем масштабе времени наблюдать сигналы от блоков Buffer. Чтобы в графиках наблюдателя были заголовки, сделаем входам имена. Для этого двойным щелчком по линии входа вызовем окно ввода имени, в которое занесем имя. Зададим имена: для передаваемого сообщения – Message_T, для передаваемого кода Code_T, для принятого кода – Code_R, для декодированного сообщения

Message_R.

Индикатор Display. Блок находится в Simulink => Sinks. Он отображает число исправленных ошибок.

При моделировании с разными кратностями ошибок получим (рис. 15-17):

17

Рис. 15. Результаты моделирования: Ошибок нет, T0=ER=0. Code_T и Code_R одинаковы. Дисплей отображает 0

Рис. 16. Результаты моделирования: Ошибка кратности T1=ER=5. Code_T и Code_R не одинаковы. Все ошибки исправлены. Дисплей отображает их количество (5)

18

Источник: https://studfile.net/preview/16568602/