Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Применение MATLAB для моделирования радиотехнических сигналов и устройств. Учебно-методическое пособие

.pdf
Скачиваний:
0
Добавлен:
12.08.2026
Размер:
1 Мб
Скачать

Министерство образования и науки Российской Федерации НОВОСИБИРСКИЙ ГОСУДАРСТВЕННЫЙ ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ

С.В. ТЫРЫКИН, Р.Ю. БЕЛОРУЦКИЙ

ПРИМЕНЕНИЕ 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

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]