МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ
НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ „ЛЬВІВСЬКА ПОЛІТЕХНІКА”
Кафедра ЕОМ
Курсовий проект
з курсу «Проектування комп’ютерних засобів обробки сигналів і зображень»
на тему
«Розробка процесора ШПФ»
Завдання до курсового проекту
Розробити процесор ШПФ з такими вхідними даними:
Розрядність, N
4096
Основа
2
Тип прорідження
F (частотне)
Вагова функція
Трикутне
, 0 ( (n( ( N/2
Час обробки, мс
2,5
Розрядність вхідних даних, біт (Re + Im)
32 (16 + 16)
Тип вхідного інтерфейсу, пристрою, часові параметри
Зовнішня пам'ять
Тип вихідного інтерфейсу, пристрою
Link-port
Тип процесора
ADSP-TS101S
Анотація
В даному курсовому проекті розглянуто реалізацію алгоритму ШПФ за основою 2 на процесорі ADSP-TS101S для 32-розрядних вхідних даних з частотним прорідженням, описано механізми обчислення швидкого перетворення Фур’є за заданою основою, характеристики процесора, розраховано основні параметри створеної системи, створена функціональна схема системи та написана програма, що реалізує вказаний алгоритм ШПФ.
Зміст
Вступ……………………………………………………………………..………….….5
Теоретичний розділ………………………………..…………...…..........…….…6
. Опис алгоритму ШПФ основа 2 з прорідженням по частоті….………...…6
. Вплив вагової функції на вхідний сигнал………………………………….11
.Характеристика процесора ADSP-TS101S ..…………..…...……..……….15
Розробка граф-схеми алгоритму ШПФ ………………………………………….18
Розрахунковий розділ………………………….……………………...…………..21
. Розрахунок часу виконання…………………….……………………………21
. Розрахунок об’єму пам’яті…..………………………...…………………….23
Розробка функціональної схеми………………………………………………….24
Розробка програми виконання заданої функції (алгоритму).……......................28
Висновки……………………………………………………………………………….29
Список використаної літератури…………………………………..…………………30
Додатки………………………………………………………………………………...31
Вступ
При обробці сигналів різної природи перетворення Фур'є звичайно розглядається як трансформація сигналу з часової області в частотну.
Дискретне перетворення Фур'є (ДПФ) грає важливу роль при аналізі, синтезі та розробці систем та алгоритмів цифрової обробки сигналів. Одна з причин того, що аналіз Фур'є грає таку важливу роль в цифровій обрабці сигналів, полягає в існуванні ефективних алгоритмів дискретного перетворення Фур'є. Ці перетворення зворотні, при чому зворотнє перетворення має практично таку ж саму форму, що й пряме перетворення.
Швидке перетворення Фур'є (швидкий спосіб обчислення ДПФ) застосовується в багатьох галузях: радіолокації, стисненні відео та зображень, геології. Багато з цих задач вимагають виконання перетворень в реальному часі, з мінімальною часовою затримкою обчислень. На практиці широке поширення одержали алгоритми ШПФ за основою 2, де кожен функціональний вузол виконує базову операцію ‒ двовходового «метелика». Ці алгоритми орієнтовані, насамперед, на зведення до мінімуму числа операцій множення.
Послідовність обчислень будь-якого ШПФ можна описати у виді графа, вузли якого виконують фактично звичайне дискретне перетворення, але з меншою розмірністю вхідних векторів (меншою основою). У залежності від вибору основи міняється як загальне число арифметичних операцій, так і кількість ярусів графа.
1. Теоретичний розділ
1.1. Опис алгоритму ШПФ основа 2 з прорідженням по частоті
Швидке перетворення Фур'є є не більш ніж алгоритмом для прискореного обчислення ДПФ шляхом скорочення необхідного числа операцій множення і додавання. Дане перетворення було запропоновано Кулі і Тюкі (J.W.Cooley і J.W.Tukey) у 1960-х роках і фактично було відкриттям заново ідеї Рунге, Даніельсона і Ланкоса (Runge (1903), Danielson і Lanczos (1942)). Перше згадування даної ідеї зустрічається ще задовго до появи комп'ютерів і калькуляторів, коли чисельні обчислення могли займати багато годин. Крім того, більш ніж сторіччям раніш даний метод використовував німецький математик Карл Фрідріх Гаусс (1777 - 1855).
Для розуміння основних концепцій ШПФ і його походження, корисно звернути увагу, що ДПФ, може бути сильно спрощено, якщо використовувати властивості симетрії і періодичності коефіцієнтів повороту. Швидке перетворення Фур'є вимагає тільки (N/2)log2(N) множень комплексних чисел. Обчислювальна ефективність ШПФ у порівнянні з ДПФ стає досить істотною, коли кількість точок ШПФ збільшується до декількох тисяч. Очевидно, що ШПФ обчислює усі компоненти вихідного спектра. Обчислення одного вихідного відліку спектра з використанням ДПФ вимагає тільки N множень з комплексними числами.
Дискретний сигнал у вигляді часової послідовності x(nТ) запишемо як x(nТ), де – кількість відліків, T – період дискретизації.
N - точкове дискретне перетворення Фур'є (ДПФ) задається формулою:
де X(k) - частотний k-ий відлік чи k-а спектральна складова сигналу (визначає вихідну частотну послідовність, спектр сигналу),
Кількість множень дійсних відліків сигналу на комплексне ядро в (1) дорівнює N2, а кількість додавань комплексних чисел - (N -1)N. Кількість цих операцій різко зростає із збільшенням N і приводить до занадто великого часу перетворення.
ДПФ стало широко застосовуватися після винаходу швидких алгоритмів, в основі яких лежить принцип зведення багатоточкового перетворення до малоточкового. Один з них (що став уже класичним) називається ШПФ із проріджуванням по частоті. Цей алгоритм отриманий за умови, якщо N є степенем числа 2, тобто , де ν - ціле число, ν≥0.
Основна ідея ШПФ з прорідженням за частотою полягає в поетапному обчисленні N-точкового ДПФ на ν етапах, на кожному з яких ДПФ визначається через ДПФ вдвічі більшої розмірності (рис 1.1.1.).
Структура алгоритму ШПФ з прорідженням за частотою :
Початкові умови :
N-точкова послідовність не проріджується , зберігається звичний порядок слідування відліків n=0,1, … ,N-1;
На першому етапі визначаються N/2-точкові ДПФ N/2-точкових послідовностей (двох половин вхідної послідовності);
На другому етапі визначаються N/4-точкові ДПФ як комбінація N/2-точкових ДПФ;
● ● ●
На і-тому етапі визначаються 2і-1-точкові ДПФ як комбінація 2і-точкових ДПФ;
● ● ●
На ν-тому (останньому ) етапі визначаються 2-точкові ДПФ як комбінація 4-точкових ДПФ. Послідовність із N/2 2-точкових ДПФ являє собою шукане N-точкове ДПФ. Відліки слідують в біт-інверсному порядку двійкових номерів.
Для реалізації даного алгоритму треба знати загальну формулу розрахунку ДПФ на будь-якому і-му етапі так звану базову операцію "метелик". Структура її подана на рис 1.1.2. Звідси загальна формула розрахунку ДПФ для і-го етапу має вигляд :
де і – номер етапу ;
m – номер ДПФ;
k – номер відліку ДПФ;
М – кількість ДПФ (М = 2ν-і) ;
L – розмірність ДПФ (L = 2i) ;
Хm і(k) – L-точкове ДПФ;
Х2m і-1(k), Х2m+1 і-1(k) – парне і непарне L/2-точкове ДПФ відповідно.
Таким чином ця формула описує алгортм швидкого обчислення ДПФ (алгортм ШПФ з прорідженням по частоті ) – ν-етапну процедуру типу «цикл в циклі», де:
Зовнішній цикл організовується по змінній і : і=ν, (ν-1), … , 1;
Перший внутрішній цикл (при фіксованому і) – по змінній m: m=0,1,…,М-1;
Другий внутрішній цикл (при фіксованому і та m) – по змінній k:
k=0,1, … ,(L/2-1). В циклі обчислюється k-й відлік L/2-точкового ДПФ по вище згаданій формулі.
Розмірність ДПФ Етап і
ДПФN
Рис 1.1.1. Ідея алгоритму ШПФ з прорідженням по частоті
Рис 1.1.2. Направлений граф базової операції ШПФ з прорідженням по частоті («метелик»)
Наведомо у вигляді графа алгоритм ШПФ за основою 2 з прорідженням по частоті для 8-точок (рис 1.1.3.)
Рис 1.1.3. Направлений граф алгоритму ШПФ за основою два з частотним прорідженням для N=8
На першому етапі вихідний сигнал ділиться на 2 половини . Далі обчислюються:
Тоді якщо виконати ДПФ , то отримаємо парні відліки спектра, а якщо ДПФ ‒ то непарні відліки спектру. Таким чином одне ДПФ тривалості N = 8 замінили двома ДПФ тривалості N/2 = 4. Для обчислення кожної з ДПФ половинної тривалості знову застосуємо прорідження по частоті. В результаті отримаємо:
В результаті отримали 4 ДПФ по 2 точки кожне, які також можна виконати за допомогою графа «метелика». На виході отримаємо спектральні відліки, які будуть переставлені. На першому рівні перетворення виходили парні і непарні відліки спектра, на другому рівні парні і непарні відліки ділилися знову на парні і непарні. В результаті для розстановки спектральних відліків на місця необхідно застосувати двійково-інверсну перестановку.
Розглянемо двійкове представлення номерів елементів і займаних ними місць при реверсивній перестановці біт. Елемент з номером 0 (двійкове 000) після всіх перестановок займає позицію 0 (000), елемент 6 (110) - позицію 3 (011), елемент 4 (100) - позицію 2 (010) і тд. Неважко помітити зв'язок між двійковим представленням позиції до перестановок і після всіх перестановок: вони дзеркально симетричні. Двійкове представлення кінцевої позиції виходить із двійкового представлення початкової позиції перестановкою бітів у зворотному порядку і навпаки.
1.2. Вплив вагової функції на вхідний сигнал
Для пояснення впливу вагової функції нижче буде розглянуто дві ситуації. У першому випадку співвідношення між частотою дискретизації та частотою вхідного синусоїдального сигналу таке, що в вибірці міститься в точності ціле число періодів синусоїдального сигналу (обчислення ДПФ припускає, що вибірка повторюється нескінчене число раз до і після досліджуваного фрагмента сигналу, формуючи таким способом нескінченний безперервний періодичний сигнал, як показано на рис. 1.2.1). При таких умовах форма вхідного сигналу являє собою безперервну синусоїдальну функцію, і на виході ДПФ або БПФ буде один ненульовий частотний відлік, відповідний частоті вхідного сигналу.
Рис .1.2.1 Сигнал з цілим числом періодів у вибірці
Рисунок нижче (1.2.2) відображає ситуацію, коли у вибірці немає цілого числа періодів синусоїдального сигналу. Розриви, які утворюються в кінцевих точках вибірки, призводять до розширенню спектра аналізованого сигналу внаслідок появи додаткових гармонік. На додаток до появи бічних пелюсток, відбувається розширення основного пелюстки, що призводить до зниження роздільної здатності по частоті. Цей процес еквівалентний перемножування вхідного синусоїдального сигналу з прямокутним імпульсом, який має відому частотну характеристику sin(x)/x та пов'язані з цим широкий основний пелюстка і бічні пелюстки.
Рис .1.2.2 Сигнал з нецілим числом періодів у вибірці
Зверніть увагу, що перший бічний пелюсток тільки на 12 дБ нижче основного, і що бічні пелюстки мають спад лише 6 дБ / октаву. Така ситуація неприйнятна для більшості завдань аналізу спектра. Оскільки в практичних додатках ДПФ для спектрального аналізу точні вхідні частоти невідомі, слід зробити певні кроки до зменшення бічних пелюсток. Це досягається вибором віконної функції з більш складною формою, ніж прямокутна. Вхідні відліки за часом множаться на відповідну функцію вікна, що тягне за собою обнулення сигналу на краях вибірки, як показано на рис.1.2.3. Вибір функції вікна є, передусім, компромісом між збільшенням ширини основного пелюстка і розміром бічних пелюсток.
Рис. 1.2.3 Вигляд сигналу після використання вагової функції
Математичні функції, що описують чотири популярні віконні функції (Хеммінга, Блекман, Хеннінга, Коші), представлені нижче:
Трикутне: , 0 ( (n( ( N/2
Оцифровані віконні функції зазвичай обчислюються попередньо і зберігаються в пам'яті DSP з метою мінімізації обчислень безпосередньо при реалізації ШПФ.
1.3. Характеристики процесора ADSP-TS101S
Складові процесора ADSP-TS101S.
Статична суперскалярна архітектура , підтримуюча обробку 1-/8-/16-/32-разрядних даних в форматі з фіксованою комою , а також даних в форматі з плаваючою комою.
Високопродуктивне ядро цифрової обробки сигналів з тактовою частотою 300 МГц , тривалість командного циклу 3,3 нс.
Три слота внутрішньої статичної оперативної пам'яті ( SRAM ) загальним обсягом 6 Мбіт з конфігурованим користувачем поділом на сегменти
14 -канальний контролер прямого доступу до пам'яті ( DMA) з нульовими непродуктивними витратами.
Розширений набір спеціалізованих команд для бездротового зв'язку дозволяє реалізувати на базі процесора TigerSHARC повнофункціональне рішення для обробки сигналів в смузі модуліруючої частоти.
Три внутрішніх 128 - розрядних шини забезпечують сукупну пропускну здатність при зверненнях до пам'яті 14.4 Гбайт в секунду.
Принцип побудови програмно визначаються радіосистем дозволяє адаптувати єдину платформу під різні стандарти бездротового зв'язку.
Два обчислювальних блоки , що підтримують режим SIMD (одна команда - багато даних , в одній команді з кількома даними) , кожен з яких включає в себе АЛП , помножувач , пристрій зсуву та регістровий файл на 32 слова.
Доступне програмування на мовах C і асемблера.
ADSP - TS101S - це перший представник сімейства процесорів TigerSHARC . Він призначений для різноманітних задач обробки сигналів , де потрібна спільна робота декількох процесорів для виконання функцій з великим обсягом обчислень в режимі реального часу , Цей процесор сімейства TigerSHARC компанії Analog Devices добре підходить для відеосистем і обладнання зв'язку , включаючи базові станції стільникового зв'язку стандарту 3G і широкосмугової бездротового зв'язку , а також оборонної техніки , медичних приладів візуальної діагностики і промислових вимірювальних приладів. Процесор ADSP - TS101S заснований на статичній суперскалярной архітектурі , яка поєднує в собі функції архітектур RISC , VLIW і стандартних цифрових сигнальних процесорів. Апаратна підтримка типів даних з фіксованою і плаваючою крапкою в комбінації з передовими можливостями мультипроцессорной обробки дозволяє процесору TigerSHARC забезпечувати неперевершену продуктивність в операціях цифрової обробки сигналів. При роботі з тактовою частотою 300 МГц процесор ADSP - TS101S забезпечує найвищу в галузі продуктивність в операціях над 16 - розрядними числами в форматі з фіксованою точкою і обчислює ШПФ масиву з 1024 32 - розрядних комплексних чисел з плаваючою точкою за 32,5 мікросекунди .
Периферія:
Зовнішня пам'ять: це комп'ютерна пам'ять, що реалізована у вигляді зовнішніх, відносно материнської плати, пристроїв із різними принципами збереження інформації і типами носія, призначених для довготривалого зберігання інформації. Зокрема, в зовнішній пам'яті зберігається все програмне забезпечення комп'ютера. Пристрої зовнішньої пам'яті можуть розміщуватись як в системному блоці комп'ютера так і в окремих корпусах. Фізично зовнішня пам'ять реалізована у вигляді накопичувачів.
Link Port. Даний інтерфейс містить порт приймача і порт передавача. Передавач організований, як 4-х розрядна шина даних, тактовий сигнал, вихідний службовий сигнал (індикатор завершення передачі даних) і вхідний службовий сигнал (сигнал від приймача, про готовність прийому даних). Приймач має всі ті ж сигнали що і передавач. Даний інтерфейс підтримує стандарти LVDS ANSI/TIA/EIA-644 (де опорний рівень порядку 1,25 V, диференціальна напруга 350mV).
Структурная схема процессора ADSP-TS201S
2.Розробка граф-схеми алгоритму ШПФ
На рис. 2.1. наведена блок-схема роботи алгоритму 4096 точкового ШПФ.
Рис. 2.1. Блок-схема алгоритму 4096 точкового ШПФ 2f
Таблиця 2.1. Біт-інверсне перетворення
Номер
Двійкове представлення
Двійкова інверсія
0
0000
0000
1
0001
1000
2
0010
0100
3
0011
1100
4
0100
0010
5
0101
1010
6
0110
0110
7
0111
1110
8
1000
0001
9
1001
1001
10
1010
0101
11
1011
1101
…
…
…
4093
111111111101
101111111111
4094
111111111110
011111111111
4095
111111111111
111111111111
Рис. 2.2. Граф-схема алгоритму ШПФ 2f
3.Розрахунковий розділ
3.1. Розрахунок часу виконання
Для розрахунку часу виконання алгоритму ШПФ на процесорі ADSP-TS101S потрібно визначити кількість операцій додавання, множення та читання/запису з/до пам’яті однієї операції «метелик». На рис. 3.1.1. наведено базову операцію «метелик» ШПФ за основою 2 з прорідженням по частоті.
Рис. 3.1.1. Метелик ШПФ за основою 2 з прорідженням по частоті
Формули обчислення метелика:
X’1 = X1 + X2
X’2 = (X1 – X2)*W
Розклад формул для обчислення метелика на дійсну та уявну частину:
X1 = A1 + jA2
X2 = B1 + jB2
W=W1 + jW2
W = e-j() = cos () – j sin ()
X’1 = A1 + jA2 + B1 + jB2 = A1 + B1 + j(A2 + B2)
X’2 = (A1 + jA2 – B1 – jB2)*(W1 + jW2) = A1W1 + jA1W2 + jA2W1 – A2W2 –
– B1W1 – jB1W2 – jB2W1 + B2W2 = A1W1 – A2W2 – B1W1 + B2W2 +
+ j(A1W2 + A2W1 – B1W2 – B2W1)
Re(X’1) = A1 + B1
Im (X’1) = A2 + B2
Re(X’2) = A1W1 – A2W2 – B1W1 + B2W2 = W1(A1 – B1) – W2(A2 – B2)
Im(X’2) = A1W2 + A2W1 – B1W2 – B2W1 = W2(A1 – B1) + W1(A2 – B2)
Операції:
Додавання – 6
Множення – 4
Читання з пам'яті – 6
Запис в пам’ять – 4
к-сть операцій = 20
Nметел. на 1 ярус = N / r = 4096 / 2 = 2048
Nк-сть ярусів = logr N = log2 4096 = 12
Nметел. = Nметел. на 1 ярус ∙ Nк-сть ярусів = 4096 ∙ 12 = 49152
Тзаг = Твх + Твагове + Тшпф + Твих
Твх = V / u1, де
V – об’єм інформації;
u1 – пропускна здатність.
У вхідному інтефейсі зовнішня память пропускна спроможність 12 Мбіт/с.
V = N ∙ розрядність вх. даних = 4096 ∙ 16 = 65536 (біт)
u1 = 12 Мбіт/с
Твх = 65536 / (10 ∙ 106) = 0,1 (мс)
Твагове = N ∙ 2 ∙ t1 опер.
t1 опер. = 1 / f = 1 / 300 MГц = 3,3 (нс)
Твагове = 4096 ∙ 2 ∙ 3,3 ∙ 10-9 = 3 (мс)
Тшпф = Nметел. ∙ t1 метел.
t1 метел. = к-сть операцій * t1 опер. = 24 ∙ 3,3 ∙ 10-9 = 79 (нс)
Тшпф = 49152 ∙ 26 ∙ 10-9 =0.3 (мс)
У вихідному інтефейсі Link-port пропускна спроможність 12 Мбіт/с.
Твих = V / u2
u2 = 12 Мбіт/с.
Твих = 65536 / (12 ∙ 106) = 5.5 (мс)
Загальний час виконання алгоритму буде дорівнювати:
Тзаг = 0,1 ∙ 10-3 +0,3 ∙ 10-3 + 3∙ 10-3 + 79 ∙ 10-9 = 3,4 (мс)
Тзаг задовольняє умову завдання – 3,4 мс > 2,5 мс. Для виконання алгоритму достатньо одного процесора. Нижче наведена часова діаграма роботи системи.
Рис. 3.1.2. Часова діаграма роботи процесора
3.2. Розрахунок об’єму пам’яті
Для збереження вхідних даних уявної (Im) і дійсної (Re) частин потрібно ОЗП об`ємом: 4096 ∙ 2 × 2 × 8 = 131072 біт. Ці дані зберігатимуться в оперативній пам’яті (RAM). Об’єм пам’яті дорівнює VП = 131КБ(при присутній пам’яті 6 Мб). Отже під’єднувати зовнішню пам'ять цього типу не потрібно.
4.Розробка функціональної схеми
Функціональна схема процесора ШПФ складається з:
- мікропроцесор ADSP-TS101S;
- завантажувальна пам’ять;
- зовнішній ПЗП (ROM);
- зовнішній ОЗП (RAM;)
- керуючий пристрій;
Сигнали, які надходять на пристрій керування наступні:
Із зовні
- шина даних, яка надходить із зовні
- адресна шина, яка надходить із зовні
- сигнал запису даних в ОЗП із зовні
- сигнал скиду лічильника в початкове положення
З процесора обробки сигналів (ПОС):
- шина даних;
- адресна шина;
- сигнал читання даних з ОЗП до внутрішньої пам’яті ПОС;
- сигнал запису даних в ОЗП чи в регістр статусу керуючого пристрою з ПОС;
- сигнал вибору кристалу пам’яті;
- сигнал, який задає режим роботи керуючого пристрою.
Вихідними сигналами керуючого пристрою є наступні:
- шина даних, яка надходить на ОЗП;
- адресна шина, яка надходить на ОЗП;
- сигнал читання даних з ОЗП;
- сигнал запису даних в ОЗП;
- сигнал вибору кристалу;
- переривання, яке надходить на ПОС.
Режим роботи керуючого пристрою встановлює мікропроцесор шляхом запису необхідної інформації у регістр статусу.
Формування вихідних сигналів пристрою керування буде залежати від значень сигналів (задає напрямок передачі) та (вказує операцію : запис або читання). Далі наведені структурні схеми ля формування кожного з вихідних сигналів (шин).
Формування вихідної шини даних
рис 5. . Формування шини даних
Дана схема функціонує згідно з таблицею 4.
DD
RW
Напрямок
передачі
Режим роботи
х
0
Читання з ОЗП
0
1
Запис в ОЗП із МП
1
1
Запис в ОЗП із зовні
Формування вихідної шини адрес
рис6. . Формування шини адрес
Дана схема функціонує згідно з таблицею 6.
DD
RW
Напрямок
передачі
Режим роботи
х
0
Читання з ОЗП
0
1
Запис в ОЗП із МП
1
1
Запис в ОЗП із зовні
Формування сигналів , ,
рис.7. Формування сигналів , ,
Сигнал формується згідно із таблицею7.
DD
Режим роботи
0
Запис в ОЗП із МП
1
Запис в ОЗП із зовні
Сигнал → , а сигнал = &.
Формування сигналу
рис.8. Формування сигналу
Для формування сигналу використовується лічильник, який виконує лічбу до N (де N – це кількість точок ШПФ) і генерує переривання для мікропроцесора. Власне сигнал на переривання формується коли завершено запис даних в ОЗП із зовні, тоді ADSP змінює режим роботи пристою керування і починає читати інформацію з ОЗП у внутрішню пам’ять. Після завершення розпочинається обробка вхідної послідовності.
5.Розробка програми виконання заданої функції (алгоритму).
Загальний порядок виконання програми, що виконує обчислення за алгоритмом ШПФ, можна розділити на такі етапи:
♦ Здійснюємо попередню підготовку – проводимо бітову реверсію елементів вхідних даних ;
♦ Цикл по епатах перетворення;
♦ Цикл по метеликах, тут важливу роль відіграє адресування метелика, адже його функція однакова незалежно до етапу перетворення і номера метелика.
♦ Виконуємо збереження результатів
Текст програми ШПФ поданий у додатку.
Рис.5.1 Алгоритм виконання програми.Висновки
Під час виконання курсового проекту було розглянуто приклад реалізації обчислювальної системи, в основі якої лежить алгоритм швидкого перетворення Фур’є за основою 2 з частотним прорідженням, розроблено функціональну схему. Дана система обробляє вхідний сигнал, що є 14-розрядним. Вхідні і вихідні сигнали подаються на задані у варіанті периферійні вузли. Вхідні дані представляються 64-ма вхідними відліками, що містять дійсну та уявну частину.
У якості обчислювального процесора взято цифровий сигнальний мікропроцесор ADSP-BF538. Для реалізації заданого алгоритму використано один такий процесор. Це потужний обчислювальний вузол, що має у своєму складі різноманітну периферію, що полегшує обробку сигналів.
В результаті набуто досвід у проектуванні обчислювальної системи, розглянуто основні компоненти, з яких вона складається, засвоєно алгоритми, на основі яких виконується обчислення.
Список використаної літератури
Рабинер Л., Гоулд Б. Теория и применение цифровой обработки сигналов /Пер. с англ. А.Л.Зайцева, Э.Г.Назаренко, Н.Н.Тетекина; Под ред. Ю.Н.Александрова. - М.:Мир, 1978. - 848 с.
Цифровые фильтры и устройства обработи сигналов на интегральных микросхемах: Справочное пособие/Ф.Б.Высоцкий, В.И. Алексеев, В.П. Пачин и др.; Под ред. Б.Ф.Высоцкого.-М.: Радио и связь, 1984.-216с.
Куприянов М. С., Матюшкин Б. Д. Цифровая обработка сигналов: процессоры, алгоритмы, средства проектирования. – Спб. : Политехника, 1998.
Марков С. Цифровые сигнальные процессоры. Книга 1, М.:фирма МИКРОАРТ, 1996-144 с.
http://www.analog.com.
http://www.ti.com.
Бабак В.П., Хандецький А.І., Шрюфер Е. Обробка сигналів: підручник для вузів., К., Либідь, 1996.- 390с.
Применение цифровой обработки сигналов/ Под ред. Э.Оппенгейма.- М. Мир, 1980.- 552с.
Яцимірський М. М. Швидкі алгоритми ортогональних тригонометричних перетворень. - Львів: Академічний Експрес, 1997. - 219 с.
Додатки
Додаток А. Текст програми
файл tsinyk.m:
clc;
clear all;
y=wavread('riling.wav', [30001 30065]);
figure(1);
subplot(3,1,1), plot(y), title('Input signal');
r=2;
N=length(y);
n=-floor(N/2):floor(N/2)-1;
W=zeros(1, length(N));
for i=1:N
W(i)=1-power(abs(n(i)/(N/2)), 2);
y(i)=y(i)*W(i);
end
figure(1);
subplot(3,1,2), plot(W), title('Window function');
subplot(3,1,3), plot(y), title('Input signal after window function');
figure(2);
dpf=abs(fft(y));
subplot(2,1,1), plot(dpf), title('Library FFT');
neworder = zeros(1, length(N));
for z=1:1:log(N)/log(r)
for q=1:1:N/r
n=q+floor((q-1)/r^(log(N)/log(r)-z))*2^(log(N)/log(r)-z);
bb=2^z;
x(n)=(y(n)+y(n+N/(bb)));
x(n+N/(bb))=(y(n)-y(n+N/(bb)))*exp(-j*2*pi*n/2^(log(N)/log(r)+1-z));
end;
y=x;
end;
y=abs(y);
for nnn=0:1:N-1
neworder(nnn+1)=y(BIT_REV_radix2(nnn)+1);
end;
y=neworder;
figure(2);
subplot(2,1,2), plot(y), title('My FFT');
файл BIT_REV_radix2.m:
function [BIT_OUT ] = BIT_REV_radix2( BIT_IN )
BIT_OUT=0;
BIT_OUT=bitset(BIT_OUT,6,bitget(BIT_IN,1));
BIT_OUT=bitset(BIT_OUT,5,bitget(BIT_IN,2));
BIT_OUT=bitset(BIT_OUT,4,bitget(BIT_IN,3));
BIT_OUT=bitset(BIT_OUT,3,bitget(BIT_IN,4));
BIT_OUT=bitset(BIT_OUT,2,bitget(BIT_IN,5));
BIT_OUT=bitset(BIT_OUT,1,bitget(BIT_IN,6));
end
Додаток B. Результати виконання програми
Рис. B1 Вхідний сигнал, вагова функція та сигнал після обробки ваговою функцією
Рис. B2 Результат роботи бібліотечної та власної функції ШПФ