Главная > Разное > Теория и применение цифровой обработки сигналов
<< Предыдущий параграф
Следующий параграф >>
<< Предыдущий параграф Следующий параграф >>
Макеты страниц

11.4. Программа вычисления скользящей суммы

Скользящей суммой называют величину

.                                      (11.1)

Для  увеличения скорости  вычисления  скользящей  суммы  (при ) целесообразно представить ее рекурсивной формулой

                    (11.2)

На фиг. 11.2 представлена схема вычисления  путем простого суммирования чисел на выходах цепочки цифровых элементов задержки. На фиг. 11.3 показана другая схема реализации того же алгоритма, составленная из последовательно соединенных трансверсального фильтра и однополюсного рекурсивного фильтра. В табл. 11.1 приведен формат данных, удобный для реализации алгоритма (11.2) с помощью упрощенной универсальной вычислительной машины.

Чтобы не усложнять программу дополнительными операциями, учитывающими краевые эффекты, массив данных  дополняется с обеих сторон нулевыми отсчетами, число которых на единицу меньше количества слагаемых в сумме.

Таблица 11.1. Формат входных данных для программы вычисления скользящей суммы

DATA

0

0

...

0

DATA+ 26

...

DATA+1025

 0

 0

 0

...

DATA+ 1051

0

...

YN

0

...

Здесь для определенности взято . Метки, расположенные слева от стрелок в табл. 11.1, обозначают адреса, используемые в приводимой ниже программе вычисления скользящей суммы:

 

 

Пояснения

-1025

Занести число -1025 в регистр

Занести нуль в регистр

+1051

Прибавить  к

+1025

Сформировать в накопителе

+1025

Запомнить

Повторить в цикле 1024 раза

 

Стоп

Из приведенной программы видно, что для обработки каждого входного отсчета приходится выполнять четыре команды. Естественно, что время обработки зависит от быстродействия узлов ЦВМ. Для удобства предположим, что цикл обращения к памяти равен 100 нс. Каждая из первых трех команд программного цикла требует не менее двух циклов обращения к памяти: одного при вызове команды, другого при ее исполнении. Таким образом, полное время, необходимое для обработки одного отсчета, равно 600 нс плюс время выполнения условного перехода (JNX) и время выполнения арифметических операций, включить которое в цикл обращения к памяти затруднительно. В итоге получается около 1 мкс на каждый входной отсчет.

 

<< Предыдущий параграф Следующий параграф >>
Оглавление