Міністерство освіти і науки України
Національний університет “Львівська політехніка”
Кафедра ЕОМ
Курсовий проект
З дисципліни
«Проектування комп'ютерних засобів обробки сигналів і зображень »
На тему:
«Розробка процесора ШПФ»
Варіант № 3
Завдання до курсового проекту
Розробити процесор ШПФ з такими вхідними даними:
Варіант №
3
Розмірність, N
512
Основа
2
Тип прорідження (T – часове, F – частотне)
T – часове
Час обробки, мс
1,0
Розрядність вхідних даних, біт (Re +Im)
16 (8+8)
Такт поступлення вхідних даних, нс
-
Тип зовнішнього інтерфейсу
UART
Тип зовнішнього пристрою
MEM
Тип процесора
ADSP-BF532
Анотація
В даному курсовому проекті розглянуто спосіб реалізації алгоритму ШПФ за основою 2на ADSP-BF532 для 16-розрядних (8+8) вхідних даних з часовим прорідженням, детально описано механізми обчислення швидкого перетворення Фур`є за заданою основою, властивості та основні характеристики процесора, на якому планується реалізація, підраховано часові ресурси для виконання обчислення, створена функціональна схема системи та написана програма, що реалізує вказаний алгоритм ШПФ на заданому процесорі.
ЗМІСТ
Вступ 5
1.Характеристики сигнального процесора ADSP- BF532 6
1.1 Призначення ADSP- BF532 6
1.2 Характеристики ADSP-BF532. 6
2.Теоретичний розділ 9
2.1.Області застосування дискретного перетворення Фур’є. 9
2.2 Опис швидкого перетворення Фур’є. 9
2.3 Опис швидкого перетворення Фур’є з прорідженням в часі. 10
2.4 Алгоритм перетворення. 12
2.5 Алгоритм ШПФ із проріджуванням за часом. 12
3.Розрахунковий розділ 13
3.1.Розробка алгоритму виконання 15
4.Розробка функціональної схеми 17
4.1. Вибір мікропроцесора 17
4.2. Пам’ять завантаження 17
4.3. Розробка керуючого пристрою................................................................................................18
5. Розробка програми виконання заданої функції (алгоритму) 19
Висновки 20
Література 21
Додатки 22
Вступ
Перетворення Фур’є має активне застосування в техніці. З його допомогою сигнал перетворюється з часової області в частотну. Саме перетворення Фур’є є доволі громіздким і важким для виконання тому існують різноманітні алгоритми швидкого перетворення Фур’є. В даному курсовому проекті ми розглядаємо швидке перетворення Фур’є з часовим прорідженням. Застосування цим перетворенням знаходиться в цифрових фільтрах.
Набір алгоритмів, званих алгоритмами швидкого перетворення Фур’є (ШПФ), включає різноманітні методи зменшення часу обчислення дискретного перетворення Фур’є (ДПФ). Оскільки обчислення ДПФ є основною операцією в більшості задач спектрального аналізу, то використовування ШПФ в деяких практичних випадках, дозволяє прискорити обчислення ДПФ в 100 і більше разів у порівнянні з методом прямого обчислення ДПФ.
Швидке перетворення Фур’є я реалізував на процесорі ADSP-BF532. Частота роботи процесора 400Мц. Це високопродуктивний процесор обробки сигналів.
1.Характеристики сигнального процесора ADSP- BF532
1.1 Призначення ADSP- BF532
ADSP-BF532 – процесор з ядром Blackfin, має RISC архітектуру. ADSP-BF532 є системою на кристалі, оскільки базується на ядрі сімейства ADSP-BF53X, додаючи двох портову пам’ять на чіпі SRAM, інтегровані зовнішні пристрої вводу-виводу з підтримкою розподілених шин вводу-виводу. Завдяки кешу інструкцій процесор виконує кожну команду в одному(окремому)циклі. Чотири незалежних шини для даних,команд та шин вводу-виводу плюс перехресні переключення між зв’язками пам’яті – все це включає супер гарвардська архітектура ADSP-BF532 (HighSpeed).
Це процесор представляє собою новий стандарт інтегрування для цифрових сигнальних процесорів, комбінуючи високо ефективне з плаваючою крапкою ядро DSP з вбудованим інтерфейсом хост-процесора, контролером прямого доступу до пам’яті, послідовними портами, link-портами, та із загально-доступними шинами в багатопроцесорному режимі.
1.2 Характеристики ADSP-BF532.
Частота процесора – 400Мц
2 16-розрядні незалежні шини для вибірки даних, інструкції, і шини вводу-виводу.
2 40-розрядних ALU, та зсувач.
Двопортова SRAM на кристалі та вбудований процесор вводу – виводу для периферії – складають System-оn-а-сhіp.
Вбудовані засоби мультиобработки.
2,5 ns цикл виконання інструкцій, кожна інструкція виконується за один цикл.
Ефективний програмований засіб Sequencіng з нульовим-переповнюючим циклом.
ІEEE JTAG Стандарт 1149.1 тестових портів доступу та емуляції на кристалі.
32-бітний з фіксованою точністю та 40-бітний з розширюваною точністю ІEEE формати даних з рухомою комою,і 32 розрядний формат даних з фіксованою крапкою.
Одноциклові операції множення і арифметико-логічні виконуються паралельно із вибіркою даних чи інструкцій з пам’яті.
Двопортова 4Мbit SRAM є доступною як ядра процесора, так і для DMA.
4 Gіgawords зовнішня пам’ять підтримує сторінковий режим доступу.
Основними вузлами є:
32-розрядні з рухомою комою обчислювальні блоки – АЛП, вузол множення, зсувач.
регістровий файл даних
програмний автомат (ProgramSequencer) та кеш інструкцій
періодичний таймер
двопортова SRAM
зовнішній порт для зв’язку із зовнішньою пам’яттю та периферійними пристроями
інтерфейс хост процесора та багатопроцесорний інтерфейс
контролер DMA
послідовні порти
link-порти
JTAG тест.
SPI інтерфейс
WDT
Puc. 1.1 Карта пам’яті процесора
ADSP-BF532 – мікроконтролер, що містить 4Мбітну SRAM на кристалі, яка складається з двох блоків по 2 Mбіти кожен, і яка може бути зконфігурована для зберігання різних комбінацій інструкцій і даних. Подвійний доступ(тобто в один момент часу може відбуватися операція запису і читання) до кожного блоку пам’яті відбувається в єдиному циклі ядром процесора, процесором вводу/виводу чи контролером DMA .
В ADSP-BF532 пам’ять може бути зконфігурована максимум з 128Кслів по 32-біти, з 256Кслів по 16-бітів для даних, чи з різних комбінацій довжин слів, які поміщаються у 4Мбіти. Але до пам’яті можна звертатися лише по 16-, 32-бітних шинах.
На рисунку 1.2. наведена блок схема процесора ADSP-BF533, наведено шини по яких йдуть дані а також наступні складові:
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.2: процесор ADSP-BF533
2.Теоретичний розділ
2.1.Області застосування дискретного перетворення Фур’є.
Цифровий спектральний аналіз
Аналізатори спектра
Обробка мови
Обробка зображень
Розпізнавання образів
Проектування фільтрів
Обчислення імпульсної характеристики по частотній
Обчислення частотної характеристики по імпульсній
Швидке перетворення Фур'є (ШПФ) - це простий алгоритм для ефективного обчислення дискретного перетворення Фур'є (ДПФ)
Аналіз Фур'є закладає основи багатьох методів, що застосовуються в області цифрової обробки сигналів (ЦОС). По суті справи, перетворення Фур'є дозволяє зіставити сигналу, заданому в тимчасовій області, його еквівалентне представлення в частотній області. І навпаки, якщо відома частотна характеристика сигналу, то зворотнє перетворення Фур'є дозволяє визначити відповідний сигнал. На додаток до частотного аналізу, ці перетворення корисні при проектуванні фільтрів.
Частотна характеристика фільтра може бути отримана за допомогою перетворення Фур'є його імпульсної реакції. І навпаки, якщо визначена частотна характеристика сигналу, то необхідна імпульсна реакція може бути отримана за допомогою зворотнього перетворення Фур'є над його частотною характеристикою. Цифрові фільтри можуть бути створені на основі їхньої імпульсної реакції, оскільки коефіцієнти фільтра з кінцевою імпульсною характеристикою ідентичні дискретній імпульсній реакції фільтра.
2.2 Опис швидкого перетворення Фур’є.
При виконанні ШПФ вихідними даними є елементи обмеженої послідовності x(n), де n=0,1,.. N-1. Дискретне перетворення Фур'є має вид:
; (1.1)
, (1.2)
де - повертаючий множник, , причому є періодичною послідовністю з періодом N, оскільки , де m - ціле.
Безпосереднє обчислення ДПФ(1.1) для визначення комплексних значень F(k) вимагає для кожного значення k (N-1) множень і (N-1) додавань комплексних чи чисел 4(N-1) множень і 2(N-1) додавань дійсних чисел, а для всіх N значень k=0, 1, ..., N-1 потрібно приблизно N2 множень і N2 додавань комплексних чисел. Таким чином, для великих значень N (порядку декількох сотень) пряме обчислення ДПФ вимагає (1.1) виконання дуже великого числа арифметичних операцій множення і додавання, що ускладнює реалізацію обчислень у реальному часі.
Швидким перетворенням Фур'є (ШПФ) називають набір алгоритмів, реалізація яких приводить до істотного зменшення обчислювальної складності ДПФ (1.1).
2.3 Опис швидкого перетворення Фур’є з прорідженням в часі.
Дискретний матеріальний сигнал у вигляді кінцевої часової послідовності x(nТ) запишемо як x(nТ), де - число відліків, N – число відліків, T - період дискретизації.
N - точкове дискретне перетворення Фур'є (ДПФ) задається формулою:
(1.3)
де X(k) - частотний k-ий відлік чи k-а спектральна складова сигналу (визначає вихідну частотну послідовність, спектр сигналу), / (1.4)
комплексна експонента, W- ядро перетворення.
При зміні значення n*k на величину кратну N ядро не змінюється (у силу періодичності синуса і косинуса). Тобто ядро по верхньому індексу є періодичною функцією з періодом N. Тому замість добутку n*k можна вставити залишок від ділення його на N , тобто (n*k) mod N. Спектральна функція X(k) також має період N по аргументу k.
Число множень дійсних відліків сигналу на комплексне ядро в (1.3) дорівнює N2, а число додавань комплексних чисел - (N -1)N. Кількість цих операцій різко зростає із збільшенням N і приводить до занадто великого часу перетворення.
ДПФ стало широко застосовуватися після винаходу швидких алгоритмів, в основі яких лежить принцип зведення багато точкового перетворення до молоточкового. Один з них (що став уже класичним) називається ШПФ із проріджуванням за часом. Цей алгоритм отриманий за умови, якщо N є ступенем числа 2, тобто N = 2v, де ν - ціле число, ν≥0.
Основні формули перетворення, до яких ми прийдемо, виходять при розбивці суми в (1.3) на дві суми, що містять відліки з парними і непарними номерами
(1.5)
Власне кажучи ця операція являє собою зміну порядку сумування (перегрупування доданків), від якого сума не міняється.
Можна записати , . З врахуванням цього (1.4) прийме вигляд:
(1.6)
Зауважимо, що суми в (1.6) являють собою N/2 - точкові ДПФ часових відліків з парними номерами в першій сумі, і непарними номерами в другій сумі.
Позначимо, згідно з [1],
X(k) = Xν(k) - ДПФ усіх вхідних відліків дискретного сигналу,
/
вхідних відліків з непарними номерами (друге число в нижньому індексі дорівнює непарному числу (одиниці)).
З урахуванням введених позначень одержимо коротку форму запису (1.6)
(1.7)
Спектри і є періодичними функціями з періодом N/2 (у ядрі перетворення замість N стоїть N/2). Величина називається повертаючим множником і володіє наступною цікавою властивістю/
Ця властивість надає при обчисленні з номерами k від N/2 до (N -1) використовувати відповідні значення раніше обчислених з номерами від 0 до (N/2 -1) (потрібно тільки змінити знак).
За звичай формулу (2.5) розбивають на два співвідношення для зазначених вище номерів і одержують основні формули (базові співвідношення) перетворення Фур'є у вигляді:
(1.8)
Базові співвідношення вже можна назвати швидким перетворенням Фур'є (ШПФ), тому що число операцій зменшилося. Число множень матеріальних відліків сигналу на комплексне ядро дорівнює .
Процес розбиття за схемою базових співвідношень можна продовжувати до тих пір, доки не прийдемо до перетворень Фур'є одиничних відліків (що збігаються із самими відліками). Необхідне число операцій при цьому буде значно менше. У такому вигляді це ШПФ називають ШПФ із проріджуванням за часом.
Для пояснення процесу розбиття розглянемо більш детально, приклад ШПФ при N = 23 = 8.
Позначимо оператор ДПФ визначених вхідних відліків через F і запишемо відповідності між символами ДПФ, введеними вище, і цим оператором.
Зв'язок між ДПФ із великим і меншим числом точок відповідно до базових співвідношень записується в такий спосіб:
Роботу ШПФ можна пояснити графічно, якщо базові співвідношення, записані в дуже короткій формі,або зобразити графом
/ /
Верхній стрілці відповідає додавання, а нижній - віднімання. Попередньо bm-1домножається на множник повороту WN.
Використовуючи вищенаведене і розташовуючи символи ДПФ у впорядкованому вигляді, зобразимо ШПФ геометрично за допомогою графа на рис. 1.1.
/
Рис.2.1. Граф ШПФ із проріджуванням за часом за основою 2 при N=8
Відзначимо, що відліки вхідної послідовності переходять у відповідні ДПФ нульового рівня відповідно до інверсії їхній двійкових номерів (операція називається перестановкою вхідних відліків). Наприклад, десятковий номер 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.
2.4 Алгоритм перетворення.
Алгоритм ШПФ можна скласти, спираючи на граф ШПФ при N=8. Зауважимо, що ДПФ з однаковим числом точок на графі розташовані у вигляді стовпців. Пронумеруємо ДПФ у кожнім стовпці цифрами від 0 до 7 (від 0 до N-1 у загальному випадку) зверху вниз. Вихідні значення ДПФ - комплексні числа, які можна зберігати у деякому масиві. Перехід відповідно до базових співвідношень від ДПФ попереднього стовпця до ДПФ із подвоєним числом точок наступного стовпця назвемо кроком перетворення. З огляду на послідовний характер кроків перетворення, вихідні значення ДПФ кожного стовпця можна зберігати в тому самому масиві (це повинен бути масив комплексних чисел). Остаточно масив буде містити результуючі значення ШПФ.
Графи базових співвідношень на кожному кроці візуально групуються. Групи складаються з окремих графів чи декількох графів, що перетинаються між собою. У прикладі на першому кроці графа є 4 групи, у другому – 2 і на третьому - 1.
Введемо позначення:
- число відліків сигналу, що обробляється, чи число точок перетворення;
v - число кроків перетворення;
step - номер кроку, step = 0,..., v - 1;
group - номер групи графів, group = 0, ..., (group_max - 1), де group_max - число груп (залежить від номера кроку);
іnput - номер ДПФ, вихід якого з'єднаний з верхнім входом графа базового співвідношення;
іnput+add - номер ДПФ, вихід якого з'єднаний з нижнім входом цього графа;
add - різниця відповідних номерів;
pow - ступінь множника повороту (у тексті pow відповідає показнику k в ) .
Для приведеного графа побудована таблиця, у якій для кожного кроку перетворення занесені індекси і їхні межі зміни, що використані в циклах програми. Нижче приведений алгоритм програми. Його особливість - результат виходить у масиві вхідних даних. Алгоритм побудований для випадку комплексних вхідних даних, як більш загальний випадок.
2.5 Алгоритм ШПФ із проріджуванням за часом.
Вхідні дані в алгоритмі:
Х(k), k = 0,..., N -1 - масив комплексних вхідних і вихідних даних.
Для k = 0,..., N -1 встановити:
/
Встановити: /
1. Перестановка елементів масиву Х(k).
2. Якщо step = v, перейти до кроку 9.
3. group←0.
4. Якщо group = group_max: step←step+1, add←add * 2,
group_max←group_max/2, перейти до кроку 2.
5. іnput ← group 2step +1.
6. Якщо іnput = group 2step+1+2step: group←group+1, перейти до кроку 4.
7. [Базова операція]
pow←group_max *<input>2step+1,
t← X(іnput + add) * W(pow +1),
X(іnput+add) ←X(іnput) - t,
X(іnput) ←X(іnput) + t.
8. input←input+1, перейти до кроку 6.
9. Завершення.
3.Розрахунковий розділ
Згідно із документацією на даний тип процесора, частота роботи процесора: f = 400МГц, звідси цикл виконання команди:
.
Для подальших обчислень введемо наступні позначення:
base – основа базової операції «метелик»;
N – кількість точок вхідного перетворення;
Згідно із варіантом завдання: base=2;N=512;
/
– кількість етапів перетворення;
– кількість базових операцій «метелик» на одному етапі;
– кількість базових операцій у всьому перетворенні;
Для виконання базової операції «метелик» необхідно:
6 операцій множення;
4 операції додавання;
8 операцій читання з пам’яті:
- 2*2=4 (для читання дійсної та уявної частини вхідних відліків);
- 2*2=4 (для читання дійсної та уявної частини комплексного коефіцієнту);
4 операції запису:
- 2*2=4 (для запису дійсної та уявної частини вхідних відліків);
В результаті на одну базову операцію припадає 22 операцій:
Nна 1 мет= 8+4+6+4 = 22 (оп)
Тривалість виконання обчислення ШПФ:
Тривалість надходження даних у процесор для обробки визначаємо із особливостей інтерфейсу зовнішня пам'ять. Оскільки це пам'ять, то вона працює в такт роботи процесора.
Ця величина менша за заданий час обробки: , тобто для виконання обчислення достатньо одного процесора.
Заданий час обробки становить 1мс з них 0.281 процесорне виконання коду, залишок 0,719мс це завантаження і запис результатів, тобто система кожну1мс братиме нові вхідні дані для обробки
Згідно варіанту розрядність вхідних даних 16. Тому дійсна і уявна частини вхідних даних та повертаючих коефіцієнтів є розміром 8 розрядів, ми будемо використовувати старший та молодший байт, що усуває проблему переповнення розрядної сітки при виконанні операцій множення. Дані в пам’яті розміщуються наступним чином:
Спосіб розміщення даних у пам’яті показано на рис. 3.1
/
Рис.3.1. Розміщення даних в пам’яті.
Об’єм пам’яті даних, який потрібно для обчислення ШПФ дорівнює VП = 512 * 16 = 8192 біт (оскільки для кожного з 512 відліків, обчислюється дійсна та уявна частина з розрядністю 16 біт). Об’єм пам’яті дорівнює VП = 1КБ = 8192 біт. На рис.2.3 наведено карту пам’яті для збереження даних.
Внутрішньої пам’яті є достатньо (148Кб) для збереження дійсної та уявної частини проміжних даних.
Використовуємо завантажувальну пам`ять, де буде зберігатися програма.
3.1.Розробка алгоритму виконання
На рис. 3.1 представлено обчислення ШПФ з використанням алгоритму з прорідженням за часом з кількістю точок 512. Цей метод потребує, щоб алгоритм реверсії був застосований до адрес вхідних відліків x(n).
На першому етапі алгоритму переводимо відліки вхідної послідовності у відповідні ДПФ нульового рівня відповідно до інверсії їхніх двійкових номерів.
Відліки
Вхідна послідовність
Біт-інверсія
0
00000000000000
00000000000000
1
00000000000001
10000000000000
…
…
…
511
01111111111111
11111111111110
512
10000000000000
00000000000001
Рис. 3.2 Граф алгоритму ШПФ
ШПФ відбувається за 9 кроків згідно з формулою v = logrN (log2512 = 9), де r – основа ШПФ, а N – розрядність ШПФ.
Отже на другому етапі алгоритму виконуються 9 двохточкові ШПФ від елементів кожного стовпця. Потім проводяться повороти, причому показники експонент повертаючих множників вказані перед позначенням елементів пам’яті другого етапу. Потім обидва рядки проріджуються шляхом формування з них матриць розміром (2 X 2) і перетворяться по схемі 4-точкового ШПФ з основою 2, вже з іншими повертаючими множниками. Отже всього виконується 9 таких етапів перетворень.
Рис.3.1. Блок-схема алгоритму 8192-точкового перетворення за основою 2
4.Розробка функціональної схеми
Система складається з процесора, памяті завантаження, ОЗП, і пристрою керування, а також з 2-х буферів, які служать для тимчасового збереження даних. Пристрій керування керує роботою системи, за допомогою керуючих сигналів, переривання, і прапорця який встановлює процесор після виконання роботи.
4.1. Вибір мікропроцесора
Згідно варіанту завдання було вибрано процесор ADSP-BF532, тактова частота роботи якого – 400МГц і відповідна тривалість такту – 2.5нс. На вхід мікропроцесора надходять сигнали які описані вище, і до них написано пояснення
Інші сигнали або не задіяні, або їх використання не розглядається у данному курсовому проекті. Наприклад, канали прямого доступу до пам`яті DMA, i2c….
4.2. Пам’ять завантаження
Це пам’ять типу EPROM, тобто стирання старої інформації та запис нової є можливим, але лише в результаті спеціального процесу, для здійснення якого запам`ятовуючий пристрій виводиться з робочого режиму (читання даних) та проводиться репрограмування (стирання відбувається за допомогою ультрафіолет-тових променів).
В даному проекті цей блок пам`яті використовується для зберігання програми обчислення алгоритму ШПФ.
Дана пам’ять призначена для зберігання програми роботи мікропроцесора.
Після ввімкнення живлення чи програмному скиді (встановлення у початковий стан) програма автоматично завантажується до внутрішньої пам’яті. Цей процес називається початковим завантаженням.
При EPROM-завантаженні (EBOOT=1) сигнал BMS використовується як вихідний і з’єднуючись з ЕВООТ, утворює сигнал вибору кристалу.
4.3. Розробка керуючого пристрою
Призначення даного вузла – арбітраж доступу до зовнішнього ОЗП між обчислювальним процесором та давачем сигналу.
Сигнали, що надходять на керуючий пристрій:
CLK – сигнал синхронізації з давача;
RESET – глобальний сигнал апаратного скиду;
STRD – строб даних, що надходить з давача;
ADDRI – шина адреси з обчислювального процесору;
RD – строб читання зовнішньої пам`яті, надходить з процесору;
MS0 – вибір кристалу зовнішньої пам`яті, надходить з процесору;
Сигнали, що виходять з керуючого пристрою:
OE– дозвіл видачі даних з мікросхеми зовнішньої пам`яті;
WE– дозвіл запису до мікросхеми зовнішньої пам`яті;
CS – вибір кристалу зовнішньої пам`яті;
ADDRO – шина адреси, що скеровується на мікросхему зовнішньої пам`яті;
INT – сигнал маскованого переривання;
Регістр стану зберігає значення сигналів OE, WE, CS. Вихід WE можна використати як сигнали дозволу у буферній розв`язці для шини даних, оскільки сигнали WE та OE взаємовиключаючі і суперечать один одному. Сигнал OE можна також використати як сигнал ACK, що надходить на процесор і є підтвердженням доступу до зовнішньої пам`яті зовнішнім пристроєм.
Сигнал
Стан очікування
Запис в ОЗП
Читання з ОЗП
RD
x
X
0
MS0
x
x
0
STRD
0
1
0
OE
1
1
0
WE
1
0
1
CS
1
0
0
RD
0
0
1
WR
0
1
0
ADDRO
Z
ADDR
ADDRI
Дані надходять із сенсора 16-розрядними і по черзі записуються у зовнішнє ОЗП.
Основні режими роботи пристрою керування:
- формування сигналів керування буфером;
- формування адреси комірок пам’яті, куди потрібно записати дані;
- формування сигналу запису в пам’ять;
- формування сигналу переривання.
Сигнал INT формується лічильником при досягненні межі лічби і направляється на процесор, де обробляється програмою обробки переривань. Лічильник сам скидає сигнал переривання на початку нового циклу лічби. Лічильник сам скидається у початковий стан при надходження стробу даних, а також при подачі апаратного скиду.
Система працює таким чином: На пристрій керування подається адреса і дані подаються в буфер, за заданою адресою пристрій керування записує дані з буфера в пам'ять. Пристрій керування робить переривання на процесор, яке сигналізує що дані готові для зчитування. Процесор зчитує дані і проводить обробку(ШПФ). Виконавши всі необхідні дії процесор виставляє прапорець, щоб пристрій керування записав дані в буфер. Пристрій керування отримує сигнал що процесор вільний, відкриває 2 буфери. В один поступає наступна порція даних для обробки, а з іншого дані записуються в пам'ять.
5. Розробка програми виконання заданої функції (алгоритму)
Загальний порядок виконання програми, що виконує обчислення за алгоритмом ШПФ, можна розділити на такі етапи:
Здійснюємо попередню підготовку – проводимо бітову реверсію елементів вхідних даних
Цикл по епатах перетворення
Цикл по метеликах, тут важливу роль відіграє адресування метелика, адже його функція однакова незалежно до етапу перетворення і номера метелика.
Виконуємо збереження результатів
Текст програми ШПФ поданий у додатку.
Рис.4.1 Алгоритм виконанняпрограми
Висновки
Під час виконання курсового проекту було розглянуто приклад реалізації обчислювальної системи, в основі якої лежить алгоритм швидкого перетворення Фур’є за основою 2. Дана система обробляє вхідний сигнал, що є 16-розрядним (8+8).Оскількизаданий процесор має багату архітектуру, точніше вся система на кристалі, де є 4 мегабіти пам’яті. Виходячи з таких ресурсів нам навіть не треба було підєднувати зовнішню пам'ять. Але на схемі я намалював спосіб підключення зовнішньої пам’яті до процесора
В результаті виконання проекту набуто досвід у проектуванні обчислювальної системи, розглянуто основні компоненти, з яких вона складається, засвоєно поширені алгоритми цифрової обробки сигналів, на основі яких виконується обчислення.
Література
Рабинер Л., Гоулд Б. Теория и применениецифровойобработкисигналов /Пер. с англ. А.Л.Зайцева, Э.Г.Назаренко, Н.Н.Тетекина; Под ред. Ю.Н.Александрова. - М.:Мир, 1978. - 848 с.
Куприянов М. С., Матюшкин Б. Д. Цифроваяобработкасигналов: процессоры, алгоритмы, средствапроектирования. – Спб. : Политехника, 1998.
Марков С. Цифровыесигнальныепроцессоры. Книга 1, М.:фирма МИКРОАРТ, 1996-144 с.
Цифровойпроцессоробработкисигналов TMS32010 и егоприменение/Под ред. А.А.Ланнэ.-Л.:ВАС,1990.-296 с.
http://www.analog.com.
Мельник А.А. Проектирование поточного процессора БПФ на специализированных БИС.- Львов, 1990.- 43с.
Применениецифровойобработкисигналов/ Под ред. Э.Оппенгейма.- М. Мир, 1980.- 552с.
Сверхбольшиеинтегральныесхемы и современнаяобработкасигналов: Пер. с англ.- М.: Радио и связь, 1989.- 472с.
Бондарев В.Н., Трестер Г., Чернега В.С. Цифроваяобработкасигналов: методы и средства. Учебноепособие для вузов. 2-е изд. – Х.: Конус, 2001.- 398 с.
Цифроваяобработкасигналов/ А.Б.Сергиенко – СПб.:Питер, 2002.-608с.
Шрюфер Е. Обробка сигналів. Цифрова обробка дискретизованихсигналів.- К.: Либідь, 1992.- 226с.
Яцимірський М. М. Швидкі алгоритми ортогональних тригонометричних перетворень. - Львів: Академічний Експрес, 1997. - 219 с.
Додатки
Додаток А. Опис виводів.
На таблиці поданій нище описані виходи з мікропроцесора.
Інтерфейс памяті
ADDR19–1
DATA15–0
ABE1–0/SDQM1–0
BR
BG
BGH
O I/O O
I O O
Шина адрес для синхронно/асинхронного доступу
Шина даних для синхронно/асинхронного доступу
Байт доступ/дані для синхронно/асинхронного доступу
Запит шини (1 якшо не використовувати)
Шина доступна
Шина доступна простоює
Асинхронний контроль пам’яті AMS3–0
ARDY
AOE
ARE
AWE
O
I O OO
Вибір кристалу
Апаратна готовність (1 якщо не використовуємо)
Дозвіл виходу даних
Дозвіл читання даних
Дозвіл запису даних
синхронний контроль пам’яті SRAS
SCAS
SWE
SCKE
CLKOUT
SA10
SMS
O OOOOOO
Готова адресна лінія
Готова адресна колонка
Дозвіл запису
Дозвіл синхронізації
Вихід тактового імпульсу
A10 ніжок
Вибір кристалу
Тактові імпульси
RTXI
RTXO
I
O
RTC вхід на кристал (0 якщо не використати)
RTC вихід тактування з кристалу
таймер
CLKIN
XTAL
I O
Вхід таймера на кристал
Вихід таймера з кристалу
Режими контролю RESET
NMI
BMODE1–0
I
I
I
Перевантаження (весь час активне)
Дозвіл немаскованих переривань (0 якшо не використати)
Режим завантаження
Регулятор напруги VROUT1–0
O
Зовнішній FET пристрій
Supplies
VDDEXT
VDDINT
VDDRTC
GND
P PP G
I/O вхід напруги
Вхід напруги на ядро
Вхід живлення на таймер реального часу
Зовнішня земля
Таблиця: опис виводів
Додаток Б. Схема електрична функціональна
Додаток В. Лістинг програми виконання ШПФ за основою 2
.
//-------------------------------------
// name: FFT, baterfly=2, time
// data: 20/06/2008
// create: Breskyl
//-------------------------------------
#include <iostream>
#include <fstream>
#include <math.h>
#include <iomanip>
using namespace std;
#define pi 3.141592653
#define N 16384
double x[N]; // input array
double temp[N]; // array after transformation
double re[N];
double im[N];
double W_re[N];
double W_im[N];
//-----------transform addres in array-----------------------------------
int wrap(int x)
{
int i,t,temp;
int arr[128];
for(t=0,i=1;i<N;t++)
i=i*2;
for (i=0,temp=x;i<t;i++)
{
arr[t-i-1]=temp%2;
temp=temp/2;
};
for (i=0,temp=0;i<t;i++)
temp=temp+arr[i]*int(pow(2.0,i));
return temp;
}
//-----------generate input array------------------------------------------
void gener_input_data(void)
{
int i,j;
for(i=0;i<N;i++)
{
x[i]=0;
for(j=0;j<N/2;j++)
x[i]=x[i] + (cos(2.0*pi*i*j/N));
x[i]=x[i]*(2.0/N);
};
};
//------------------------------------------------------------------------
int find_V(void)
{
int i=1;
int t;
for(t=0;i<N;t++)
i=i*2;
return t;
};
//------------------------------------------------------------------------
void fun_W(void)
{