- •7.091501 І 8.091501 "Комп'ютерні системи та мережі"
- •7.091503 І 8.091503 “Спеціалізовані комп'ютерні системи“
- •Анотація
- •Аналіз задач і алгоритмів
- •Особливості задач і алгоритмів.
- •Особливості організації обчислювальних засобів
- •2. Алгоритми швидкого перетворення Фур’є та їх програмна реалізація
- •2.1. Основні положення алгоритму шпф
- •2.2. Програмна реалізація основних елементів шпф
- •3. Організація dsp- процесорів для задач опрацювання сигналів та зображень
- •3.2. Вимоги до пос при реалізації алгоритмів цос (на прикладі виконання алгоритму шпф в режимі реального часу)
- •3.3. Типова структура процесора опрацювання сигналів та зображень
- •4: Інтерфейси dsp-процесорів
- •4.1. Аналіз паралельного інтерфейсу з dsp-процесорами: читання даних з ацп, що під’єднаний до адресного простору пам’яті
- •4.2. Аналіз паралельного інтерейсу з dsp-процесорами: запис даних в цап, що під’єднаний до адресного простору пам’яті
- •4.3. Аналіз послідовного інтерфейсу з dsp-процесорами
- •5: Проектування процесора шпф на пос
- •5.2. Аналіз (розробка) блок-схеми виконання алгоритму шпф на заданому типі процесора
- •5.3. Розрахунок основних параметрів
- •5.4. Розробка функціональної схеми
- •6: Проектування засобів опрацювання сигналів та зображень на пліс
- •6.2. Оцінка продуктивності вузла реалізації алгоритму шпф на пліс
- •Побудова граф-алгоритму шпф з основою 2 наведена в попередніх розділах.
- •7. Реалізація алгоритмів опрацювання сигналів та зображень на нейропроцесорах
- •Векторний співпроцесор
- •8. Стиск нерухомих зображень з використанням перетворень різного типу дискретних косинусних перетворень
- •8.1. Стиск нерухомих зображень з використанням дискретних косинусних перетворень
- •8.2. Стиск нерухомих зображень з використанням хвилькових перетворень
- •8.3. Стиск зображень з використанням методу кодування областей хвилькового перетворення
- •8.4. Стиск зображень з використанням методу дерев нулів хвилькового перетворення
- •8.6. Адаптивні хвилькові перетворення : Хвилькові пакети.
- •9. Опрацювання мовних сигналів
- •9.1. Мовні технології
- •9.2. Алгоритм динамічного часового вирівнювання для розпізнавання слів з невеликого словника
- •9.3. Розпізнавання злитної мови з великим словником
- •10. Використання вікон для опрацювання сигналів
- •10.1. Просочування спектральних складових
- •10.2. Вікна та їх основні параметри
- •10.3. Класичні вікна
- •10.4. Гармонійний аналіз
- •11. Діагностика і контроль процесорів і систем опрацювання сигналів та зображень
- •11.1. Особливості діагностики та контролю процесорів та систем опрацювання сигналів та зображень
- •11.2. Ієрархічність засобів діагностики та контролю процесорів та систем опрацювання сигналів та зображень
- •11.3. Процес формування ачх
- •11.4. Визначення і дослідження виду ачх
- •Висновки
- •Література
- •Цифрове опрацювання сигналів та зображень: Алгоритми та реалізація Навчальний посібник
- •7.091501 І 8.091501 "Комп'ютерні системи та мережі",
- •7.091503 І 8.091503 “Спеціалізовані комп'ютерні системи“
2. Алгоритми швидкого перетворення Фур’є та їх програмна реалізація
Оскільки алгоритми ШПФ є одними з найуживаніших при опрацюванні сигналів їх розгляд є доцільним в даному посібнику.
Алгоритм швидкого перетворення Фур'є – є оптимізованим за швидкодією способом обчислення дискретного перетворення Фур'є (ДПФ), що має складність O(Nlog2N) на відміну від складності ДПФ порядку O(N2).
2.1. Основні положення алгоритму шпф
Визначення 1. Дано кінцеву послідовність x0, x1, x2,..., xN-1 (у загальному випадку комплексних чисел). ДПФ полягає в пошуку послідовності X0, X1, X2,..., XN-1, елементи якої обчислюються за формулою:
(2.1)
Визначення 2. Зворотне ДПФ полягає в пошуку послідовності x0, x1, x2,..., xN-1, елементи якої обчислюються за формулою:
(2.2)
Основною властивістю перетворень (2.1) і (2.2) є те, що з послідовності {x} отримується (при прямому перетворенні) послідовність {X}, а якщо застосувати до {X} зворотне перетворення, то знову отримується вихідна послідовність {x}.
Визначення 3. Величина
називається повертаючим множником.
Властивості повертаючих множників
При k = 1
Пряме перетворення Фур'є можна виразити через повертаючі множники. Тоді формула (2.1) матиме вигляд:
(2.3)
Геометричне тлумачення повертаючих множників наведене на рис.1. Комплексне число (rejφ) представлене у вигляді вектора, що виходить із початку координат (r - модуль числа, а φ – аргумент). Модуль відповідає довжині вектора, а аргумент - куту повороту. Модуль повертаючого множника . дорівнює одиниці, а фаза - 2π/N. Оскільки при множенні комплексних чисел, представлених у показниковій формі, їхні модулі перемножуються, а аргументи підсумовуються, множення вихідного числа на повертаючий множник не змінить довжину вектора, але змінить його кут. Тобто, відбудеться повертання вектора на кут 2π/N.
З формули (2.3) можна визначити геометричний зміст перетворення Фур'є таким чином: представити N комплексних чисел-векторів з набору {x}, кожне у вигляді суми векторів з набору {X}, повернених на кути, кратні 2π/N.
Рис.2.1.
Основні формули
Теореми, що пояснюють суть перетворення Фур’є (наведені без доведення).
Теорема 1. Якщо комплексне число представлене у вигляді e j2πN, де N - ціле, то e j2πN = 1.
Теорема 2. Величина періодична по k і по n з періодом N. Тобто, для будь-яких цілих l і m виконується рівність:
(2.4)
Теорема 3.
Для величини справедлива формула:
(2.5)
З наведених теорем визначається основна ідея алгоритму ШПФ:
Необхідно розділити суму (1) з N доданків на дві суми по N/2 доданків, і обчислити їх окремо. Для обчислення кожної з підсум, треба їх теж розділити на дві і т.д.
Необхідно повторно використовувати вже обчислені доданки.
При обчисленні алгоритму ШПФ застосовують або "проріджування за часом" (в першу суму попадають доданки з парними номерами, а в другу - з непарними), або "проріджування за частотою" (в першу суму попадають перші N/2 доданків, а в другу - інші). Обидва варіанти рівноцінні. В силу специфіки алгоритму доводиться застосовувати тільки N, що є ступенями 2. Розглянемо випадок проріджування за часом.
Теорема 4. Визначимо ще дві послідовності: {x[even]} і {x[odd]} через послідовність {x} таким чином:
x[even]n = x2n, x[odd]n = x2n+1, (2.6)
n = 0, 1,..., N/ 2-1
Нехай до цих послідовностей застосовані ДПФ і отримані результати у вигляді двох нових послідовностей {X[even]} і {X[odd]} по N/2 елементів у кожній.
Елементи послідовності {X} можна виразити через елементи послідовностей {X[even]} і {X[odd]} за формулою:
(2.7).
Формула (2.7) дозволяє скоротити число множень удвічі (не враховуючи множень при обчисленні X[even]k і X [odd]k), якщо обчислювати Xk не послідовно від 0 до N - 1, а попарно: X0 і XN/2, X1 і XN/2+1,..., XN/ 2-1 і XN. Пари утворяться за принципом: Xk і XN/2+k.
Теорема 5. ДПФ можна обчислити і за формулою:
(2.8)
З теореми випливає, що можна не зберігати обчислені значення X[even]k і X[odd]k після обчислення чергової пари, і одне обчислення можна використовувати для обчислення двох елементів послідовності {X}.
На цьому кроці буде виконане N/2 множень комплексних чисел. Якщо застосувати подібні схеми для обчислення послідовностей {X[even]} і {X[odd]}, то кожна з них вимагатиме N/4 множень, разом ще N/2. Продовжуючи аналогічно далі log2N разів, можна дійти до сум, що містять лише один доданок, так що загальна кількість множень рівна (N/2)log2N.
Розглянемо ШПФ для різних N. Додамо ще один нижній індекс, який буде вказувати на загальну кількість елементів послідовності, до якої цей елемент належить. Тобто X{R}k - це k-ий елемент послідовності {X{R}} з R елементів. X{R}[even]k - це k-ий елемент послідовності {X{R}[even]} з R елементів, обчислений по парних елементах послідовності {X{2R}}. X{R}[odd]k - це k-ий елемент послідовності {X{R}[odd]}, обчислений по непарних елементах послідовності {X{2R}}.
У випадку, коли доданок лише один (N = 1) формула (1) спрощується до:
,
Оскільки в цьому випадку k може бути рівне тільки 0, то X{1}0 = x{1}0, тобто, ДПФ над одним числом дає це ж саме число.
Для N = 2 за теоремою (2.5) отримаємо:
Для N = 4 за теоремою (2.5) отримаємо:
Звідси виходить, що якщо елементи вихідної послідовності були дійсними, то при збільшенні N елементи ДПФ стають комплексними.
Для N = 8 за теоремою (2.5) отримаємо:
Необхідно звернути увагу, що на попередньому кроці використовувалися ступені W4, а на цьому - ступені W8. Зайвих обчислень можна уникнути, якщо врахувати, що
Тоді формули для N=4 будуть використовувати ті ж W-множники, що і формули для N=8:
Висновок:
В основі алгоритму ШПФ лежать такі формули:
(2.9)