Предположим, что изменения параметров качества линии связи описываются однородной дискретной цепью Маркова с двумя состояниями (0 – хорошее состояние канала, 1 – плохое). Эти изменения имеют место в моменты начала передачи очередного бода. Переходы из одного состояния в другое описываются матрицей вероятностей переходов: (стохастическая матрица).
Каждое состояние характеризуется собственным значением параметра SNR (отношение сигнал/шум).
При моделировании цифровой передачи данных необходимо отслеживать состояние канала в каждый момент времени. Для определения вероятности перехода из одного состояния в другое (или то же самое) будем использовать генератор случайных чисел, равномерно распределенных на интервале от нуля до единицы.
Лабораторная работа №1
Подготовка модели цифрового канала передачи данных
Цель работы: Моделирование прохождения сигнала в цифровом канале передачи данных.
Подготовка к лабораторной работе:
1. Повторить программирование в системе Mathcad.
|
|
2. Изучить соответствующие разделы в изданиях [1-3].
Порядок выполнения работы:
1. Сформировать четыре последовательности:
· состоящую из 500 нулей;
· состоящую из 500 единиц;
· состоящую из чередования 250 нулей и единиц – 01;
· текстовую строку, содержащую не менее 60-ти символов (60-70).
2. Разработать Mathcad-функцию преобразования десятичного числа, занимающего два байта в памяти, в бинарную последовательность, используя алгоритм взятия остатков от деления десятичного числа на два, приблизительно такого вида:
Bin:= dec2Bin(Dec),
где Bin – результат (вектор нулей и единиц размерностью 16), Dec – десятичное число, dec2Bin() – функция преобразования.
Примечание: Рекомендуется применять встроенные Mathcad-функции mod() и floor() (описание функций смотри в приложении 2).
3. Разработать Mathcad-функцию преобразования текстовой строки в последовательность бит с использованием функции из п.2 приблизительно такого вида:
BitSeq:= txt2Bit(TxtSeq),
где BitSeq – битовая последовательность, TxtSeq – текстовая строка, txt2Bit() – функция преобразования.
Примечание: Для преобразования строки в вектор десятичных ASCII-кодов использовать встроенную Mathcad-функцию str2vec() (приложение 2).
Для создания непрерывной последовательности бит использовать встроенную Mathcad-функцию stack() (приложение 2).
4. Разработать Mathcad-функцию преобразования двоичной последовательности (16 бит) в десятичное число, используя алгоритм преобразования числа в двоичной системе счисления в десятичное, приблизительно такого вида:
Dec:= bin2Dec(Bin),
где Dec – десятичное число, Bin – двоичная последовательность (16 бит), bin2Dec() – функция преобразования.
|
|
5. Разработать Mathcad-функцию преобразования битовой последовательности в текст с использованием функции из п.4 приблизительно такого вида:
TxtSeq:= bit2Txt(BitSeq),
где TxtSeq – текстовая строка, BitSeq – битовая последовательность, bit2Txt() – функция преобразования.
Примечание: Для извлечения 16-битовой последовательности двоичных чисел применять встроенную Mathcad-функцию submatrix() (приложение 2).
Для преобразования вектора десятичных чисел в текстовую строку применять встроенную Mathcad-функцию vec2str() (приложение 2).
6. Разработать Mathcad-функцию вычисления вероятности ошибки на бит при передаче битовой последовательности приблизительно такого вида:
BitER:= berCalc(TransmitSeq, ReceiveSeq),
где BitER – вероятность ошибки на бит, TransmitSeq – переданная последовательность бит, ReceiveSeq – принятая последовательность бит, berCalc() – функция вычисления вероятности ошибки.
Использовать поэлементное сравнение двух последовательностей с инкрементом счетчика ошибок при несовпадении. Полученное значение счетчика поделить на длину последовательности для вычисления BER.
7. Разработать Mathcad-функцию вычисления вероятности ошибки на символ при передаче текстовой строки приблизительно такого вида:
SymER:= serCalc(TransmitTxt, ReceiveTxt),
где SymER – вероятность ошибки на символ, TransmitTxt – переданный текст, ReceiveTxt – принятый текст, serCalc() – функция вычисления вероятности ошибки, аналогичная функции berCalc() из п.6. Удобно при подсчете SER сравнивать поэлементно векторы десятичных ASCII-кодов текстовых строк.
8. Проверить работу функций из пп.2-5 на любом примере.
9. Преобразовать текстовую строку, заданную в п.1, в битовую последовательность с помощью функции из пп.2, 3.
Содержание отчёта по лабораторной работе:
1. Номер название и цель лабораторной работы.
2. Задание к лабораторной работе.
3. Разработанные в лабораторной работе функции.
4. Результаты выполнения с пояснениями.
5. Выводы по лабораторной работе.
Контрольные вопросы:
1. Что представляют собой телекоммуникационные системы?
2. Перечислите виды каналов связи.
3. Какие параметры каналов связи вы знаете?
4. Какие требования предъявляются к цифровым каналам передачи данных?
5. Чем определяется качество линии связи?
6. Что такое интенсивность битовой ошибки и как вычислить ее значение при моделировании?
Лабораторная работа №2
Разработка модели цифрового канала передачи данных
Цель работы: Исследование влияния помех в канале передачи данных на прохождение сигнала методами компьютерного моделирования.
Подготовка к лабораторной работе:
1. Повторить программирование в системе Mathcad.
2. Изучить соответствующие разделы в изданиях [1-3].
Порядок выполнения работы:
1. Определить два состояния канала как состояния цепи Маркова: 0 – связь хорошая, 1 – связь плохая и задать переходы из одного состояния в другое с помощью матрицы вероятностей переходов – P.
2. Определить SNR – соотношение сигнал/шум (dB) для двух состояний канала как вектор из двух элементов.
3. Определить Nф – стандартное отклонение фонового шума канала.
4. Написать Mathcad-функцию изменения качества связи за один отсчет на основе матрицы вероятностей переходов, приблизительно такого вида:
State:= nextState(PreviousState, P),
где State – текущее состояние канала, PreviousState – предыдущее состояние, P – матрица вероятностей переходов, а nextState() – функция, определяющая новое состояние канала.
Примечание: Использовать встроенную Mathcad-функцию rnd() (приложение 2)
5. Выбрать величину погонного затухания из таблицы П.1 для заданного по варианту типа связи.
6. Вычислить величину коэффициента затухания A,соответствующую длине линии.
7. Написать Mathcad-функцию, моделирующую прохождение сигнала по каналу связи с искажениями и ослаблением, приблизительно такого вида:
ReceiveSeq:= channel(TransmitSeq, P, A, InitialState,Nф),
|
|
где ReceiveSeq – принятый сигнал, TransmitSeq – переданный сигнал, а InitialState – начальное состояние канала, Nф – характеристика фонового шума в канале, A – коэффициент затухания из п.6, channel() – функция, описывающая модель канала связи.
Приблизительное содержание функции channel():
· преобразование входного сигнала в амплитудно-частотную характеристику с помощью преобразований Фурье (функция cfft() из приложения 2);
· перемножение АЧХ сигнала с коэффициентом затухания;
· обратное преобразование Фурье (функция icfft() в приложении 2);
· добавление гауссовского шума с использованием функции rnorm() (приложение 2).
8. Проверить работу функций, из пп. 4, 7 на примере фиксированной последовательности бит.
9. Оформить отчет по лабораторной работе в виде рабочего листа Mathcad.
10. Сдать и защитить работу.
Содержание отчёта по лабораторной работе:
1. Номер название и цель лабораторной работы.
2. Задание к лабораторной работе.
3. Разработанные в лабораторной работе функции.
4. Результаты выполнения с пояснениями.
5. Выводы по лабораторной работе.
Контрольные вопросы:
1. Охарактеризуйте структурную схему системы связи.
2. Перечислите виды каналов связи.
3. Какие характеристики каналов связи вы знаете?
4. Дайте определение отношения сигнал/шум.
5. Что такое затухание сигнала, погонное затухание?
6. Как затухание влияет на качество передачи?
7. Для чего используются преобразования Фурье?
Литература
1. Олифер В.Г., Олифер Н.А. Компьютерные сети. Принципы, технологии, протоколы: Учебник для вузов. 3-е изд. – СПб.: Питер, 2006. – 958 с.
2. Столлингс В. Компьютерные системы передачи данных, 6-е издание.: Пер. с англ. – М.: Издательский дом «Вильямс», 2002. – 928 с.
3. Блэк Ю. Сети ЭВМ: Протоколы, стандарты, интерфейсы: Пер. с англ. – М.: Мир, 1990. – 506 с.
4.
ПРИЛОЖЕНИЕ 1
Таблица П.1 – Варианты к лабораторной работе №2
№ рабочего места | Тип передающей среды | Величина погонного затухания | Длина линии, м |
Витая пара кат.5 | |||
Витая пара кат.6 | |||
Коаксиальный кабель | |||
Оптоволокно | |||
Беспроводная среда | |||
Витая пара кат.5 | |||
Витая пара кат.6 | |||
Коаксиальный кабель | |||
Оптоволокно | |||
Беспроводная среда | |||
Витая пара кат.5 | |||
Витая пара кат.6 | |||
Коаксиальный кабель | |||
Оптоволокно | |||
Беспроводная среда |
ПРИЛОЖЕНИЕ 2
|
|
Таблица П.2 – Некоторые встроенные Mathcad-функции
Функция | Описание функции |
ceil(X) | Округляет значение аргумента X до ближайшего большего целого. |
cols(M) | Возвращает количество столбцов матрицы (вектора) M. |
cfft(S) | Выполняет преобразование Фурье последовательности S. |
floor(X) | Округляет значение аргумента X до ближайшего меньшего целого. |
Icfft(Z) | Выполняет обратное преобразование Фурье последовательности Z. |
last(V) | Возвращает индекс последнего элемента вектора V. |
length(V) | Возвращает длину вектора V. |
mod(X,Y) | Возвращает остаток от деления аргумента X на аргумент Y. |
rows(M) | Возвращает количество строк матрицы (вектора) M. |
rnd(X) | Возвращает равномерно распределенное на интервале [0; X] число. |
rnorm(N, m, s) | Возвращает вектор из N элементов случайных нормально распределенных чисел со средним – m и среднеквадратическим отклонением s. |
stack(A, B, С, D) | Объединяет векторы A, B, C, D в один вектор суммарной длины в том порядке, в каком они передаются в функцию. |
str2vec(S) | Возвращает вектор десятичных ASCII – кодов символов строки S. |
submatrix(M,ir,jr,ic,jc) | Извлекает подматрицу из матрицы М со строки ir по jr и со столбца ic по jc. |
vec2str(D) | Преобразует вектор десятичных ASCII – кодов D в текстовую строку. |
Елена Викторовна Кокорева
Алексей Валерьевич Сединин
Александр Федорович Ярославцев