Андрій Шелковенко. Один з розробників та засновник компанії Vibromera.
Переклад статті може містити неточності.
- Перетворення Фур'є та спектр сигналу
У багатьох випадках задача отримання (обчислення) спектру сигналу виглядає наступним чином. Є АЦП, який з частотою дискретизації Fd перетворює неперервний сигнал, що надходить на його вхід протягом часу T, у цифрові відліки - N штук. Потім цей масив відліків подається на вхід деякої програми (наприклад Фур'є-скоп), який виводить N/2 деяких числових значень.
Для перевірки коректності роботи програми сформуємо масив відліків у вигляді суми двох sin(10*2*pi*x)+0.5*sin(5*2*pi*x) і передамо його в програму. Програма намалювала наступне:
На графіку спектра присутні дві гармоніки - 5 Гц з амплітудою 0,5 В і 10 Гц з амплітудою 1 В, все як у формулі вихідного сигналу. Все гаразд, грограма працює коректно.
Це означає, що якщо ми подамо на вхід АЦП реальний сигнал із суміші двох синусоїд, то отримаємо подібний спектр, що складається з двох гармонік.
Отже, наш справжній виміряний сигнал тривалістю 5 секундоцифровані АЦП, тобто представлені дискретними зразки, має дискретний неперіодичний спектру.
З математичної точки зору - скільки помилок у цій фразі?
Тепер спробуємо виміряти той самий сигнал протягом 0,5 секунди.
Щось тут не так! Гармоніка на 10 Гц намальована нормально, а замість гармоніки на 5 Гц є якісь незрозумілі гармоніки.
В інтернеті пишуть, що треба додати нулі в кінець зразка і спектр намалюється нормально.
Це зовсім не те. Треба розібратися з теорією. Ходімо до вікіпедія - джерело знань.
2. Неперервна функція та її представлення у вигляді ряду Фур'є
Математично наш сигнал тривалістю T секунд є деякою функцією f(x), заданою на інтервалі {0, T} (X в даному випадку - час). Таку функцію завжди можна представити у вигляді суми гармонічних функцій (синуса або косинуса) виду:
k - номер тригонометричної функції (номер гармонічної складової, номер гармоніки)
T - відрізок, на якому задано функцію (тривалість сигналу)
Ak - амплітуда k-ї гармонічної складової,
θk - початкова фаза k-ї гармонічної складової
Що означає "представити функцію у вигляді суми ряду"? Це означає, що додаючи значення гармонічних складових ряду Фур'є в кожній точці, ми отримуємо значення нашої функції в цій точці.
(Більш строго, середнє квадратичне відхилення ряду від функції f(x) буде прагнути до нуля, але, незважаючи на збіжність середнього квадратичного, ряд Фур'є функції не обов'язково, взагалі кажучи, збігається до неї точка за точкою. )
Цю серію також можна написати у формі:
де k-та комплексна амплітуда.
або
Зв'язок між коефіцієнтами (1) і (3) виражається наступними формулами:
Зауважимо, що всі ці три представлення рядів Фур'є є абсолютно еквівалентними. Іноді при роботі з рядами Фур'є зручніше використовувати не синуси і косинуси, а експоненти уявного аргументу, тобто застосовувати перетворення Фур'є в комплексній формі. Але нам зручніше користуватися формулою (1), де ряд Фур'є представлений у вигляді суми косинусів з відповідними амплітудами і фазами. У будь-якому випадку, невірно говорити, що результатом перетворення Фур'є реального сигналу будуть комплексні амплітуди гармонік. Як правильно зазначено у Вікі: "Перетворення Фур'є (ℱ) - це операція, яка відображає одну функцію дійсної змінної в іншу функцію також дійсної змінної".
Підсумок:
Математичною основою спектрального аналізу сигналів є перетворення Фур'є.
Перетворення Фур'є дозволяє представити неперервну функцію f(x) (сигнал), визначену на проміжку {0, T}, у вигляді суми нескінченної кількості (нескінченного ряду) тригонометричних функцій (синуса та/або косинуса) з певними амплітудами і фазами, також розглянутих на проміжку {0, T}. Такий ряд називається рядом Фур'є.
Відзначимо ще кілька моментів, розуміння яких необхідне для коректного застосування перетворення Фур'є до аналізу сигналів. Якщо ми розглянемо ряд Фур'є (суму синусоїд) на всій осі Х, то побачимо, що за межами інтервалу {0, T} функція ряду Фур'є буде періодично повторювати нашу функцію.
Наприклад, на графіку на рис. 7 вихідна функція визначена на інтервалі {-T\2, +T\2}, а ряд Фур'є представляє періодичну функцію, визначену на всій осі х.
Це пояснюється тим, що самі синусоїди є періодичними функціями, тому їхня сума також буде періодичною функцією.
Таким чином:
Наша вихідна функція є неперервною, неперіодичною функцією, визначеною на деякому відрізку довжини T.
Спектр цієї функції є дискретним, тобто представлений у вигляді нескінченного ряду гармонійних складових - ряду Фур'є.
Насправді, ряд Фур'є визначає деяку періодичну функцію, яка збігається з нашою функцією на проміжку {0, T}, але для нас ця періодичність не є суттєвою.
Наступний.
Періоди гармонічних складових кратні інтервалу {0, T}, на якому визначена початкова функція f(x). Іншими словами, періоди гармонік кратні тривалості вимірювання сигналу. Наприклад, період першої гармоніки в ряді Фур'є дорівнює інтервалу T, на якому визначена функція f(x). Період другої гармоніки в ряді Фур'є дорівнює інтервалу T/2. І так далі (див. Рисунок 8).
Відповідно, частоти гармонічних складових кратні 1/T. Тобто частоти гармонічних складових Fk дорівнюють Fk= k\T, де k пробігає значення від 0 до ∞, наприклад, k=0 F0=0; k=1 F1=1\T; k=2 F2=2\T;k=3 F3=3\T;.... Fk= k\T (на нульовій частоті постійна складова).
Нехай наша початкова функція - це сигнал, записаний протягом T=1 секунди. Тоді період першої гармоніки буде дорівнювати тривалості нашого сигналу T1=T=1 сек, а частота гармоніки дорівнює 1 Гц. Період другої гармоніки дорівнюватиме тривалості нашого сигналу, поділеній на 2 (T2=T/2=0,5 сек.), а частота дорівнює 2 Гц. Для третьої гармоніки T3=T/3 сек. і частота дорівнює 3 Гц. І так далі.
Крок між гармоніками в цьому випадку становить 1 Гц.
Таким чином, сигнал тривалістю 1 сек можна розкласти на гармонійні складові (отримати спектр) з частотною роздільною здатністю 1 Гц.
Для збільшення роздільної здатності в 2 рази до 0,5 Гц необхідно збільшити тривалість вимірювання в 2 рази до 2 сек. 10-секундний сигнал можна розкласти на гармонійні складові (спектр) з частотною роздільною здатністю 0,1 Гц. Інших способів підвищити частотну роздільну здатність не існує.
Існує спосіб штучного збільшення тривалості сигналу шляхом додавання нулів до масиву відліків. Але це не збільшує реальну частотну роздільну здатність.
3. Дискретні сигнали та дискретне перетворення Фур'є
З розвитком цифрових технологій змінилися способи зберігання вимірювальних даних (сигналів). Якщо раніше сигнал можна було записати на магнітофон і зберігати на стрічці в аналоговому вигляді, то зараз сигнали оцифровуються і зберігаються у файлах в пам'яті комп'ютера у вигляді набору чисел (відліків).
Звичайна схема вимірювання та оцифрування сигналу виглядає наступним чином.
Вимірювальний перетворювач -- Нормалізатор сигналу -- АЦП -- Комп'ютер
(Рис.9 Схема вимірювального каналу)
Сигнал від вимірювального перетворювача надходить до АЦП протягом періоду часу T. Отримані за час T відліки сигналу (дискретизація) передаються до комп'ютера і зберігаються в пам'яті.
Які вимоги висуваються до параметрів оцифрування сигналу? Пристрій, який перетворює вхідний аналоговий сигнал у дискретний код (цифровий сигнал), називається аналого-цифровим перетворювачем (АЦП) (© Wiki).
Одним з основних параметрів АЦП є максимальна частота дискретизації - частота дискретизації неперервного в часі сигналу. Частота дискретизації вимірюється в герцах. ((© Wiki))
Згідно з теоремою Котельникова, якщо неперервний сигнал має спектр, обмежений частотою Fmax, то він може бути повністю і однозначно відновлений з його дискретних відліків, взятих через інтервали часу T = 1/2*Fmax, тобто з частотою Fd ≥ 2*Fmax, де Fd - частота дискретизації; Fmax - максимальна частота спектра сигналу. Іншими словами, частота оцифрування сигналу (частота дискретизації АЦП) повинна бути щонайменше в 2 рази вищою за максимальну частоту сигналу, який ми хочемо виміряти.
А що буде, якщо ми будемо брати вибірки з меншою частотою, ніж того вимагає теорема Котельникова?
У цьому випадку виникає ефект "аліасингу" (він же стробоскопічний ефект, ефект муару), при якому високочастотний сигнал після оцифрування перетворюється на низькочастотний сигнал, якого насправді не існує. На рис. 11 червона синусоїда високої частоти є реальним сигналом. Синя синусоїда нижчої частоти - це фіктивний сигнал, який виникає через те, що за час дискретизації встигає пройти більше половини періоду високочастотного сигналу.
Щоб уникнути ефекту аліаса, перед АЦП ставиться спеціальний анти-аліас-фільтр (фільтр нижніх частот). Він пропускає частоти нижче половини частоти дискретизації АЦП і відсікає вищі частоти.
Для обчислення спектру сигналу за його дискретними відліками використовується дискретне перетворення Фур'є (ДПФ). Зауважимо ще раз, що спектр дискретного сигналу "за визначенням" обмежений частотою Fmax, меншою за половину частоти дискретизації Fd. Тому спектр дискретного сигналу можна представити у вигляді суми скінченний кількість гармонік, на відміну від нескінченної суми для ряду Фур'є неперервного сигналу, спектр якого може бути необмеженим. Згідно з теоремою Котельникова, максимальна частота гармоніки повинна бути такою, щоб на неї припадало не менше двох відліків, тому кількість гармонік дорівнює половині кількості відліків дискретного сигналу. Тобто, якщо у вибірці N відліків, то кількість гармонік у спектрі буде N/2.
Розглянемо тепер дискретне перетворення Фур'є (ДПФ).
Порівняння з рядом Фур'є
Як бачимо, вони збігаються, за винятком того, що час у ШПФ дискретний, а кількість гармонік обмежена N/2, що вдвічі менше за кількість відліків.
Формули ДПФ записуються в безрозмірних цілочисельних змінних k, s, де k - кількість відліків сигналу, s - кількість спектральних компонент.
Величина s показує кількість повних гармонічних коливань за період T (тривалість вимірювання сигналу). Дискретне перетворення Фур'є використовується для знаходження амплітуд і фаз гармонік чисельно, тобто "на комп'ютері".
Як вже було сказано вище, при розкладанні неперіодичної функції (нашого сигналу) в ряд Фур'є, отриманий ряд Фур'є фактично відповідає періодичній функції з періодом T (рис.12).
Як видно з рис. 12, функція f(x) є періодичною з періодом T0. Однак, через те, що довжина вимірювальної вибірки T не дорівнює періоду функції T0, функція, отримана у вигляді ряду Фур'є, має розрив у точці T. Як наслідок, спектр цієї функції буде містити велику кількість високочастотних гармонік. Якби тривалість вимірювальної вибірки T збігалася з періодом функції T0, то спектр, отриманий після перетворення Фур'є, містив би лише першу гармоніку (синусоїду з періодом, що дорівнює тривалості вибірки), оскільки функція f(x) є синусоїдою.
Іншими словами, програма ДПФ "не знає", що наш сигнал є "зрізом синусоїди", а намагається представити у вигляді ряду періодичну функцію, яка має розрив через розрив окремих фрагментів синусоїди.
В результаті в спектрі з'являються гармоніки, які в сукупності повинні відображати форму функції, включаючи цей розрив.
Таким чином, щоб отримати "правильний" спектр сигналу, який є сумою декількох синусоїд з різними періодами, необхідно, щоб ціла кількість періодів кожна синусоїда повинна бути присутня на періоді вимірювання сигналу. На практиці ця умова може бути виконана при достатньо великій тривалості вимірювання сигналу.
При меншій тривалості картинка буде виглядати "гірше":
На практиці буває важко зрозуміти, де "реальні компоненти", а де "артефакти", викликані неузгодженістю періодів компонентів і тривалості дискретизації сигналу або "стрибками і розривами" у формі сигналу. Звичайно, слова "реальні складові" і "артефакти" взяті в лапки не просто так. Наявність багатьох гармонік на графіку спектра не означає, що наш сигнал дійсно складається з них. Це все одно, що думати, що число 7 "складається" з чисел 3 і 4. Число 7 можна уявити як суму чисел 3 і 4 - це правильно.
Так само і наш сигнал... точніше навіть не "наш сигнал", а періодична функція, утворена повторенням нашого сигналу (зразка), може бути представлена у вигляді суми гармонік (синусоїд) з певними амплітудами і фазами. Але в багатьох важливих для практики випадках (див. рисунки вище) дійсно можна пов'язати отримані в спектрі гармоніки також з реальними процесами, що мають циклічний характер і вносять значний внесок у форму сигналу.
Деякі результати
1. Реальний вимірюваний сигнал тривалістю T секунд, оцифрований АЦП, тобто представлений набором дискретних відліків (N штук), має дискретний неперіодичний спектр, представлений набором гармонік (N/2 штук).
2. Сигнал представлений набором дійсних значень, а його спектр представлений набором дійсних значень. Частоти гармонік додатні. Те, що математично зручніше представляти спектр у складній формі, використовуючи від'ємні частоти, не означає, що "це правильно" і "так треба робити завжди".
3. Сигнал, виміряний в момент часу T, визначається тільки в момент часу T. Що було до того, як ми почали вимірювати сигнал, і що буде після - науці невідомо. І в нашому випадку це не цікаво. ШПФ обмеженого в часі сигналу дає його "реальний" спектр, в тому сенсі, що за певних умов дозволяє обчислити амплітуду і частоту його складових.