Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
AN-344 цифровые FIR фильтры без проблем перевод...doc
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
409.6 Кб
Скачать

Детализация аппаратной части фильтра

Первый шаг детализации касается преобразования коэффициентов фильтра в 16-разрядный код с фиксированной точкой, или набор кодов чисел с плавающей точкой. В арифметике с фиксированной точкой можно легко перемножать коэффициенты до 2^15.

Далее необходимо обеспечить надлежащее округление до младшего значащего разряда. Нельзя просто отбрасывать составляющую после десятичной точки, поскольку это влияет на точность коэффициентов, в то время как правильное округление приближает результат к теоретически достижимым уровням точности. Округленные коэффициенты заносятся в ПЗУ.

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

В нашем случае частота выборок равна 50 kHz и фильтр с 27 узлами требует (50kHz x 27) = 1,35 миллиона 16-разрябных операций типа умножение-сложение в секунду, или 740 nS для каждой такой операции. Немногие микропроцессоры способны обеспечить такие требования. Например, микропроцессор Motorola 68000 с частотой тактирования 12,5 MHz выполняет 16-разрядное умножение за 5,6 uS. Микросхема перемножитель-накопитель (multiplier/accumulator , MAC) ADSP-1010 способна выполнить требуемую операцию всего лишь за 165 nS, имея при этом малую стоимость и низкое потребление.

ДЛя нормального функционирования устройства, цепи управления выборкой данных из памяти (ПЗУ и ОЗУ) должны соответствовать по быстродействию. Можно применить метод указателей в стеке, как показано на рис.9. Указатель 2 обеспечивает сохранение очередной порции данных в ОЗУ. Для каждой новой выборки система обеспечивает инкремент указателей 1 и 3 следующим образом:

После обработки каждой выборки указатели 2 и 3 инкрементируются. Указатили сбрасываются при достижении конца стека, как показано на рис. 9b.

Далее, решаем как обрабатывать переполнение аккумулятора. После операции умножения-сложения результат может выйти за пределы 32 разрядов. Для обработки переполнения сначала оценим разумную границу числа переполнений. Этого можно добиться суммированием квадратов коэффициентов. Результат сравниваем с возможностями аккумулятора.

Обрабатывать переполнения можно несколькими способами. Микросхема ADSP-1010 предоставляет 3 дополнительных бита в аккумуляторе дополнительно к тем 32, которые достаточны для одиночной операции. Этого достаточно для большинства случаев.

Другой метод – уменьшение разрядности коэффициентов, в пределах 1-5 битов, с некоторой потерей точности. Уменьшаем разрядность путем деления на 2 и повторяем ранее приведенный оценочный расчет. Это действие повторяем до достижения приемлемого результата.

И наконец, для некоторых случаев можно не использовать полный динамический диапазон входного сигнала. Поэтому просто считаем, что аккумулятор сам определит возможности системы по переполнению.

Может случиться так, что в вашем случае даже самая скоростная микросхема MAC не способна справиться с задачей. Тогда можно применить два или более параллельно работающих узлов перемножения-сложения для повышения производительности. На рис. 10 задействованы две микросхемы ADSP-1010, что уменьшает время выполнения операции до 75 nS, в то время как каждая микросхема выпонит задачу за 150 nS.

Рис. 9а

Рис. 9b.

Рис. 10. Удвоение производительности методом параллельной работы вычислителей.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]