Программируемый цифровой фильтр
Изобретение относится к вычислительной технике и найдет применение в прецизионных измерительных системах космической навигации, а также радио- и гидролокации. В программируемый цифровой фильтр, содержащий три регистра 1, 8, 14, два мультиплексора 6, 9, регистр 14 константы, дешифратор, три сдвиговых регистра 15, 16, 17, три блока 2, 18, 19 умножения, два блока 20, 21 инвертирования знака, четыре сумматора 3, 7, 10, 22, D-триггер 4, причем выход первого сумматора служит выходом фильтра, дополнительно введены второй D-триггер 11 и элемент ИЛИ 12. Введение указанных элементов позволяет обеспечить более широкие функциональные возможности программируемого цифрового фильтра. Например, если имеет место переполнение результатов арифметических операций в выходном сумматоре предлагаемого фильтра, то автоматически обнуляются регистры задержки промежуточных результатов фильтрации, а выход второго D-триггера может быть использован в качестве флага, подтверждающего искажение результатов фильтрации, а также для принятия соответствующих решений в информационно-вычислительных системах, где применяется программируемый фильтр. 4 ил.
Изобретение относится к вычислительной технике и может найти применение в прецизионных измерительных системах космической навигации и связи, а также в радио- и гидролокации.
Известен рекурсивный цифровой фильтр (РЦФ) 2-го порядка [1] который содержит пять элементов задержки, пять матричных блоков умножения, шесть преобразователей кода и сумматор на пять выходов. Цифровой фильтр [1] имеет высокое быстродействие (1 мкс), благодаря применению матричных блоков умножения и выполнению основных операций в параллельных кодах. Однако устройство [1] имеет фиксированные связи, т.е. настроено на передаточную функцию одного вида, причем с большими аппаратурными затратами. Сложность фильтра [1] обусловлена применением пяти матричных блоков умножения, а также тем, что умножение выполняется в прямых кодах, а алгебраическое сложение в дополнительных. Поэтому на входах блоков умножения введены преобразователи прямого кода в дополнительный, а на выходе сумматора происходит преобразование дополнительного кода в прямой. Блок управления в устройстве [1] отсутствует, а его функции по организации последовательности выполнения операций распределены между дополнительными элементами задержки, связанными с выходами блоков умножения. С учетом упомянутых элементов задержки входных и выходных сигналов общее количество элементов задержки достигает одиннадцати, причем каждый из них выполнен в виде многоразрядного регистра. Недостатки фильтра [1] частично устранены в программируемом рекурсивном цифровом фильтре второго порядка [2] содержащем шесть регистров, четыре мультиплексора, два сдвиговых регистра, дешифратор, два блока инвертирования знака, регистр константы и триггер. Устройство [2] существенно отличается от устройства [1] новым составом блоков, благодаря чему создается возможность оперативной перестройки частотных характеристик, причем не только путем частот среза, но и путем преобразования вида передаточной функции цифрового фильтра. Устройство [2] реализует систему разностных уравнений цифровых фильтров 2-го порядка, в том числе полосового фильтра (ПФ), фильтра нижних частот (ФНЧ) и фильтра верхних частот (ФВЧ), причем возможность оперативной трансформации передаточной функции и сброса содержимого регистров хранения и элементов задержки расширяет класс решаемых задач, например, в адаптивных системах автоматического регулирования. Однако наличие выходного регистра фиксации результата уменьшает быстродействие фильтра. Кроме того, масштабирующий множитель в устройстве [2] выбран фиксированным, что затрудняет его работу при скачкообразном изменении отношения сигнал/шум на входе фильтра. Ближайшим по технической сущности к предлагаемому устройству является программируемый цифровой фильтр 2-го порядка [3] содержащий три регистра, два мультиплексора, регистр константы, дешифратор, три блока умножения, два блока инвертирования знака, три сдвиговых регистра, блок синхронизации, четыре сумматора и D-триггер. Устройство [3] реализует систему разностных уравнений цифровых фильтров 2-го порядка, в том числе полосового (ПФ), фильтра нижних частот (ФНЧ) и фильтра верхних частот (ФВЧ):

А, В коэффициенты (плюсы) передаточной функции;
С переменный коэффициент масштабирования. На фиг. 1 представлена функциональная схема программируемого цифрового фильтра; на фиг.2 функциональная схема блока умножения; на фиг.3 - функциональная схема блока синхронизации; на фиг.4 временная диаграмма работы фильтра. Согласно изобретению программируемый цифровой фильтр (фиг.1) содержит регистр 1 хранения текущего значения входного сигнала, выход которого соединен с входом множимого блока 2 умножения, выход которого соединен с первым числовым входом комбинационного сумматора 3. Выход первого разряда сумматора 3 подключен к информационному входу D-триггера 4, выходом соединенного с входом переноса этого же сумматора. Выходы остальных разрядов сумматора 3 соединены с числовым входом регистра 5, прямой и инверсный выходы которого соединены через мультиплексор 6 с первым числовым входом комбинационного сумматора 7. Второй числовой вход данного сумматора соединен с выходом сумматора 3. Прямой выход регистра 5 соединен также с входом регистра 8, прямой и инверсный выходы которого соединены с числовыми входами мультиплексора 9. Выходы сумматора 7 и мультиплексора 9 соединены соответственно с первым и вторым входами комбинационного сумматора 10, выход которого служит выходом фильтра. Выход переноса сумматора 10 подсоединен к информационному входу D-триггера 11, выходом соединенного с первым входом элемента ИЛИ 12. Регистр 1, регистры 5, 8 и мультиплексоры 6, 9 содержат N двоичных разрядов (например, N= 10), в разрядной сетке сумматоров 7 и 10 N+2 разряда, сумматор 3 имеет N+1 разряд. Входы управления мультиплексоров 6 и 9 и входы переноса сумматоров 7 и 10 соединены с выходами дешифратора 13, соединенного с первым выходом регистра 14 константы. Второй, третий и четвертый выходы регистра 14 соединены с числовыми входами сдвиговых регистров 15, 16 и 17. Выходы сумматора 7 и мультиплексора 9 подключены к числовым входам множимого блоков 18 и 19 умножения соответственно. Выходы блоков 18 и 19 соединены через блоки 20 и 21 инвертирования знака с входами комбинационного сумматора 3. Выходы управления блоков 20 и 21 инвертирования знака соединены с выходами знаковых разрядов регистра 14 константы. Входы множителей блоков 2, 18 и 19 соединены с выходами сдвиговых регистров 15, 16 и 17. Входы управления регистра 1, регистров 5, 8, сдвиговых регистров 15, 16 и 17, блоков 2, 18 и 19 умножения, тактовые входы D-триггеров 4 и 11 соединены с соответствующими выходами блока 23 синхронизации, вход которого служит входом пуска цифрового фильтра. Второй вход элемента ИЛИ 12 соединен одновременно с входом начальной установки регистра 14 константы и служит входом начальной установки фильтра, а выход элемента ИЛИ 12 подключен к установочным входам регистров 5 и 8. Каждый из блоков 2, 18 и 19 умножения (фиг. 1,2) содержит N-разрядный комбинационный сумматор 24, мультиплексор 25, регистр аккумулятор 26 и D-триггер 27. Выход мультиплексора 25 подключен к первому числовому входу сумматора 24, выход которого соединен с числовым входом регистра - аккумулятора 26, первый разряд которого подключен к информационному входу D-триггера 27, выходом соединенного с входом переноса сумматора 24. Остальные разряды регистра 26 соединены с разрядами I.(N+1) второго числового входа сумматора 24 с расширением (N-1) разряда на N-й разряд. Первый числовой вход мультиплексора 25 подключен к выходу регистра 1 хранения, выходу сумматора 7 или мультиплексора 9, а разряды второго числового входа соединены с шиной логического нуля. Вход управления мультиплексора 25 служит входом регистров 15, 16, 17 сдвига. Входы записи и сброса регистра 26 подключены к соответствующим входам блока 23 синхронизации. Выходы разрядов 2.N и знаковый разряд мультиплексора 25 образуют N-разрядный выход произведения в дополнительном коде. Блок синхронизации 23 (фиг.1 и 3) содержит двухразрядный счетчик 28, четырехразрядный счетчик 29, триггеры 30 и 31, тактовый генератор 32 и дешифраторы 33 и 34. Тактовые входы счетчиков 28 и 29 соединены с выходом генератора 32, а входы управления с выходами триггеров 30 и 31. Вход S триггера 30 служит входом импульса "Пуск" фильтра. Выход переполнения счетчика 28 соединен с входами сброса триггера 30 и собственно счетчика 28.Выходы счетчика 28 соединены с входами дешифратора 34, входы которого, кроме этого, соединены парафазными выходами генератора 32, а также с выходами дешифратора 33, вход которого подключен к выходу счетчика 29. Отдельный выход дешифратора 33 подключен к входам сброса счетчика 29 и триггера 31. Предпочтительной элементной базой для реализации предложенного фильтра является полузаказная матричная БИС, выполненная по К-МОП технологии. Поэтому макет прототипа целесообразно изготовить на элементах серии 564 средней степени интеграции. Серия содержит функциональные блоки, используемые в предлагаемом фильтре, в том числе регистры хранения и сдвига, мультиплексоры и комбинационные сумматоры (справочное пособие. /Под ред. С.В.Якубовского. Аналоговые и цифровые интегральные схемы. М. Радио и связь, 1990, с. 118-141). Предлагаемый программируемый цифровой фильтр работает следующим образом. Для настройки фильтра на выбранную передаточную функцию в регистр 14 константы (фиг. 1) импульсом "Начальная установка" вводится вектор состояния V(F, А, В, С), где F двухразрядный код передаточной функции. Тем же импульсом через элемент ИЛИ 12 стирается содержимое регистров 5 и 8. Содержимое регистра 14 сохраняется на время работы с заданной передаточной функцией фильтра. Результатом начальной установки является выбор одной из трех систем уравнений (4-6), которые можно записать следующим образом:

где



Константа масштабирования С не зависит от кода F и определяется расчетным путем в зависимости от вида сигнала на входе и величины модуля передаточной функции. При настройке на фильтр нижних частот между блоками устройства устанавливаются следующие связи:
мультиплексор 6 соединяет прямой выход регистра 5 с вторым входом сумматора 7;
мультиплексор 9 подключает прямой выход регистра 8 к второму входу сумматора 10;
на входы переноса сумматоров 7 и 10 из дешифратора 13 подается потенциал логического нуля. При настройке на ФВЧ:
мультиплексор 6 соединяет инверсный выход регистра 5 с входом сумматора 7, а мультиплексор 9 соединяет прямой выход регистра 8 с входом сумматора 10;
на вход переноса сумматора 7 из дешифратора 13 поступает потенциал логической единицы, а на вход переноса сумматора 10 потенциал логического нуля. При выборе ПФ:
мультиплексор 6 запирается и выдает нули по всем разрядам на вход сумматора 7, мультиплексор 9 соединяет инверсный вход регистра 8 с входом сумматора 10;
на вход переноса сумматора 7 из дешифратора 13 поступает потенциал логического нуля, а на вход переноса сумматора 10 поступает потенциал логической единицы. В любом из рассмотренных вариантов настройка цифрового фильтра завершается не более чем через 0,1.0,15 мкс после записи вектора состояния в регистр 14. Текущее значение переменной yi на выходе фильтра вычисляется циклически с частотой выборки входной переменной xi. Эта частота зависит от быстродействия внешнего источника информации. Последний по мере готовности нового значения xi на входе регистра 1 посылает импульс "Пуск" на вход блока 23 синхронизации (фиг.4а), и с этого момента начинается цикл работы фильтра. В блоке 23 синхронизации (фиг. 1 и 3) триггер 30 переходит в состояние "1" (фиг. 4б) и остается в нем в течение двух тактов генератора 32 (фиг.4в). Импульс "Пуск" используется и как команда пересылки числа из регистра 5 в регистр 8. В результате в регистре 8 записывается значение Vi-2 (фиг.4г). Дешифратор 34 по первому тактовому импульсу формирует импульс передачи содержимого регистра 1 в регистр 5 (фиг.4д), благодаря чему запоминаются новые значения Vi-1. В первой половине второго такта дешифратор 34 формирует импульс записи очередного значения xi в регистр 1 (фиг.4е). Этим же импульсом производится сброс регистров-аккумуляторов 26 в блоках 2,18 и 19, а также запись модулей весовых коэффициентов А, В и С в прямом коде в регистры 15, 16 и 17 сдвига. Во втором такте дешифратор 34 переводит триггер 31 в состояние "1" (фиг. 4ж), а триггер 30 возвращается в нулевое состояние импульсом переполнения счетчика 28. Триггер 31 разрешает работу счетчика 29, с помощью которого формируется серия управляющих импульсов для регистров 15, 16 и 17 и блоков 2, 18 и 19 умножения. Серия заканчивается в начале N+2 такта работы счетчика 29, когда дешифратор 33 фиксирует такт с указанным номером и возвращает триггер 31 в нулевое состояние (фиг.4ж, з). В рассматриваемом примере блок 23 синхронизации выполнен для десяти разрядных коэффициентов А, В, С. Поэтому серия управляющих импульсов включает в себя 9 импульсов сдвига для сдвиговых регистров 15, 16 и 17 (фиг.4и), из которых модули коэффициентов А, В, С выходят младшими разрядами вперед (фиг.4к); 9 импульсов записи чисел из сумматоров 24 в регистры-аккумуляторы 26 (фиг.4л); 8 импульсов записи содержимого 1-го разряда регистра-аккумулятора 26 в триггер 27 (фиг.4м); импульс округления результата в сумматоре 3 (фиг.4н). Так как сумматоры 3, 7 и 10 комбинационного типа, то сразу после выполнения масштабирования входной переменной с помощью множителя 2 на выходе сумматора 3 появляется число хi=Vi, на выходе сумматора 7 - Vi +




Zi,j Vi-1


где Zi,j-1 число в регистре 26 к началу j-го такта,
qj-1 цифра в триггере 27 к началу j-го такта. Умножение на коэффициент 0,5 в указанных уравнениях обеспечивается за счет новых связей между выходом регистра 26 и вторым входом сумматора 24, т. е. за счет смещения содержимого регистра 26 на один разряд вправо. При таком сдвиге отбрасываемая цифра 1-го разряда запоминается в D-триггере 27 и учитывается в следующем такте как цифра переноса в сумматоре 24. В середине каждого такта умножения число с выхода сумматора 24 записывается в регистр 26. К концу девятого такта умножения в блоке 18 формируется число





tц (2 + М)

где Т период повторения импульсов тактового генератора 32;
М количество разрядов модуля множительного устройства. В макете предлагаемого устройства, выполненном на микросхемах 1564 и 564 серий при М=9 и тактовой частоте 2,1 МГц (Т=0,476 мкс), на вычисление очередного значения уi затрачивается время
tц (2 + 9)


tц (2 + 9)


Формула изобретения
РИСУНКИ
Рисунок 1, Рисунок 2, Рисунок 3, Рисунок 4