Изучение материалла по курсу "Основы радиоэлектроники и связи", страница 28

│      │    LD   @P2:1+,#%2C12                                  │

│      │    LD   @P2:1+,#%3F77                                  │

│      │    LD   SR,#%009B       ;установка цикла адресов в     │

│      │                         ;регистре статуса цикл равен 8 │

│      │    LD   P1:0,#4         ;P1:0 будет указывать на       │

│      │                         ;последний отсчет полученный   │

│      │                         ;от АЦП                        │

│      │    LD   P0:0,#255       ;P0:0 будет указывать на       │

│      │                         ;последний отсчет в памяти     │

│      │                         ;фильтра                       │

│  1   │LP: LD   P1:1,#0         ;P1:1 указывает на h(0)        │

│  1   │    LD   bus,@P0:0+      ;Инкремент P0:0 и теперь он    │

│      │                         ;указывает на последний отсчет │

│      │                         ;в памяти фильтра              │

│  1   │    LD   X,P0:0          ;                              │

│  1   │    LD   P2:0,X          ;P2:0=P0:0                     │

│  1   │    LD   @P1:0+,EXT1     ;запись нового отсчета от АЦП в│

│      │                         ;в память                      │

│  1   │    MLD  @P1:1+,@P2:0+LOOP   ;Аккумулятор A=0           │

│      │                             ;Регистр P=x(n-4)h(0)      │

│  1   │    MPYA @P1:1+,@P2:0+LOOP   ;A=A+x(n-4)h(4)            │

│      │                             ;P=x(n-3)h(3)              │

│  1   │    MPYA @P1:1+,@P2:0+LOOP   ;A=A+x(n-3)h(3)            │

│      │                             ;P=x(n-2)h(2)              │

│  1   │    MPYA @P1:1+,@P2:0+LOOP   ;A=A+x(n-2)h(2)            │

│      │                             ;P=x(n-1)h(1)              │

│  1   │    MPYA @P1:1,@P2:0                                    │

│      │                             ;P=x(n)h(0)                │

│  1   │    MPYA @P1:1,@P2:0         ;A=A+x(n)h(0),A=y(n)       │

│      │                             ;P=x(n)h(0)                │

│  1   │    LD   EXT0,A              ;запись выходного отсчета  │

│      │                             ;фильтра y(n) в ЦАП        │

│  2   │    JP   LP              ;перейти к обработке следующего│

│      │                         ;отсчета                       │

├──────┴────────────────────────────────────────────────────────┤

│   Итого: 14 тактов или при тактовой частоте 15 МГц  0,938 мкс.│

└───────────────────────────────────────────────────────────────┘

Рис. 15. Фрагмент программы реализующей цифровой фильтр

ВУ. Если операнды находятся в ПП, требуется, как правило, 2 или 3 такта.

Все ЦСП Z89 имеют отдельный шестиуровневый 16-битный стек. Z89c00 можно рекомендовать для построения цифровых фильтров.

Частотный диапазон сигналов может доходить до ~ 500 кГц. Для убедительности на рис. 15 приведен фрагмент программы реализующей фильтр с конечной импульсной характеристикой. Алгоритм фильтрации описывается уравнением:

,

где y(n) - отсчеты выходного сигнала;

       x(n-m) - отсчеты входного сигнала;

       h(m) - отсчеты импульсной характеристики фильтра;

       N - порядок фильтра.