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

ППМ_Лаб1_Алексеев_Р_Д__ИКТ-306

.doc
Скачиваний:
73
Добавлен:
15.03.2015
Размер:
606.72 Кб
Скачать

САНКТ ПЕТЕРБУРГСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ ТЕЛЕКОММУНИКАЦИЙ им. М. А. БОНЧ-БРУЕВИЧА

Кафедра Цифровой обработки сигналов

Лабораторная работа

«Знакомство с MATLAB. Основные объекты языка MATLAB.»

Выполнили: ст. гр. ИКТ-306

Алексеев Роман

Проверил: ________________

Санкт-Петербург

2015 год.

Цель работы:

Познакомиться с назначением и интерфейсом системы MATLAB и овладеть начальными навыками работы в режиме прямых вычислений.

Краткая теоретическая справка:

Система MATLAB — это интерактивная система, предназначенная для

компьютерного моделирования практически в любой области науки и техники.

Интерфейс MATLAB образуют следующие окна:

  • Command Window (Командное окно) — основное окно интерактивной системы MATLAB с активизированной командной строкой; Из активизированной командной строки пользователь может возвращаться к ранее введенным командам с помощью стрелок "вверх" и "вниз" на клавиатуре. Сеанс работы в окне Command Window до выхода из MATLAB называют текущей сессией.

  • Current Folder (Текущая папка) — в этом окне выводится содержимое папки, имя которой отображается в раскрывающемся списке Current Folder на панели инструментов окна MATLAB. В составе ранних версий MATLAB (до 2009 года) содержалась автоматически создаваемая текущая папка со стандартным именем work, предназначенная для хранения файлов и папок, создаваемых пользователем. В последующих версиях такая папка отсутствует. Для тех же целей предусмотрена папка MATLAB, автоматически создаваемая в папке Мои документы на Рабочем столе. Создание собственной папки в окне Current Folder выполняется с помощью контекстного меню по команде New Folder (Новая папка), и новой папке присваивается имя. Сохранение пути к собственной папке в окне Current Folder выполняется по команде контекстного меню Add to Path | Selected Folders (Добавить к пути | Выделенные папки).

  • Workspace (Рабочая область памяти) — в этом окне выводится список текущих переменных, сохраняемых в рабочей области памяти Workspace до выхода из MATLAB;

  • Command History (История команд) — в этом окне выводится построчный список объектов языка MATLAB, вводимых в ходе текущей и предшествующих сессий. Двойным щелчком левой кнопки мыши можно дублировать любую строку из окна Command History в окно Command Window.

Пользователь может произвольно менять состав активных окон с помощью команд

пункта меню Desktop (Стол).

Система оперативной помощи MATLAB включает в себя:

  • справочную систему в формате HTML (Hyper Text Markup Language — язык гипертекстовой маркировки), обращение к которой производится по команде Product Help (Помощь по продукту) в пункте меню Help окна MATLAB;

  • команду: help <стандартное имя объекта языка MATLAB>

Литература

1. Солонина А. И., Арбузов С. М. Цифровая обработка сигналов. Моделирование в

MATLAB. — СПб.: БХВ-Петербург, 2008, гл. 1—2.

2. Сергиенко А. Б. Цифровая обработка сигналов. 3-е издание — СПб.: БХВ-

Петербург, 2010, Приложения 1—2.

Задания были выполнены на следующей конфигурации:

MATLAB R2014

Windows 7 (x64)

3 GB RAM

Core 2 Duo

Nvidia GeForce GT220m

  1. Запуск системы MATLAB и знакомство с ее интерфейсом. Пояснить, какие окна образуют интерфейс MATLAB.

После открытия программы MATLAB версии R2014b, нашему взору предстаёт рабочая область программы, состоящая из окон:

  • Command Window

  • Workspace

  • Current Folder –

Также, по умолчанию включена лента инструментов «Toolstrip». Изменить раскладку окон можно потянув или закрыв любое из них, а также через специальное меню «Layout», которое позволяет добавить в рабочую область элементы, отображение которых в данные момент отключено (например, панель вкладок «Shortcuts Tab»). Изображение стандартного интерфейса программы MATLAB R2014b приведено на рисунке “Рис.1”

Рис.1 «Изображение стандартного интерфейса» программы MATLAB R2014b»

  1. Знакомство со справочной системой MATLAB в формате HTML. Пояснить, как обратиться к справочной системе.

Начиная с версии MATLAB R2012b справочная система MATLAB была значительно переработана. Теперь по нажатию клавиши ‘F1’ или выборе соответствующего пункта меню в новом окне открывается раздел с документацией и поисковой строкой (“Рис.2а”). При выборе пункта «Support Website» открывается веб-страница, на которой мы можем увидеть ссылки на всё ту же документацию, примеры кода и тематический форум, посвящённый MATLAB (“Рис.2б”). Доступ к консольной версии справочной системы всё ещё предоставляется по команде «help».

Рис.2а «Раздел с документацией и поисковой строкой»

Рис.2б «примеры кода и тематический форум»

3.Ввод комментария в окне Command Window.

3.1 Ввести наименование лабораторной работы.

3.2 Пояснить, какой символ используется для ввода комментария.

Для ввода комментария в среде MATLAB используется символ процента («%»), который должен стоять перед текстом самого комментария (“Рис.3”).

Рис.3 «Комментарий»

  1. Знакомство с командами языка MATLAB.

4.1 Выполнить команду: >> help general

4.2 Пояснить назначение и формат команды help.

4.3 О каких объектах языка MATLAB будет выдана справка?

Команда “help” помогает пользователю изучить принципы работы программы, компонента или надстройки, не выходя из «Command Window». Используется следующим образом: help <topic>, где <topic> - раздел или название компонента, по которому требуется информация. При отсутствии аргумента <topic> будет выведен список всех компонентов с ссылками на подразделы по этим компонентам. По вызову “help general” будет выведен список подразделов, необходимых начинающему пользователю среды MATLAB (например, синтаксис среды или примеры кода).

  1. Очистка окна Command Window.

Пояснить, какая команда используется.

Для отчистки окна «Command Window» используется команда “clc” (Clear Commands)

  1. Ввод вещественных констант

6.1 Пояснить:

6.1.1 смысл символа " ; " в конце строки;

6.1.2 какой переменной присваиваются значения вводимых констант;

6.1.3 в каком случае при вводе констант целесообразно использовать форму E;

6.1.4 в каком формате выводятся константы по умолчанию;

6.1.5 как вывести указанные константы с максимальным количеством значащих цифр в дробной части;

6.1.6 какое количество значащих цифр в дробной части будет максимальным;

6.1.7 какие форматы предусмотрены для вывода вещественных констант;

6.1.8 какую форму E называют нормализованной.

Все команды, имеющие в конце символ «;» не выводят результат на экран. Этот символ, по сути, означает переход на следующую строку. Все константы, вычисления которых не привязаны ни к одной из переменных, присваиваются автоматически создаваемой переменной “ans”. Е формой удобно пользоваться в случае, если константа, допустим, имеет большое количество нулей. Например, проще набрать 10е9 или l.0e10, чем 1000000000, а результат будет тот же самый.

Все константы, по-умолчанию, выводятся в формате “format short” - формат с автоматическим выводом в обычной форме или

нормализованной форме E с 4 значащими цифрами в дробной

части мантиссы. Для вывода константы с максимальным количеством значащих цифр в дробной части, достаточно сменить формат на “long” (командой “format long”). При этом, количество значащих цифр в дробной части будет равно 15.

Для вывода вещественных констант предусмотрено два формата: format short e и format long e.

Форму E называют нормализованной, если целая часть мантиссы содержит одну отличную от нуля значащую цифру, а порядок три цифры.

  1. Ввод комплексных констант.

7.1 Ввести следующие константы без символа ";" в конце cтроки:

0,057+0,5j

0,057+0,5i

1200000,5+56i

1200000,57857+56i

12,5+56i

12,5+0,000056i

– 0,9999999i

0i

17+10-5i

15∙10-5i

    1. Пояснить:

7.2.1 в какой форме вводятся комплексные константы;

7.2.2 в какой форме вводятся их вещественные и мнимые части;

7.2.3 в каком формате выводятся комплексные константы по умолчанию;

7.2.4 какой формат целесообразно выбрать для вывода указанных констант;

7.2.5 какая из констант списка будет воспринята как вещественная.

8. Ввод логических констант.

8.1 Ввести константы true и false без символа ";" в конце строки.

8.2 Пояснить, какие значения будут выведены и какой переменной присвоены.

При вводе константы “true” переменной «ans» присваивается единица (“1”), при вводе “false” – ноль (“0”).

9. Ввод символьных констант.

9.1 Ввести константы:

9.1.1 ФИО;

9.1.2 наименование лабораторной работы.

9.2 Пояснить, как вводятся и выводятся символьные константы.

Символьные константы обрамляются одинарными кавычками. Пример ввода и вывода символьных констант показан на рисунке (“Рис.4”)

Рис.4 «Пример ввода и вывода символьных констант»

10. Ввод векторов.

10.1 Ввести векторы — строки и столбцы — со следующими элементами:

– 0,9; 125; 0; 5+3i; 12i;

– 0,9; 125; 0; 5; 12;

1; 2; 4; 5; 12.

10.2 Пояснить:

10.2.1 какие символы используются при вводе векторов;

10.2.2 как в MATLAB воспринимаются скаляры и векторы.

При вводе векторов (- строк) используются квадратные скобки (“[ ]”) и пробелы, для разделения столбцов. Вектор (- столбцы) же, вводятся в таких же квадратных скобках, но для разделения строк служит символ “;”. Так, вектор в MATLAB можно рассматривать как матрицу размерностью 1 x n, где n – размерность вектора. Скаляр (размерностью 1х1) рассматривается и воспринимается как простая переменная.

11. Ввод матрицы.

11.1 Ввести матрицы 3 х 3 и 3 х 2 с произвольными элементами.

11.2 Пояснить, что называют размером и порядком матрицы.

Для ввода матрицы и заполнения её заведомо случайными числами используем функцию “randn” (использование: “randn (x,y), где x – число столбцов, а y – число строк матрицы”). Матрицей размеров x x y называется прямоугольная таблица чисел, содержащая x строк и y столбцов. В случае, если количество строк равно количеству столбцов, такая матрица является квадратной и порядком её называется количество строк (либо столбцов).

12. Ввод переменных.

12.1 Присвоить произвольные значения простой переменной, вектору и матрице.

12.2 Пояснить, как выбираются имена переменных и как переменные воспринимаются в MATLAB.

Рис.5 «Пример заполнения переменных»

Для заполнения простой переменной «a» мы воспользовались командой “a=rand”, а для заполнения вектора «b» и матрицы «c» – “b=randn(1,4)” и “c=randn(2,2)” соответственно («Рис.5»). Имя переменной составляется из последовательности латинских букв, цифр и символа подчеркивания и начинается с буквы. В MATLAB прописные и строчные буквы различаются.

13. Знакомство с особенностями ввода комплексных переменных.

13.1 Присвоить переменной i значение 5.

13.2 Присвоить переменной F значение комплексной константы 5+3i, которую ввести двумя способами: без символа умножения в мнимой части; с символом умножения.

13.3 Пояснить:

13.3.1 в каком из этих случаев и почему возникает ошибка;

13.3.2 как предотвратить возникновение ошибок в подобных случаях.

Рис.6а «Вычисления без знака умножения»

Рис.6б «Вычисления со знаком умножения»

При выполнении команды “F=5+3i” значение “i” берётся из системной константы (мнимая единица, соответствующая корню из -1 («Рис.6а»), в то время как при вводе “F=5+3*i” тройка умножается на значение пользовательской переменной (текущее значение: 5, «Рис.6б»). Предотвратить эту ошибку достаточно легко, достаточно использовать имена переменных, которые тяжело спутать с системными, например «schetchik».

14. Знакомство со стандартными функциями с комплексным аргументом.

14.1 Присвоить переменной произвольное комплексное значение.

14.2 Вычислить модуль, аргумент, вещественную и мнимую части переменной.

14.3 Присвоить другой переменной значение комплексно сопряженной константы.

14.4 Пояснить, какие стандартные функции для этого используются.

С помощью команды “q = 2 – 3i” присвоим переменной «q» значение 2.0000 - 3.0000i. Для вычисления модуля, аргумента, вещественной и мнимой частей переменной, поочерёдно воспользуемся командами: “abs (q)”, “angle (q)”, “real (q)”, “imag (q)”. А для присвоения другой переменной значения комплексно сопряженной константы выполним: “w = conj(q)”, после которой у нас появится константа «w», равная 2.0000 + 3.0000i.

15. Ввод арифметических выражений.

15.1 Присвоить переменным a, b и c значения произвольных вещественных констант, не равных нулю.

15.2 Вычислить следующие значения :

Для заполнения переменных «a, b, c» воспользуемся уже известной нам функцией «rand», а «d, e» посчитаем по формулам:

d = a+b*sin(pi/a+b/c-cos(a*pi))

e = a^2-sqrt(abs(b))+c^(1/3)+(d+a*c)/b

(«Рис.7б)

Рис.7б Результаты вычислений

16. Ввод логических выражений.

16.1 Используя переменные предыдущего пункта, записать логическое выражение с использованием операций отношения и вычислить его значение.

16.2 Добавить в данное выражение логические операции и вычислить значение нового логического выражения.

16.3 Представить записи соответствующих логических выражений в MATLAB.

16.4 Пояснить:

16.4.1 приоритет выполнения операций;

16.4.2 какие значения может принимать логическое выражение.

17. Знакомство со стандартными переменными.

17.1 Ввести арифметические выражения, которым по умолчанию будут присвоены константы Nan и Inf.

17.2 Пояснить назначение данных констант.

Для получения Nan константы произведём вычисление 0/0, а для Inf – 1/0. NaN - Not-a-Number, не число, математическая неопределённость. Inf – математическая бесконечность.

18. Знакомство со стандартными функциями округления.

18.1 Выполнить следующие вычисления:

floor([8.2 8.5 8.7 -8.2 -8.5 -8.7])

ceil([8.2 8.5 8.7 -8.2 -8.5 -8.7])

convergent([8.2 8.5 8.7 -8.2 -8.5 -8.7])

nearest([8.2 8.5 8.7 -8.2 -8.5 -8.7])

round([8.2 8.5 8.7 -8.2 -8.5 -8.7])

fix([8.2 8.5 8.7 -8.2 -8.5 -8.7])

18.2 Привести и пояснить полученные результаты.

После выполнения команд («Рис.8») мы получаем различные виды округления, описанные в таблице «Табл.1»

Рис.8

fix (x)

Табл.1

Округление в направлении нуля — усечение

дробной части

floor (x)

Округление в направлении -∞ — округление до

ближайшего целого в сторону уменьшения

ceil (x)

Округление в направлении +∞ — округление

до ближайшего целого в сторону увеличения

round (x)

Округление до ближайшего целого — при

дробной части, равной 0.5, — в сторону

увеличения модуля числа

nearest (x)

Округление до ближайшего целого — при

дробной части, равной 0.5, — в сторону

увеличения

convergent (x)

Округление до ближайшего целого — при

дробной части, равной 0.5, — в сторону

ближайшего четного числа

19. Знакомство со стандартными функциями преобразования систем счисления.

19.1 Записать произвольное целое десятичное число и преобразовать его в шестнадцатеричное и двоичное.

19.2 Выполнить обратные преобразования.

19.3 Пояснить, какие стандартные функции использовались для преобразования.

Для преобразования чисел из одной системы счисления в другую используются функции, приведённые в таблице «Табл.2». Результаты работы находятся на рисунке «Рис.9».

Табл.2

dec2hex(X)

Преобразование десятичного целого в шестнадцатеричное.

Десятичное число указывается в качестве аргумента, а шестнадцатеричное

выводится без апострофов с использованием заглавных букв

dec2bin(X)

Преобразование десятичного целого в двоичное.

Десятичное число указывается в качестве аргумента, а двоичное выводится

без апострофов

bin2dec(X)

Преобразование двоичного целого в десятичное.

Двоичное число указывается в качестве аргумента в апострофах, а

десятичное выводится без апострофов

hex2dec(X)

Преобразование шестнадцатеричного целого в десятичное.

Шестнадцатеричное число указывается в качестве аргумента в апострофах с

использованием

Рис.9

20. Сохранение переменных на диске.

20.1 Присвоить переменным A, B и C произвольные значения и сохранить их в текущей папке в файле с произвольным именем.

20.2 Пояснить:

20.2.1 какая команда используется для сохранения данных;

20.2.2 как выбирается имя файла данных;

20.2.3 какое расширение имеют файлы данных.

Для заполнения переменных «A, B, C» воспользуемся уже знакомой нам функцией «rand». Для сохранения нашей работы в файле «ABC.mat» выполним команду: Save ABC A B C

Если мы не укажем имя файла, то по файлу присваивается имя первой переменной из <списка переменных>, а расширением файла является «*.mat»

21. Знакомство с рабочим пространством памяти Workspace.

21.1 Выполнить следующие действия:

21.1.1 очистить и проверить содержимое Workspace;

21.1.2 загрузить сохраненный файл данных (см. п. 20) и вывести значение переменных A, B, C в окне Command Window;

21.1.3 проверить содержимое Workspace;

21.1.4 удалить из Workspace переменную A и проверить содержимое Workspace;

Очистка Workspace производится командой clear или в контекстном меню, после клика ПКМ в любом свободном месте Workspace. Для загрузки воспользуемся командой load ABC, которая выполняется автоматически по двойному клику в названии сохранённого файла в окне Current Folder.

22. Завершение работы MATLAB.

Завершить работу комплекса MATLAB можно командой exit или нажав крестик в правом верхнем углу окна программы.

Вывод:

После проделанной работы, мы усвоили внешний вид и основные навыки работы с новым для нас комплексом MATLAB. В ходе выполнения работы, мы поняли принципы работы комплекса, его синтаксис и основные функции, смогли узнать его основные преимущества и выявить некоторые недостатки.

Задание для самостоятельного выполнения:

1С. Ввод вещественных констант. Привести примеры ввода вещественных констант, для которых удобен обычный формат и формат E, а также тех, для которых, независимо от формы ввода, количество значащих цифр после запятой будет ограничено.

1488

14.8e8

1.4888888888888888

Рис.1C “Ввод различных констант”

2С. Операции с комплексными константами. Ввести вещественные константы: i = 7; j = 5; и определить, в каком из следующих случаев будут выведены комплексные константы:

(5+7i)*(5+7*j)

( 5+7*i)*(5+7*j)

(

Рис.2C.1 “Операции с комплексными константами”

5+7i)*(5+7j)

i = sqrt(-1); (5+7*i)*(5+7j)

j = sqrt(-1); (5+7*i)*(5+7*j)

Рис.2C.2 “Продолжение операций с комплексными константами”

3С. Вычисление арифметических выражений. Присвоить простым переменным a , b и c произвольные значения и записать арифметические выражения для вычислений по следующим формулам:

Рис.3C “ Вычисление арифметических выражений ”

4С. Для четырех комбинаций логических констант х и у (00, 01, 10 и 11) вычислить значения логического выражения (составить таблицу истинности): , где символу "  " соответствует логическая операция ИЛИ.

Рис.4C “ Операции с логическими выражениями ”

5С. Операции со стандартными функциями.

Привести пример арифметического выражения с использованием стандартных функций, включая функции округления.

Рис.5C “ Операции со стандартными функциями ”

19