Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Книга_Вычисл техн и микропроц_2 автора_130709.doc
Скачиваний:
9
Добавлен:
07.05.2019
Размер:
5.26 Mб
Скачать

15.4 Програмна реалізація цифрового фільтра сіх

Вхідний контроль:

  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-го порядку, і які саме?