
- •До лабораторних та самостійних робіт з дисципліни
- •3.1 Короткі теоретичні відомості 23
- •4.2 Порядок виконання роботи 35
- •1 Вивчення основ роботи з пакетом для математичних і інженерних розрахунків matlab
- •1.1 Робочий простір системи matlab і її командне вікно
- •1.2 Створення протоколу сеансу роботи в пакеті matlab
- •1.3 Основи програмування в matlab
- •1.3.1 Файл-сценарій
- •1.3.2 Створення м-функий
- •1.4 Порядок виконання роботи
- •1.6 Контрольні питання
- •2 Розрахунок низькочастотного фільтру
- •2.1 Короткі теоретичні відомості
- •2.2 Порядок виконання роботи
- •2.4 Контрольні питання
- •3 Моделювання низькочастотного фільтра
- •3.1 Короткі теоретичні відомості
- •3.2 Порядок виконання роботи
- •3.4 Контрольні питання
- •4 Розробка програми цифрової фільтрації для цифрових процесорів обробки сигналів сімейства adsp-21xx
- •4.1 Короткий опис середовища розробки
- •4.2 Порядок виконання роботи
- •Int dm in [total]; // Буфер вибірок вхідного сигналу
- •Int dm out [total]; // Буфер відгуку фільтра
- •4.4 Контрольні питання
- •5 Вивчення основ обробки зображень у системі «matlab»
- •5.1 Методичні вказівки до роботи
- •5.2 Порядок виконання роботи
- •Література
МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ
Запорізький національний технічний університет
МЕТОДИЧНІ ВКАЗІВКИ
До лабораторних та самостійних робіт з дисципліни
“Цифрова обробка сигналів та зображень”
для студентів спеціальності 7.091 503 ”Спеціалізовані комп'ютерні системи” всіх форм навчання
2005
Методичні вказівки до лабораторних та самостійних робіт з дисципліни “Цифрова обробка сигналів та зображень” для студентів спеціальності 7.091 503 ”Спеціалізовані комп'ютерні системи” всіх форм навчання /Укл. М.В.Єфименко, О.О.Голдобін. - Запоріжжя: ЗНТУ, 2005. – 47с.
Рекомендовано до видання НМК спеціальності як методичні вказівки до виконання лабораторних робіт з дисципліни „Цифрова обробка сигналів та зображень” усіх форм навчання.
Укладачі:
М.В.Єфименко, к.т.н., доцент
О.О. Голдобін, асистент.
Рецензент:
Р.К. Кудерметов, доцент, к.т.н.
Відповідальний за випуск:
М.В.Єфименко, к.т.н., доцент.
Затверджено
на засіданні кафедри КСМ
Протокол №
від
ЗМІСТ
1 ВИВЧЕННЯ ОСНОВ РОБОТИ З ПАКЕТОМ ДЛЯ 4
МАТЕМАТИЧНИХ І ІНЖЕНЕРНИХ РОЗРАХУНКІВ MATLAB 4
1.1 Робочий простір системи MATLAB і її командне вікно 4
1.2 Створення протоколу сеансу роботи в пакеті MATLAB 9
11
1.3 Основи програмування в MATLAB 11
1.3.1 Файл-сценарій 11
1.3.2 Створення М-функий 14
1.4 Порядок виконання роботи 15
1.5 Зміст звіту 16
1.6 Контрольні питання 17
2 РОЗРАХУНОК НИЗЬКОЧАСТОТНОГО ФІЛЬТРУ 17
2.1 Короткі теоретичні відомості 17
2.2 Порядок виконання роботи 21
2.3 Зміст звіту 22
2.4 Контрольні питання 23
3 МОДЕЛЮВАННЯ НИЗЬКОЧАСТОТНОГО ФІЛЬТРА 23
3.1 Короткі теоретичні відомості 23
3.2 Порядок виконання роботи 31
3.3 Зміст звіту 32
3.4 Контрольні питання 32
4 РОЗРОБКА ПРОГРАМИ ЦИФРОВОЇ ФІЛЬТРАЦІЇ ДЛЯ ЦИФРОВИХ ПРОЦЕСОРІВ ОБРОБКИ СИГНАЛІВ СІМЕЙСТВА ADSP-21XX 32
4.1 Короткий опис середовища розробки 32
Засіб розробки компонентів Visual DSP++ (VCSE) 35
Компілятор C/C++ 35
Ассемблер 35
Компоновщик 35
Завантажник 35
4.2 Порядок виконання роботи 35
Debug target 36
4.3 Зміст звіту 39
4.4 Контрольні питання 40
5 ВИВЧЕННЯ ОСНОВ ОБРОБКИ ЗОБРАЖЕНЬ У СИСТЕМІ «MATLAB» 40
5.1 Методичні вказівки до роботи 40
5.2 Порядок виконання роботи 46
5.3 Зміст звіту 47
ЛІТЕРАТУРА 48
1 Вивчення основ роботи з пакетом для математичних і інженерних розрахунків matlab
ЛАБОРАТОРНА РОБОТА № 1
Мета роботи. Ознайомитись з командним вікном системи MATLAB.
1.1 Робочий простір системи matlab і її командне вікно
Після запуску програми MATLAB на дисплеї комп'ютера з'являється її головне вікно, меню, що містить інструментальну лінійку з кнопками і клієнтську частину вікна із знаком запрошення >>. Це вікно прийнято називати командним вікном системи MATLAB.
Тепер можна вводити з клавіатури числа, імена змінних і знаки операцій, що в сукупності складає деякий вираз. Імена змінних повинні починатися з букви і складатися з букв, цифр і знаків підкреслення. MATLAB розпізнає в іменах змінних до 31 символу (інші ігнорує) і розрізняє регістр символів. Найпростішими знаками операцій є знаки арифметичних операцій + , *, /, -. Знак = відповідає операції привласнення. Натиснення клавіші Enter примушує систему MATLAB обчислити вираз і показати результат, як це зображено на рисунку 1.1.
Рисунок 1.1
В командному вікні показуються числа, змінні, результати обчислень що вводяться з клавіатури. Звичайно обчислення повторюються багато разів: вводяться з клавіатури нові числові дані і нові символьні вирази. В результаті в командному вікні не вистачає вільного місця і автоматично проводиться так звана вертикальна прокрутка – всі рядки зсовуються на одну позицію вгору, так що самий верхній рядок покидає область видимості, а в самому низу вікна з'являється вільний рядок для введення нових даних і знак запрошення >>.
Та інформація, що покинула видиму частину вікна, нікуди не зникає. Її завжди можна проглянути знову, якщо здійснити вертикальну протяжку змісту командного вікна стандартним графічним засобом управління – смугою протяжки. Для цього потрібно клацнути лівою клавішею миші на цій смузі або "протягнути" за допомогою миші повзунок смуги протяжки в потрібному напрямі (вгору або вниз) (див. рисунок 1.2).
Рисунок 1.2
Можна також здійснювати протяжку змісту командного вікна системи MATLAB за допомогою наступних клавіш клавіатури: PageUp, PageDown, Ctrl+Home (одночасне натиснення клавіш Ctrl і Home) і Ctrl+End.
Клавіші "Стрілка вгору" і "Стрілка вниз", в будь-якому текстовому редакторі здійснюючі переміщення курсору вверх-вниз і вертикальну протяжку змісту вікна, в системі MATLAB працюють по-іншому. Ці клавіші дозволяють повернути в рядок раніше введені з клавіатури команди і іншу вхідну інформацію. Вся ця інформація запам'ятовується в спеціальній області пам'яті, яку називають стеком команд, оскільки сама остання вхідна інформація при її прокрутці клавішею "Стрілка вгору" з'явиться першою. Потім з'явиться передостання команда і т.д. Клавіша "Стрілка вниз" здійснює прокрутку команд в протилежному напрямі.
У результаті можна сказати, що вся видима інформація у вікні системи MATLAB розташовується в двох принципово різних зонах: зоні перегляду і зоні редагування.
В зоні перегляду вже нічого не можна виправити; хоча в неї і можна помістити курсор, проте реакцією на введення з клавіатури буде автоматичне переміщення курсору (тобто точки введення) в рядок введення, розташований в зоні редагування. В зоні перегляду можна виділяти за допомогою миші будь-яку інформацію і копіювати її в буфер обміну (Clipboard) операційної системи Windows, щоб потім вставити її або в документ текстового редактора (наприклад, Microsoft Word), або в рядок введення.
Зона редагування звичайно займає один рядок командного вікна системи MATLAB, в якому знаходиться знак запрошення >>. Її ми і називаємо рядком введення. Проте при необхідності цей "логічний рядок" можна розповсюдити на декілька фізичних рядків командного вікна. Для цього не можна просто натискувати клавішу Enter, оскільки при цьому введення інформації буде закінчено і MATLAB приступить до обчислень і подальшого показу результату. Тому для продовження введення з показом видимої інформації на наступних фізичних рядках вимагається натискувати Enter тільки після трьох або більш крапок, що і показано на рисунок 1.3.
Рисунок 1.3
Проте і в цьому випадку зона редагування розповсюджується тільки на самий останній рядок (тепер вона вже не містить знака запрошення >>), а в попередніх фізичних рядках логічного рядка введення змінити вже нічого не можна. Крім того, сумарна довжина логічного рядка введення обмежена 256 символами.
Всі значення змінних, обчислені протягом поточного сеансу роботи, зберігаються в спеціально зарезервованій області пам'яті комп'ютера, званої робочим простором системи MATLAB (по-англійськи – Matlab Workspace).
Командою clc можна стерти видимий вміст командного вікна системи MATLAB, проте це не торкнеться вмісту робочого простору. Дійсно, якщо після цього набрати ім'я раніше обчисленої змінної а, то після натиснення клавіші Enter ми знову побачимо її значення:
>>a
а =
20
У міру розбухання розміру робочого простору ефективність роботи знижуватиметься. Таке розбухання цілком імовірно, оскільки система MATLAB може працювати з даними гігантських розмірів. Тому, коли зникає необхідність в зберіганні ряду змінних в поточному сеансі роботи, їх можна стерти з пам'яті комп'ютера командою
clear имя1 имя2 .
видаляючи з робочого простору змінні з іменами имя1 і имя2. Щоб видалити відразу всі змінні, потрібно використовувати команду
clear
Якщо ви хочете перевірити, які змінні залишилися в робочому просторі, то для цього потрібно виконати команду
who
яка виведе список всіх змінних, що входять на даний момент в робочий простір системи MATLAB (див. рисунок 1.4).
Рисунок 1.4
Для перегляду значення будь-якої змінної з поточного робочого простору системи MATLAB достатньо набрати її ім'я і натискувати клавішу Enter.
Після закриття сеансу роботи з системою MATLAB всі раніше обчислені змінні втрачаються. Щоб зберегти у файлі на диску комп'ютера зміст робочого простору системи MATLAB, потрібно виконати команду меню File | Save Workspace As після чого з'являється стандартне діалогове вікно операційної системи Windows для вибору каталогу на диску і імені файлу. Розширення імені файлу повинне бути mat, тому такі файли прийнято називати MAT-файлами.
Замість розглянутої команди меню можна безпосередньо в командному вікні системи MATLAB набрати команду
save путь_к_файлу\имя_МАТ-файла
і натискувати клавішу Enter. Результат буде той же самий.
В подальших сеансах роботи для завантаження в пам'ять комп'ютера раніше збереженого на диску робочого простору потрібно виконати команду меню
File | Load Workspace.
яка в діалоговому вікні Load.mat file зажадає вказати потрібний Мат-файл.
Виконавши цю команду кілька разів з різними файлами, ми можемо з'єднати в поточному робочому просторі системи MATLAB вміст декількох попередніх сеансів роботи! Проте якщо імена змінних з різних сеансів співпадають, то в поточному робочому просторі буде представлена лише змінна з останнього відкритого Мат-файлу.
Замість розглянутої команди меню можна набрати команду load имя_МАТ-файла безпосередньо в командному вікні системи MATLAB. Можна також із записаного на диску Мат-файлу ввести в робочий простір значення окремих змінних. Для цього потрібно попередню команду доповнити іменами змінних:
load имя_МАТ-файла имя1, имя2
В результаті з Мат-файлу будуть введені змінні з іменами имя1, имя2 і т.д. Якщо Мат-файл вказаний без повного шляху до нього, то він повинен знаходитися в поточному каталозі системи MATLAB, який завжди можна взнати за допомогою команди cd, а змінити його можна командою
cd путь_к_новому_каталогу
В кожному сеансі роботи з системою MATLAB доцільно як поточний каталог задавати той каталог, з файлами якого належить працювати частіше за все.
Закінчуючи коротку розповідь про командне вікно системи MATLAB, відзначимо наступні особливості її команд. Під командами користувача ми розуміємо розпорядження системі MATLAB виконати деяку дію, наприклад, показати поточний каталог. Одні команди системи MATLAB можуть задаватися різними способами: за допомогою меню головного (командного) вікна, за допомогою кнопок на смузі інструментів і за допомогою введення з клавіатури ключових (зарезервованих) слів з подальшим натисненням клавіші Enter. Інші команди можна реалізувати тільки за допомогою введення з клавіатури відповідних їм ключових слів (наприклад, команда cd).
Частина команд вимагає додаткової інформації від користувача; наприклад, команда clear використовує імена змінних, що підлягають видаленню з поточного робочого простору. Цю додаткову інформацію звичайно указують в командному рядку через пропуск після ключового слова. Проте є і ще одна можливість – укласти додаткові параметри в круглі дужки. Наприклад, раніше розглянуту команду видалення змінних з робочого простору можна записати і в іншому вигляді:
clear ( имя1, имя2 )
має форму функціонального виклику. Про ці дві можливості говорять як про дуальність форми виклику команд системи MATLAB. Тут же відзначимо, що при функціональній формі виклику команд явно задані імена треба укладати в апострофи.
Ми поки вивчили не всі команди системи MATLAB. Надалі ми вивчатимемо їх у міру необхідності відповідно до вивчає мого матеріалу. При цьому будуть вивчені самі основні і часто вживані на практиці команди. По будь-якій команді системи MATLAB можна отримати швидку довідку, виконавши команду
help имя_команды
Працюючи з командним вікном системи MATLAB, тобто вводячи команди, задаючи числові значення змінних і конструюючи різні математичні вирази, що підлягають обчисленню, а також викликаючи вбудовані в систему MATLAB математичні функції, легко можна виконати серйозні обчислення і візуалізувати результати. Такий режим роботи ми назвемо інтерактивним. Це одночасно і простій, і продуктивний варіант роботи з системою MATLAB.
Якщо вбудованих, надзвичайно обширних можливостей системи MATLAB все ж таки виявиться недостатньо для вирішення конкретної задачі, користувач може самостійно запрограмувати необхідні для вирішення проблеми функції. Це можна виконати як на внутрішній М-мові системи MATLAB, так і на мовах Fortran, C і C++.