close

Вход

Забыли?

вход по аккаунту

?

Programmir v sisteme matlab

код для вставкиСкачать
Федеральное агентство связи
Федеральное государственное образовательное бюджетное учреждение
высшего профессионального образования
ПОВОЛЖСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ
ТЕЛЕКОММУНИКАЦИЙ И ИНФОРМАТИКИ
ЭЛЕКТРОННАЯ
БИБЛИОТЕЧНАЯ СИСТЕМА
Самара
Поволжский Государственный Университет
Телекоммуникаций и Информатики
Факультет ИСТ
Кафедра ИВТ
МЕТОДИЧЕСКИЕ УКАЗАНИЯ
к лабораторным работам
"Программирование в системе MATLAB"
Компьютерное моделирование цифровых устройств
Автор-составитель: Акчурин Э.А. д.т.н., профессор
Рецензент: Тарасов В.Н. д.т.н., профессор
Самара
2012
2
Факультет информационных систем и технологий
Кафедра «Информатика и вычислительная техника»
Автор - д.т.н., профессор Акчурин Э.А.
Другие материалы по дисциплине Вы найдете на сайте
www.ivt.psati.ru
3
Введение................................................................................................................................................................................... 6
1. Первая модель в Simulink ...............................................................................................................7
2. Логические операции ......................................................................................................................13
2.1. Представление чисел ....................................................................................................................................... 13
2.2. Операции побитового сдвига .................................................................................................................. 14
2.3. Логика, модель с дисплями ....................................................................................................................... 16
2.4. Логика, модель со Scope .............................................................................................................................. 19
3. Переключатели ...................................................................................................................................21
3.1. Ручной переключатель Manual Switch .......................................................................................... 23
3.2. Переключатель Switch .................................................................................................................................. 24
3.3. Переключатель Multiport Switch ......................................................................................................... 26
4. Управление передачей данных ..................................................................................................28
4.1. Шифратор................................................................................................................................................................... 29
4.2. Дешифратор ............................................................................................................................................................. 31
4.3. Мультиплексер + демультиплексер .................................................................................................. 33
5. Счетчики ................................................................................................................................................35
5.1. Суммирующий счетчик с автосбросом ......................................................................................... 37
5.2. Суммирующий счетчик с внешним сбросом ........................................................................... 39
5.3. Суммирующий счетчик со сбросом по Hit................................................................................. 41
5.4. Вычитающий счетчик с автосбросом .............................................................................................. 43
5.5. Вычитающий счетчик с внешним сбросом................................................................................ 45
5.6. Вычитающий счетчик со сбросом по Hit ..................................................................................... 46
6. Элементы памяти ..............................................................................................................................49
6.1. Триггеры...................................................................................................................................................................... 49
6.1.1. SR триггер ........................................................................................................................................................ 51
6.1.2. D триггер ........................................................................................................................................................... 53
6.1.3. D триггер защелка .................................................................................................................................... 55
6.1.4. JK триггер......................................................................................................................................................... 56
6.2. Регистры ...................................................................................................................................................................... 59
6.2.1. Параллельный регистр ......................................................................................................................... 60
6.2.2. Регистр сдвига.............................................................................................................................................. 61
7. Цифровая обработка сигналов ...................................................................................................64
7.1. Наложение спектров ........................................................................................................................................ 66
7.2. Шумы квантования ........................................................................................................................................... 67
7.3. АЦП + ЦАП.............................................................................................................................................................. 70
7.4. БПФ .................................................................................................................................................................................. 71
8. Фильтры .................................................................................................................................................73
8.1. Аналоговый БИХ фильтр ............................................................................................................................ 75
8.2. Цифровой БИХ фильтр ................................................................................................................................. 77
8.3. Цифровой КИХ фильтр................................................................................................................................. 84
9. Модемы ..................................................................................................................................................90
9.1. Аналоговые модемы ........................................................................................................................................ 91
9.1.1. Аналоговый модем DSB..................................................................................................................... 92
9.1.2. Аналоговый модем DSBSC ............................................................................................................. 93
9.1.3. Аналоговый модем SSB...................................................................................................................... 96
4
9.1.4. Аналоговый модем FM........................................................................................................................ 98
9.1.5. Аналоговый модем PM...................................................................................................................... 100
9.2. Цифровые модемы ........................................................................................................................................... 102
9.2.1. Цифровой модем BPSK..................................................................................................................... 105
9.2.2. Цифровой модем QPSK .................................................................................................................... 107
9.2.3. Цифровой модем M-PSK ................................................................................................................. 109
9.2.4. Цифровой модем M-FSK ................................................................................................................. 110
9.2.5. Цифровой модем M-PAM ............................................................................................................... 113
9.2.6. Цифровой RECT_QAM модем ................................................................................................... 115
10. Кодеки ................................................................................................................................................117
10.1. Кодек Хэмминга ............................................................................................................................................. 120
10.2. Кодек BCH ........................................................................................................................................................... 124
10.3. Кодек Рида-Соломона ............................................................................................................................... 128
10.4. Сверточный кодек ......................................................................................................................................... 133
11. Инструмент BERTool .................................................................................................................136
11.1. Модемы ................................................................................................................................................................... 138
11.2. Кодеки ...................................................................................................................................................................... 141
5
Введение
Методическая разработка содержит лабораторные работы по компьютерному
моделированию цифровых устройств с использованием СКМ MATLAB с расширением Simulink. Она может использоваться для направления 200600.
Рекомендуемая литература:
1. Дьяконов В. MATLAB 6.5 SP1/7.0+Simulink 5/6. Основы применения. М.:
СОЛОН-Пресс, 2005.
2. Дьяконов В. MATLAB 6.5 SP1/7.0+Simulink 5/6. Обработка сигналов и проектирование фильтров. М.: СОЛОН-Пресс, 2005.
3. Дьяконов В. MATLAB 6.5 SP1/7.0+Simulink 5/6 в математике и моделировании. М.: СОЛОН-Пресс, 2005.
Содержание отчета
Название работы.
Цель работы.
Задание в соответствии с вариантом.
Модель.
Результаты моделирования.
Выбор варианта задания
Номер варианта задания = последняя цифра номера зачетной книжки. В некоторых работах варианты выбираются по оговоренному правилу.
Сохранение кодов
Чтобы файлы разных студентов не перепутывались друг с другом, каждому
студенту следует создавать индивидуальные папки. Рекомендуется такая иерархия вложенных друг в друга папок:
Диск пользователя (устанавливается администратором)
Папка Users (пользователи)
Папка группы (например, ФО_31)
Папка студента (например, Ivanov)
Папка проекта (например, Hello)
В дисплейных классах в папке студента на каждом занятии следует сохранять
свои файлы (одно задание лабораторной работы – один файл). Рекомендуется
при выполнении работы периодически сохранять незавершенные проекты в текущем состоянии, чтобы избежать потерь документов при сбоях.
6
1. Первая модель в Simulink
Предмет исследования
Изучение библиотек Simulink.
Создание модели устройства в Simulink.
Моделирование устройства.
Контрольные вопросы:
1. Назначение Simulink.
2. Правила построения моделей в Simulink.
3. Правила моделирования в Simulink.
4. Структура иерархической библиотеки Simulink.
5. Блоки из папки Continuous библиотеки Simulink.
6. Блоки из папки Discrete библиотеки Simulink.
7. Блоки из папки Functions & Tables библиотеки Simulink.
8. Блоки из папки Math библиотеки Simulink.
9. Блоки из папки Nonlinear библиотеки Simulink.
10. Блоки из папки Signal & Systems библиотеки Simulink.
11. Блоки из папки Sources библиотеки Simulink.
12. Блоки из папки Sinks библиотеки Simulink.
13. Блоки из Communication Blockset.
14. Блоки из DSP Blockset.
15. Блоки из Communication Blockset.
16. Другие наборы блоков.
Задание к работе
Модель устройства, в котором сигнал от источника поступает на 2 функциональных блока. Наблюдатель с 3 входами позволяет видеть сигналы на общем
входе и выходах функциональных блоков. Провести ее моделирование.
7
Варианты заданий
Блоки
Первый
Второй
0 Sine Wave
Gain
Quantizer
Синус
Усиление
Квантизатор
1 Pulse Generator
Saturation
Integrator
Импульсы
Ограничитель
Интегратор
2 Repeating Sequence - Quantizer
Gain
Пила
Квантизатор
Усиление
3 Ram
Derivate
Saturation Ограничитель
Линейно нарастающий Дифференциатор
4 Chirp Signal
Integrator
Quantizer
Переменная частота
Интегратор
Квантизатор
5 Sine Wave
Transport delay
Derivate
Синус
Задержка
Дифференциатор
6 Pulse Generator
Dead Zone
Integrator
Импульсы
Мертвая зона
Интегратор
7 Repeating Sequence
Gain
Transport delay
Пила
Усиление
Задержка
8 Pulse Generator
Saturation
Derivate
Импульсы
Ограничитель
Дифференциатор
9 Sine Wave
Derivate
Integrator
Синус
Дифференциатор
Интегратор
В таблице названия функциональных блоков даны на русском и английском
языках (так, как они названы в браузере библиотеки блоков Simulink).
Методические указания
Модель устройства содержит источник сигнала, функциональные блоки и средства наблюдения за поведением системы (дисплей, численный индикатор и др.).
Первое действие - запустить MATLAB. При этом возникает стартовое диалоговое окно, в котором докированы встроенные окна (их число и номенклатуру
можно менять). На старте достаточно использовать 3 окна:
Command Window (командное) – в центре. Это средство диалога пользователя с системой.
Current Folder (текущая папка) – слева. В нем браузер папок.
Workspace (рабочее пространство) – справа. В нем отображаются значения
используемых в текущем сеансе MATLAB переменных.
№ Источник сигнала
8
Для создания модели нужно выполнить действие File=>New=>Model. Это приводит к запуску программы Simulink, которая создает пустое окно модели.
Далее нужно вызвать браузер библиотек компонент, используя меню (пункт
View=>Вид) или кнопку Library Browser в панели инструментов. Окно браузера
содержит две панели: слева иерархическое дерево библиотек, справа - содержимое выбранной в левой панели папки с блоками. В папке могут быть под9
библиотеки и блоки. Каждый блок и подбиблиотека имеют визуальный семантический образ и надпись.
Разместите окна браузера и модели таким образом, чтобы они не перекрывали
друг друга. Теперь можно формировать модель визуальным методом. Переместите мышью из браузера в окно модели нужные блоки и удобно разместите их.
При переносе блока в модель там создается экземпляр блока с именем, совпадающим с надписью под блоком (при необходимости, когда однотипных блоков в модели несколько, в имя блока добавляется номер).
Соедините блоки коннекторами. Для этого нужно при нажатой левой кнопке
протаскивать мышью крестообразный курсор от одной соединяемой точки к
другой. При отпускании кнопки мыши в модели отображается коннектор со
стрелкой в направлении передачи данных.
Установите для каждого блока свойства. Для этого нужно на блоке сделать
двойной щелчок левой кнопки мыши, что приведет к появлению окна со свойствами блока. Установите нужные свойства в полях окна.
Пример выполнения
Модель устройства для синусоидального сигнала с функциональными блоками:
двусторонний ограничитель Saturation,
блок мертвой зоны Dead Zone.
Создать на экране дисплея пустое окно модели и вызвать браузер библиотеки
блоков. Из него в окно модели перенести нужные блоки.
В модели используем:
Генератор синусоиды Sine Wave. Блок находится в Signal Processing Toolbox
=> Signal Processing Sources.
Блок Насыщение Saturation. Блок находится в Simulink => Discontinuties.
Блок Мертвая зона Dead Zone. Блок находится в Simulink => Discontinuties.
10
Наблюдатель Scope. Блок находится в Simulink => Sinks. Для Scope нужно
выбрать число входов. Для этого двойным щелчком мыши по нему вызвать
диалоговое окно свойств и в нем задать 3 входа.
В нем, нажав вторую слева кнопку (Parameters) в меню, вызвать диалоговое
окно, в котором установить число входов 3.
В итоге получим окно модели. В нем дополнительно можно задать имена входов Scope. Для этого щелкнуть левой кнопки мыши по линии входа. Около нее
появится поле ввода, в которое нужно занести имя (символы латиницы).
Теперь для блоков модели нужно задать параметры. Для каждого блока двойным щелчком по блоку вызвать диалоговое окно со свойствами блока. Большая
часть свойств имеет значения по умолчанию. Меняем только нужные параметры.
Для блока Sine Wave установим амплитуду и частоту (фазу и время отсчета
можно не менять).
Для блока Saturation установим верхний и нижний пределы ограничения.
Для блока Dead Zone установим начало (-2) и конец (2) мертвой зоны.
Чтобы при моделировании увидеть графики сигналов нужно отобразить окно
вывода блока Scope двойным щелчком левой кнопки мыши по нему. Оно пока
без графиков.
11
Включить симулирование (моделирование) командой Simulation => Start (или
кнопкой стрелки вправо на панели инструментов модели). В окне Scope отображаются графики сигналов.
Если результат не совпадает с ожидаемым, то нужно изменить параметры модели и повторить моделирование.
При моделировании по умолчанию используется алгоритм с переменным шагом и наиболее популярными методами решения уравнений, описывающих модель. При желании конфигурацию можно изменить командой Simulation =>
Configuration Parameters. Она вызывает окно параметров модели, в котором
можно сделать изменения.
12
2. Логические операции
Предмет исследования
Операции с данными. Изучаем 2 темы:
Представление данных.
Операции с данными.
Для представления данных используются разные форматы - числа с разным
представлением и размерностью, логические данные.
Для чисел возможны представления:
double, single для вещественных чисел с дробной частью.
Для целых чисел возможны представления в системах счисления с основанием 2, 8, 10, 16.
Для знаковых целых чисел используется представление в дополнительном
коде.
Для выполнения логических операции
в Simulink предусмотрен блок Logical
Operator. Этот блок позволяет выполнить любую из известных базовых логических операций. Могут быть заданы следующие логические операции:
AND – логическое умножение (операция И).
OR – логическое сложение (операция ИЛИ).
NAND – операция НЕ- И.
NOR – операция НЕ – ИЛИ.
XOR – операция Исключающее ИЛИ.
NXOR – операция НЕ - Исключающее ИЛИ.
NOT – операция логического отрицания (НЕ).
Контрольные вопросы:
1. Форматы double, single для вещественных чисел с дробной частью.
2. Представление чисел в системах счисления с основанием 2, 8, 10, 16.
3. Представление знаковых целых чисел в дополнительном коде.
4. Что называется алгеброй логики?
5. Что называется функцией алгебры логики?
6. Таблица истинности.
7. Как технически можно реализовать функцию алгебры логики?
8. Таблица истинности AND..
9. Таблица истинности NAND.
10. Таблица истинности OR.
11. Таблица истинности NOR..
12. Таблица истинности XOR.
13. Таблица истинности NXOR.
14. Таблица истинности NOT.
2.1. Представление чисел
Создаем статическую модель просмотра представления чисел. В модель включаем:
13
Константу Constant для выбора числа. Блок находится в Simulink =>
Sources.
4 дисплея Display для просмотра значений числа в разных системах счисления. Блок находится в Simulink => Sinks.
Для каждого дисплея в окне параметров выбирается система счисления
Прогон модели с положительным числом.
Прогон модели с отрицательным числом.
2.2. Операции побитового сдвига
Создаем статическую модель просмотра представления чисел при использовании операции арифметического сдвига.. В модель включаем:
Константу Constant для выбора числа. Блок находится в Simulink =>
Sources.
4 дисплея Display для просмотра значений числа в разных системах счисления. Блок находится в Simulink => Sinks.
Блок арифметического сдвига Shift Arithmetic. В окне его параметров задается направление и размер сдвига. Блок находится в Simulink => Logic and
Bit Operations.
4 дисплея Display для просмотра значений числа в разных системах счисления после арифметического сдвига. Блок находится в Simulink => Sinks.
Для каждого дисплея в окне параметров выбирается система счисления.
14
Прогон модели с положительным числом.
Прогон модели с отрицательным числом.
15
2.3. Логика, модель с дисплями
Задание
Модель просмотра таблицы истинности логического блока. В ней нужно отобразить наборы входных сигналов блока и соответствующий им выходной набор. Провести моделирование.
Варианты заданий
№ Режим моделирования Логический блок
0 С дисплеями
И
1 С дисплеями
НЕ И
2 С дисплеями
ИЛИ
3 С дисплеями
НЕ ИЛИ
4 С дисплеями
Исключающее ИЛИ
5 С дисплеями
НЕ Исключающее ИЛИ
6 Со Scope
НЕ
7 Со Scope
И
8 Со Scope
ИЛИ
9 Со Scope
Исключающее ИЛИ
Для отображения наборов будем использовать блок Display с 4 сегментами, так
как число комбинаций в наборах равно 4. В модели используем:
Константы Constant для выбора чисел. Блок находится в Simulink =>
Sources.
Constant = [0 0 1 1], векторная константа входного набора 1.
Constant1 = [0 1 0 1], векторная константа входного набора 2.
3 дисплея для отображения наборов Display. Блок находится в Simulink =>
Sinks..
Logical Operator - логический оператор (в примере операция AND). . Блок
находится в Simulink => Logic and Bit Operations.
16
Для констант данные зададим в полях значения (Constant Value) в форме векторов, чтобы получить 4 комбинации входных сигналов:
[0 0 1 1] – константа 1,
[0 1 0 1] – константа 2.
Для дисплеев нужно задать 4 в поле размерности (Decimation).
Для логического блока можно выбрать тип операции из выпадающего списка в
диалоговом окне блока, вызываемого двойным щелчком мыши по блоку.
Включить симулирование (моделирование) командой Simulation=>Start (или
кнопкой стрелки вправо на панели инструментов модели). В окнах дисплеев
отображаются наборы значений.
17
Видно, что на выходе 1, только тогда, когда на входах 1. Это правильно для
операции AND.
18
2.4. Логика, модель со Scope
Задание. Такое же как в предыдущей работе.
Для формирования входных сигналов будем использовать генераторы прямоугольных импульсов со значениями 0 и 1. Для одновременного наблюдения 3
сигналов применим наблюдатель Scope с 3 входами.
В модели используем:
2 генератора прямоугольных импульсов Pulse Generator. Блок находится в
Simulink => Sources.
Логический оператор Logical Operator (в примере AND). Блок находится в
Simulink Logic and Bit Operation.
Наблюдатель Scope. Блок находится в Simulink => Sinks. В нем 3 входа.
Для генераторов импульсов нужно задать:
периоды таким образом, чтобы они отличались в 2 раза.
ширину импульса 50% от периода.
амплитуды 1.
Это нужно, чтобы перебирались все возможные комбинации значений 0 и 1
входных сигналов.
Чтобы при моделировании увидеть графики сигналов нужно отобразить окно
вывода блока Scope двойным щелчком левой кнопки мыши по нему. Оно пока
без графиков.
Включить симулирование (моделирование) командой Simulation=>Start (или
кнопкой стрелки вправо на панели инструментов модели). В окне Scope отображаются графики сигналов.
19
Видно, что на выходе 1, только тогда, когда на входах 1. Это правильно для
операции AND.
20
3. Переключатели
Предмет исследования
Переключатели используются для изменения путей передачи данных. В Simulink определены блоки:
Управляемый переключатель Switch – это переключающее устройство с
тремя входами: двумя крайними для данных и одним (средним) для сигнала
управления. Первый вход выбирается, когда сигнал управления больше порога. В противном случае выбирается второй сигнал.
Ручной переключатель Manual Switch – это переключающее устройство с
двумя входами для сигналов данных. Управление осуществляется пользователем двойным щелчком мыши по переключателю.
Многопортовый переключатель Multiport Switch - это переключающее устройство с множеством входов сигналов. Управление осуществляется сигналом управления, который задает номер выбираемого входа.
Можно использовать для моделирования шифратора и дешифратора.
Контрольные вопросы:
1. Что такое переключатели?
2. Для чего нужны переключатели?
3. Что произойдет, если уровень сигнала превысит заданное значение?
4. Как работает Manual Switch.
5. Как работает Switch.
6. Как работает Multiport Switch
Задание
Создать модели переключателей, коммутирующих на общий выход сигналы от
нескольких источников.
Варианты заданий
№ Переключатель Источник 1
Источник 2
Источник 3
0 Manual Switch
Sine Wave
Sine Wave
1 Switch
Pulse Generator Sine Wave
2 Multiport Switch Sine Wave
Pulse Generator Sine Wave
3 Manual Switch
Chirp Signal
Pulse Generator
4 Switch
Sine Wave
Chirp Signal
5 Multiport Switch Pulse Generator Pulse Generator Sine Wave
6 Manual Switch
Chirp Signal
Chirp Signal
7 Switch
Chirp Signal
Pulse Generator
8 Multiport Switch Sine Wave
Chirp Signal
Pulse Generator
9 Multiport Switch Pulse Generator Chirp Signal
Pulse Generator
В моделях используем:
Constant. Скалярная константа, задающая номер выбираемого канала. Блок
находится в Simulink => Sources.
Display. Одномерный дисплей для отображения номера. Блок находится в
Simulink => Sinks.
21
Генератор синусоиды Sine Wave. Блок находится в Signal Processing Toolbox
=> Signal Processing Sources.
Генератор прямоугольных импульсов Pulse Generator. Блок находится в
Simulink => Sources.
Ручной переключатель Manual Switch. Блок находится в Simulink => Signal
Routing.
Управляемый переключатель Switch. Блок находится в Simulink => Signal
Routing.
Многопортовый переключатель Multiport Switch. Блок находится в Simulink
=> Signal Routing.
Наблюдатель Scope. Блок находится в Simulink => Sinks.
22
3.1. Ручной переключатель Manual Switchѐ
Модель ручного переключателя Manual Switch для переключения сигналов:
Sine Wave,
Pulse Generator.
Чтобы при моделировании увидеть графики сигналов, нужно отобразить окно
вывода блока Scope двойным щелчком левой кнопки мыши по нему. Оно пока
без графиков.
Включить симулирование (моделирование) командой Simulation=>Start (или
кнопкой стрелки вправо на панели инструментов модели). В окне Scope отображаются графики сигналов. На выход поступает первый сигнал.
При двойном щелчке по переключателю в модели он срабатывает, и вид модели
меняется:
23
Меняются и графики в окне Scope. На выход поступает второй сигнал.
3.2. Переключатель Switch
Модель переключателя Switch для сигналов:
Sine Wave,
Pulse Generator.
24
Чтобы при моделировании увидеть графики сигналов, нужно отобразить окно
вывода блока Scope двойным щелчком левой кнопки мыши по нему. Оно пока
без графиков.
Включить симулирование (моделирование) командой Simulation=>Start (или
кнопкой стрелки вправо на панели инструментов модели). В окне Scope отображаются графики сигналов. На выход поступают с переключением 2 сигнала.
25
3.3. Переключатель Multiport Switch
Модель переключателя Multiport Switch для переключения сигналов.
Включить симулирование (моделирование) командой Simulation=>Start (или
кнопкой стрелки вправо на панели инструментов модели). В окне модели изменятся показание дисплея.
В окне Scope отображаются графики сигналов. На выход поступает сигнал с
номером, задаваемым константой и отображаемый на дисплее.
26
27
4. Управление передачей данных
Предмет исследования
Для управления передачей данных используются:
Дешифратор преобразует номер канала, в код с 1 в позиции номера. Например, 4 => [1 0 0 0]. Используется для формирования сигнала разрешения
канала с выбранным номером.
Шифратор. Работает обратно дешифратору, формируя номер канала, на котором обнаружен код 1. Например, [1 0 0 0] => 4. Используется для формирования сигнала разрешения работы для устройств канала с выбранным номером.
Мультиплексер объединяет сигналы разных линий на одну линию.
Демультиплексер разводит сигнал одной линии на разные линии
Контрольные вопросы:
Шифратор.
Дешифратор.
Мультиплексор.
Демультиплексор.
Задание
Создать модель с блоками управления передачей данных
Варианты заданий.
№ Блок
Источник 1
Источник 2
Источник 3
0 Шифратор
Sine Wave
Sine Wave
1 Дешифратор
Pulse Generator Sine Wave
2 Мультиплексор
Sine Wave
Pulse Generator Sine Wave
3 Демультиплексор Chirp Signal
Pulse Generator
4 Шифратор
Sine Wave
Chirp Signal
5 Дешифратор
Pulse Generator Pulse Generator Sine Wave
6 Мультиплексор
Chirp Signal
Chirp Signal
7 Демультиплексор Chirp Signal
Pulse Generator
8 Шифратор
Sine Wave
Chirp Signal
Pulse Generator
9 Дешифратор
Pulse Generator Chirp Signal
Pulse Generator
28
4.1. Шифратор
Модель шифратора с переключателем Multiport Switch для выбора сигнала с
задаваемым номером: Номер канала задается скалярной константой. Каждый
сигнал представлен векторной константой (из 4 компонент).
В модели используются:
Константы Constant для выбора чисел. Блок находится в Simulink =>
Sources.
Скалярная константа Constant для задания номера канала. Из Sources.
4 векторные константы Constant для задания кодов для каждого номера канала.
2 дисплея для отображения наборов Display. Блок находится в Simulink =>
Sinks.
Одномерный дисплей Display1 для отображения номера канала.
4-мерный дисплей Display для одновременного отображения компонент выбранной векторной константы.
Мультипортовый переключатель Multiport Switch. Он имеет вход управления вверху и 4 пронумерованные информационные входа. Из Signal Routing.
Для дисплея Display нужно в окне его параметров задать размерность (в примере 4).
Включить симулирование (моделирование) командой Simulation=>Start (или
кнопкой стрелки вправо на панели инструментов модели). В дисплеях модели
отображаются:
В Display1 - номер канала, заданный скалярной константой номера, она равна 3.
29
В Display компоненты выбранной векторной константы с номером 3, она
равна [0 0 1 0].
30
4.2. Дешифратор
Модель дешифратора для определения номера канала, на котором есть сигнал
1. В модели использованы:
Константы Constant для выбора чисел. Блок находится в Simulink =>
Sources.
Constant1, векторная константа содержит 1 в одной позиции по выбору. Использовано 4 канала, в одном из них 1, например, [0 0 0 1].
Constant2, векторная константа содержит номера каналов. [1 2 3 4].
2 дисплея для отображения наборов Display. Блок находится в Simulink =>
Sinks.
4-мерный дисплей Display. Отображает код обнаруженного канала.
1-мерный дисплей Display1. Отображает номер обнаруженного канала.
Блок Product перемножает посимвольно элементы констант. Блок находится
в Simulink => Math Operations.
Блок Sum of Elements суммирует произведения, в результате получается
номер того канала, где код 1. Он передается на дисплей Display1. Блок находится в Simulink => Math Operations.
Включить симулирование (моделирование) командой Simulation=>Start (или
кнопкой стрелки вправо на панели инструментов модели). В Display отображается код в каналах, в Display1 номер канала, где код 1.
31
32
4.3. Мультиплексер + демультиплексер
Создать модель, демонстрирующую совместную работу мультиплексора и демультиплексора. В модели использованы:
2 генератора прямоугольных импульсов Pulse Generator. Блок находится в
Simulink => Sources.
Мультиплексер Mux. Блок находится в Simulink => Signal Routing.
Демультиплексер Demux. Блок находится в Simulink => Signal Routing.
Наблюдатель Scope. Блок находится в Simulink => Sinks. В нем 5 входов.
Для генераторов импульсов задаем период следования (2 сек), длительность
10% от периода, задержку, чтобы импульсы не налагались друг на друга при
мультиплексировании. Задержка для первого генератора 0, для второго 1 сек.
Для мультиплексора задаем 2 входа, а для демультиплексора 2 выхода.
Включить симулирование (моделирование) командой Simulation=>Start (или
кнопкой стрелки вправо на панели инструментов модели). В окне Scope отображаются графики сигналов.
33
Видно, что сигналы сначала мультиплексируются, а затем демультиплексируются.
34
5. Счетчики
Предмет исследования
Счетчик меняет свое состояние под действием входного сигнала Inc. Различают
счетчики:
Суммирующий. В нем состояние увеличивается от 0 до максимально возможного значения Max.
Вычитающий. В нем состояние уменьшается от Max до 0.
С автосбросом. В нем при достижении предельного значения восстанавливается исходное состояние.
Со сбросом по внешнему сигналу Rst. В нем исходное состояние устанавливается внешним сигналом.
С формированием сигнала Hit при достижении промежуточного значения.
Сброс счетчика в исходное состояние может осуществляется сигналом Hit.
Контрольные вопросы
1. Суммирующий счетчик.
2. Вычитающий счетчик.
3. Счетчик с автосбросом.
4. Счетчик со сбросом по внешнему сигналу Rst.
5. Счетчик с формированием сигнала Hit при достижении промежуточного значения.
Задание
Создать модель со счетчиком. В модели используем генератор импульсов, отсчеты которого подсчитываются.
Варианты заданий.
№ Направление
Тип сброса Max Hit
0 Суммирование Автомат
8
4
1 Суммирование Автомат
10
5
2 Суммирование Внешнее
12
6
3 Суммирование Внешнее
14
7
4 Суммирование По Hit
16
8
5 Вычитание
Автомат
9
5
6 Вычитание
Автомат
11
6
7 Вычитание
Внешнее
13
9
8 Вычитание
Внешнее
15
11
9 Вычитание
По Hit
17
15
В моделях используется блок Counter, в окне параметров которого задаются параметры:
Направление счета Counting direction со значениями Up - суммирование,
Down - вычитание.
Событие счета Count event. Возможна реакция на передний ил задний фронт
импульса.
35
Модуль счета Counter size. Возможны 8, 16, 32 или устанавливаемые пользователем.
Максимальное значение Maxim Count (Max).
Начальное значение Initial Count (Init).
Промежуточное значение Hit Value (Hit).
Перечень выходов. Возможны Count, Hit, Count+Hit.
Флаг формирования входа сброса Rst.
Тип данных на выходе счета Count. Возможны вещественные и целые типы,
поддерживаемые в MATLAB.
Тип данных на выходе Hit. Возможны типы logical, boolean.
36
5.1. Суммирующий счетчик с автосбросом
В модели используем:
Генератор прямоугольных импульсов Pulse Generator. Блок находится в
Simulink => Sources. Генератор прямоугольных импульсов счета.
Counter – суммирующий счетчик. Блок находится в Signal Processing =>
Signal Managements => Switches and Counters.
Наблюдатель Scope. Блок находится в Simulink => Sinks. В нем 2 входа.
Включить симулирование (моделирование) командой Simulation=>Start (или
кнопкой стрелки вправо на панели инструментов модели). В окне Scope отображаются графики сигналов.
37
38
5.2. Суммирующий счетчик с внешним сбросом
В модели используем:
Генератор прямоугольных импульсов Pulse Generator. Блок находится в
Simulink => Sources.
Pulse Generator - генератор прямоугольных импульсов счета.
Pulse Generator1 - генератор прямоугольных импульсов сброса.
Суммирующий счетчик Counter. Блок находится в Signal Processing => Signal Managements => Switches and Counters.
Наблюдатель Scope. Блок находится в Simulink => Sinks. В нем 3 входа.
Для счетчика в окне его параметров задаем Max=10 и Hit=5.
Для генератора импульсов счета задаем период и длительность 1% от периода.
Для генератора импульсов сброса задаем период, который больше периода первого генератора в целое число раз (но не более Max).
Включить симулирование (моделирование) командой Simulation=>Start (или
кнопкой стрелки вправо на панели инструментов модели). В окне Scope отображаются графики сигналов.
39
40
5.3. Суммирующий счетчик со сбросом по Hit
В модели используем:
Генератор прямоугольных импульсов Pulse Generator. Блок находится в
Simulink => Sources. Генератор прямоугольных импульсов счета.
Суммирующий счетчик Counter. Блок находится в Signal Processing => Signal Managements => Switches and Counters.
Блок памяти Memory -.
Наблюдатель Scope. Блок находится в Simulink => Sinks. В нем 3 входа.
Чтобы при моделировании увидеть графики сигналов, нужно отобразить окно
вывода блока Scope двойным щелчком левой кнопки мыши по нему. Оно пока
без графиков.
Включить симулирование (моделирование) командой Simulation=>Start (или
кнопкой стрелки вправо на панели инструментов модели). В окне Scope отображаются графики сигналов.
41
42
5.4. Вычитающий счетчик с автосбросом
В модели используем:
Генератор прямоугольных импульсов Pulse Generator. Блок находится в
Simulink => Sources. Генератор прямоугольных импульсов счета.
Вычитающий счетчик Counter. Блок находится в Signal Processing => Signal
Managements => Switches and Counters.
Наблюдатель Scope. Блок находится в Simulink => Sinks. В нем 2 входа.
Включить симулирование (моделирование) командой Simulation=>Start (или
кнопкой стрелки вправо на панели инструментов модели). В окне Scope отображаются графики сигналов.
43
44
5.5. Вычитающий счетчик с внешним сбросом
В модели используем:
Генератор прямоугольных импульсов Pulse Generator. Блок находится в
Simulink => Sources.
Pulse Generator - генератор прямоугольных импульсов счета.
Pulse Generator1 - генератор прямоугольных импульсов сброса.
Вычитающий счетчик Counter. Блок находится в Signal Processing => Signal
Managements => Switches and Counters.
Наблюдатель Scope. Блок находится в Simulink => Sinks.. В нем 3 входа.
Чтобы при моделировании увидеть графики сигналов, нужно отобразить окно
вывода блока Scope двойным щелчком левой кнопки мыши по нему. Оно пока
без графиков.
Включить симулирование (моделирование) командой Simulation=>Start (или
кнопкой стрелки вправо на панели инструментов модели). В окне Scope отображаются графики сигналов.
45
5.6. Вычитающий счетчик со сбросом по Hit
В модели используем:
Генератор прямоугольных импульсов Pulse Generator. Блок находится в
Simulink => Sources. Генератор прямоугольных импульсов счета.
Вычитающий счетчик Counter. Блок находится в Signal Processing => Signal
Managements => Switches and Counters.
Блок памяти Memory.. Блок находится в Simulink => Discrets.
Наблюдатель Scope. Блок находится в Simulink => Sinks. В нем 3 входа.
46
Чтобы при моделировании увидеть графики сигналов, нужно отобразить окно
вывода блока Scope двойным щелчком левой кнопки мыши по нему. Оно пока
без графиков.
Включить симулирование (моделирование) командой Simulation=>Start (или
кнопкой стрелки вправо на панели инструментов модели). В окне Scope отображаются графики сигналов.
47
48
6. Элементы памяти
Предмет исследования
Средства запоминания данных. Различают:
Триггеры для запоминания одного бита.
Регистры для запоминания одного бита.
6.1. Триггеры
Триггеры используются для запоминания 1 бита информации. Основные типы
триггеров:
SR триггер. Комбинация входов S=1, R=1 запрещена.
D триггер. Запоминает бит данных. Имеет вход разрешения записи
D триггер защелка. Запоминает бит данных по тактовому импцльсу.
JK -триггер. Модификация SR триггера. Комбинация входов J=1, K=1 вызывает переключение.
T триггер. Счетный. Реализуется на основе JK триггера.
Контрольные вопросы:
1. Что такое триггер?
2. Таблица переходов триггера.
3. Работа RS триггера.
4. Работа D триггера.
5. Работа D триггера защелки.
6. Работа JK триггера.
7. Работа T триггера.
Задание
Создать модели 2 триггеров.
Варианты заданий
№ Триггер 1 Триггер 2
0 D
RS
1 JK
D
2 T
JK
3 RS
T
4 JK
RS
5 T
D
6 RS
JK
7 D
T
8 D
RS
9 JK
D
В моделях используем блоки:
Генератор прямоугольных импульсов Pulse Generator. Блок находится в
Simulink => Sources. Для формирования входных сигналов в моделях будем
использовать генераторы прямоугольных импульсов со значениями 0 и 1.
49
Преобразователь типа данных Data Type Conversion. Блок находится в Simulink => Signal Attributes. Для триггера нужны логические входные сигналы, их получим из импульсных с помощью конверторов данных Data Type
Conversion (в режиме boolean).
Нужный триггер. Блок находится в Simulink Extras => Flip-Flops.
Наблюдатель Scope. Блок находится в Simulink => Sinks. Для одновременного наблюдения 4 сигналов применим наблюдатель Scope с 4 входами.
Для генераторов импульсов нужно задать:
периоды таким образом, чтобы они отличались в 2 раза,
ширину импульса 50% от периода,
амплитуды 1.
Это нужно, чтобы перебирались все возможные комбинации значений 0 и 1
входных сигналов.
Для преобразователей типа данных нужно в диалоговом окне объекта из выпадающего списка выбрать boolean
Чтобы при моделировании увидеть графики сигналов нужно отобразить окно
вывода блока Scope двойным щелчком левой кнопки мыши по нему. Оно до
моделирования без графиков.
50
6.1.1. SR триггер
Имеет два информационных входа:
S (Set – установка),
R (Reset – сброс).
Таблица переходов SR триггера:
S R Выход Q Инверсия Q
Режим
0 0 Q(n-1)
Инверсия Q(n-1) Хранение
1 0 1
0
Запись 1
0 1 0
1
Сбос в 0
1 1 0
0
Запрет
Модель функционирования SR триггера. В ней нужно отобразить входные и
выходные сигналы триггера. Провести ее моделирование.
Включить симулирование (моделирование) командой Simulation=>Start (или
кнопкой стрелки вправо на панели инструментов модели). В окне Scope отображаются графики сигналов.
51
52
6.1.2. D триггер
D триггер имеет один информационный вход D (Delay – задержка или Data данные), вход разрешения записи !CLR (означает - нет стирания Clear) и вход
записи СLK (Clock). По значению D состояние триггера обновляется при
!CLR=1 по сигналу синхронизации CLK=1. Таблица переходов:
!CLR D Выход Q Режим
0
0 Q(n-1)
Хранение
0
1 Q(n-1)
Хранение
1
0 0
Сбос в 0
1
1 1
Запись D
Модель функционирования D триггера. В ней нужно отобразить входные и выходные сигналы триггера. Провести ее моделирование.
Включить симулирование (моделирование) командой Simulation=>Start (или
кнопкой стрелки вправо на панели инструментов модели). В окне Scope отображаются графики сигналов.
53
54
6.1.3. D триггер защелка
D триггер защелка имеет один информационный вход D (Delay – задержка или
Data - данные) и вход синхронизации C. Значение D запоминается по сигналу
C=1. Если C=0, то D триггер хранит предыдущее состояние. Таблица переходов:
C D Выход Q Режим
0 0 Q(n-1)
Хранение
0 1 Q(n-1)
Хранение
1 0 0
Запись D=0
1 1 1
Запись D=1
Модель функционирования D триггера защелки. В ней нужно отобразить входные и выходные сигналы триггера. Провести ее моделирование.
55
Включить симулирование (моделирование) командой Simulation=>Start (или
кнопкой стрелки вправо на панели инструментов модели). В окне Scope отображаются графики сигналов.
6.1.4. JK триггер
JK триггер имеет 2 информационных входа: J (Jump – прыжок) и К (Kill –
убить), вход синхронизации С (Clock). Если С=0, то триггер находится в режиме хранения. Когда С=1, триггер работает как SR триггер за исключением
J=K=1. В этом случае происходит инверсия предыдущего состояния (режим
счета). Таблица переходов JК триггера.
C J
K
Выход Q
Режим
0 0 или 1 0 или 1 Q(n-1)
Хранение
1 0
0
Инверсия Q(n-1) Хранение
1 1
0
1
Запись 1
1 0
1
0
Сбос в 0
1 1
1
Инверсия Q(n-1) Счет
56
Модель функционирования JK триггера. В ней нужно отобразить входные и
выходные сигналы триггера. Провести ее моделирование.
57
Включить симулирование (моделирование) командой Simulation=>Start (или
кнопкой стрелки вправо на панели инструментов модели). В окне Scope отображаются графики сигналов.
58
6.2. Регистры
Регистры это узлы ЭВМ, служащие для хранения информации в виде машинных слов или их частей, а также для выполнения над словами некоторых преобразований. С помощью регистра можно выполнять следующие операции:
установка всех разрядов регистра в состояние логического нуля или логической единицы;
прием и хранение в регистре многоразрядного слова;
сдвиг хранимого в регистре слова вправо или влево на заданное число разрядов;
преобразование параллельного двоичного кода в последовательный, и наоборот.
Регистры состоят из множества триггеров. Возможны регистры:
Параллельный. В каждый триггер данные заносятся одновременно.
Сдвига. Данные заносятся последовательно, начиная с первого триггера.
При занесении очередного отсчета предыдущие сдвигаются по внутренним
триггерам регистра.
Моделируем 2 типа регистров: параллельный и сдвиговый.
59
6.2.1. Параллельный регистр
Для параллельного регистра создаем статическую модель. Его поведение лучше
анализировать в статике.
В модель 3-разрядного параллельного регистра включаем:
3 SR триггера S-R FlipFlop.
Константы Constant и Constant1 co значениями1 и 0 для выбора управляющих значений. Блок находится в Simulink => Sources.
3 ручных переключателя Manual Switch. Блок находится в Simulink => Signal Routing. Нужны для выбора входных данных для каждого триггера. Их
имена - Input 1, Input 2, Input 3.
Ручной переключатель Manual Switch для выбора сигнала записи. Его имя
Record. При записи Record =1, Reset = 0.
Ручной переключатель Manual Switch для выбора сигнала сброса. Его имя
Reset. При сбросе Reset = 1, Record =0.
3 логических блока Logical Operator (AND). Блок находится в Simulink =>
Logic and Bit Operations, с их помощью биты данных передаются на триггеры только при Record =1.
6 дисплеев Display для контроля прямых Q и инверсных !Q выходов триггеров. Блок находится в Simulink => Sinks.
Прогон при записи. Выбраны Record =1, Reset = 0, биты данных 011.
60
Прогон при сбросе. Выбраны Record =0, Reset = 1, биты данных безразличны.
6.2.2. Регистр сдвига
Для регистра сдвига создаем динамическую модель. Его поведение надо анализировать во времени.
В модель 3-разрядного регистра сдвига включаем:
3 триггера D_защелка D_Latch. Блок находится в Simulink Extras=>FlipFlops.
2 элемента памяти Memory между триггерами. Блок находится в Simulink =>
Discrete. Они необходимы для запоминания предыдущего состояния триггеров в процессе моделирования.
Генераторы прямоугольных импульсов Pulse Generator. Блок находится в
Simulink => Sources. Один для формирования сигнала данных, другой для
формирования сигнала синхронизации триггеров (при его наличии данные
заносятся в триггер).
2 преобразователя типа данных Data Type Conversion. Блок находится в
Simulink => Signal Attributes. Преобразует данные численного типа в булевые, что нужно для триггера D_защелка..
61
Наблюдатель Scope. Блок находится в Simulink => Sinks. Нужен для просмотра временных диаграмм сигналов в модели. В нем 5 входов.
62
Прогон при записи. Выбраны:
Для Pulse Generator период 4 сек., Длительность импульса 50% от периода,
Задержка начала.4 сек.
Для Pulse Generator1 период 3 сек., Длительность импульса 10% от периода,
Задержка начала.1 сек.
Видно, что выходы внутренних триггеров повторяют входные данные со сдвигом во времени.
63
7. Цифровая обработка сигналов
Предмет исследования
Цифровая обработка сигналов (ЦОС) широко применяется, так как позволяет
реализовать методы, под которые в аналоговой технике нет устройств. Для
ЦОС непрерывный во времени аналоговый сигнал с помощью аналогоцифрового преобразователя (АЦП) преобразуется в цифровой. АЦП включает:
Дискретизатор, который превращает непрерывный сигнал в дискретный.
По теореме отсчетов частота дискретизации Fs должна превышать максимальную частоту непрерывного сигнала Fmax не менее чем в 2 раза.
Квантизатор, который превращает дискретные отсчеты сигнала в последовательность чисел для ЦОС.
Для обратного преобразования цифрового сигнала в аналоговый применяется
цифро-аналоговый преобразователь (ЦАП). ЦАП включает блок, который превращает цифровой сигнал в дискретный, и сглаживающий фильтр, который
сглаживает перепады между дискретными отсчетами. Это фильтр нижних частот..
Для ЦОС широко применяется спектр сигнала в базисе Фурье. Быстрое преобразование Фурье (БПФ) формирует его. Используется выборка из отсчетов,
число которых N равно 2 в целой степени. При частоте дискретизации Fs формируются N/2 спектральных компонент. Анализатор использует БПФ с фиксацией каждой компоненты спектра.
При дискретизации имеется проблема наложения спектров. Дискретные сигналы одинаковы для рабочего сигнала и сдвинутого по частоте на 2Fs сигнала
помехи. Это явление называется наложением спектров, для борьбы с ним помеха должна фильтроваться до дискретизации специальным фильтром, который
называется антиэлайзинговым.
Контрольные вопросы
1. Форматы представления чисел в ЦОС.
2. Прямой, обратный и дополнительный коды.
3. Форматы с фиксированной и плавающей точкой.
4. Квантизатор.
5. Шум квантования.
6. Ошибки округления.
Контрольные вопросы
1. Дискретизатор. Теорема отсчетов.
2. Антиэлайзинговый фильтр.
3. Квантизатор.
4. АЦП и ЦАП.
В модели включаем:
Генератор прямоугольных импульсов Pulse Generator – из Simulink =>
Sources. Для генерирования импульсов дискретизации. Для него задается период, равный 1/Fs=1/20, и ширина импульса (50% от периода).
64
Генератор синусоиды Sine Wave. Блок находится в Signal Processing Toolbox
=> Signal Processing Sources. Для одного генератора выбираем частоту 2 полезного сигнала, для другого частоту 42 помехи (больше первой на 2Fs,
Fs=20 – частота дискретизации).
Наблюдатель Scope. Блок находится в Simulink => Sinks. В нем 6 входов.
3 блока выборки и хранения S/H. Блок находится в Signal Processing Blockset
=> Signal Operation. Для них задается тип переключения Trigger Type - по
переднему фронту импульса дискретизации (Rising edge).
Analog Filter Design. Для фильтрации помехи до дискретизации сигнала или
сглаживания при ЦАП. Блок находится в Signal Processing Blockset => Filter
Implementation.
Сумматор Sum. Блок находится в Simulink => Math Operations. С его помощью находим сигнал ошибки, равный разности сигналов до и после квантизатора. В окне параметров блока задаем список знаков входных операндов.
65
7.1. Наложение спектров
Задание к работе
Анализ эффекта наложения спектров сигналов при дискретизации.
Варианты заданий
№
F1, Гц
Fs, Гц
0
1
15
1
3
16
2
4
17
3
5
18
4
6
19
5
7
20
6
8
21
7
9
22
8
10
23
9
11
24
Пример выполнения
Частота
дискретизации
Fs=20.
Частоты
синусоид
F1=
F2=F1+2*Fs=2+2*20=42.
Создаем модель фильтра в среде Simulink.
2
и
В модели использованы 3 параллельные ветви:
Для полезного сигнала.
Для сигнала помехи без предварительной фильтрации.
Для сигнала помехи с предварительной фильтрацией аналоговым фильтром.
Аналоговому фильтру задаем границу полосы пропускания 30 рад/сек, чтобы помеха фильтровалась.
Двойным щелчком по линии входов вызываем поля их заголовка, в которые заносим тексты: Discret, Sin1, Sin1_Discret, Sin2, Sin2_Discret, Sin2_Discret_Filter.
Заголовки разместятся над диаграммами сигналов для их идентификации.
66
После запуска моделирования получаем результаты в окне Scope. Видна проблема – квантованные сигналы одинаковы для рабочего сигнала и сдвинутого
по частоте на 2Fs сигнала помехи. Это явление называется наложением спектров, для борьбы с ним помеха должна фильтроваться до дискретизации специальным фильтром, который называется антиэлайзинговым.
Помеха не попадает на выход только при предварительной фильтрации.
7.2. Шумы квантования
Задание к работе
Моделирование анализа шумов квантования.
Варианты заданий
№
F, Гц
Fs, Гц
Амплитуда A
Шаг квантования
1
15
4
0.2
3
16
6
0.3
4
17
7
0.4
5
18
8
0.5
6
19
5
0.4
7
20
6
0.5
8
21
7
0.3
9
22
5
0.6
Пример выполнения
Спроектировать и смоделировать систему анализа шумов квантования синусоидального сигнала с частотой F=2, амплитудой A=5. Частота дискретизации
Fs=20, шаг квантования 0.5.
Создаем модель фильтра в среде Simulink.
67
В модель включаем:
Генератор прямоугольных импульсов Pulse Generator – из Simulink =>
Sources. Для генерирования импульсов дискретизации. Для него задается период, равный 1/Fs=1/20, и ширина импульса (50% от периода).
Генератор синусоиды Sine Wave. Блок находится в Signal Processing Toolbox
=> Signal Processing Sources. Для него выбираем частоту 2 полезного сигнала, режим отсчетов Discrete, время отсчетов Sample Time 1/1000 (для получения красивой картинки).
Наблюдатель Scope. Блок находится в Simulink => Sinks. В нем 5 входов.
Блок выборки и хранения S/H. Блок находится в Signal Processing Blockset
=> Signal Operation. Для него задается тип переключения Trigger Type - по
переднему фронту импульса дискретизации (Rising edge).
Квантизатор Quantizer. Блок находится в Signal Processing Blockset => Quantizers. Для него задаем шаг квантования 0.5.
Сумматор Sum. Блок находится в Simulink => Math Operations. С его помощью находим сигнал ошибки, равный разности сигналов до и после квантизатора. В окне параметров блока задаем список знаков входных операндов.
Двойным щелчком по линии входов вызываем поля их заголовка, в которые заносим тексты: Discret, Sin, S/H, Sin_Discret, Error. Заголовки разместятся над
диаграммами сигналов для их идентификации.
После запуска моделирования получаем результаты в окне Scope. Видно, что
при квантовании возникает ошибка – шум квантования.
68
69
7.3. АЦП + ЦАП
Спроектировать и смоделировать систему ЦОС, включающую АЦП и ЦАП. В
системе синусоидальный сигнал с частотой F=2 и амплитудой A=5 преобразуется в цифровой с помощью АЦП, содержащего устройство выборки/хранения
S/H и квантизатор Quantizer. Частота дискретизации Fs=20, шаг квантования
0.5. ЦАП использует аналоговый ФНЧ. Создаем модель в среде Simulink.
Для расчета ФНЧ двойным щелчком по нему вызывается программа. В ней выбран ФНЧ Баттерворта 8 порядка.
После запуска моделирования получаем результаты в окне Scope.
70
Видно, что исходный сигнал Sin сначала преобразуется в цифровой Digital, а
затем преобразуется в аналоговый Analog. Есть, конечно, ошибка – шум квантования, она мала и не видна.
7.4. БПФ
БПФ ищет спектральные компоненты в выборке отсчетов. Позиция компонента
во времени не отслеживается. Поэтому если в выборке есть одинаковые фрагментов с заданной частотой, но половина из них имеет противоположные знаки, то компонент не будет обнаружен. Создаем модель в среде Simulink для демонстрации этого.
71
Генератор прямогольных импульсов Pulse Generator, константа Const=-0.5 и
сумматор формирует множитель перемены знака. Он в перемножителе Product
умножается на синусоиду Sin Wave.
В модели с помощью анализаторов спектра Spectrum Scope определяются спектры двух сигналов:
Синуса.
Синуса с переменой знака на соседних периодах.
После запуска моделирования получаем результаты в окне Scope.
Анализаторы спектра показывают спектры сигнала синуса (слева) и сигнала синуса с попериодной переменой знака (справа).
72
Спектральная компонента с правильной частотой есть только в первом случае.
Во втором случае ее нет, хотя на временной диаграмме фрагменты этой синусоиды визуально заметны.
8. Фильтры
Предмет исследования
В фильтрах, реализованных в Simulink, возможны 4 типа:
Lowpass – фильтр нижних частот.
Highpass – фильтр верхних частот.
Bandpass – полосно-пропускающий фильтр.
Bandstop– полосно-задерживающий фильтр.
Для каждого аналогового фильтра возможны методы расчета, использующие
математические формулы:
Batterworth. АЧХ плоская в полосе пропускания.
Chebyshev 1. АЧХ с равномерными пульсациями в полосе пропускания.
Chebyshev 2. АЧХ с равномерными пульсациями в полосе задерживания.
Elliptic. АЧХ с равномерными пульсациями и в полосе пропускания, и в полосе задерживания.
Цифровой фильтр реализуется с помощью ЦОС. По сравнению с аналоговыми
фильтрами в цифровых фильтрах могут использоваться более сложные алгоритмы для получения наилучших характеристик.
В цифровых фильтрах реализуются две структуры:
КИХ – с конечной импульсной характеристикой. Реализуется в виде каскадно-включенных элементов задержки, выходы которых умножаются на коэффициенты фильтра и суммируются. Импульсная характеристика конечна,
потому что в фильтре нет обратных связей.
БИХ – с бесконечной импульсной характеристикой. Такой фильтр реализуется в виде каскадно-включенных элементов задержки, выходы которых умножаются на коэффициенты фильтра и суммируются. Дополнительно в
фильтре есть обратные связи. Импульсная характеристика бесконечна, потому что в фильтре есть обратные связи, приводящие к бесконечной циркуляции данных по петле обратной связи.
Контрольные вопросы:
1. Что такое аналоговый фильтр?
73
2. Что такое цифровой фильтр.
3. Методы проектирования фильтров.
4. Фильтр Batterworth.
5. Фильтр Chebyshev 1.
6. Фильтр Chebyshev 1.
7. Фильтр Elliptic.
8. Фильтр БИХ.
9. Фильтр КИХ.
10. Средства анализа фильтров в MATLAB
11. Инструмент Analog Filter Design.
12. Инструмент Digital Filter Design.
Задание
Расчет и моделирование БИХ фильтра.
Варианты заданий
№ Тип Метод
Bpass Гц Bstop Гц Apass дБ Astop дБ
0 ФНЧ Butterworth 0…200
300,,,
3
40
1
Chebyshev_1 0…200
300,,,
4
30
2
Chebyshev_2 0…200
300,,,
3.5
40
3
Elliptic
0…200
300,,,
4
50
4
Elliptic
0…200
300,,,
6
40
5 ФВЧ Butterworth 300…
0…200 3
40
6
Chebyshev_1 300…
0…200 4
30
7
Chebyshev_2 300…
0…200 3.5
40
8
Elliptic
300…
0…200 5
50
9
Elliptic
300…
0…200 6
40
Во все модели включаем:
Два генератора синусоиды - Sine Wave и Sine Wave1, Блок находится в Signal Processing Blockset => Signal Processing Sources.
Для одного генератора выбираем частоту в полосе пропускания (10 Гц), для
другого в полосе задерживания (100 Гц).
Частота дискретизации Fs должна быть значительно больше максимальной
рабочей. Выбираем Fs=1000 Гц. В поле Sample time нужно задать значение
1/1000 (1/Fs).
Сумматор Sum. Блок находится в Simulink => Math Operations.
Блок Analog Filter Design или Digital Filter Design для расчета параметров
фильтра. Блок находится в Signal Processing Blockset => Filtering => Filter
Implementations.
Наблюдатель Scope. Блок находится в Simulink => Sinks. В нем 2 входа.
74
8.1. Аналоговый БИХ фильтр
Спроектировать ФНЧ. Метод Butterworth, полоса пропускания Bpass=0…50 Гц,
порядок фильтра 8. Создаем модель фильтра в среде Simulink.
Блок Analog Filter Design.Для расчета фильтра двойным щелчком мыши запускаем программу расчета фильтра. В его окне задаем параметры фильтра.
Внимание. Границу полосы пропускания надо задавать не в герцах, а в рад/сек.
Стало быть, частоту умножаем на 2*3.14.
Затем нажимаем кнопку OK, фильтр рассчитывается и блок превращается в
рассчитанный фильтр.
Теперь можно осуществить моделирование фильтра. В результате в Scope получаем диаграммы сигналов. Входной сигнал фильтра содержит сумму двух
синусоид, а в выходном только одна.
75
76
8.2. Цифровой БИХ фильтр
Спроектировать ФНЧ с БИХ. Метод Butterworth, полоса пропускания
Bpass=0…200 Гц, полосой задерживания, Bstop=300 Гц…, неравномерность в
полосе пропускания Apass=1дБ и гарантированное затухание Astop=60дБ.
Создаем модель фильтра в среде Simulink.
Блок Digital Filter Design. Двойным щелчком по нему в модели вызываем окно
параметров. В этом окне выполняется расчет фильтра. Окно содержит поля для
выбора параметров фильтра и графическое окно результатов.
В окне параметров блока размещены компоненты:
окно визуального отображения, вид которого выбирается кнопками в панели
инструментов (вначале оно иллюстрирует спецификации АЧХ фильтра),
поле информации о рассчитываемом фильтре (слева от графического окна),
поле типа фильтра (первое поле слева внизу), в котором в верхней части выбирается вид фильтра - в примере Lowpass, а в нижней части метод расчета –
в примере фильтр с БИХ (IIR), Butterworth,
поле задания порядка фильтра с областью опций, если они имеются (второе
слева поле внизу), в примере минимальный порядок,
данные о частотах (третье слева поле внизу), в примере частота дискретизации Fs=1000Гц (не менее 2Fstop), граница полосы пропускания Fpass=50Гц,
граница полосы задерживания Fstop=75Гц.
затухания (правое поле внизу), в примере Apass=2 дБ, Astop=60 дБ.
В перечисленных полях нужно задать параметры фильтра и запустить подпрограмму расчета, нажав кнопку Design Filter. После расчета графическое окно
автоматически переключается на отображение АЧХ фильтра, а в информационном окне отображаются параметры фильтра. Получился фильтр 19 порядка.
По умолчанию выбирается структура фильтра из каскадно-соединенных биквадратных звеньев.
77
78
Карта полюсов и нулей фильтра
79
Коэффициенты фильтра.
В списке отображаются коэффициенты числителя (группа Numerator) и знаменателя (группа Denumerator) передаточной функции фильтра. Если коэффициенты не умещаются в графическом окне, то они отображаются с линейкой
скроллинга. В примере использован КИХ фильтр Equiripple, который не имеет
полюсов и коэффициентов знаменателя.
Импульсная характеристика. Это отклик фильтра на дельта-функцию.
80
81
Переходная характеристика. Это отклик фильтра на ступенчатую функцию.
82
Теперь можно осуществить моделирование фильтра. В результате в Scope получаем диаграммы сигналов. Входной сигнал фильтра содержит сумму двух
синусоид, а в выходном только одна.
83
8.3. Цифровой КИХ фильтр
Варианты заданий
№ Тип Метод
Bpass Гц Bstop Гц Apass дБ Astop дБ
0 ФНЧ Equiripple
0…200
300,,,
3
40
1.
Maximaly Flat 0…200
300,,,
4
30
17.
Least-Square 0…200
300,,,
3.5
40
18.
Equiripple
0…200
300,,,
5
50
19.
Interpolated
0…200
300,,,
6
40
20. ФВЧ Equiripple
300…
0…200 3
40
21.
Maximaly Flat 300…
0…200 4
30
22.
Least-Square 300…
0…200 3.5
40
23.
Equiripple
300…
0…200 4
50
24.
Interpolated
300…
0…200 6
40
Спроектировать ФНЧ с КИХ. Метод Equiripple, полоса пропускания
Bpass=0…50 Гц, полоса задерживания Bstop=75 Гц…, неравномерность в полосе пропускания Apass=1дБ и гарантированное затухание Astop=60дБ.
Создаем модель фильтра в среде Simulink. Она не отличается от модели цифрового БИХ фильтра.
Блок Digital Filter Design. Двойным щелчком по нему в модели вызываем окно
параметров. В этом окне выполняется расчет фильтра. Окно содержит поля для
выбора параметров фильтра и графическое окно результатов.
В перечисленных полях нужно задать параметры фильтра и запустить подпрограмму расчета, нажав кнопку Design Filter. После расчета графическое окно
автоматически переключается на отображение АЧХ фильтра, а в информационном окне отображаются параметры фильтра. Получился фильтр 79 порядка.
84
85
Карта полюсов и нулей фильтра
86
Коэффициенты фильтра.
В списке отображаются коэффициенты числителя (группа Numerator) и знаменателя (группа Denumerator) передаточной функции фильтра. Если коэффициенты не умещаются в графическом окне, то они отображаются с линейкой
скроллинга. В примере использован КИХ фильтр Equiripple, который не имеет
полюсов и коэффициентов знаменателя.
87
Импульсная характеристика. Это отклик фильтра на дельта-функцию.
Переходная характеристика. Это отклик фильтра на ступенчатую функцию.
Теперь можно осуществить моделирование фильтра. В результате в Scope получаем диаграммы сигналов. Входной сигнал фильтра содержит сумму двух
синусоид, а в выходном только одна.
88
89
9. Модемы
Предмет исследования
При передаче сигналов по линиям связи прямая передача не всегда возможна,
так как физическая среда распространения не согласуется с сигналом. Поэтому
для передачи используется боле высокочастотное колебание – переносчик (несущая - carrier). Параметры переносчика меняются по закону первичного сигнала. Процесс изменения называется модуляцией.
В зависимости от того, какой параметр несущей модулируется, различают амплитудную (АМ), частотную (ЧМ) и фазовую (ФМ) модуляцию. Устройство,
исполняющее этот процесс, называется модулятором.
При приеме первичный сигнал извлекается из принятого сигнала. Процесс извлечения называется демодуляцией. Устройство, исполняющее этот процесс,
называется демодулятором.
Модулятор и демодулятор образуют комплекс, который называется модемом.
Известны аналоговые и цифровые модемы.
Контрольные вопросы:
1. Назначение модуляции.
2. Модемы с DSB – двухполосная АМ.
3. Модемы с DSBSC– DSB с подавленной несущей.
4. Модемы с SSB – Однополосная АМ.
5. Модемы с M_PAM - M-фазная АМ.
6. Модемы с BPSK - 2-фазная ФМ.
7. Модемы с DBPSK - 2-фазная дифференциальная ФМ.
8. Модемы с QPSK – 4-фазная ФМ.
9. Модемы с DQPSK – 4-фазная дифференциальная ФМ..
10. Модемы с MDPSK – M-фазная дифференциальная ФМ.
11. Модемы с MPSK – M-фазная ФМ
12. Модемы с MFSK – M-частотная ЧМ.
13. Модемы с Rectangular QAM - КАМ.
Выполнить моделирование модема заданного типа при частоте сигнала F и частоте несущей Fc. Во всех моделях использовать блоки:
Источник модулирующего сигнала - Sine Wave.
Модулятор и демодулятор.
Канал связи AWGN с гауссовским шумом.
Наблюдатель Scope для просмотра сигналов.
Анализатор спектра Spectrum Scope.
90
9.1. Аналоговые модемы
Задание
Выполнить моделирование модема заданного типа при частоте сигнала F и частоте несущей Fc. Во всех моделях использовать блоки:
Генератор синусоиды Sine Wave. Блок находится в Signal Processing Toolbox
=> Signal Processing Sources. Источник модулирующего сигнала.
Модулятор и демодулятор. Из Communicatios Blockset => Modulation.
Канал связи с гауссовским шумом AWGN channel. Блок находится в Communicatios Blockset => Channels.
Наблюдатель Scope. Блок находится в Simulink => Sinks. В нем 3 входа.
Анализатор спектра Spectrum Scope. Блок находится в Signal Processing
Toolbox => Signal Processing Sinks.
Spectrum Scope для модулирующего сигнала.
Spectrum Scope1 для модулированного сигнала.
Анализаторы спектра используют быстрое преобразование Фурье с числом отсчетов, равным 2 в целой степени. Будем использовать прямоугольное окно
BoxCar и 256 отсчетов. Для других блоков модели нужно задать время отсчета
Simple time, равным 1/256.
Варианты заданий
№ Модем
F Fc Девиация Полоса М Fsep
0 DSB AM
10 100
1 DSBSC AM 10 100
2 SSB AM
10 100
3 DSB AM
10 100
4 M-FSK
2 2
5 SSB AM
10 100
Нижняя
6 SSB AM
10 100
Верхняя
7 M_PAM
4
8 FM
10 100 30
9 PM
10 100 Pi/2
91
9.1.1. Аналоговый модем DSB
Выполнить моделирование аналогового модема с двухполосной амплитудной
модуляцией – DSB. F=10, Fs=50.
Создаем модель в среде Simulink. В ней модулирующий сигнал выбирается
ручным переключателем Manual Switch из двух возможных:
Одна синусоида.
Сумма синусоид (для демонстрации термина боковая полоса).
Моделирующий сигнал синусоида. Анализаторы спектра показывают спектры модулирующего сигнала (слева) и модулированного сигнала (справа).
Моделирующий сигнал сумма синусоид. Анализаторы спектра показывают
спектры модулирующего сигнала (слева) и модулированного сигнала (справа).
92
Модулированный сигнал содержит несущее колебание, которое не несет информации и энергетически лишнее, а также две боковые полосы, связанные с
одной и той же информацией.
При моделировании с разными уровнями шума получим:
Слева С/Ш=100 дБ, шума практически нет. Сигнал демодулирован, но в нем
может быть заметен остаток несущей. Причина неэффективный фильтр в
демодуляторе. В этом случае можно выбрать в окне демодулятора более качественный фильтр.
Справа С/Ш=10 дБ. Шум заметен.
9.1.2. Аналоговый модем DSBSC
Выполнить моделирование аналогового модема с двухполосной амплитудной
модуляцией с подавленной несущей – DSBSC. F=10, Fs=50.
Создаем модель в среде Simulink.
93
При моделировании анализаторы спектра показывают спектры модулирующего
сигнала (слева) и модулированного сигнала (справа).
Модулированный сигнал содержит две боковые полосы, связанные с одной и
той же информацией. Несущее колебание подавленj. Энергетически это более
выгодный способ АМ.
При моделировании с разными уровнями шума получим:
Слева С/Ш=100 дБ, шума практически нет. Сигнал демодулирован, но в нем
может быть заметен остаток несущей. Причина неэффективный фильтр в
демодуляторе. В этом случае можно выбрать в окне демодулятора более качественный фильтр.
Справа С/Ш=10 дБ. Шум заметен меньше, чем при двухполосной АМ, так
как энергия боковых полос выше.
94
95
9.1.3. Аналоговый модем SSB
Выполнить моделирование аналогового модема с однополосной амплитудной
модуляцией с подавленной несущей – SSB (использована нижняя боковая).
F=10, Fs=50.
Создаем модель в среде Simulink.
При моделировании анализаторы спектра показывают спектры модулирующего
сигнала (слева) и модулированного сигнала (справа).
Модулированный сигнал содержит только одну боковую компоненту, связанную с информацией. Энергетически это самый выгодный способ АМ.
При моделировании с разными уровнями шума получим:
Слева С/Ш=100 дБ, шума практически нет. Сигнал демодулирован, но в нем
может быть заметен остаток несущей. Причина неэффективный фильтр в
демодуляторе. В этом случае можно выбрать в окне демодулятора более качественный фильтр.
Справа С/Ш=10 дБ. Шум заметен еще меньше, чем при двухполосной АМ с
подавленной несущей, так как боковых полоса одна.
96
97
9.1.4. Аналоговый модем FM
Выполнить моделирование аналогового модема с частотной модуляцией - FM.
F=10, Fs=50, девиация частоты 30.
Создаем модель в среде Simulink.
При моделировании анализаторы спектра показывают спектры модулирующего сигнала (слева) и модулированного сигнала (справа).
Модулированный сигнал содержит много боковых компонент, связанных с информацией. С точки зрения требуемой полосы частот радиоканала это невыгодный способ модуляции.
При моделировании с разными уровнями шума получим:
Слева С/Ш=100 дБ, шума практически нет.
Справа С/Ш=10 дБ. Шум малозаметен.
98
99
9.1.5. Аналоговый модем PM
Выполнить моделирование аналогового модема с фазовой модуляцией - PM.
F=5, Fs=50, девиация частоты 20.
Создаем модель в среде Simulink.
При моделировании анализаторы спектра показывают спектры модулирующего
сигнала (слева) и модулированного сигнала (справа).
Модулированный сигнал содержит много боковых компонент, связанных с информацией. С точки зрения требуемой полосы частот радиоканала это невыгодный способ модуляции.
При моделировании с разными уровнями шума получим:
Слева С/Ш=100 дБ, шума практически нет Сигнал демодулирован, но в нем
может быть заметен остаток несущей. Причина неэффективный фильтр в
демодуляторе. В этом случае можно выбрать в окне демодулятора более качественный фильтр.
Справа С/Ш=10 дБ. Шум заметен.
100
101
9.2. Цифровые модемы
Предмет исследования
Цифровые модемы с фазовой модуляцией (PSK = Phase Shift Keying) используют фазовую модуляцию с несколькими значениями фазы. На каждом такте
передаваемый сигнал можно представить как вектор одной и той же амплитуды, но с разной фазой. Применяются разновидности PSK:
BPSK (Binary PSK). Использует 2 фазы. Кодовая комбинация, передаваемая
на одном такте - 1 бит со значениями 0 и 1. Им соответствует вектор с модулем 1 и фазами, отличающимися на pi. Это означает самую низкую скорость
передачи, но самую высокую помехозащищенность.
QPSK (Quadro PSK). Использует 4 фазы. Кодовая комбинация, передаваемая на одном такте - 2 бита со значениями 0 или 1. Им соответствует вектор
с модулем 1 и фазами, отличающимися на pi/2. Скорость передачи в 2 раза
выше, чем для BPSK, но помехозащищенность ниже.
M-PSK (Multiple PSK). Использует M фаз.. Кодовая комбинация, передаваемая на одном такте, имеет длину К, зависящую от М (М=2К). Им соответствует вектор с модулем 1 и фазами, отличающимися на 2pi/M. При M>4
скорость передачи выше, чем для BPSK или QPSK, но помехозащищенность
ниже.
Цифровой модем Rectangular_QAM использует квадратурную амплитудную
модуляцию (КАМ). Модулированный сигнал содержит квадратурные компоненты: косинусная (или синфазная) и синусная (или противофазная). При их
суммировании получается амплитудно-фазовая модуляция.
На каждом такте передаваемый сигнал можно представить как вектор определенными модулями и фазами. Концы векторов могут попадать в точки, которые
образуют созвездие. Количество точек в созвездии M=2K, K – длина кодовой
комбинации (KK).
Длина кодовой комбинации K, передаваемой на одном такте, зависит от числа
точек в созвездии M=2K. Например, при K=4 M=16. Скорость передачи в модеме КАМ выше, чем в модемах QPSK и BPSK, так как у них М выше.
Помехозащищенность зависит от расстояния между точками в созвездии. Например, при одном и том же высоком М, КАМ лучше, чем M-PSK, так как точки в созвездии более разнесены.
Наиболее распространен модем Rectangular_QAM, в котором созвездие – это
набор точек на прямоугольной решетке.
Контрольные вопросы:
1. Назначение модуляции.
2. Модемы с BPSK - 2-фазная ФМ.
3. Модемы с QPSK – 4-фазная ФМ.
4. Модемы с MPSK – M-фазная ФМ
5. Модемы с MFSK – M-частотная ЧМ.
6. Модемы с Rectangular QAM - КАМ.
102
Задание
Выполнить моделирование модема заданного типа при частоте сигнала F и частоте несущей Fc.
Варианты заданий
№ Модем F Fc М
0 BPSK 10 60
1 QPSK 10 100
2 BPSK 10 60
3 QPSK 10 100
4 MPSK 10 60 2
5 MFSK 10 100 2
6 MPSK 10 60 2
7 MFSK 10 100 4
8 QAM 10 60 4
9 QAM 10 100 16
Во всех моделях использовать блоки:
Источник данных, генератор случайных целых чисел – Random-Integer
Generator. Блок находится в Communications Blockset => Comm Sources =>
Random Data Sources. Блок вырабатывает случайные числа в интервале
0...M-1.
Модуляторы. Блоки находятся в Communications Blockset => Modulation =>
Digital Baseband Modulation. В окне его параметров задаем фазовое смещение (Phase Offset), равным 0, чтобы кодовых комбинаций (КК) размещались
на оси X на карте созвездий.
Канал связи с добавлением гауссовского шума AWGN Channel. Блок находится в Communications Blockset => Channels. В окне его параметров выбирается отношение сигнал/шум С/Ш.
Демодуляторы. Блоки находится в Communications Blockset => Modulation
=> Digital Baseband Modulation. В окне его параметров задаем то же, что в
модуляторе.
Карта рассеяния Discrete-Time Scatter Plot. Блок находится в Communications Blockset => Comm Sinks. Блок используется для просмотра карты созвездий кодовых комбинаций сигналов. В окне надо задать достаточно
большое число отображаемых точек (Point Displayed).
Наблюдатель Scope. Блок находится в Simulink => Sinks. В нем 3 входа. Зададим имена входов блока (T_Message – переданное сообщение, R_Message принятое сообщение, Error - ошибка).
Блоки преобразования комплексных чисел в формат амплитуда-фаза
Complex to Magnitude-Angle. Блок находится в Simulink => Math Operations.
Вещественные сигналы с выходов амплитуда |u| этих блоков передаем на
входы наблюдателя Scope.
103
Сумматор Sum. Блок находится в Simulink => Math Operations. Блок ставим
в режим вычитания, чтобы определить сигнал ошибки Error, разницу передаваемого и принятого сообщений.
104
9.2.1. Цифровой модем BPSK
Выполнить моделирование цифрового модема с 2-кратной фазовой модуляцией
- BPSK.
Создаем модель в среде Simulink.
При моделировании с разными уровнями шума получим.
С/Ш=100 дБ, шума практически нет. На карте рассеяния сигнала помех не
заметно. Передаваемое и принятое сообщения совпадают.
С/Ш=10 дБ, шум есть. На карте рассеяния сигнала помехи заметны. Однако
КК не перекрываются. Демодулятор формирует правильное сообщение.
Сигнал ошибки равен 0.
105
С/Ш=0 дБ, интенсивный шум. На карте рассеяния сигнала помехи велики,
КК не перекрываются. Демодулятор формирует сообщение с ошибками.
Сигнал ошибки не равен 0.
106
9.2.2. Цифровой модем QPSK
Выполнить моделирование цифрового модема QPSK.
Создаем модель в среде Simulink.
При моделировании с разными уровнями шума получим.
С/Ш=100 дБ, шума практически нет. На карте рассеяния сигнала помех не
заметно. Передаваемое и принятое сообщения совпадают.
С/Ш=10 дБ, шум есть. На карте рассеяния сигнала помехи заметны. Однако
КК не перекрываются. Демодулятор формирует правильное сообщение.
Сигнал ошибки равен 0.
С/Ш=0 дБ, интенсивный шум. На карте рассеяния сигнала помехи велики,
КК не перекрываются. Демодулятор формирует сообщение с ошибками.
Сигнал ошибки не равен 0.
107
108
9.2.3. Цифровой модем M-PSK
Выполнить моделирование цифрового модема M-PSK с M=8.
Создаем модель в среде Simulink.
При моделировании с разными уровнями шума получим.
С/Ш=100 дБ, шума практически нет. На карте рассеяния сигнала помех не
заметно. Передаваемое и принятое сообщения совпадают.
С/Ш=10 дБ, интенсивный шум. На карте рассеяния сигнала помехи велики,
КК не перекрываются. Демодулятор формирует сообщение с ошибками.
Сигнал ошибки не равен 0.
109
9.2.4. Цифровой модем M-FSK
Выполнить моделирование цифрового модема с множественной частотной модуляцией - M-FSK с M=8. Частотный разнос 6.
Создаем модель в среде Simulink.
При моделировании с разными уровнями шума получим.
С/Ш=100 дБ, шума практически нет. На карте рассеяния сигнала помех не
заметно. Передаваемое и принятое сообщения совпадают.
110
С/Ш=0 дБ, интенсивный шум. Демодулятор формирует сообщение с ошибками. Сигнал ошибки не равен 0.
111
112
9.2.5. Цифровой модем M-PAM
Выполнить моделирование цифрового модема с множественной амплитудной
модуляцией - M-PAM с M=8.
Создаем модель в среде Simulink.
При моделировании с разными уровнями шума получим.
С/Ш=100 дБ, шума практически нет. На карте рассеяния сигнала помех не
заметно. Передаваемое и принятое сообщения совпадают.
С/Ш=20 дБ, шум есть. На карте рассеяния сигнала помехи заметны. Однако
КК не перекрываются. Демодулятор формирует правильное сообщение.
Сигнал ошибки равен 0.
113
С/Ш=10 дБ, интенсивный шум. На карте рассеяния сигнала помехи велики,
КК не перекрываются. Демодулятор формирует сообщение с ошибками.
Сигнал ошибки не равен 0.
114
9.2.6. Цифровой RECT_QAM модем
Выполнить моделирование цифрового КАМ модема на прямоугольной решетке
- RECT_QAM с M=16.
Создаем модель в среде Simulink.
При моделировании с разными уровнями шума получим.
С/Ш=100 дБ, шума практически нет. На карте рассеяния сигнала помех не
заметно. Передаваемое и принятое сообщения совпадают.
С/Ш=20 дБ, шум есть. На карте рассеяния сигнала помехи заметны. Однако
КК не перекрываются. Демодулятор формирует правильное сообщение.
Сигнал ошибки равен 0.
115
С/Ш=10 дБ, интенсивный шум. На карте рассеяния сигнала помехи велики,
КК перекрываются. Демодулятор формирует сообщение с ошибками. Сигнал ошибки не равен 0.
116
10. Канальные кодеки
Предмет исследования
Принципы построения кода. Из информационного сообщения, содержащего
слова кода U, по определенным правилам вырабатывается выходное сообщение, включающее кодовые слова V. В простых кодах используются все кодовые
слова (комбинации), количество которых равно N=qn (q - основание кода, а n длина кода). Кодовые слова V отличаются друг от друга одним символом, поэтому даже один ошибочно принятый символ приводит к замене одного кодового слова другим и, следовательно, к неправильному приему сообщения в целом.
Помехоустойчивыми называются коды, позволяющие обнаруживать и (или)
исправлять ошибки в кодовых словах V, которые возникают при передаче по
каналам связи. Эти коды строятся таким образом, что для передачи сообщения
используется лишь часть кодовых слов, которые отличаются друг от друга более чем в одном символе. Эти кодовые слова называются разрешенными. Остальные кодовые слова относятся к числу запрещенных и могут появиться из-за
наложения помех в канале связи.
Существуют два способа помехоустойчивого кодирования:
C обнаружением ошибок – приемник обнаруживает ошибку и по каналу
обратной связи направляет запрос на повторную передачу данных. Метод
применяется для каналов с малой вероятностью ошибок.
С исправлением ошибок – приемник обнаруживает и исправляет ошибку.
Метод применяется для каналов с высокой вероятностью ошибок. Использование даже простейших кодов с исправлением ошибок позволяет уменьшить
вероятность ошибок в тысячи раз.
Основные параметры помехоустойчивых кодов. В помехоустойчивых (или
канальных) кодах в сообщение U с целью повышения помехозащищенности
вносится избыточность, добавляются проверочные символы. Основные параметры кодов:
Длина k информационного слова U.
Длина r=n-k управляющей последовательности P.
Длина n=k+r кодового слова V.
Кодовое расстояние Хэмминга D - число позиций, в которых два разрешенных кодовых слова отличаются друг от друга.
Кодовое расстояние Dmin - это наименьшее D между различными парами
кодовых слов. Если Dmin=1, то все слова разрешенные.
Кратность обнаруживаемых ошибок TО.
Кратность исправляемых ошибок TИ.
Требуемое кодовое расстояние D определяется способом обработки ошибок:
D ≥TО+1, если ошибки только обнаруживаются,
D ≥ TО + TИ +1, если часть ошибок исправляется, а часть только обнаруживается (приTО>TИ),
117
Классы помехоустойчивых кодов:
Коды с контролем четности. В них в кодовом слове V контролируется четность или нечетность количества 1.
Линейные блочные коды. В них кодовое слово V включает две части информационную U и управляющую P (V = P, U).
Циклические блочные коды. В них кодовое слово получается умножением
U на генерирующий множитель G по правилам модульной арифметики. Реализация кодера с циклическими кодами проще.
Сверточные коды. В них слово U разбивается на части (кортежи U1). Кодер имеет память для хранения U из нескольких кортежей. Кортежи заносятся в эту память путем сдвига. Кодер и декодер имеют одинаковый набор состояний S, между которыми определены переходы по кортежу U1. Выходной код V включает номер состояния кодера S и кортеж U1. В декодере дублируется работа кодера, повторяется состояние S кодера, из которого извлекается слово U. Чтобы кодек работал, необходима синхронизация кодера и
декодера – их состояния должны быть одинаковыми. Декодирование осуществляется по алгоритму Витерби, который ускоряет синхронизацию декодера с кодером.
Контрольные вопросы:
1. Назначение помехоустойчивых кодов.
2. Коды с контролем четности.
3. Блоковые коды.
4. Кодек Хэмминга.
5. Циклические блоковые коды
6. Кодек BCH.
7. Кодек Рида-Соломона.
8. Сверточный кодек.
Задание
Выполнить моделирование кодека при длине сообщения K, длине кодового
слова N, R с кратностями ошибок T.
Варианты заданий
№ Кодек
K N Кратность ошибок T
0 Хэмминга
4
7 0, 1, 3
1 BCH
4
7 0, 1, 3
2 Рида-Соломона 4
7 0, 1, 3
3 Сверточный
2 3 0, 1, 2
4 Хэмминга
11 15 0, 1, 6
5 BCH
11 15 0, 1, 6
6 Рида-Соломона 11 15 0, 1, 6
7 Сверточный
2
3 0, 1, 3
8 Хэмминга
26 31 0, 1, 5
9 BCH
26 31 0, 1, 8
В модели включаем:
118
Источник данных, генератор случайных двоичных чисел – Bernoulli BinaryInteger, вырабатывающий случайные биты. Блок находится в
Communications Blockset => Comm Sourses => RandomData Sourses. Выход
генератора нужно сделать в виде фрейма из K=11 отсчетов. В окне параметров блока зададим и вероятность нулей, равную 0,9.
Кодер. Блок находится в Communications Blockset => Error Detection and Correction => Block.Он по сообщению K формирует передаваемый код V. В окне параметров блока Ошибка! Источник ссылки не найден.задаем N=15 и
число добавляемых символов N-k=4 как параметр функции генерации порождающей функции.
Умножитель Gain. Блок находится в Simulink => Math Operations. Он умножает выход кодера на вектор ошибки E из 0 и 1, имитирующий ошибки в
канале связи (ошибка может получиться при компоненте E, равном 0). Вектор E должен содержать N компонент, которые вычислим функцией
rot90(randerr(N,1,N -ER)). Получим вектор-строку из N равновероятных нулей и единиц, из которых (N –ER) равны 1.
Декодер. Блок находится в Communications Blockset => Error Detection and
Correction => Block. Для него нужно задать параметры, аналогичные кодеру.
Блоки Unbuffer. Блок находится в Signal Processing Blockset => Signal management => Buffers. Они преобразуют фреймы в линейные последовательности, направляемые к виртуальному наблюдателю Scope.
Наблюдатель Scope. Блок находится в Simulink => Sinks. Он позволяет в общем масштабе времени наблюдать сигналы от блоков Buffer. Чтобы в графиках наблюдателя были заголовки, сделаем входам имена. Для этого двойным щелчком по линии входа вызовем окно ввода имени, в которое занесем
имя. Зададим имена: для передаваемого сообщения – T_Message, для передаваемого кода T_Code, для принятого кода – R_Code, для декодированного
сообщения R_Message.
119
10.1. Кодек Хэмминга
Выполнить моделирование кодека Хэмминга (11,15) без ошибок T0=0, и с
ошибками с кратностью T1=1, T2=2. Создаем модель в среде Simulink.
При моделировании с разными кратностями ошибок получим:
120
Ошибок нет, T0=ER=0. Code_T и Code_R одинаковы.
Ошибка кратности T1=ER=1. Code_T и Code_R не одинаковы. Все ошибки
исправлены.
121
Ошибка кратности T2=ER=2. Code_T и Code_R не одинаковы. Часть ошибок
осталась.
122
123
10.2. Кодек BCH
Выполнить моделирование кодека BCH (5,15) без ошибок TO=0 и с ошибками с
кратностью T1=4, T2=5.
Создаем модель в среде Simulink.
При моделировании с разными кратностями ошибок получим:
124
Ошибок нет, T0=ER=0. Code_T и Code_R одинаковы. Дисплей отображает
0.
Ошибка кратности T1=ER=4. Code_T и Code_R не одинаковы. Все ошибки
исправлены. Дисплей отображает их количество (2).
125
Ошибка кратности T2=ER=8. Code_T и Code_R не одинаковы. Часть ошибок
осталась. Дисплей отображает этот факт числом со знаком минус (-1).
126
127
10.3. Кодек Рида-Соломона
Выполнить моделирование кодека Рида-Соломона RS(5,15) без ошибок T0=0 и
с ошибками с кратностью T1=4, T2=8.
Создаем модель в среде Simulink.
При моделировании с разными кратностями ошибок получим:
128
Ошибок нет, T0=ER=0. Code_T и Code_R одинаковы. Дисплей отображает
0.
Ошибка кратности T1=ER=5. Code_T и Code_R не одинаковы. Все ошибки
исправлены. Дисплей отображает их количество (5).
129
Ошибка кратности T2=ER=7. Code_T и Code_R не одинаковы. Часть ошибок
осталась.
130
Дисплей отображает этот факт числом со знаком минус (-1).
131
132
10.4. Сверточный кодек
Выполнить моделирование сверточного кодека 2/3 без ошибок T0=0 и с ошибками с кратностью T1=4, T2=8.
Создаем модель в среде Simulink.
В модель включаем:
Сверточный кодер Convolution encoder. Блок находится в Communications
Blockset => Error Detection and Correction => Convolution. Он по сообщению
из K=2 символов формирует передаваемый код V из N=3 символов. В окне
параметров кодера нужно задать функцию генерации решетки poly2trellis([4
3],[4 5 17; 7 4 2]).
Умножитель Gain. Блок находится в Simulink => Math Functions. Он умножает выход кодера на вектор ошибки E из 0 и 1, имитирующий ошибки в
канале связи (ошибка может получиться при компоненте E, равном 0). Вектор E должен содержать N компонент, которые вычислим функцией
rot90(randerr(N,1,N -ER)). Получим вектор-строку из N равновероятных нулей и единиц, из которых N -ER равны 1.
133
Сверточный декодер – Convolution decoder. Блок находится в Communications Blockset => Error Detection and Correction => Convolution. Он декодирует сообщение, используя алгоритм Витерби. В окне параметров блока нужно
повторить решетку, выбрать декодирование с жестким решением (Hard
Decision) и глубину отслеживания назад примерно 3·(K+N). В поле глубина
слежения (Traceback Depth) задаем 10. Это означает, что декодированное сообщение будет создаваться со сдвигом на 10 тактов.
Блоки Unbuffer Блок находится в Signal Processing Blockset => Signal management => Buffers. Они преобразуют фреймы в линейные последовательности, направляемые к виртуальному наблюдателю Scope.
Блок задержки Integer Delay. Блок находится в Simulink => Discrete. Он задерживает Message_T на время обработки в декодере, чтобы наглядно сравнивать переданное и принятое сообщения.
Наблюдатель Scope. Блок находится в Simulink => Sinks. Он позволяет в общем масштабе времени наблюдать сигналы от блоков Buffer. Чтобы в графиках наблюдателя были заголовки, сделаем входам имена. Для этого двой134
ным щелчком по линии входа вызовем окно ввода имени, в которое занесем
имя. Зададим имена:
для передаваемого сообщения – T_Message,
для передаваемого кода T_Code,
для принятого кода – R_Code,
для декодированного сообщения R_Message,
для задержанного передаваемого сообщения – T_Message_Delay.
При моделировании с разными кратностями ошибок получим:
Ошибок нет, T0=ER=0. T_Code и R_Code одинаковы. R_Message совпадает
с T_Message, но сдвинуто на 10 тактов.
Ошибка кратности T1=ER=1. T_Code и R_Code не одинаковы. R_Message не
совпадает с T_Message, и сдвинуто на 10 тактов. Ошибки исправлены не
полностью. Сверточный кодек хорошо работает только при редких ошибках,
а в модели их вероятность 1/3.
135
11. Инструмент BERTool
Предмет исследования
В СКМ MATLAB имеется инструмент BERTool (Bit Error Rate Tool), позволяющий автоматизировать расчеты зависимости вероятности ошибок от отношения С/Ш для выбранного модема и канала связи. Окно инструмента содержит закладки:
Theoretical. Расчеты выполняются по теоретическим формулам.
Semianalitic. Расчеты выполняются полуаналитическими методами.
Monte Carlo. расчеты выполняются методами Монте-Карло.
Каждая закладка содержит средства графического инструмента пользователя
для выбора параметров модели.
Контрольные вопросы:
1. Назначение инструмента BERTool.
2. BERTool. Закладка Theoretical.
3. BERTool. Закладка Semianalitic.
4. BERTool. Закладка Monte Carlo.
Задание
136
Выполнить сравнительный анализ модемов и кодеков в заданном диапазоне
изменения отношения С/Ш при известном числе кодовых комбинаций М.
Варианты заданий
№
M
С/Ш в дБ
0
2
0…15
1
4
0…16
2
8
0…17
3
16
0…20
4
2
0…22
5
4
0…23
6
8
0…24
7
16
0…26
8
8
0…24
9
16
0…26
137
11.1. Модемы
Выполнить сравнительный анализ модемов PAM, PSK, FSK, QAM. Диапазон
изменения отношения С/Ш 0…18, число кодовых комбинаций М=16.
Командой BERTool вызываем инструмент.
Используем закладку Theoretical. В ее полях выбираем параметры:
В поле Eb/N0 заносим диапазон 0:18.
В поле Channel Type (тип канала) выбираем из списка канал с добавлением
белого шума AWGN.
В поле Modulation type (тип модуляции) последовательно выбираем нужные
типы.
В поле Modulation order (порядок модуляции) выбираем М=16.
Для каждого типа модема выполняем команду Plot, которая рисует график зависимости вероятности ошибок от отношения С/Ш. На графике для каждой зависимости отображается легенда с именем графика.
Изменим имена графиков на имена модемов. Для этого используем список графиков, отображаемый в верхней части окна инструмента. Двойной щелчок по
имени по умолчанию выделяет это имя, которое можно редактировать.
138
После перечисленных действий окно инструмента имеет следующий вид:
139
А это нарисованные графики:
Можно сделать выводы:
PAM – ошибки самые большие. Однако пропускная способность канала
лучшая из-за самого узкого спектра частот передаваемого сигнала.
FSK – самые низкие ошибки. Однако пропускная способность канала худшая из-за самого широкого спектра частот передаваемого сигнала.
140
11.2. Кодеки
Выполнить сравнительный анализ модема PSK без и с использованием блокового и сверточного кодеков в диапазоне изменения отношения С/Ш 0…18 при
числе кодовых комбинаций М=4. Для каждого кодека выбирать жесткое (Hard)
и мягкое (Soft) решение.
Командой BERTool вызываем инструмент.
Используем закладку Theoretical. В ее полях выбираем параметры:
В поле Eb/N0 заносим диапазон 0:18.
В поле Channel Type (тип канала) выбираем из списка канал с добавлением
белого шума AWGN.
В поле Modulation type (тип модуляции) выбираем тип PSK.
В поле Modulation order (порядок модуляции) выбираем М=4.
Для каждого типа модема выполняем команду Plot, которая рисует график зависимости вероятности ошибок от отношения С/Ш. На графике для каждой зависимости отображается легенда с именем графика.
Изменим имена графиков на имена модемов. Для этого используем список графиков, отображаемый в верхней части окна инструмента. Двойной щелчок по
имени по умолчанию выделяет это имя, которое можно редактировать.
После перечисленных действий окно инструмента имеет следующий вид:
141
142
А это нарисованные графики:
Можно сделать выводы:
Блоковый кодек. Ошибки всегда снижаются.
Сверточный кодек. При малом отношении С/Ш ошибок больше, чем без кодека. При большом отношении С/Ш ошибки со сверточным кодеком меньше, чем с блоковым. По этой причине сверточный кодек нужно использовать
каскадно с блоковым, как внутренний.
Ошибки при мягком решении всегда меньше, чем при жестком, однако
сложность оборудования возрастает.
143
Документ
Категория
Без категории
Просмотров
0
Размер файла
7 614 Кб
Теги
programma, matlab, sistemy
1/--страниц
Пожаловаться на содержимое документа