Зворотне дискретне перетворення фур'є. Перетворення Фур'є

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

Перетворення Фур'є (Fourier transform) - це розкладання функцій на синусоїди (далі косинусні функції ми теж називаємо синусоїдами, тому що вони відрізняються від "справжніх" синусоїд тільки фазою). Існує кілька видів перетворення Фур'є.

1. Неперіодичний безперервний сигнал можна розкласти на інтеграл Фур'є.

2. Періодичний безперервний сигнал можна розкласти в нескінченний рядФур'є.

3. Неперіодичний дискретний сигнал можна розкласти на інтеграл Фур'є.

4. Періодичний дискретний сигнал можна розкласти у кінцевий ряд Фур'є.

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

Комплексне ДПФ

До цього часу ми розглядали ДПФ від дійсних сигналів. Узагальним тепер ДПФ у разі комплексних сигналів. Нехай x[n], n=0,…,N-1 - вихідний комплексний сигнал, що складається з N комплексних чисел. Позначимо X [k], k = 0, ... N-1 - його комплексний спектр, що також складається з N комплексних чисел. Тоді справедливі такі формули прямого та зворотного перетворень Фур'є:

Якщо за цими формулами розкласти в спектр дійсний сигнал, то перші N/2+1 комплексних коефіцієнтів спектра збігатимуться зі спектром "звичайного" дійсного ДПФ, представленим у "комплексному" вигляді, а решта коефіцієнтів буде їх симетричним відображенням щодо половини частоти дискретизації. Для косинусних коефіцієнтів відображення парне, а синусних - непарне.

Двовимірне ДПФ

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

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

Тут N 1 ​​xN 2 - розмір вихідного сигналу, він - розмір спектра. k 1 і k 2 - це номери базисних функцій (номери коефіцієнтів двовимірного ДПФ, у яких ці функції перебувають). Оскільки розмір спектру дорівнює розмірувихідного сигналу, то k 1 = 0, ..., N 1 -1; k 2 = 0, ..., N 2 -1.

n 1 і n 2 – змінні-аргументи базисних функцій. Оскільки область визначення базисних функцій збігається з областю визначення сигналу, n 1 = 0, ..., N 1 -1; n 2 = 0, ..., N 2 -1.

Двовимірне ДПФ (у комплексній формі) визначається наступними формулами (тут x - вихідний сигнал, а X - його спектр):

Безпосереднє обчислення двовимірного ДПФ за наведеними формулами потребує величезних обчислювальних витрат. Проте можна довести, що двовимірне ДПФ має властивість сепарабельності, тобто. його можна обчислити послідовно за двома вимірами.

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

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

Таким чином, ефективний алгоритм обчислення ДПФ зображення полягає у обчисленні одновимірних БПФ спочатку від усіх рядків, а потім – від усіх стовпців зображення.

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

Перетворення Фур'є є основоположником спектрального аналізу. Спектральний аналіз– це спосіб обробки сигналів, який дозволяє охарактеризувати частотний склад сигналу, що вимірюється. Залежно від цього, яким чином представлений сигнал, використовують різні перетворення Фур'є. Розрізняють кілька видів перетворення Фур'є:

– Безперервне перетворення Фур'є (в англомовній літературі Continue Time Fourier Transform – CTFTабо, скорочено, FT);

– Дискретне перетворення Фур'є (в англомовній літературі Discrete Fourier Transform – DFT);

– Швидке перетворення Фур'є (в англомовній літературі Fast Fourier transform – FFT).

Безперервне перетворення Фур'є

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

Існує кілька видів запису безперервного перетворення Фур'є, що відрізняються один від одного значенням коефіцієнта перед інтегралом (дві форми запису):

або

де і - Фур'є-образ функції або частотний спектр функції;

- Кругова частота.

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

Якщо функція непарна на інтервалі (−∞, +∞), то перетворення Фур'є може бути представлене через синус-функцію:

Якщо функція парна на інтервалі (−∞, +∞), то перетворення Фур'є може бути представлене через косинус-функцію:

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

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

або

де - Фур'є-образ функції або частотний спектр функції;

- Кругова частота.

Якщо функція непарна на інтервалі (−∞, +∞), то зворотне перетворення Фур'є може бути представлене через синус-функцію:

Якщо функція парна на інтервалі (−∞, +∞), то зворотне перетворення Фур'є може бути представлене через косинус-функцію:

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

Оскільки функція є парною функцією, то безперервне перетворення Фур'є визначатиметься так:

В результаті отримали залежність зміни експоненціальної досліджуваної функції на частотному інтервалі (див. нижче).

Безперервне перетворення Фур'є використовують, як правило, в теорії при розгляді сигналів, які змінюються відповідно до заданих функцій, але на практиці зазвичай мають справу з результатами вимірювань, які є дискретними даними. Результати вимірювання фіксуються через рівні проміжки часу з певною частотою дискретизації, наприклад, 16000 Гц або 22000 Гц. Однак у загальному випадкудискретні відліки можуть нерівномірно, але це ускладнює математичний апаратаналізу, тому практично зазвичай не застосовується.

Існує важлива теорема Котельникова (в іноземній літературі зустрічається назва «теорема Найквіста-Шеннона», «теорема відліків»), яка свідчить, що аналоговий періодичний сигнал, що має кінцевий (обмежений шириною) спектр (0…fmax), може бути однозначно відновлений без спотворень і втрат за своїми дискретними відрахунками, взятими з частотою, більшою або рівною подвоєної верхньої частоти спектра - частота дискретизації (f дискр = 2 * fmax). Іншими словами, за частоти дискретизації 1000 Гц з аналогового періодичного сигналу можна відновити сигнал із частотою до 500 Гц. Слід зазначити, що дискретизація функції часу призводить до періодизації її спектра, а дискретизація спектра за частотою призводить до періодизації функції.

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

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

k ˗ індекс частоти.

Частота k-го сигналу визначається за виразом

де T - період часу, протягом якого бралися вхідні дані.

Пряме дискретне перетворення може бути переписано через речову та уявну складові. Речова складова являє собою масив, що містить значення косинусоїдальних складових, а уявна складова являє собою масив, що містить значення синусоїдальних складових.

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

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

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

Амплітуда постійної складової є середнім значенням функції за вибраний проміжок часу та визначається наступним чином:

Амплітуди та фази частотних складових сигналу визначаються за такими співвідношеннями:

Отримані значення амплітуди та фази називають полярним уявленням (polar notation). Результуючий вектор сигналу визначатиметься таким чином:

Розглянемо алгоритм перетворення дискретно заданої функціїна заданому інтервалі (на заданому періоді) з кількістю вихідних точок

Дискретне перетворення Фур'є

В результаті перетворення отримуємо речове та уявне значення функції , яка визначена на частотному діапазоні.

p align="justify"> Зворотне дискретне перетворення Фур'є ставить у відповідність частотної функції , яка визначена K-кратним спектром на частотному інтервалі, іншу функцію , яка визначена на часовому інтервалі.

N - кількість значень сигналу, виміряних за період, а також кратність частотного спектра;

k ˗ індекс частоти.

Як було зазначено, дискретне перетворення Фур'є N-точкам дискретного сигналу ставить у відповідність N-комплексних спектральних відліків сигналу . Для обчислення одного спектрального відліку потрібно N операцій комплексного множення та додавання. Таким чином, обчислювальна складністьалгоритму дискретного перетворення Фур'є є квадратичною, тобто потрібно операцій комплексного множення та складання.

Нехай f(x 1 , x 2) – функція двох змінних. За аналогією з одновимірним перетворенням Фур'є можна ввести двовимірне перетворення Фур'є:

Функція при фіксованих значеннях 1 , 2 описує плоску хвилюу площині x 1 , x 2 (рисунок 19.1).

Величини ω 1 , ω 2 мають сенс просторових частот і розмірність мм−1 , а функція F(ω 1 , ω 2) визначає спектр просторових частот. Сферична лінза може обчислювати спектр оптичного сигналу (рисунок 19.2). На малюнку 19.2 введено позначення: φ - фокусна відстань,

Рисунок 19.1 – До визначення просторових частот

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


Рисунок 19.2 – Обчислення спектра оптичного сигналу з використанням
сферичної лінзи

Факторизація. Якщо двовимірний сигнал факторизується,

то факторизується та його спектр:

Радіальна симетрія. Якщо двовимірний сигнал радіально-симетричний, тобто

Де – функція Бесселя нульового порядку. Формулу, що визначає зв'язок між радіально-симетричним двовимірним сигналом та його просторовим спектром називають перетворенням Ганкеля.


Лекція 20. Дискретне перетворення Фур'є. Низькочастотний фільтр

Пряме двовимірне дискретне перетворення Фур'є (ДПФ) перетворює зображення, задане у просторовій координатної системи (x, y), двовимірне дискретне перетворення зображення, задане в частотній координатній системі ( u,v):

Зворотне дискретне перетворення Фур'є (ОДПФ) має вигляд:

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



Теорема про пакунок

Відповідно до теореми про згортку, згортка двох функцій у просторовій області може бути отримана ОДПФ твори їх ДПФ, тобто

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

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

Нехай є дискретний сигнал х Д (t), Що складається з Nвідліків х до, і дискретний сигнал у д (Г), що складається з Nвідліків у до,тоді дискретним пакункомцих двох сигналів називається сигнал z A(t), для котрого

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

Пристрій дискретизації в найпростішому випадку являє собою каскад (ключ), що стробується, відкривається на час т ііз періодом А (рис. 4.7).


Мал. 4.

Інтервал дискретизації може бути постійним (рівномірна дискретизація) або змінним (адаптивна дискретизація). Найбільш поширеною формою дискретизації є рівномірна, основу якої лежить теорема Котельникова.

Імпульсний модуляторце пристрій із двома входами, на один з яких подається аналоговий сигнала на другий надходять короткі синхронізуючі імпульси з періодом повторення А. При цьому в момент надходження синхроімпульсу відбувається вимірювання миттєвого значення сигналу лс(г). На виході модулятора виникає послідовність імпульсів, кожен із яких має площу, пропорційну відповідному відлікового значення аналогового сигналу (рис. 4.7).

Сигнал Хмпн ( t) на виході імпульсного модулятора називають модульованою імпульсною послідовністю(МІП). Математично МІП записується так

а спектральна щільність МІПвиражається через спектральну щільністьаналогового сигналу наступним чином:

Модель дискретного сигналу передбачає, що відлікові значення аналогового сигналу можуть бути отримані в необмеженому числіточок на осі часу. Практично обробка завжди ведеться на кінцевому інтервалі часу.

Розглянемо особливості спектрального подання дискретного сигналу, заданого на інтервалі своїми відліками x 0, x x, ..., x N _ x.Повна кількість відліків N - Т/А.

Методика вивчення таких дискретних сигналів у тому, що отримана вибірка отсчетных значень подумки повторюється нескінченне числоразів. Через війну сигнал стає періодичним (рис. 4.8).

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


Мал. 4.8.

Запишемо модель обмеженого періодичного сигналу у вигляді послідовності дельта-імпульсів:

Розкладемо сигнал ХМІП (0 в ряд Фур'є:

тут заміна змінних? = f / А. Остаточно отримуємо

Ця формула визначає послідовність коефіцієнтів, що утворюють дискретне перетворення Фур'є (ДПФ) аналізованого сигналу.

ДПФ має такі властивості:

1. ДПФ є лінійне перетворення, тобто якщо z k = а х до + /? у до,то

З "Z П ~ ^ С Х п Р Су п .

2. Число різних коефіцієнтів Cq,Ci,...,C n _i дорівнює числу Nвідліків за період, при n = Nкоефіцієнт C N= З 0.

3. З 0 є середнім значенням усіх відліків З 0 = - хдо.

N до

  • 4. Якщо N- парне число, то N = -^(-1) до х до.
  • 7 ^ ?=о
  • 5. Якщо відліки х до - речові числаі N- парне число, то C N = C * N, / = 0; Л/7 2-1.
  • -+i - -i
  • 6. Якщо y k = x k+m , m = l; JV-l, TO C, t = C, * e ~ j2rrkm,N.
  • 2 tf-l
  • 7. Якщо z k= - > T0 C z =C X k C y k

iy/i=0

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

Якщо на основі відліків x 0 ,x l ,...,x N _ lдеякого сигналу знайдено коефіцієнти ДПФ C 0 ,Ci,... 9 C n/2 , то ними можна відновити аналоговий сигнал з обмеженим спектром x(t).Ряд Фур'є такого сигналу має вигляд (при парному N)

де | Q | - модуль коефіцієнтів ДПФ; = arg - фазовий кут (аргумент)

коефіцієнтів ДПФ Частота першої гармоніки: f= -/ в = - = -/i- непарному Nостанній доданок у формулі (4.17) дорівнює:

Для обчислення дискретних відліків х доза наявними коефіцієнтами ДПФ існує така формула:

Ця формула має назву зворотного дискретного перетворення Фур'є (ОДПФ)

Надається програмний код для прямого та зворотного перетворення Фур'є. Розглядається швидке перетворення Фур'є.

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

Для розрахунку перетворення Фур'є зазвичай використовують прискорена процедура розрахунку - т.зв. швидке перетворення Фур'є (ШПФ). Це дозволяє значною мірою скоротити процесорний час на досить складні та ресурсомісткі математичні розрахунки.

1 Комплекснічисла

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

Код класу для опису комплексних чисел(розгортається) """ Комплексне число. """ Public Class ComplexNumber """ """ Дійсна частина комплексного числа. """ Public Real As Double = 0 """ """ Уявна частина комплексного числа. """ Public Imaginary As Double = 0 Public Sub New() Real = 0 Imaginary = 0 End Sub """ """ Створює комплексне число. """ """ Дійсна частина комплексного числа. """ Уявна частина комплексного числа. Public Sub New (ByVal r As Double, Optional ByVal im As Double = 0) Real = r Imaginary = im End Sub Private usCult As New Globalization.CultureInfo("en-US") "використовуємо культуру "en-US" щоб ціла дробові частини поділялися точкою, а не комою """ """ Повертає рядок, що складається з дійсної та уявної частини, розділених символом табуляції. """ Public Overrides Function ToString() As String Return (Real.ToString(usCult) & ControlChars.Tab & Imaginary.ToString(usCult)) End Function End Class

2 Пряме дискретне швидкеперетворення Фур'є

На вхід функції передається масив комплексних чисел. Дійсна частина якого представляє довільний дискретний сигнал з відліками через рівні проміжки часу. Уявна частина містить нулі. Число відліків у сигналі має дорівнювати ступеню двійки. Якщо ваш сигнал коротший, то доповніть його нулями до числа кратного ступеня 2: 256, 512, 1024 і т.д. Чим довше сигнал, тим у розрахованого спектра буде вище роздільна здатність за частотою.

Код для розрахунку прямого швидкого перетворенняФур'є на VB.NET(розгортається) """ Розраховує спектр сигналу методом швидкого перетворення Фур'є. Використовувати тільки (N/2+1) значень, що повертаються (до половини частоти дискретизації). """ Сигнал, що містить кількість відліків, кратне ступеня двійки, що складається з дійсної та уявної частин. Усі уявні частини сигналу заповнені нулями. """ Повертає масив комплексних чисел спектра. """ Значні лише перші N/2+1, інші - симетрична частина, що відповідає негативним частотам Перше значення спектра - це постійна складова, останнє - відповідає половині частоти дискретизації (частота Найквіста). Значення вище половини частоти дискретизації - не використовувати. """ Public Shared Function FFT(ByVal signal As ComplexNumber()) As ComplexNumber() Dim order As Integer = signal.Length "порядок ДПФ CheckFftOrder(order) "Перевіряємо, що порядок дорівнює ступенюдвійки Dim spectrumLen As Integer = order \ 2 Dim j As Integer = spectrumLen "Біт-реверсне сортування: For i As Integer = 1 To order - 2 If (i< j) Then Dim tmpRe As Double = signal(j).Real Dim tmpIm As Double = signal(j).Imaginary signal(j).Real = signal(i).Real signal(j).Imaginary = signal(i).Imaginary signal(i).Real = tmpRe signal(i).Imaginary = tmpIm End If Dim k As Integer = spectrumLen Do Until (k >j. (2 ^ level) Dim lvl2 As Integer = lvl \ 2 Dim tmp As Double = Math.PI / lvl2 Dim sr As Double = Math.Cos(tmp) Dim si As Double = -Math.Sin(tmp) = 0 Dim ur As Double = 1 Dim ui As Double = 0 For jj As Integer = 1 To lvl2 "Цикл за спектрами всередині рівня For i As Integer = (jj - 1) To (order - 1) Step lvl "Цикл за окремими "метелик" Dim ip As Integer = i + lvl2 tr = signal (ip). Real * ur - signal (ip). Imaginary * ui "Операція "метелик" Dim ti As Double = signal (ip). (ip).Imaginary * ur signal(ip).Real = signal(i).Real - tr signal(ip).Imaginary = signal(i).Imaginary - ti signal(i). + tr signal (i). Imaginary = signal (i). Dim spectrum(order - 1) As ComplexNumber For i As Integer = 0 To order - 1 З signal(i) spectrum(i) = New ComplexNumber(.Real, .Imaginary) End With Next Return spectrum End Function

3 Зворотне дискретне швидкеперетворення Фур'є

Зворотне дискретне перетворення Фур'є (ОДПФ) одним з етапів розрахунку включає пряме ДПФ на масиві комплексних чисел, де уявна частина - це інверсія щодо осі X уявної частини спектру.

Код для розрахунку зворотного швидкого перетворення Фур'є на VB.NET(розгортається) """ Відновлює сигнал за його спектром шляхом зворотного швидкого перетворення Фур'є. """ """ Спектр сигналу, що містить кількість відліків, кратне ступеня двійки, і що складається з дійсної та уявної частин.Порядок зворотнього ДПФ. Length - 1 spectrum(i). Imaginary = -spectrum(i). (directFFT.Length - 1) As ComplexNumber For I As Integer = 0 To directFFT.Length - 1 Dim ReX As Double = directFFT(i). i) = New ComplexNumber(ReX, ImX) Next Return signal End Function

Ну і звичайно ж, опишемо метод, що використовувався, який перевіряє кількість елементів переданого масиву:

"""

""" Перевіряє, чи є порядок БПФ ступенем двійки, і якщо ні - викликає виняток. """ Порядок БПФ. Private Shared Sub CheckFftOrder(ByVal order As Integer) Dim chk As Double = Math.Abs(Math.Floor(Math.Log(order, 2)) - Math.Log(order, 2)) If (chk > 0.0001) Then Throw New ArgumentException(String.Format("Довжина масиву ((0)) не кратна ступеня двійки.", order)) End If End Sub

4 Перевірка прямого та зворотногоперетворення Фур'є

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

Для прикладу як вихідний сигнал візьмемо функцію синуса і сформуємо дані довжиною 128 відліків таким чином:

Dim cn(127) As ComplexNumber For i As Integer = 0 To cn.Length - 1 cn(i) = New ComplexNumber(Math.Sin(i * 3 * Math.PI / 180)) Next

Отримаємо такий сигнал:

Тут по осі X – номери відліків у часовій області, по осі Y – амплітуда. Звернемо увагу, що сигнал складається тільки з дійсних частин, а уявна частина на всьому відрізку дорівнює "0".

Тепер передамо цей сигнал на вхід функції FFT(). За отриманими в ході прямого перетворення Фур'є масивам комплексних чисел побудуємо два графіки - дійсної (Re) та уявної (Im) частин спектру:


Тут по осі X - відліки в частотній ділянці, по осі Y - амплітуда. Щоб отримати реальні значеннячастоти необхідно розрахувати їх, враховуючи, що "0" осі Y відповідає нульовій частоті, максимум осі Y відповідає частоті дискретизації.

Отриманий спектр сигналу передамо функції зворотного перетворення Фур'є IFFT(). Отримаємо масив комплексних чисел, де дійсна частина міститиме відновлений сигнал:


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



Останні матеріали розділу:

Функціональна структура біосфери
Функціональна структура біосфери

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

Перетворення російської мови за Петра I
Перетворення російської мови за Петра I

Петровські реформи завжди сприймалися неоднозначно: хтось із сучасників бачив у ньому новатора, який «прорубав вікно до Європи», хтось дорікав...

Моделі та системи управління запасами Моделювання управління запасами
Моделі та системи управління запасами Моделювання управління запасами

Основна мета якої — забезпечення безперебійного процесу виробництва та реалізації продукції при мінімізації сукупних витрат на обслуговування.