Дискретне перетворення Фур’є та його застосування для спектрального аналізу сигналів

Ознайомлення із математичним апаратом опису сигналів у частотній області, змістом дискретного перетворення Фур’є. Особливості його застосування для спектрального аналізу реальних сигналів. Основи роботи з Matlab. Специфіка формування DTMF-сигналів.

Рубрика Коммуникации, связь, цифровые приборы и радиоэлектроника
Вид контрольная работа
Язык украинский
Дата добавления 10.12.2017
Размер файла 181,7 K

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

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

Размещено на http://www.allbest.ru/

Дискретне перетворення Фур'є та його застосування для спектрального аналізу сигналів

Мета роботи - ознайомлення із математичнм апаратом опису сигналів у частотній області, змістом дискретного перетворення Фур'є та його застосуванням для спектрального аналізу реальних сигналів.

1.ОСНОВНІ ТЕОРЕТИЧНІ ВІДОМОСТІ

Перетворення Фур'є та його використання для спектрального аналізу сигналів

Перетворення Фур'є є основним інструментом аналізу сигналів у частотній області - так званого спектрального аналізу. З математичної точки зору опис сигналів у часовій області за допомогою часової функції і в частотній області за допомогою спектральної густини є ідентичним, однак сенс використання тієї чи іншої форми зумовлений певними вигодами при розв'язанні тієї чи іншої задачі.

Зв'язок між та визначається парою інтегральних перетворень Фур'є:

- прямим

; (1)

- зворотним

. (2)

Комплексна величина містить інформацію про спектр, тобто вміст в аналізованому сигналі конкретної частоти , оскільки аналізуючий сигнал (ядро інтегрального перетворення) за формулою Ейлера

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

Якщо за допомогою прямого перетворення Фур'є здійснюється розклад сигналу на складові різних частот (аналіз), то природно, що зворотне перетворення забезпечує реконструкцію (синтез) сигналу зі спектру шляхом підсумовування (інтегрування) всіх гармонік , взятими із відповідними вагами .

Основні властивості перетворення Фур'є наведені в Додатку 1.

Відомо, що періодичні сигнали представляються рядом Фур'є у вигляді суми гармонічних складових, оскільки у цьому випадку в аналізованому сигналі виступає лише основна гармоніка та її багатократні компоненти . У показниковій формі ряд Фур'є має вигляд

. (3)

Коефіцієнти ряду є комплексними величинами і визначаються із співвідношення

(4)

Сукупність коефіцієнтів ряду складає спектр періодичного сигналу. Спектр амплітуд і спектр фаз однозначно визначають сигнал і показують, яку участь бере гармонічна складова кожної частоти в складі результуючого коливання. Часто обмежуються розглядом який визначає енергетичні властивості сигналу, а має відношення лише до форми сигналу.

Дискретні сигнали утворюється шляхом дискретизації (взяття вибірок) неперервного сигналу з часовим інтервалом . За теоремою Котельникова-Шеннона, частота вибірок повинна принаймні удвічі перевищувати максимальну частоту у спектрі дискретизованого сигналу. Для дискретних сигналів пара інтегральних перетворень Фур'є (1) і (2) набуває вигляду (див. Додаток 2):

; (5)

. (6)

де - нормалізована частотою дискретизаціїї кругова частота.

Враховуючи періодичний характер спектра дискретизованого сигналу із періодом (для нормованої кругової частоти ), у виразі (6) межі інтегрування звужено до одного періоду, що включає нульову частоту.

Характер спектра дискретизованого сигналу підтверджує принцип часо-частотної дуальності перетворення Фур'є:

- періодичний сигнал > дискретний спектр;

- дискретний сигнал > періодичний спектр.

1.2 Дискретне перетворення Фур'є та його зв'язок зі спектром дискретних сигналів

На практиці при спектральному аналізі реальних сигналів дослідник не оперує неперервним сигналом , а лише скінченною послідовністю його вибірок у заданому форматі. Разом з тим застосування виразу (5) для обчислення спектральної функції неможливе через нескінченні значення межі підсумовування. Саме тому в техніці цифрового оброблення сигналів для спектрального аналізу застосовується дискретне перетворення Фур'є.

Дискретним перетворенням Фур'є (ДПФ; англійський термін - Discrete Fourier Transform, DFT) називається пара взаємооднозначних перетворень, що повязує вибірки дискретного періодичного сигнал із комплексними коефіцієнтами його дискретного спектра:

, (7)

, (8)

де _ кількість вибірок в періоді дискретного сигналу.

Перетворення (7) називається прямим, а перетворення (8) - зворотним ДПФ (ЗДПФ). ДПФ виконується над скінченою періодичною послідовністю вибірок сигналу , у якої період складається з дискретних значень, тобто . Послідовність репрезентує спектр дискретного сигналу , що також є періодичним

.

Зіставлення виразів (5) та (7) показує, що ДПФ представляє лише дискретні вибірки неперервної спектральної функції функції дискретного сигналу, що відповідає частотам :

. (9)

Отже, значення дискретних частот у спектрі залежать від періоду дискретизації , а розрізнювальна здатність по частоті (спектральна селективність), обернено пропорційна часу спостереження за сигналом

. (10)

З співвідношення (9) витікає важливий висновок: якщо до існуючої кількості вибірок додати деяку кількість нулів, наприклад , то спектральна функція дискретного сигналу не зміниться, а ДПФ дасть вдвічі більшу кількість спектральних відліків, які відповідають частотам, тісніше розташованим в інтнервалі від нуля до частоти дискретизації.

1.3 Спектральний аналіз реальних сигналів. Розтікання спектру. Накладання вікон

При ДПФ вважається, що послідовність відліків аналізованого сигналу є періодично продовженою вперед і назад в часі. При цьому, якщо значення початкових і кінцевих відліків сигналу сильно відрізняються, при періодичному повторенні на стиках сегментів виникають стрибки із-за яких спектр розширюється, тобто в спектрі з'являються додаткові складові. Це явище, яке називають розтіканням спектру (англійський термін - spectrum leakage) можна проілюструвати на прикладі обчислення спектру дискретного гармонічного сигналу (рис. 1). Дискретні сигнали містять 16 відліків гармонічного сигналу з періодами рівними 4 відлікам (періодично продовжений сигнал є періодичним) і 6 відлікам (періодично продовжений сигнал містить скачок).

Рис. 1. ДПФ для цілого (а) і нецілого (б) числа періодів гармонічного сигналу і з застосуванням вікна Ханна (в)

Для зменшення розтікання спектру при ДПФ застосовують вагові функції (англійський термін - weighting functions), які також називають вікнами (window). В цьому випадку перед розрахунком ДПФ сигнал домножується на вагову функцію , яка повинна спадати до країв сегменту. Формула прямого ДПФ при використанні вагових функцій приймає вигляд:

Якщо ми використовуємо вагову функцію, яка має максимум в середині (при ) і плавно спадає до країв (при і ), то це приведе до ослаблення ефектів, пов'язаних з виникненням стрибків сигналу при періодичному повторенні аналізованої скінченої послідовності, і таким чином, до зменшення розтікання спектру. Платою за це є розширення піків в спектрі сигналу (рис. 1, в).

Основні типи вікон наведені в табл. 1

Таблиця 1.

Вікно

Формула

Вікно

Формула

1. Трикутне

4. Бартлета

2. Хемінга

5. Блекмана

3. Ханна

1.4 Алгоритми швидкого перетворення Фур'є

Для обчислення одного коефіцієнта ДПФ за формулою (5) необхідно виконати комплексних множень і додавань, тому розрахунок всього ДПФ, що містить коефіцієнтів потребує пар операцій “множення-додавання”. Отже, число операцій зростає пропорційно квадрату розмірності ДПФ. Проте, якщо не є простим числом і може бути розкладене на множники, процес обчислень можна прискорити, розділивши аналізований набір відліків на частини, обчисливши їх ДПФ і об'єднавши результати. Такий спосіб обчислення ДПФ називається швидким перетворенням Фур'є (ШПФ; англійський термін - Fast Fourier Transform, FFT) і широко використовується в техніці цифрового оброблення сигналів.

Розглянемо найпоширеніші алгоритми ШПФ з основою 2 (англійський термін - Radix-2), які застосовуються до послідовностей довжиною , де - ціле. Основна ідея цих алгоритмів, полягає у зведенні обчислення -точкового ДПФ до обчислення декількох N1-точкових ДПФ, причому і . Алгоритми, при реалізації яких потрібна перестановка відліків вхідної послідовності, називаються алгоритми з проріджуванням в часі (англійський термін - decimation in time, DIT). Алгоритми, при реалізації яких потрібна перестановка відліків вихідної послідовності називаються алгоритмами з проріджуванням за частотою (англійський термін - decimation in frequency, DIF). За ефективністю ці дві різновидності алгоритмів еквівалентні.

ШПФ з проріджуванням в часі

Якщо послідовність довжиною розділити на дві -точкові послідовності з парними і непарними номерами відліків то формула (1.7) запишеться:

,

де і

Введемо позначення і , а також винесемо з другої суми спільний множник

(11)

Дві суми в (11) представляють собою ДПФ послідовностей (відліки з парними номерами) і (відліки з непарними номерами). Кожне з цих перетворень має розмірність . Тоді

, , (12)

де і - ДПФ відповідно послідовностей відліків з парними і непарними номерами.

Так як ДПФ розмірності дає лише спектральних коефіцієнти, безпосередньо використовувати формулу (12) можна лише при . Для решти () слід скористатися періодичністю спектра дискретного сигналу (і, відповідно, періодичністю результатів ДПФ):

, .

З врахуванням цього при формула (4) представиться у вигляді

Враховуючи, що одержують:

, (13)

Формули (12) та (13) представляють базову операцію ШПФ, яка отримала назву “метелик” (англійський термін - butterfly). Схематичне зображення метелика подано на рис. 2. Тут кружок в центрі позначає операцію додавання/віднімання. Стрілка позначає операцію множення на . Жирні крапки позначають регістри, які містять вхідні і вихідні значення для окремих етапів ШПФ.

Рис. 2. Умовне позначення операції “метелик” ШПФ з проріджуванням в часі

Кожну з послідовностей розміром можна аналогічним чином представити через послідовності розміром і т. д. поки не залишаться тільки 2-точкові послідовності.

Особливістю алгоритмів ШПФ є необхідність перестановки вхідних або вихідних значень. Елементи вхідної послідовності для алгоритму з проріджуванням в часі повинні бути розташовані в пам'яті в біт-реверсивному порядку. Біт-реверсивний порядок задається шляхом дзеркального відображення двійкових розрядів номерів відліків вхідної послідовності (табл. 2).

Таблиця 2. Біт-реверсивний порядок для ШПФ з N=8

Номер відліку

Двійковий номер

Біт-реверсування

Біт-реверсний номер

0

000

000

0

1

001

100

4

2

010

010

2

3

011

110

6

4

100

001

1

5

101

101

5

6

110

011

3

7

111

111

7

На всіх етапах виконання ШПФ використовуються коефіцієнти , , які переважно обчислюються до виконання ШПФ і зберігаються в пам'яті.

Рис .3. Блок-схема алгоритму ШПФ з проріджуванням в часі для

ШПФ з проріджуванням за частотою

Розділимо довжиною вибірок на дві -точкові послідовності, які йдуть одна за одною:

.

З другої суми можна виділити множник

.

Цей множник рівний 1 або -1 в залежності від парності номера обчислюваного спектрального відліку k, тому надалі розглядаються парні і непарні k окремо. Після виділення множника ±1 комплексні коефіцієнти в обох сумах стають однаковими, тому виносимо їх за душки, об'єднуючи дві суми

Наведені суми представляють собою ДПФ суми і різниці половин вихідної послідовності, при цьому різниця перед обчисленням ДПФ множиться на комплексний коефіцієнт . Кожне з двох ДПФ має розмірність .

Отже, при проріджуванні за частотою обчислення реалізуються наступним чином:

1. З вихідної послідовності довжиною отримуються дві послідовності та довжиною N/2 згідно наступних формул:

,

2. ДПФ послідовності дає спектральні відліки з парними номерами, ДПФ послідовності - з непарними

,

.

Оскільки комплексний множник в даному алгоритмі застосовується до результату віднімання двох сигналів, метелик ШПФ з проріджуванням по частоті має таку структуру (рис. 4).

Рис. 4. Умовне позначення операції “метелик” ШПФ з проріджуванням за частотою

В розглянутому алгоритмі у біт-реверсивному порядку розташовується не вхідна, а вихідна послідовність, тобто спектральні коефіцієнти.

ОДПФ також можна проводити за алгоритмом ШПФ. При цьому необхідно застосовувати тільки комплексно-спряжені коефіцієнти , а одержаний результат згідно формули (2) потрібно помножити на .

Рис .5. Блок-схема алгоритму ШПФ з проріджуванням за частотою для

Оцінимо кількість операцій, необхідну для обчислення ШПФ. Кількість етапів ШПФ рівне , кількість операцій “метелик” на кожному етапі - . Оскільки при виконанні операції метелик відбувається множення комплексних чисел, що вимагає 4 множень, то загальна кількість операцій

.

Відповідно обчислювальні затрати ШПФ у порівнянні з безпосереднім використанням формули (11) зменшуються у

.

При великих це відношення стає досить великим (наприклад, при досягається більше ніж 100-кратне прискорення).

2.ОСНОВИ РОБОТИ З MATLAB

Система MatLab - це середовище для виконання різноманітних наукових та інженерних розрахунків.

Після запуску MatLab на екрані появиться вікно, показане на рис. 6.

MatLab це інтерактивна діалогова система, тому більша частина її головного вікна призначена для вводу команд і виводу результатів. Ця область називається командним вікном (CommandWindow). Зліва розташоване вікно робочої області, яка демонструє вміст робочої області пам'яті. Тут представлені імена змінних (Name), їх розмір в елементах (Size), число байт пам'яті (Bytes) і тип даних (Class).

Рис. 6. Вигляд головного вікна системи MatLab

В MatLab є можливість створювати свої програми (сценарії) і функції. Ці програми і функції представляють собою текстові (ASCII) файли з розширенням .m, в яких записані команди і оператори. Для цього в MatLab існує свій редактор з вбудованим відладчиком. Для створення .m файлу потрібно в меню File/New головного вікна MatLab вибрати пункт M-file.

З метою збереження одержаних результатів для подальшого використання необхідно перед виходом з середовища пакета їх запам'ятати. Для цього використовується команда:

» save ім'я файла, в якому будуть зберігатися дані. Такий файл матиме розширення .mat. У разі необхідності збереження значення тільки окремих змінних після імені файла необхідно подати перелік цих змінних. Для завантаження збережених змінних у робочу область необхідно виконати наступну команду:

» load ім'я файла, в якому збережені дані.

Для виводу довідки про якусь функцію слід набрати » help ім'я функції.

Для коментарів в MatLab використовується знак % - коментарем вважається частина рядку справа від нього.

Типи та формати даних

MatLab допускає вживання як дійсних, так і комплексних чисел, при цьому не вимагає декларації типу даних чи їх розміру. Для запису комплексних чисел використовують символи i та j. Наприклад, 1.5+2.3*i. Також у середовищі пакета визначена змінна типу string. Змінна такого типу є довільним текстовим фрагментом, записаним в апострофах, причому розрізняють верхні та нижні символи. В середовищі пакета визначене значення змінної .

Ім'я змінної може складатися з довільної комбінації літер і цифр, але не більше 19 знаків, розпочинатися з літери, причому в імені розрізняється велика і мала букви.

Основним типом даних MatLab є масиви. Навіть звичайне число (скаляр) з точки зору MatLab є масивом розміром 1х1 представленим у 8-байтному форматі double. В MatLab масиви непотрібно спеціально описувати. Розмір масиву може мінятися в ході роботи. Індекси масиву вказуються в круглих душках, для двовимірних - через кому спочатку індекс рядка, потім стовпця. Перший елемент масиву має індекс рівний 1. Видалити елементи масиву можна з допомогою операції присвоювання пустого значення []. Наприклад:

>> x = 5

x = 5

>> x(2, 3) = 2

х = 5 0 0

0 0 2

>> х(1:2, 2) = []

x = 5 0

0 2

Елементарні математичні функції пакета

В математичних виразах арифметичні операції записуються традиційно, для піднесення до степеня використовується знак ^, порядком обчислень можна управляти з допомогою круглих душок. Аргументи функцій також записуються в круглих душках. Наприклад:

>> sqrt(sin(2*pi/8)^2+2) еквівалентно .

Стандартно прийнято, що всі функції пакета MatLab визначені за допомогою малих літер. Елементарні математичні функції доступні в середовищі пакета наведені в Табл. 3.

Таблиця 3.

Тригонометричні

sin, cos, tan, cot

тригонометричні функції

asin, acos, atan, acot

обернені тригонометричні функції

sinh, cosh, tanh, coth

гіперболічні функції

Логарифмічні та експонента

exp

Експонента

log, log10, log2

натуральний, десятковий та логарифм за основою два

Піднесення до степеня

pow2

піднесення до квадратy

sqrt

корінь квадратний

Функції комплексного аргументу

abs, angle

модуль та фаза комплексного числа

conj

комплексно-спряжене число

real, imag

дійсна та уявна частини комплексного числа

Матричні операцій. Матричні функції

Найпростішим способом введення матриці є набір всіх її елементів. Елементи матриці вводяться за рядками, які відділяють один від одного символом ";" або переходом на новий рядок. Окремі елементи в рядках відділяються прогалинами. Наприклад,

А = [1 2 3; 4 5 6]

вводить у робочу область матрицю

А= 1 2 3

4 5 6

У середовищі пакета також передбачені функції для генерації певних типів матриць (Табл. 4):

Таблиця 4

Назва функції

Визначення генерованої матриці

zeros

Матриця, всі елементи якої дорівнюють 0

ones

Матриця, всі елементи якої дорівнюють 1

eye

Одинична матриця

rand

Матриця випадкових чисел

Спосіб виклику цих матриць є однаковим. Аргументом під час їх введення може бути: кількість рядків і стовпців матриці під час генерування прямокутної матриці. Наприклад,

A = zeros(2,4), B = ones(2,3), C = eye(2), D = rand(2,5)

A = 0 0 0 0

0 0 0 0

B = 1 1 1

1 1 1

C = 1 0

0 1

D = 0.7021 0.5039 0.1974 0.7228 0.9318

0.2087 0.2632 0.0149 0.4361 0.4660

Окремим випадком матриці є вектор (матриця, що складається з одного рядка чи стовпця). Спосіб введення векторів є ідентичним введенню матриці. Окрім цього, для формування векторів у середовищі пакета передбачена ще одна можливість - генерування вектора за допомогою команди:

х = х_початкове : крок : х_кінцеве

де х_початкове - перший елемент вектора; крок - різниця між двома сусідніми елементами вектора; х_кінцеве - останній елемент вектора. Значення кроку може бути як додатним так і від'ємним. У випадку, якщо значення кроку дорівнює 1, то команда для генерування вектора набуде вигляду:

х = х_початкове : х_кінцеве

Наприклад,

>> х = 1:5

x = 1 2 3 4 5

>> x = 5:-2:1

x = 5 3 1

Оператор ":" забезпечує легкий доступ до заданих рядків, стовпців чи елементів матриці і означає всі елементи вздовж даної розмірності. Це дозволяє працювати з фрагментами масиву. Перелік різних операцій з матрицями з використанням оператора ":" наведено в Табл. 4.

Таблиця 5 Розглянемо роботу цих операторів на таких прикладах. Нехай задана матриця А :A = [1 2 3 4; 5 6 7 8; 9 10 11 12];тоді:

A(:, 2)

ans = 2

6

10

A(:, 2:3)

аns = 2 3

6 7

10 11

A(2:3, :)

ans = 5 6 7 8

9 10 11 12

B = A(1:2, 1:2)

B = 1 2

5 6

y = B(:)

y = 1

5

2

6

x = A(4:10)

x = 2 6 10 3 7 11 4

Перелік базових матричних операцій наведено в таблиці 4.

Таблиця 6

Операція

Визначення операції

А'

транспонування матриці

А±В

додавання (віднімання) матриць

А*В

множення матриць

А/В А\В

праве та ліве ділення матриць

Дії додавання та віднімання матриць виконуються над матрицями однакового розміру. Також є визначеною операція додавання чи віднімання, якщо один з операндів є скаляр. Наприклад,

х = [1 2 3]; y = x-2

y = -1 0 1

Операція множення матриць також визначена у випадку множення матриці на скаляр.

Окремим типом матричних операцій є табличні операції - скалярні операції, визначені на елементах матриці. Табличні операції мають ідентичний запис з матричними операціями, тільки перед знаком операції ставиться символ ".". У випадку додавання (віднімання) матриць матричні та табличні операції є ідентичними. У випадку виконання табличного множення або ділення необхідно, щоб розміри обох матриць були однаковими. Наприклад,

X = [7 8 9]; Y = [2 4 3];

X./Y

ans = 3.5000 2.0000 3.0000

У випадку табличних операцій можливим є порівняння (поелементне) двох матриць. Результат порівняння подається у вигляді матриці, елементами якої є нулі та одиниці, причому одиниця відповідає логічному значенню true, а нуль - false.

Графічне подання інформації

Значною перевагою пакета MatLab є можливість легкого виводу результатів розрахунків у вигляді графіків на екран.

Найпростішою формою подання інформації в графічному вигляді є створення двовимірного графіка. Для побудови таких графіків у середовищі пакета передбачені функції, що наведені в таблиці 7.

Таблиця 7

Команди

Призначення

plot

побудова графіка в декартовій системі координат

loglog

побудова графіка в логарифмічних осях

semilogx

побудова графіка з логарифмічною віссю абсцис

semilogy

побудова графіка з логарифмічною віссю ординат

Активація описаних в табл. 2.7 функцій є подібною до виклику функції plot, яку розглянемо детальніше.

Функція plot має різні форми запису залежно від вхідних аргументів. Якщо y є вектором, plot(y) виконує побудову графіка залежності значення елемента вектора від його порядкового номера. Якщо визначені два вектори як аргументи функції, тоді plot(x,y) будує графік залежності y=f(x). У випадку декількох пар векторів x-y за допомогою команди plot можна на одному графіку вивести декілька залежностей, причому MatLab автоматично виведе залежності різними кольорами, згідно з визначеним за замовчуванням списком кольорів. Структура команди буде такою:

plot(х1, y1, х2, y2, х3, y3).

Для виводу графіків користувач може задавати колір залежності, тип лінії та маркери за допомогою структури команди

plot(x,y,'color_style_marker')

color_style_marker є 1-, 2-, або 3-значна змінна символьного типу, створена зі знаків, що ідентифікують колір, тип лінії та маркер:

допустимим є використання кольорів 'c'-cyan (блакитний), 'm'-magenta (бузковий), 'y'-yellow (жовтий), 'r'-red (червоний), 'g'-green (зелений), 'b'-blue (синій), 'w'-white (білий), 'k'-black (чорний).

знаки стилів лінії є такими: '-' неперервна, '- -' штрихова, ':' пунктирна, '-.' штрих пунктирна, 'none'- не проводити лінії.

знаки найбільш вживаних маркерів '+', 'o', '*' та 'x'.

Функція plot автоматично відкриває нове вікно виводу графіків, якщо до цього воно ще не було відкрите. Якщо вікно виводу графіків вже було відкрите, то функція plot використовує його як задане. Для відкриття нового вікна для виводу необхідно виконати команду figure

Для задання поточного вікна виводу необхідно набрати команду

figure(n), де n - номер вікна.

Пакет дозволяє здійснювати поділ вікна виводу графіків. Такий поділ з одночасним вибором активного вікна здійснюється за допомогою команди

subplot(vha),

в якій v та h задають відповідно поділ екрана по вертикалі та по горизонталі, а параметр а визначає номер активного вікна.

Використання команди grid дозволяє нанести сітку на графік.

Для опису графіків служать додаткові команди, які дають можливість задати:

назви x-, y-осей, відповідно, - xlabel('Назва осі), ylabel('Назва осі);

назву графіка - title('Назва графіка).

Циклічні оператори та організація розгалужень

Для реалізації циклів в MatLab є два оператора - for та while. Цикл for повторює виконання групи операторів фіксовану кількість разів. Кінець циклу визначає командне слово end. В операторі for змінна-лічильник циклу почергово приймає значення елементів деякого вектору х. Структура циклічного оператора є такою:

for k = x

…оператори;

end

Оператори в тілі циклу будуть виконуватися при значенні змінної к, рівної х(1), потім х(2) і т. д. до х(еnd). При цьому в циклі можна використати послідовний перебір цілочисельних значень лічильника циклу: for k = 1 : N, проте можна використовувати дробове значення кроку for k = -1 : 0.01 : 1.

Другий тип циклів реалізується з допомогою оператора while. Цикл while повторює виконання групи операторів невизначену наперед кількість разів. Кількість повторів визначає значення логічного виразу: тіло циклу виконується, поки умова залишається істиною. Кінець циклу визначає командне слово end. Структура циклічного оператора є такою:

while умова

…оператори;

end

Для дострокового завершення циклу використовується оператор break.

В якості логічних умов в умовних операторах і циклах можуть використовуватись числові скалярні значення. При цьому нульове значення трактується як false, а будь-яке ненульове - як true. Крім того, для формування умов часто використовуються оператори порівняння: (рівне), (не рівне), < (менше), > (більше), <= (менше або рівне), >= (більше або рівне). Для масивів вони проводять поелементне порівняння, вертаючи масив такого ж розміру, як порівнювані аргументи. Результуючий масив містить одиниці там, де умови порівняння виконані, і нулі в решті елементів. Наприклад

>> x = [1 3 5 2 4]

x = 1 3 5 2 4

>> a = x > 3

a = 0 0 1 0 1

Умовний оператор в MatLab реалізується з допомогою ключових слів if, else, elseif, end. Структура умовного оператора в середовищі пакета є такою:

if умова1

оператори1

elseif умова2

оператори2

else

оператори3

end

Оператор if умова1 визначає значення логічного виразу і виконує групу операторів, у випадку, коли результат цього логічного виразу дорівнює true. Команди elseif та else дають змогу реалізувати розгалуження в роботі програми, тобто виконують альтернативні групи операторів. Для завершення розгалуження в алгоритмі використовується команда end.

Структура m-файлів

Файли, що містять написані користувачем програми мовою програмування MatLab, які виконують певні операції, називаються m-файлами. Для створення такого файла використовується текстовий редактор, за допомогою якого формується послідовність функцій та команд MatLab, що будуть виконуватися програмою. Розрізняють два види m-файлів:

Script. У випадку script MatLab просто виконує знайдені у файлі команди. Script оперує над даними робочої області або даними, створеними ним під час роботи. Створені під час роботи змінні залишаються в робочій області і є доступними для подальшої роботи.

Function. Функціональний m-файл має вхідні та вихідні параметри. Запис у такому файлі починається з рядка з такою структурою:

function [вихідні аргументи]= назва функції(вхідні аргументи).

Назва функції повинна відповідати імені файла, в якому ця функція зберігається. Вхідні та вихідні змінні в списках відокремлюються комами. Вхідні та вихідні аргументи та всі змінні, що вживаються в середині функції, мають локальний характер. Вони не мають ніяких зв'язків зі змінними робочої області, навіть за умови їх однакової назви.

Виклик функцій у MatLab є аналогічний до виклику функцій у мовах програмування високого рівня, наприклад result = my_function(a1, a2). Запуск на виконання сценаріїв може здійснюватися з командного рядка головного вікна MatLab. Для цього потрібно набрати назву файлу і натиснути Enter. Інший спосіб запуску - вибравши пункт Debug/Run меню редактора або натиснувши клавішу F5.

3.ФОРМУВАННЯ DTMF-СИГНАЛІВ

частотний сигнал дискретний matlab

Багато пристроїв телефонного зв'язку, типу програми автонабору номеру, телефонних допоміжних клавіатур і систем захисту потребують формування сигналів DTMF для набору і передачі даних. Телефонна допоміжна клавіатура в стандарті DTMF представляється матрицею, яка складається з 4 рядків і 3 стовпців з загальною кількістю 12 клавіш. Кожний рядок і стовпець представляються своєю частотою, отже, кожна клавіша представляється сумою частот рядка і стовпця наступними чином:

Частота, Гц

1209

1336

1477

697

1

2

3

770

4

5

6

852

7

8

9

941

*

0

#

Наприклад: клавіша `1' представляється одночасно тоном 697 і 1209 Гц.

ЗАВДАННЯ

1. Ознайомитись з теоретичним матеріалом.

2. Написати програму в середовищі MatLab, яка б реалізувала вказаний алгоритм ШПФ, побудувати графіки спектру заданого сигналу без і з накладанням заданого часового вікна. Сигнал представляє собою N вибірок дискретизованого з частотою 8 кГц коду клавіші в стандарті DTFMі зберігається у файлі Lab_1_варіант у змінній Signal. На підставі аналізу спектру визначити код натиснутої клавіші.

Табл. 8.

Варіант

Алгоритм ШПФ

Вікно

Сигнал

Назва файлу

1

Проріджування в часі

Трикутне

N = 256

Lab_1_1.mat

2

Проріджування за частотою

Бартлета

N = 512

Lab_1_2.mat

3

Проріджування в часі

Ханна

N = 1024

Lab_1_3.mat

4

Проріджування за частотою

Хемінга

N = 2048

Lab_1_4.mat

5

Проріджування в часі

Блекмана

N = 256

Lab_1_5.mat

6

Проріджування за частотою

Трикутне

N = 512

Lab_1_6.mat

7

Проріджування в часі

Бартлета

N = 1024

Lab_1_7.mat

8

Проріджування за частотою

Ханна

N = 2048

Lab_1_8.mat

9

Проріджування в часі

Хемінга

N = 256

Lab_1_9.mat

10

Проріджування за частотою

Блекмана

N = 512

Lab_1_10.mat

11

Проріджування в часі

Трикутне

N = 1024

Lab_1_11.mat

12

Проріджування за частотою

Бартлета

N = 2048

Lab_1_12.mat

13

Проріджування в часі

Ханна

N = 256

Lab_1_13.mat

14

Проріджування за частотою

Хемінга

N = 512

Lab_1_14.mat

15

Проріджування в часі

Блекмана

N = 1024

Lab_1_15.mat

16

Проріджування за частотою

Трикутне

N = 2048

Lab_1_16.mat

17

Проріджування в часі

Бартлета

N = 256

Lab_1_17.mat

18

Проріджування за частотою

Ханна

N = 512

Lab_1_18.mat

19

Проріджування в часі

Хемінга

N = 1024

Lab_1_19.mat

20

Проріджування за частотою

Блекмана

N = 2048

Lab_1_20.mat

СПИСОК ЛІТЕРАТУРИ

1. Шрюфер Э. Обработка сигналов: цифровая обработка дискретизированных сигналов. - К.: Либідь, 1995. - 320 с.

2. Сергиенко А. Б. Цифровая обработка сигналов. - СПб.: Питер, 2002. - 608 с.

3. Лозинський А. О., Мороз В. І., Паранчук Я. С. Розв'язування задач електромеханіки в середовищах пакетів MathCAD і MATLAB: Навчальний посібник. - Львів: Видавництво Національного університету "Львівська політехніка", 2000-166 с.

Размещено на Allbest.ru


Подобные документы

  • Роль сигналів у процесах обміну інформацією між окремими підсистемами складних систем різного призначення. Передача повідомлення через його перетворення в електричні сигнали у кодуючому пристрої. Класифікація та способи математичного опису повідомлень.

    реферат [104,5 K], добавлен 12.01.2011

  • Класифікація та сфери застосування лазерів. Аналогово-цифрове та цифро-аналогове перетворення сигналів. Сімейства, моделі та особливості лазерних систем зв'язку. Описання характеристики компаратора напруги. Алгоритм та програми передачі, прийому даних.

    магистерская работа [1,7 M], добавлен 16.05.2019

  • Опис процедури обчислення багатовіконного перетворення, етапи її проведення, особливості сигналів та вейвлет-функцій для різних значень. Дослідження властивості розрізнювання вейвлет-перетворення. Апроксимуюча і деталізуюча компоненти вейвлет-аналізу.

    реферат [410,9 K], добавлен 04.12.2010

  • Цифрові аналізатори спектра випадкових сигналів. Перетворення Фур’є. Амплітуда і форма стиснутого сигналу. Гетеродинний аналізатор спектру. Транспонований (стиснутий у часі) сигнал. Цифрові осцилографи та генератори синусоїдних сигналів та імпульсів.

    учебное пособие [217,6 K], добавлен 14.01.2009

  • Перетворення сигналів і виділення інформації. Властивості оцінок, методи їх одержання. Характеристики оцінок початкових моментів. Заміна "усереднення по реалізаціях" "усередненням за часом". Оцінка математичного очікування по декількох реалізаціях.

    курсовая работа [316,2 K], добавлен 24.06.2011

  • Огляд математичних моделей елементарних сигналів (функції Хевісайда, Дірака), сутність, поняття, способи їх отримання. Динамічний опис та енергетичні характеристики сигналів: енергія та потужність. Кореляційні характеристики детермінованих сигналів.

    курсовая работа [227,5 K], добавлен 08.01.2011

  • Операторне зображення детермінованих сигналів. Взаємозв’язок між зображенням Лапласа та спектральною функцією сигналу. Властивості спектрів детермінованих сигналів. Поняття векторного зображення. Застосування векторного зображення сигналів у радіотехніці.

    реферат [134,9 K], добавлен 16.01.2011

  • Часові характеристики сигналів з OFDM. Спектральні характеристики випадкової послідовності сигналів. Смуга займаних частот і спектральні маски. Моделі каналів розповсюдження OFDM-сигналів. Розробка імітаційної моделі. Оцінка завадостійкості радіотракту.

    дипломная работа [2,3 M], добавлен 07.10.2014

  • Типи задач обробки сигналів: виявлення сигналу на фоні завад, розрізнення заданих сигналів. Показники якості вирішення задачі обробки сигналів. Критерії оптимальності рішень при перевірці гіпотез, оцінюванні параметрів та фільтруванні повідомлень.

    реферат [131,8 K], добавлен 08.01.2011

  • Розкладання складної функції в неперервну чи дискретну послідовність простіших, елементарних функцій. Системи ортогональних функцій. Спектральний опис періодичних сигналів. Комплексна форма опису ряду Фур’є. Спектральна функція детермінованих сигналів.

    курсовая работа [299,1 K], добавлен 13.01.2011

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.