Розробка процесора ШПФ

Інформація про навчальний заклад

ВУЗ:
Національний університет Львівська політехніка
Інститут:
ІКТА
Факультет:
Комп'ютерна інженерія
Кафедра:
ЕОМ

Інформація про роботу

Рік:
2024
Тип роботи:
Курсова робота
Предмет:
Проектування комп’ютерних засобів обробки сигналів та зображень
Група:
КІ 5
Варіант:
7 19 7

Частина тексту файла (без зображень, графіків і формул):

МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ «ЛЬВІВСЬКА ПОЛІТЕХНІКА» Кафедра ЕОМ / КУРСОВА РОБОТА з дисципліни: «Проектування комп’ютерних засобів обробки сигналів та зображень» на тему: «Розробка процесора ШПФ» ЗАВДАННЯ ДО КУРСОВОЇ РОБОТИ Розробити процесор ШПФ з вихідними даними, які наведені в таблиці 1. Табл.1 Вихідні дані до курсової роботи Варіант № 7  Розрядність, N= 2m m=7 27 = 128  Основа 2  Тип прорідження T (часове)  Вагова функція Валле-Пусена  Час обробки, мс 10,0  Розрядність вхідних даних, біт (Re + Im) 16 (8 + 8)  Тип вхідного інтерфейсу, пристрою I2C  Тип процесора ADSP-BF518  Тип вихідного інтерфейсу, пристрою MEM   Табл.2 Формула вагової функції Назва функції Тип функції Діапазон зміни n  Валле-Пусена   0 ( (n( ( N/4 N/4 ( (n( ( N/2   АНОТАЦІЯ В курсовій роботі реалізовано алгоритм ШПФ за основою 2 на процесорі ADSP-BF518 для 128-розрядних вхідних даних з часовим прорідженням. Також описано механізми обчислення швидкого перетворення Фур’є за заданою основою, характеристики процесора, розраховано основні параметри створеної системи, створена функціональна схема системи та написана програма, що реалізує вказаний алгоритм ШПФ. ЗМІСТ ВСТУП 5 1. ТЕОРЕТИЧНИЙ РОЗДІЛ 6 1.1. Опис швидкого перетворення Фур’є (ШПФ) 6 1.1.1. Застосування ШПФ 6 1.1.2. Опис ШПФ з основою 2 з прорідженням по часу 7 1.2. Характеристики процесора ADSP- BF518 12 2. АНАЛІЗ БЛОК-СХЕМИ ВИКОНАННЯ ШПФ 15 3. РОЗРАХУНКОВИЙ РОЗДІЛ 18 3.1. Розрахунок часу виконання 18 3.2. Розрахунок об’єму пам’яті 20 4. РОЗРОБКА ФУНКЦІОНАЛЬНОЇ СХЕМИ 22 4.1. Розробка вузла синхронізації 22 4.2. Розробка вузла скиду 23 4.3. Підключення вихідного інтерфейсу MEM 24 4.4. Підключення вхідного інтерфейсу I2C 26 4.5. Підключення зовнішньої ПЗП типу EEPROM 26 5. РОЗРОБКА ПРОГРАМИ ВИКОНАННЯ ЗАДАНОЇ ФУНКЦІЇ 29 ВИСНОВКИ 30 СПИСОК ВИКОРИСТАНОЇ ЛІТЕРАТУРИ 31 ДОДАТКИ 32 Додаток А. Лістинг програми 32 Додаток Б. Результати виконання програми 33 Додаток В. Схема електрична функціональна 34 ВСТУП Основою цифрової обробки даних є дискретні перетворення. Особливе місце серед них займає дискретне перетворення Фур’є. Широке застосування цифрової техніки та зростаючі вимоги до обробки ставлять особливі вимоги до алгоритмів їх обробки. Сьогодні ДПФ використовуються всюди, де потрібна обробка дискретних сигналів, зокрема під час спектрального аналізу, обробки зображень, відео, мови та звуку. Дискретне перетворення Фур'є (ДПФ) грає важливу роль при аналізі, синтезі та розробці систем та алгоритмів цифрової обробки сигналів. Одна з причин того, що аналіз Фур'є грає таку важливу роль в цифровій обрабці сигналів, полягає в існуванні ефективних алгоритмів дискретного перетворення Фур'є. Ці перетворення зворотні, при чому зворотнє перетворення має практично таку ж саму форму, що й пряме перетворення. Швидке перетворення Фур'є (швидкий спосіб обчислення ДПФ) застосовується в багатьох галузях: радіолокації, стисненні відео та зображень, геології. Багато з цих задач вимагають виконання перетворень в реальному часі, з мінімальною часовою затримкою обчислень. На практиці широке поширення одержали алгоритми ШПФ за основою 2, де кожен функціональний вузол виконує базову операцію ‒ двовходового «метелика». Ці алгоритми орієнтовані, насамперед, на зведення до мінімуму числа операцій множення. Послідовність обчислень будь-якого ШПФ можна описати у виді графа, вузли якого виконують фактично звичайне дискретне перетворення, але з меншою розмірністю вхідних векторів (меншою основою). У залежності від вибору основи міняється як загальне число арифметичних операцій, так і кількість ярусів графа. Розробка процесора є актуальною, оскільки алгоритм ШПФ має широке прикладне застосування, а використання методу «проріджування за часом» дозволяє зменшити число операцій множення при виконанні перетворення, що в свою чергу пришвидшує роботу алгоритму. ТЕОРЕТИЧНИЙ РОЗДІЛ Опис швидкого перетворення Фур’є (ШПФ) Застосування ШПФ Швидке перетворення Фур’є використовується в таких сферах: 1. Цифровий спектральний аналіз: аналізатори спектра; обробка мови; обробка зображень; розпізнавання образів. 2. Проектування фільтрів: обчислення імпульсної характеристики по частотній; обчислення частотної характеристики по імпульсній. Аналіз Фур'є закладає основи багатьох методів, що застосовуються в області цифрової обробки сигналів (ЦОС). Перетворення Фур'є дозволяє зіставити сигналу, заданому в часовій області, його еквівалентне представлення в частотній області. І навпаки, якщо відома частотна характеристика сигналу, то зворотнє перетворення Фур'є дозволяє визначити відповідний сигнал у часовій області. Також до частотного аналізу, ці перетворення корисні при проектуванні фільтрів. Частотна характеристика фільтра може бути отримана за допомогою перетворення Фур'є його імпульсної реакції. І навпаки, якщо визначена частотна характеристика сигналу, то необхідна імпульсна реакція може бути отримана за допомогою зворотнього перетворення Фур'є над його частотною характеристикою. Цифрові фільтри можуть бути створені на основі їхньої імпульсної реакції, оскільки коефіцієнти фільтра з кінцевою імпульсною характеристикою ідентичні дискретній імпульсній реакції фільтра. Послідовність обчислень будь-якого ШПФ можна описати у виді графа, вузли якого виконують фактично звичайне дискретне перетворення, але з меншою розмірністю вхідних векторів (меншою основою). У залежності від вибору основи міняється як загальне число арифметичних операцій, так і кількість ярусів графа. Опис ШПФ з основою 2 з прорідженням по часу Швидке перетворення Фур'є (ШПФ) ‒ це простий алгоритм для ефективного обчислення дискретного перетворення Фур'є (ДПФ). Дискретний матеріальний сигнал у вигляді кінцевої часової послідовності x(nТ) запишемо як x(nТ), де  - число відліків, N – число відліків, T - період дискретизації. N - точкове дискретне перетворення Фур'є (ДПФ) задається формулою: / де X(k) - частотний k-ий відлік чи k-а спектральна складова сигналу (визначає вихідну частотну послідовність, спектр сигналу), комплексна експонента, W - ядро перетворення. При зміні значення n*k на величину кратну N ядро не змінюється (у силу періодичності синуса і косинуса). Тобто ядро по верхньому індексу є періодичною функцією з періодом N. Тому замість добутку n*k можна вставити залишок від ділення його на N , тобто (n*k) mod N. Спектральна функція X(k) також має період N по аргументу k. Число множень дійсних відліків сигналу на комплексне ядро в (1) дорівнює N2, а число додавань комплексних чисел - (N -1)N. Кількість цих операцій різко зростає із збільшенням N і приводить до занадто великого часу перетворення. ШПФ стало широко застосовуватися після винаходу швидких алгоритмів, в основі яких лежить принцип зведення багатоточкового перетворення до малоточкового. Один з них (що став уже класичним) називається ШПФ із проріджуванням за часом. Цей алгоритм отриманий за умови, якщо N є ступенем числа 2, тобто N = 2v, де ν - ціле число, ν≥0. Основні формули перетворення, до яких ми прийдемо, виходять при розбивці суми в (1) на дві суми, що містять відліки з парними і непарними номерами / Власне кажучи ця операція являє собою зміну порядку сумування (перегрупування доданків), від якого сума не міняється. Можна записати , . З врахуванням цього (2) прийме вигляд: / Зауважимо, що суми в (3) являють собою N/2 - точкові ДПФ часових відліків з парними номерами в першій сумі, і непарними номерами в другій сумі. Позначимо, згідно з [1], X(k) = Xν(k) - ДПФ усіх  вхідних відліків дискретного сигналу, / вхідних відліків з парними номерами (перше число в нижньому індексі дорівнює ν - 1, а друге - парному числу (нулю)) , / вхідних відліків з непарними номерами (друге число в нижньому індексі дорівнює непарному числу (одиниці)). З урахуванням введених позначень одержимо коротку форму запису (3) / Спектри і  є періодичними функціями з періодом N/2 (у ядрі перетворення замість N стоїть N/2). Величина  називається повертаючим множником і володіє наступною цікавою властивістю / Ця властивість надає при обчисленні  з номерами k від N/2 до (N -1) використовувати відповідні значення раніше обчислених  з номерами від до (N/2 -1) (потрібно тільки змінити знак). За звичай формулу (4) розбивають на два співвідношення для зазначених вище номерів і одержують основні формули (базові співвідношення) перетворення Фур'є у вигляді: / Базові співвідношення вже можна назвати швидким перетворенням Фур'є (ШПФ), тому що число операцій зменшилося. Число множень матеріальних відліків сигналу на комплексне ядро дорівнює . До цього потрібно додати  множень комплексних чисел. Число додавань дорівнює / Процес розбиття за схемою базових співвідношень можна продовжувати до тих пір, доки не прийдемо до перетворень Фур'є одиничних відліків (що збігаються із самими відліками). Необхідне число операцій при цьому буде значно менше. У такому вигляді це ШПФ називають ШПФ із проріджуванням за часом. Для пояснення процесу розбиття розглянемо більш детально, приклад ШПФ при N = 23 = 8. Позначимо оператор ДПФ визначених вхідних відліків через F і запишемо відповідності між cимволами ДПФ, введеними вище, і цим оператором. / Зв'язок між ДПФ із великим і меншим числом точок відповідно до базових співвідношень записується в такий спосіб: / / Роботу ШПФ можна пояснити графічно, якщо базові співвідношення, записані в дуже короткій формі, або зобразити графом // Верхній стрілці відповідає додавання, а нижній - віднімання. Попередньо bm-1 домножається на множник повороту WN. Використовуючи вищенаведене і розташовуючи символи ДПФ у впорядкованому вигляді, зобразимо ШПФ геометрично за допомогою графа на рис. 1.1. Відзначимо, що відліки вхідної послідовності переходять у відповідні ДПФ нульового рівня відповідно до інверсії їхній двійкових номерів (операція називається перестановкою вхідних відліків). Наприклад, десятковий номер 4|10 у двійковому вигляді запишеться як 100|2. Інверсія числа 100|2 (у прочитанні з права на ліво) запишеться як 001|2 = 1|10. Таким чином, вхідний відлік під номером 4 співпаде з першим ДПФ X0,1(0). Перестановку для всіх відліків можна показати стрілками переходу: 0 → 0, 1 → 4, 2 → 2, 3 → 6, 4 → 1, 5→ 5, 6 → 3, 7 → 7. / Рис.1.1. Граф ШПФ із проріджуванням за часом за основою 2 при N=8 Для наочності приведемо направлений граф алгоритму ШПФ за основою два з часовим прорідженням для N=32:  Рис.1.2. Направлений граф алгоритму ШПФ за основою два з часовим прорідженням для N=32. 1.2. Характеристики процесора ADSP- BF518 ADSP-BF518 – процесор з ядром Blackfin, має RISC архітектуру. ADSP- BF518 є системою на кристалі, оскільки базується на ядрі сімейства ADSP-BF51X, додаючи двохпортову пам’ять на чіпі SRAM, інтегровані зовнішні пристрої вводу-виводу з підтримкою розподілених шин вводу-виводу. Завдяки кешу інструкцій процесор виконує кожну команду в одному(окремому) циклі. Чотири незалежних шини для даних, команд та шин вводу-виводу, а також перехресні переключення між зв’язками пам’яті – все це включає супер гарвардська архітектура ADSP-BF518 (HighSpeed). Даний процесор представляє собою новий стандарт інтегрування для цифрових сигнальних процесорів, комбінуючи високо ефективне з плаваючою крапкою ядро DSP з вбудованим інтерфейсом хост-процесора, контролером прямого доступу до пам’яті, послідовними портами, link-портами, та із загально-доступними шинами в багатопроцесорному режимі. Процесор може використовувати 64К слів пам’яті програм і даних, має шістнадцять 16-розрядних портів вводу/виводу, а також послідовний порт. Помножувач процесора, крім операцій множення, дозволяє виконувати за один такт піднесення до квадрату. У процесорі включена апаратна підтримка кратного виконання команди, реалізований режим двійкової інверсно-непрямої адресації, призначеної для ефективної реалізації швидкого перетворення Фур'є. Табл.3 Основні характеристики процесора Ядро Blackfin  Частота роботи F, МГц 400  Пам’ять: RAM, КБайт 116  I/O (макс.), шт. 40  Таймери: 32-біт, шт 8  Кількість каналів ШІМ, шт 9  Таймери: RTC +  Інтерфейси: UART, шт 2  Інтерфейси: I2C, шт   Інтерфейси: SPI, шт 2  Інтерфейси: Ethernet, шт 1  Інтерфейси: DMA, шт 14  Напруга живлення VCC,В від 1.14 до 1.47  Струм споживання ICC,мА 76  Температурний діапазон TA,°C от -40 до 85  Корпус LQFP-176 CSPBGA-168   Нижче наведена функціональна блок-діаграма даного процесора (рис 1.3). / Рис. 1.3. Структура процесора ADSP-BF518 Основні вузли процесора: BLACK FIN - ядро процесора; INSTRUCTION MEMORY - кеш інструкцій; DATA MEMORY - кеш даних; DMA CONTROLLER - Контролер прямого доступу до пам'яті; BOOT ROM - Пам'ять завантаження; CORE BUS INTERFACE - шина ядра; JTAG TEST AND EMULATION - порт тестування і налагодження; EVENT CONTROLLER - контролер переривань; REAL TIME CLOCK - таймер реального часу; TIMER0, … - таймери; SERIAL PORT(2)- послідовні порти; EXTERNAL PORT FLASH, SDRAM - порт зовнішньої пам'яті. / Рис. 1.4. Функціональна блок-діаграма ядра процесора ADSP-BF518 АНАЛІЗ БЛОК-СХЕМИ ВИКОНАННЯ ШПФ У першому розділі представлено обчислення ШПФ з використанням алгоритму з прорідженням за часом. Розглянемо його детальніше з заданою кількістю точок – 128. Для реалізації ШПФ з прорідженням по часу 128-точкове ШПФ розділяють спочатку на шістдесят чотири 2-точкових ШПФ, далі на тридцять два 4-точкових ШПФ, далі на шістнадцять 8-точкових ШПФ, далі на шістнадцять вісім 16-точкових ШПФ, далі на чотири 32-точкових ШПФ і врешті решт на два 64-точкових ШПФ, об’єднуючи в 1 128-точковий ШПФ (рис. 2.1). Для обрахунку 2-точкового ШПФ використовуються формули «метелика». Для виконання 128-точкового ШПФ необхідно сім ітерацій. При чому, після того, як закінчується обчислення першої ітерації, немає необхідності зберігати які-небудь попередні результати. Результати обчислення першої ітерації можуть бути збережені в тих же регістрах чи комірках пам'яті, де спочатку зберігалися вхідні дані. Так само, коли закінчується обчислення другого каскаду, результати обчислення першого каскаду можуть бути вилучені. У такий же спосіб здійснюється обчислення останнього каскаду, заміною в пам'яті проміжного результату обчислення попереднього каскаду. Результат виконання ШПФ отримуємо у біт-інверсному порядку. Тому для адресів вихідних відліків необхідно застосувати біт-інверсний алгоритм. Суть даного алгоритму полягає у наступному: десятковий індекс n перетворюють в його бітовий еквівалент. Потім бітові розряди розташовуються у зворотньому порядку і перетворюються назад у десяткове число. Потім двійкові розряди розташовуються у зворотньому порядку і перетворюються назад у десяткове число. На рис. 2.1. наведена блок-схема роботи алгоритму 128 точкового ШПФ. Рис. 2.1. Блок-схема алгоритму 128 точкового ШПФ Таблиця 2.1. Біт-інверсне перетворення Відліки Вхідна послідовність Біт-інверсія  0 00000000 00000000  1 00000001 10000000  2 00000010 01000000  3 000000011 11000000  … … …  125 1111101 10111111  126 1111110 01111111  127 01111111 11111110  128 10000000 00000001  На рис. 2.2. наведена граф-схема роботи алгоритму 128 точкового ШПФ. / Рис. 2.2. Граф-схема алгоритму ШПФ РОЗРАХУНКОВИЙ РОЗДІЛ Розрахунок часу виконання Для розрахунку часу виконання алгоритму ШПФ на процесорі ADSP-BF518 потрібно визначити кількість операцій додавання, множення та читання/запису з/до пам’яті однієї операції «метелик». На рис. 3.1 наведено базову операцію “метелик” ШПФ за основою 2 з прорідженням по часу.  Рис. 3.1. Метелик ШПФ за основою 2 з прорідженням по часу Формули обчислення метелика: X’1 = X1 + X2*W X’2 = X1 – X2*W Розклад формул для обчислення метелика на дійсну та уявну частину: X’1 = ( ReX1 + jImX1 ) + ( ReX2 + jImX2 ) X’2 = ( ReX1 + jImX1 ) – ( ReX2 + jImX2 ) * ( ReW – jImW ) W = e-j(2πnk/N) = cos ( 2
Антиботан аватар за замовчуванням

26.12.2017 22:12-

Коментарі

Ви не можете залишити коментар. Для цього, будь ласка, увійдіть або зареєструйтесь.

Ділись своїми роботами та отримуй миттєві бонуси!

Маєш корисні навчальні матеріали, які припадають пилом на твоєму комп'ютері? Розрахункові, лабораторні, практичні чи контрольні роботи — завантажуй їх прямо зараз і одразу отримуй бали на свій рахунок! Заархівуй всі файли в один .zip (до 100 МБ) або завантажуй кожен файл окремо. Внесок у спільноту – це легкий спосіб допомогти іншим та отримати додаткові можливості на сайті. Твої старі роботи можуть приносити тобі нові нагороди!
Нічого не вибрано
0%

Оголошення від адміністратора

Антиботан аватар за замовчуванням

Подякувати Студентському архіву довільною сумою

Admin

26.02.2023 12:38

Дякуємо, що користуєтесь нашим архівом!