Програмна реалізація цифрового фільтра СІХ
Вхідний контроль:
1 На якій операції цифрової обробки сигналів базується алгоритм реалізації цифрового фільтра СІХ?
2 Фільтри яких частот можна побудувати на базі цифрових СІХ-фільтрів?
Алгоритм реалізації фільтра має вигляд:
, де n = 0, 1, 2, …
Цифровий фільтр має структуру:
Фрагмент програми, яка зреалізовує цифровий фільтр 4-го порядку:
1 АDDR_A EQU 5000 ; Задання адреси циклічного
; буфера (ЦБ)
2 ADDR_B EQU 6000 ; Задання адреси bk
3 ADDR_C EQU 4000 ; Задання адреси хn
4 ADDR_D EQU 3000 ; Задання адреси yn
5 ADDR_E EQU 2000 ; Задання адрес N та М
6 ORG Y:ADDR_B ; В Y-пам’яті, розпочинаючи
7 DC 0.9,0.8 ; з адреси 6000, записано
8 DС 0.7,0.6 ; вектор коефіцієнтів b
9 ORG X:ADDR_C ; В Х-пам’яті, розпочинаючи
; з адреси 4000, записано вектор
; відліків хn
10 ORG X:ADDR_E ; В Х-пам’яті за адресою 2000
11 DС 4 ; занесено розмір буфера N
12 ORG Y:ADDR_E ; В Y-пам’яті за адресою 2000
13 DC 4 ; занесено кількість відліків М
14 ORG P:$100 ; Об’єктний код завантаження до
; пам’яті команд,
; розпочинаючи з адреси $100
15 MOVE #ADDR_E,R6 ; R6 – вказівник на N та М
16 MOVE #ADDR_D,R5 ; R5 – вказівник на Yn
17 MOVE #ADDR_B,R4 ; R4 – вказівник на bk
18 MOVE #ADDR_C,R1 ; R1 – вказівник на вектор хn
19 MOVE #ADDR_A,R0 ; R0 – вказівник на ЦБ
20 MOVE X:(RG),A ; Запис N до акумулятора
21 DEC A ; Організація ЦБ
22 MOVE A,M0 ; довжиною N (М0 = N – 1)
23 CLR A ; Обнулення циклічного
24 REP X:(R6) ; буфера
25 MOVE A,X(R0)+
26 MOVE M0,M4
27 MOVE X:(R1)+,X0 ; Завантаження х0→Х0
28 DО Y:(R6),loop
29 CLR A X0,X(R0)- Y:(R4)+,Y0 ; хn→циклічний буфер
; bk→Y0
30 REP M0
31 MAC X0,Y0,A X: (R0)-, X0 Y: (R4)+, Y0 ; Команда МАС-операції; сума
; bk·хn-k від k = 0 до k = N – 2
32 DО Y: (R6), loop ; хn→ЦБ
33 CLR A X0, X: (R0)- Y: (R4)+, Y0 ; bk→Y0
34 REР M0
35 MAC X0, Y0, A X:(R0)-,X0 Y:(R4)+,Y0 ; Сума bk·хn-k від k = 0 до k = N – 2
36 MACR X0,Y0,A (R0)+ ; A – yn, R0 вказує на хn-N+1
37 MOVE X:(R1)+,X0 A,Y:(R5)+ ; хn→X0, запис результату
; yn до Y-пам’яті за адресою
; від 3000
loop ;
Команда МАС (±)S1,S2, D виконує знакове множення з акумулюванням: множення двох знакових 24-бітних операндів джерела S1 та S2 та додавання або віднімання результату з/від акумулятора приймача D; результат зберігається в D.
Команда MACR (±)S1,S2, D виконує знакове множення з акумулюванням та округленням: множення двох знакових 24-бітних операндів джерела S1 та S2, додавання або віднімання результату з/від акумулятора приймача D та подальше округлення результату з використовуванням конвергентного округлення; результат зберігається в D.
Контрольні питання:
1 Які операції виконує команда МАС?
2 З якою метою виконується обмеження результату за програмної реалізації СІХ-фільтра?
3 У який спосіб у процесорі DSP563XX апаратно підтримується команда
MAC X0, Y0, A X: (R0)-, X0 Y: (R4)+, Y0 ?
Контрольні питання підвищеної складності:
1 Наведіть структуру цифрового фільтра 5-го порядку.
2 У яких командах наведеного вище фрагмента програми треба зробити зміни, щоби зреалізувати цифровий фільтр 5-го порядку, і які саме?