Міністерство освіти і науки України
Національний університет «Львівська політехніка»
ІКТА
Кафедра ЕОМ
Курсовий проект
з курсу
«Методи, алгоритми, засоби цифрової обробки сигналів та зображень»
на тему:
«Розробка процессора ШПФ»
Завдання
Варіант № 11
Розробити процесор ШПФ з такими вхідними даними:
Тип процесора
ADSP-2111
Кількість точок
64
Основа ШПФ
2
Прорідження
часове
Розрядність вхідних даних
16
Такт поступлення вхідних даних
50 нс
Час обробки
0.2 мс
Анотація
В даному курсовому проекті розглянуто спосіб реалізації алгоритму ШПФ за основою 2 для сигнального процессора ADSP-2111 для 16-розрядних вхідних даних з часовим прорідженням, детально описано механізми обчислення швидкого перетворення Фур`є за заданною основою, властивості та основні характеристики процесора, на якому планується реалізація, підраховано часові ресурси для виконання обчислення, створена функціональна схема системи та написана програма, що реалізує вказаний алгоритм ШПФ на заданному процесорі.
Зміст
Вступ _______________________________________________5
Теоритичний розділ ____________________________________6
2.1. Характеристики сигнальногоо процесора ADSP2111___6
2.2. Опис ШПФ ______________________________________8
Аналіз блок-схеми виконання заданої
функції обробки сигналів та зображень
на заданому типі процесора ___________________________15
Розрахунковий розділ ________________________________18
Розробка функціональної схеми _______________________20
Розробка програми виконання алгоритму ШПФ __________23
Висновки ____________________________________________25
1.Вступ
Аналіз Фур'є закладає основи багатьох методів, що застосовуються в області цифрової обробки сигналів (ЦОС). По суті справи, перетворення Фур'є (фактично існує кілька варіантів таких перетворень) дозволяє співставити сигналу, заданому в часовій області, його еквівалентне представлення в частотній області, і навпаки, якщо відома частотна характеристика сигналу, то зворотне перетворення Фур'є дозволяє визначити відповідний сигнал у часовій області.
Крім того, ці перетворення корисні при проектуванні фільтрів. Частотна характеристика фільтра може бути отримана за допомогою перетворення Фур'є його імпульсної реакції. І навпаки, якщо визначена частотна характеристика сигналу, то необхідна імпульсна реакція може бути отримана за допомогою зворотнього перетворення Фур'є над його частотною характеристикою. Цифрові фільтри можуть бути створені на основі їхньої імпульсної реакції, оскільки коефіцієнти фільтра з кінцевою імпульсною характеристикою (КІХ) ідентичні дискретній імпульсній реакції фільтра.
2.Теоретичний розділ
2.1. Характеристики сигнального процесора ADSP-2111
2.1.1.Призначення ADSP-2111.
ADSP-2111 є однокристальним мікрокомп'ютером оптимізованим для обробка цифрового сигналу даних (DSP) і інших високошвидкісних задач обробки даних.ADSP-2111 об'єднує базову архітектуру сімейства ADSP-2100 (три обчислювальні блоки, генератори адреси даних ) з двома послідовними портами, внутрішнім 16-бітним DMA портом, байтовим DMA портом, програмованим таймером, ознакою I/O, пам'ять даних.ADSP-2111 інтегрує 80K байтів пам'яті розміщеної на кристалі, яка конфігурується як 16K слів (24-біти) програмної RAM, і 16K слів(16-біт) RAM даних.
2.1.2.Властивості ADSP-2111.
50 ns цикл виконання інструкцій, кожна інструкція виконується за
один цикл.
Код сімейства ADSP-2100, сумісний з розширенням множини інструкцій
Незалежний ALU, перемножувач/акумулятор, і зсувні обчислювальні блоки
Два незалежні генератори адреси даних
Зациклення по ознаці нуля
Умовне виконання команд
На рис.1 зображена блок-діаграма процесора ADSP-2111, на якій показані всі його основні вузли та зв’язки між ними. Основними вузлами є:
16-розрядні обчислювальні блоки – АЛП, вузол множення, зсувач;
генератори адреси даних (DAG1,DAG2);
програмний автомат (Program Sequencer) та регістр інструкцій;
таймер;
SRAM програм і SRAM даних;
зовнішні порти для зв'язку із зовнішньою пам'яттю та периферійними пристроями;
послідовні порти;
Флаги
Рис.1.1. блок – діаграма процесора ADSP-2181
2.1.3.Опис виводів
Рис.1.2. Процесор ADSP-2181
В табл.1.1. використовуються такі позначення:
G – земля;
І – вхід;
О -- вихід;
P -- електроживлення;
* -- Ці виводи можуть під’єднуватись тільки до EZ-ICE коннекторів і використовуються тільки при емуляції;
Таблиця 1. 1 Опис виводів
Pin Name(s)
# of Pins
Input /Output
Function
ADDR
14
О
Шина адреси
DATA
24
I/O
Шина даних
______
RESET
1
І
Загальний скид процесора
____
IRQ2
1
І
Запит на зовнішнє переривання
___
BR2
1
І
Запит використання зовнішньої шини
__
BG
1
О
Дозвіл викоритстання зовнішньої шини
____
PMS
1
О
Вибір зовнішньої пам’яті програм
____
DMS
1
О
Вибір зовнішньої пам’яті даних
____
BMS
1
О
Вибір boot пам’яті
__
RD
1
О
Дозвіл читання з зовнішньої пам’яті
___
WR
1
О
Дозвіл запису у зовннішню пам’ятть WR
MMAP
1
І
Вибір карти пам’яті
CLKIN, XTAL
2
І
Зовнішній Clock або кварцовий генератор
CLKOUT
1
О
Вихід таймера процесора
VDD
Живлення
GND
Земля
SPORT0
5
І/О
Serial Port 0 Pins (TFS0, RFS0, DT0, DR0, SCLK0)
SPORT1
5
І/О
Serial Port 1 Pins (TFS1, RFS1, DT1, DR1, SCLK1)
____
IRQ0 (RFS1)
1
І
Запит на зовнішнє переривання #0
____
IRQ1 (TFS1)
1
І
Запит на зовнішнє переривання #1
FI (DR1)
1
І
Вхід флага
FO (DT1)
1
О
Вихід флага
FL2–0
3
О
Загальні виходи флага
____
HSEL
1
І
Вибір НІР
_____
HACK
1
О
Визначення НІР
HSIZE
1
І
Вибір розрядності (0 = 16-Bit, 1 = 8-Bit)
BMODE
1
І
Boot Mode Select (0 = Standard EPROM Booting, 1 = HIP Booting)
HMD0
1
І
Bus Strobe Select (0 = RD/WR, 1 = RW/DS)
HMD1
1
І
Вибір режиму НІР адреса/дані (0=розділені,1=мультиплексовані)
____
HRD/HRW
1
І
Строб читання з НІР або вибір читання/запис
____ ____
HWR/HDS
1
І
HIP Write Strobe or Host Data Strobe Select
HD15–0
/HAD15-0
16
І/О
НІР дані або НІР дані і адреса
HA2/ALE
1
І
Host Address 2 Input or Address Latch Enable Input
HA1–0/Unused
2
І
Адреса хоста 1 або не використовується
2.2. Опис ШПФ
2.2.1.Опис швидкого перетворення Фур’є з прорідженням в часі
Дискретний матеріальний сигнал у вигляді кінцевої часової послідовності x(nТ) запишемо як x(nТ), де - число відліків, N – число відліків, T - період дискретизації.
N - точкове дискретне перетворення Фур'є (ДПФ) задається формулою:
де X(k) - частотний k-ий відлік чи k-а спектральна складова сигналу (визначає вихідну частотну послідовність, спектр сигналу),
комплексна експонента, W- ядро перетворення.
При зміні значення n*k на величину кратну N ядро не змінюється (у силу періодичності синуса і косинуса). Тобто ядро по верхньому індексу є періодичною функцією з періодом N. Тому замість добутку n*k можна вставити залишок від ділення його на N , тобто (n*k) mod N. Cпектральна функція X(k) також має період N по аргументу k.
Число множень дійсних відліків сигналу на комплексне ядро в (1) дорівнює N2, а число додавань комплексних чисел - (N -1)N. Кількість цих операцій різко зростає із збільшенням N і приводить до занадто великого часу перетворення.
ДПФ стало широко застосовуватися після винаходу швидких алгоритмів, в основі яких лежить принцип зведення багатоточкового перетворення до малоточкового. Один з них (що став уже класичним) називається ШПФ із проріджу-ванням за часом. Цей алгоритм отриманий за умови, якщо N є ступенем числа 2, тобто , де ν - ціле число, ν≥0.
Основні формули перетворення, до яких ми прийдемо, виходять при розбивці суми в (1) на дві суми, що містять відліки з парними і непарними номерами
Власне кажучи ця операція являє собою зміну порядку сумування (перегрупу-вання доданків), від якого сума не міняється.
Можна записати , . З врахуванням цього (2) прийме вигляд:
Зауважимо, що суми в (3) являють собою N/2 - точкові ДПФ часових відліків з парними номерами в першій сумі, і непарними номерами в другій сумі.
Позначимо, згідно з [1],
X(k) = Xν(k) - ДПФ усіх вхідних відліків дискретного сигналу,
вхідних відліків з парними номерами (перше число в нижньому індексі дорівнює ν - 1, а друге - парному числу (нулю)) ,
вхідних відліків з непарними номерами (друге число в нижньому індексі дорівнює непарному числу (одиниці)).
З урахуванням введених позначень одержимо коротку форму запису (3)
Спектри і є періодичними функціями з періодом N/2 (у ядрі перетворення замість N стоїть N/2). Величина називається повертаючим множником і володіє наступною цікавою властивістю
Ця властивість надає при обчисленні з номерами k від N/2 до (N -1) використовувати відповідні значення раніше обчислених з номерами від 0 до (N/2 -1) (потрібно тільки змінити знак).
За звичай формулу (4) розбивають на два співвідношення для зазначених вище номерів і одержують основні формули (базові співвідношення) перетворення Фур'є у вигляді
Базові співвідношення вже можна назвати швидким перетворенням Фур'є (ШПФ), тому що число операцій зменшилося. Число множень матеріальних відліків сигналу на комплексне ядро дорівнює . До цього потрібно додати множень комплексних чисел. Число додавань дорівнює
Процес розбиття за схемою базових співвідношень можна продовжувати до тих пір, доки не прийдемо до перетворень Фур'є одиничних відліків (що збігаються із самими відліками). Необхідне число операцій при цьому буде значно менше. У такому вигляді це ШПФ називають ШПФ із проріджуванням за часом.
Для пояснення процесу розбиття розглянемо більш детально, приклад ШПФ при .
Позначимо оператор ДПФ визначених вхідних відліків через F і запишемо відповідності між символами ДПФ, введеними вище, і цим оператором.
Зв'язок між ДПФ із великим і меншим числом точок відповідно до базових співвідношень записується в такий спосіб:
Роботу ШПФ можна пояснити графічно, якщо базові співвідношення, записані в дуже короткій формі
або зобразити графом
Верхній стрілці відповідає додавання, а нижній - віднімання. Попередньо bm-1 домножається на множник повороту WN.
Використовуючи вищенаведене і розташовуючи символи ДПФ у впорядковано-му вигляді, зобразимо ШПФ геометрично за допомогою графа.
Рис.1.2.1. Граф ШПФ із проріджуванням за часом при 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.2.2.Алгоритм перетворення
Алгоритм ШПФ можна скласти, спираючи на граф ШПФ при 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.2.3.Алгоритм ШПФ із проріджуванням за часом
Вхідні дані в алгоритмі:
Х(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. Завершення.
2.2.4.Алгоритм двійково-інверсної перестановки
1. k←0.
2. Якщо k = N, то виконання алгоритму припиняється.
3. n← m← 0 (n←0,m←0 ).
4. Якщо m = v : перейти до кроку 7.
5. Якщо біт з номером m (0-ої біт - наймолодший) числа k дорівнює 1,
то n←n + 2v - m - 1.
6. m←m+1, перейти до кроку 4.
7. Якщо k < n : X(k)↔ X(n).
8. k←k+1, перейти до кроку 2.
3. Аналіз (розробка) блок-схеми виконання заданої функції обробки сигналів та зображень на заданому типі процесора
Для виконання базової операції вимагається виконати 4 операцій множення і 6 додавань.
Порядок перед відповідною ітерацією
Номер метелика в ярусі
1
2
3
4
5
6
0
0
0
0
0
0
1
32
16
8
4
2
1
16
32
32
32
32
32
2
48
48
40
36
34
33
8
8
16
16
16
16
3
40
24
24
20
18
17
24
40
48
48
48
48
4
56
56
56
52
50
49
4
4
4
8
8
8
5
36
20
12
12
10
9
20
36
36
40
40
40
6
52
52
44
44
42
41
12
12
20
24
24
24
7
44
28
28
28
26
25
28
44
52
56
56
56
8
60
60
60
60
58
57
…
31
47
55
59
61
62
32
63
63
63
63
63
63
Блок-схема перетворення виглядає так:
Рис.2.1 Блок-схема 64-точкового перетворення за основою 2
Рис.2.2 Граф 64-точкового ШПФ за основою 4 з прорідженням по часу
4.Розрахунковий розділ
Частота роботи процесора: , звідси цикл виконання команди: .
base – основа базової операції «метелик»;
N – кількість точок вхідного перетворення;
base=2;
N=64;
– кількість етапів перетворення;
– кількість базових операцій «метелик» на одному етапі;
– кількість базових операцій у всьому перетворенні;
Для виконання базової операції «метелик» необхідно:
4 операцій множення;
6 операцій додавання;
6 операцій читання з пам`яті:
- 2*2=4 (для читання дійсної та уявної частини вхідних відліків);
- 1*2=2 (для читання дійсної та уявної частини комплексних коефіцієнтів);
4 операцій запису:
- 2*2=4 (для запису дійсної та уявної частини вхідних відліків);
В результаті на одну базову операцію припадає 20 операцій: Nна 1 мет=20 (оп)
Тривалість виконання обчислення ШПФ:
Тривалість надходження даних у процесор для обробки:
Тнадх=50нс – такт надходження даних;
Тривалість надходження даних у процесор та тривалість обчислення ШПФ:
Ця величина менша за заданий час обробки: , тобто для виконання обчислення достатньо одного процесора.
Внутрішня ОЗП процесора ADSP-2111 є 1Кб
Для розв`язання поставленої задачі необхідно 64 слова по 16 розрядів тому внутрішньої ОЗП цілком вистачає.
Для зберігання повертаючих множників необхідно пам’ять об`ємом: 384х8,
оскільки на 1 операцію метелик необхідно 1 повертаючий множник, кожен з яких містить дійсну та уявну частину, всього є 64 базових операцій, розрядність операндів є 8. Тому 2*192=384.
Окремо використовуємо завантажувальну пам`ять, де буде зберігатися лістінг програми.
Необхідна пам’ять розміром 64х16 для постійного приймання даних, що надходять.
Рис.3.2.Ділянка пам`яті внутрішньої ОЗП, що приймає участь в обробці
5. Розробка функціональної схеми
5.1. Вибір мікропроцесора
Згідно варіанту завдання було вибрано процесор ADSP-2111, тактова частота роботи якого – 20МГц і відповідна тривалість такту – 50нс. На вхід сигнального мікропроцесора надходять такі сигнали:
CLKIN – сигнал синхронізації, що надходить з внутрішнього тактового резонатора;
– глобальний сигнал аппаратного скиду;
– сигнал зовнішнього переривання;
Вихідними та двонапрямленими сигналами по відношенню до мікропроцесора є:
– сигнал вибору кристалу мікросхеми пам`яті даних;
– сигнал вибору кристалу мікросхеми пам`яті констант;
ADDR[13:0] – шина адреси;
DATA[23:0] – шина даних;
– строб читання даних з зовнішнього пристрою у мікропроцесор;
– строб запису даних у зовнішній пристрій з мікропроцесора;
Інші сигнали або не задіяні, або їх використання не розглядається у данному курсовому проекті.
5.2. Пам’ять завантаження
Для завантаження програми використовується зовнішня пам’ять EPROM в яку попередньо завантажується програма і перед початком роботи з цієї пам’яті програма завантажується у внутоішню пам’ять програм. Для цього використовується сигнал =1.
5.3. Зовнішнє ОЗП
В якості зовнішнього ОЗП використовуєтьтся зовнішній RAM має 1Кб слів і доступ до нього йде коли =1.
5.4. Зовнішнє ПЗП
В якості зовнішнього ПЗП використовуєтьтся зовнішній ROM має 2Кб слів і доступ до нього йде коли =1.Використовується для зберігання констант.
5.5. Розробка керуючого пристрою
Призначення даного вузла – арбітраж доступу до зовнішнього ОЗП між обчислювальним процесором та давачем сигналу.
Сигнали, що надходять на керуючий пристрій:
CLK – сигнал синхронізації з давача;
– глобальний сигнал апаратного скиду;
STRD – строб даних, що надходить з давача;
ADDR_IN – шина адреси з обчислювального процесору;
– строб читання зовнішньої пам`яті, надходить з процесору;
Сигнали, що виходять з керуючого пристрою:
– дозвіл видачі даних з мікросхеми зовнішньої пам`яті;
– дозвіл запису до мікросхеми зовнішньої пам`яті;
– вибір кристалу зовнішньої пам`яті;
ADDR_OUT – шина адреси, що скеровується на мікросхему зовнішньої пам`яті;
– сигнал маскованого переривання;
Регістр стану зберігає значення сигналів , , , Вихід можна використати як сигнали дозволу у буферній розв`язці для шини даних, оскільки сигнали та взаємовиключаючі і суперечать один одному. Сигнал можна також використати як сигнал ACK, що надходить на процесор і є підтвердженням доступу до зовнішньої пам`яті зовнішнім пристроєм.
Рис.5.1. Структура керуючого пристрою
Рис.5.2. Структура обчислювальної системи
Табл..5.1. Таблиця станів керуючого автомату
Сигнал
Стан очікування
Запис в ОЗП
Читання з ОЗП
RD#
x
X
0
DMS#
x
X
0
STRD
0
1
0
OE#
1
1
0
WE#
1
0
1
CS#
1
0
0
MEM_RD
0
0
1
MEWR
0
1
0
ADDR_OUT
Z
ADDR
ADDR_IN
Сигнал формується лічильником при досягненні межі лічби і направляється на процесор, де обробляється програмою обробки переривань. Лічильник сам скидає сигнал переривання на початку нового циклу лічби. Лічильник сам скидається у початковий стан при надходження стробу даних, а також при подачі апаратного скиду.
Дані надходять із сенсора 16-розрядними і по черзі записуються у зовнішнє ОЗП
6. Розробка програми виконання алгоритму ШПФ
Структуру програми, що виконує обчислення за алгоритмом ШПФ можна уявити наступним чином:
Рис.6.1. Узагальнена блок-схема алгоритму
Текст програми, написаної на мові С, поданий нижче
N=64;
struct complex
{ double re;
double im;
};
complex W[N];
complex matrix[N];
int i,imax,j,x1,x2;
int f; //номер етапу
int p; //номер операції в етапі
complex temp1,temp2;
f=0;
for(imax = N-1; imax <=0; imax = (imax+1)/2 – 1)
{ p=0;
for(j = 0; j < N; j = j + (imax+1)*2)
{
x1 = j + (imax+1)*0;
x2 = j + (imax+1)*1;
for (i = 0; i <= imax; i++)
{
temp1.re=
matrix[x1+i].re + matrix[x2+i].re*W[n*64+p*3+0].re –
- matrix[x2+i].im*W[n*64+p*3+0].im;
temp1.im=
matrix[x1+i].im + matrix[x2+i].re*W[n*64+p*3+0].im +
+ matrix[x2+i].im*W[n*64+p*3+0].re;
temp2.re=
matrix[x1+i].re - matrix[x2+i].re*W[n*64+p*3+0].im +
+ matrix[x2+i].im*W[n*64+p*3+0].re;
temp2.im=
matrix[x1+i].im - matrix[x2+i].re*W[n*64+p*3+0].re +
+ matrix[x2+i].im*W[n*64+p*3+0].im;
matrix[x1+i].re = temp1.re;
matrix[x1+i].im = temp1.im;
matrix[x2+i].re = temp2.re;
matrix[x2+i].im = temp2.im;
}
p++;
}
f++;
}
7.Висновки
Під час виконання курсового проекту було розглянуто приклад реалізації обчислювальної системи, в основі якої лежить алгоритм швидкого перетворення Фур’є за основою 2. Дана система обробляє вхідний сигнал, що є 16-розрядним і надходить з тактом, який дорівнює 50 нс. Вхідні дані оновлюються кожні 0.2 мс і представляються 64-ма вхідними відліками, що містять дійсну та уявну частину. Роботою сигнального процесора ADSP-2111 керує вузол керування, що є спеціалізованим пристроєм і розробленим під конкретну систему. Системі також належить блок зовнішньої пам’яті типу RAM, де безпосередньо зберігаються дані, що надійшли, пам`ять завантаження типу EPROM та блок зовнішнього ПЗП, для зберігання повертаючих множників, які використовуються при обчисленні ШПФ.
В результаті набуто досвід у проектуванні обчислювальної системи, розглянуто основні компоненти, з яких вона складається, засвоєно алгоритми, на основі яких виконується обчислення.
Література
Рабинер Л., Гоулд Б. Теория и применение цифровой обработки сигналов /Пер. с англ. А.Л.Зайцева, Э.Г.Назаренко, Н.Н.Тетекина; Под ред. Ю.Н.Александрова. - М.:Мир, 1978. - 848 с.
Цифровые фильтры и устройства обработи сигналов на интегральных микросхемах: Справочное пособие/Ф.Б.Высоцкий, В.И. Алексеев, В.П. Пачин и др.; Под ред. Б.Ф.Высоцкого.-М.: Радио и связь, 1984.-216с.
Куприянов М. С., Матюшкин Б. Д. Цифровая обработка сигналов: процессоры, алгоритмы, средства проектирования. – Спб. : Политехника, 1998.
Марков С. Цифровые сигнальные процессоры. Книга 1, М.:фирма МИКРОАРТ, 1996-144 с.
Цифровой процессор обработки сигналов TMS32010 и его применение/Под ред. А.А.Ланнэ.-Л.:ВАС,1990.-296 с.
http://www.analog.com.
http://www.ti.com.
Бабак В.П., Хандецький А.І., Шрюфер Е. Обробка сигналів: підручник для вузів., К., Либідь, 1996.- 390с.
Мельник А.А. Проектирование поточного процессора БПФ на специализированных БИС.- Львов, 1990.- 43с.
Применение цифровой обработки сигналов/ Под ред. Э.Оппенгейма.- М. Мир, 1980.- 552с.
Сверхбольшие интегральные схемы и современная обработка сигналов: Пер. с англ.- М.: Радио и связь, 1989.- 472с.
Справочник по устройствам цифровой обработки информации/ Н.А.Виноградов, В.Н.Яковлев, В.В.Воскресенский и др.- К:Тэхника, 1988.- 455с.
Бондарев В.Н., Трестер Г., Чернега В.С. Цифровая обработка сигналов: методы и средства. Учебное пособие для вузов. 2-е изд. – Х.: Конус, 2001.- 398 с.
Гольденберг А. Ш., Матюшкин Б. Д., Поляк М. Н. Цифровая обработка сигналов. Справочник. –М.: Радио и связь, 1985-312с.
Цифровая обработка сигналов/ А.Б.Сергиенко – СПб.:Питер, 2002.-608с.
Шрюфер Е. Обробка сигналів. Цифрова обробка дискретизованих сигналів.- К.: Либідь, 1992.- 226с.
Яцимірський М. М. Швидкі алгоритми ортогональних тригонометричних перетворень. - Львів: Академічний Експрес, 1997. - 219 с.