Применение MATLAB для моделирования радиотехнических сигналов и устройств. Учебно-методическое пособие
.pdf
Министерство образования и науки Российской Федерации НОВОСИБИРСКИЙ ГОСУДАРСТВЕННЫЙ ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ
С.В. ТЫРЫКИН, Р.Ю. БЕЛОРУЦКИЙ
ПРИМЕНЕНИЕ MATLAB ДЛЯ МОДЕЛИРОВАНИЯ РАДИОТЕХНИЧЕСКИХ СИГНАЛОВ И УСТРОЙСТВ
Учебно-методическое пособие
НОВОСИБИРСК
2017
УДК 621.391.3:004.942(075.8) Т 935
Рецензенты:
канд. техн. наук, доцент Ю.В. Морозов
аспирант В.В. Артюшенко
Работа подготовлена на кафедре радиоприемных и радиопередающих устройств и утверждена Редакционно-издательским советом университета в качестве учебно-методического пособия
Тырыкин С.В.
Т 935 Применение MATLAB для моделирования радиотехнических сигналов и устройств : учебно-методическое пособие / С.В. Тырыкин, Р.Ю. Белоруцкий. – Новосибирск: Изд-во НГТУ, 2017. – 52 с.
ISBN 978-5-7782-3210-5
Настоящее учебно-методическое пособие содержит теоретический материал и задания к практическим занятиям по курсу «Математическое моделирование радиотехнических устройств и систем». Пособие адресовано магистрантам, обучающимся по направлениям «Радиотехника» и «Инфокоммуникационные технологии и системы связи».
УДК 621.391.3:004.942(075.8)
Тырыкин Сергей Владимирович Белоруцкий Роман Юрьевич
ПРИМЕНЕНИЕ MATLAB ДЛЯ МОДЕЛИРОВАНИЯ РАДИОТЕХНИЧЕСКИХ СИГНАЛОВ И УСТРОЙСТВ
Учебно-методическое пособие
Редактор М.О. Мокшанова
Выпускающий редактор И.П. Брованова
Корректор И.Е. Семенова
Дизайн обложки А.В. Ладыжская Компьютерная верстка Н.В. Гаврилова
Налоговая льгота – Общероссийский классификатор продукции Издание соответствует коду 95 3000 ОК 005-93 (ОКП)
___________________________________________________________________________________
Подписано в печать 28.04.2017. Формат 60 × 84 1/16. Бумага офсетная. Тираж 100 экз. Уч.-изд. л. 3,02. Печ. л. 3,25. Изд. № 11. Заказ № 640. Цена договорная
___________________________________________________________________________________
Отпечатано в типографии Новосибирского государственного технического университета
630073, г. Новосибирск, пр. К. Маркса, 20
ISBN 978-5-7782-3210-5 |
Тырыкин С.В., Белоруцкий Р.Ю., 2017 |
|
Новосибирский государственный |
|
технический университет, 2017 |
|
ОГЛАВЛЕНИЕ |
|
Список сокращений................................................................................................. |
4 |
|
Введение................................................................................................................... |
5 |
|
1. |
Описание интерфейса.......................................................................................... |
7 |
2. |
Работа с командным окном................................................................................. |
8 |
3. |
Массивы и матрицы............................................................................................. |
9 |
|
3.1. Обращение к элементам массивов............................................................ |
10 |
|
3.2. Работа с оператором «двоеточие»............................................................. |
10 |
|
3.3. Операции с массивами и векторами......................................................... |
12 |
4. |
M-файлы............................................................................................................. |
14 |
5. |
Особенности синтаксиса языка MATLAB....................................................... |
15 |
|
5.1. Условный оператор «if … elseif … else» .................................................. |
15 |
|
5.2. Применение операторов отношения к матрицам.................................... |
17 |
|
5.3. Циклы типа «for»........................................................................................ |
19 |
|
5.4. Циклы типа «while».................................................................................... |
21 |
|
5.5. Операторы «break», «continue», «return» .................................................. |
22 |
|
5.6. Конструкция «switch … case … otherwise» .............................................. |
24 |
|
5.7. Создание функций...................................................................................... |
25 |
|
5.8. Глобальные переменные............................................................................ |
28 |
6. |
Установка пути поиска MATLAB .................................................................... |
28 |
7. |
Графические объекты........................................................................................ |
29 |
8. |
Задания для самостоятельной работы.............................................................. |
34 |
|
Задание № 1. Основы формирования и анализа сигналов............................. |
34 |
|
Задание № 2. Квантование сигналов ............................................................... |
36 |
|
Задание № 3. Модулированные сигналы ........................................................ |
37 |
|
Задание № 4. Основы формирования случайных чисел на ЭВМ.................. |
38 |
|
Задание № 5. Основы цифрового спектрального анализа............................. |
39 |
|
Задание № 6. Основы цифровой обработки изображений............................. |
40 |
Библиографический список.................................................................................. |
42 |
|
Приложения............................................................................................................ |
43 |
|
Приложение 1. Работа с графическими объектами. Справка по функциям..... |
43 |
|
Приложение 2. Значение свойств объектов......................................................... |
47 |
|
Приложение 3. Символы формата TeX................................................................ |
51 |
|
СПИСОК СОКРАЩЕНИЙ
АКФ – автокорреляционная функция АМ – амплитудная модуляция АЦП – аналого-цифровой преобразователь ПК – персональный компьютер
ПРВ – плотность распределения вероятности ПСЧ – псевдослучайное число СПМ – спектральная плотность мощности
ФАПЧ – фазовая автоподстройка частоты ЧМ – частотная модуляция ЭВМ – электронно-вычислительная машина
ВВЕДЕНИЕ
Продукт MATLAB компании MathWorks представляет собой одну из самых известных и распространенных в мире сред для инженерных и научных расчетов. Вместе с этим он является также и языком программирования высокого уровня.
Среда MATLAB предназначена для исследований и решения инженерных и научных задач в различных областях. Для этого в ее состав входит большое число специализированных приложений и пакетов расширений (англ. Toolbox), объем которых увеличивается по мере выхода новых версий MATLAB. Тематика пакетов охватывает широкий спектр, начиная со статистического анализа, оптимизации и аппроксимации данных и заканчивая цифровой обработкой сигналов, проектированием и анализом радиотехнических систем LTE и WLAN, антенн и др. [1].
Отличительной особенностью, отразившейся в названии среды MATLAB1, является ее ориентирование на оперативную работу с массивами данных, с матрицами и векторами.
Среда MATLAB имеет широкие возможности по визуализации данных в виде двух- и трехмерных графиков, диаграмм, гистограмм и др.
Язык программирования MATLAB относится к классу интерпретаторов. Интепретатор – это переводчик и исполнитель исходной программы. В отличие от компиляторов интерпретаторы не формируют в явном виде эквивалентную программу на машинном языке [2].
Достоинством интерпретаторов является возможность более простого создания и отладки кода программы за счет возможности исполнения его по частям. Недостаток состоит, как правило, в большем времени на выполнение программы, поскольку интерпретатору прихо-
1 Название MATLAB является сокращением от «matrix laboratory» – матричная лаборатория.
5
дится распознавать конструкции исходного кода каждый раз, когда они исполняются. Кроме того, интерпретатор не создает исполняемого файла, который работал бы независимо от среды MATLAB [2; 3].
Отчасти перечисленные недостатки устраняются с помощью расширения MATLAB Compiler [3, 4]. Оно позволяет создавать исполняемые файлы программ с использованием выбираемого компилятора как встроенного в среду, так и внешнего.
MATLAB позволяет также создавать графический интерфейс приложений. Для этого есть три способа: 1) использование функций для программного конструирования интерфейса; 2) среда GUIDE для компоновки типовых объектов на поле окна приложения; 3) среда App Designer (появилась в версии MATLAB R2016a [5]).
Настоящее пособие посвящено описанию основ программирования и работы в среде MATLAB в рамках курса «Математическое моделирование радиотехнических устройств и систем». Здесь практически не рассматриваются встроенные функции MATLAB; информацию обо всех функциях можно получить в справке на английском языке или, например, в избранной форме [6].
6
1. ОПИСАНИЕ ИНТЕРФЕЙСА
Главное окно среды MATLAB содержит несколько основных блоков (рис. 1).
Рис. 1. Вид главного окна среды MATLAB
Командное окно (Command Window) предназначено непосредственно для ввода, выполнения команд и вывода результата.
Текущая папка (Current Folder) – указание и просмотр содержимого папки для доступа к файлам.
Рабочая область (Workspace) позволяет просматривать данные, содержащиеся в созданных пользователем переменных.
7
История команд (Command History) отображает список выполненных команд, дает возможность выбирать и повторно выполнять команды из списка.
2. РАБОТА С КОМАНДНЫМ ОКНОМ
Командное окно позволяет создавать переменные, вызывать функции – в целом осуществлять полноценную работу со средой MATLAB.
Место для ввода новых команд так же, как и уже введенные, отмечается знаком «>>». Введенная команда выполняется после нажатия «Enter»; если при этом создавались или записывались переменные, они сохраняются в памяти и отображаются в рабочем пространстве. Результат выполнения команды по умолчанию выводится в командное окно сразу после введенной команды:
>> 2^2+3*sqrt(4)-log10(100)+sin(pi/6)
ans =
8.5000
Если пользователь не желает вывода результата выполнения команды в командное окно, то каждую команду необходимо заканчивать точкой с запятой. При этом в одну строку можно ввести несколько команд или располагать каждую в своей строке:
>>a=3; b=2+2;
>>c=4^(-1);
>>d=a+b+c
d =
7.2500
В командное окно также выводится информация об ошибке в коде команды. Например, при попытке обращения к несуществующей переменной или функции выводится следующее сообщение:
>> 1+2*s
Undefined function or variable 's'.
Для очистки командного окна используется команда clc.
8
3. МАССИВЫ И МАТРИЦЫ
Одной из ключевых особенностей и преимуществ MatLab является работа с массивами. Каждая созданная переменная по умолчанию является массивом. В простейшем случае это массив размерностью 1×1. Среда MATLAB позволяет обращаться с массивами как с простыми переменными.
Создание переменных в MATLAB организовывается путем операции присваивания, которой соответствует знак равенства. При этом после знака равенства может записываться как конкретное значение, так и выражение, расчет которого даст это значение. Тип переменной заранее не объявляется, он определяется значением, присваивающимся переменной. Это может быть числовая или символьная переменная, матричная или векторная:
Имя_переменной = значение или выражение, расчет которого дает значение
Матрица задается квадратными скобками, внутри которых числа одной строки разделяются пробелами или запятыми, а столбцы – точкой с запятой. Комплексные значения могут быть присвоены переменной без каких-либо особенностей, при этом мнимая единица может обозначаться как буквой «i», так и «j». Для создания символьной переменной текст вводится, начинаясь и заканчиваясь апострофом:
|
|
|
|
|
|
|
|
|
|
a=2016 |
|
|
|
|
a=3+0.5*cos(pi) |
|
|
|
|
a = |
|
|
|
|
a = |
|
|
|
|
|
2016 |
|
|
2.5000 |
|
|
|
|
|
a=[-1 0 1 |
2] |
|
|
a=[-1 0 1 2; 1 2 3 |
4] |
|
|||
a = |
|
|
|
|
a = |
|
|
|
|
-1 |
|
0 |
1 |
2 |
-1 |
0 |
1 |
|
2 |
|
|
|
|
|
1 |
2 |
3 |
|
4 |
a=[1+i;2-3j] |
|
|
a='NSTU' |
|
|
|
|
||
a = |
|
|
|
|
a = |
|
|
|
|
1.0000 |
+ 1.0000i |
|
NSTU |
|
|
|
|
||
2.0000 |
- 3.0000i |
|
|
|
|
|
|
||
9
3.1. Обращение к элементам массивов
Для обращения к элементам массива существует два способа. Пусть есть массив размером 3×4:
a=[1 2 3 4; 5 6 7 8; 9 10 11 12] a =
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
Первый способ, в случае двумерного массива, состоит в указании номера строки и столбца:
a(2,3) ans =
7
Второй – в указании лишь одного индекса, если считать, что нумерация идет по элементам столбцов сверху вниз, переходя с одного столбца на другой слева направо, а массив как бы разворачивается в вектор:
a(11) ans =
8
Можно обратиться к последнему элементу массива, указав его индекс как end, что удобно, когда общее число элементов неизвестно:
a(end) ans =
12
3.2. Работа с оператором «двоеточие»
Для обращения к нескольким элементам массива, соответствующим диапазону индексов, применяется оператор «двоеточие»:
10
