- •(В переводе Усенкова в.Н.)
- •Сравнение цифровых и аналоговых фильтров
- •Базисные понятия цифровой фильтрации
- •Типы цифровых фильтров
- •Исходные данные и компромиссы
- •Проектирование ких фильтров методом окна
- •Проектирование фильтров методом обмена Ремеза
- •Детализация аппаратной части фильтра
- •Компьютерное моделирование
- •Учет ошибок округления
Учет ошибок округления
Большинство погрешностей работы цифровых фильтров связано с двумя случаями, связанными с округлением.
Первый случай связан с округлением коэффициентов фильтра, подобных приведенным на рис 6 и 7, которые вычислены на компьютере с высокой точностью арифметики, а после применены в аппаратуре цифрового фильтра с типичной разрядностью 16 битов. Как было ранее сказано, округление дает лучшие результаты, чем отбрасывание младших битов, но не избавляет от проблемы полностью.
Второй случай связан с конечной точностью операций умножения-сложения. Ошибки, появляющиеся от этого варианта, более значимы, особенно в фильтрах высокого порядка.
Выбор соответствующей разрядности для исключения таких ошибок имеет варианты. В общем, если проект требует ослабления более 67 dB в полосе задержания или пульсаций менее 0.05dB, разрядности в 16 битов недостаточно. В этих случаях нужно использовать 24 битовые, а иногда и 32 битовые слова. Оценить и выбрать разрядность операндов лучше после компьютерного моделирования фильтра, и лишь потом проектировать аппаратуру фильтра.
Для иллюстрации важности учета ошибок округления на рис.11 сравниваются реализации фильтра с 27 узлами для операндов с разрядностью 16 и 32 бита. В этом случае ошибки почти незаметны, однако при увеличении порядка фильтра до 90, они растут катастрофически, что показано на рис.12. Для ослабления более 80 dB в полосе задержания при числе узлов 90 нужно существенно больше разрядов в операндах, чем 16.
Рис 11. Компьютерное моделирование отклика КИХ ФНЧ с 27 узлами при использовании 32 разрядной (а) и 16 разрядной (б) арифметики.
Рис 12. Компьютерное моделирование отклика КИХ ФНЧ с 90 узлами при использовании 32 разрядной (а) и 16 разрядной (б) арифметики.
Компьютерное моделирование
На рис.13 показана типичная программа для симуляции фильтров на компьютере с большой разрядностью. Фирма Analog Devices предоставляет написанную на фортране программу для моделирования 16-разрядных КИХ фильтров с использованием микросхем ADSP=1010 с 16х16 разрядным умножителем-сумматором. Она называется «FIR 16-bit simulation program» (Программа симуляции 16 разрядных КИХ фильтров).
При моделировании выполняются те же действия, что и в реальной аппаратуре фильтра. Вначале получают коэффициенты фильтра h(n) по алгоритму обмена Ремеза, производится проверка переполнений и масштабирование коэффициентов, и в результате формируются записываемые в ПЗУ коэффициенты, в формате с фиксированной или с плавающей точкой и разрядностью 16.
Далее программа формирует массив x(n) значений входного сигнала, соответствующих выходным кодам АЦП, которые в аппаратной реализации будут размещены в ОЗУ. Число данных в этом массиве соответствует числу узлов фильтра. Обычно симуляция начинается с синусоидального сигнала частотой 0 Hz, а затем частота его увеличивается.
Арифметические операции блока умножения-сложения точно симулируются, что достигается снижением разрядности операндов компьютера до аппаратного ограничения (16 битов). В фортране, например, это получается сменой типа данных с INTEGER*4 на INTEGER*2.
Программа симуляции также учитывает переполнения аккумулятора для проверки правильности ранее произведенного масштабирования коэффициентов. При появлении переполнения необходимо повторить масштабирование и перезапустить симуляцию.
Далее программа вычисляет значения на выходе фильтра y(n) в соответствии с уравнением 2. Для каждого входного значения синуса вычисляется N значений массива y(n), где N – число узлов фильтра.
Далее определяется усиление на выходе фильтра, а соответственно и передаточная функция фильтра, выбором наибольшего по модулю значения из массива y(n). Это обычно близко к реальному коэффициенту передачи (усилению) фильтра. Но если требуется улучшить качество симуляции, можно пропустить N значений массива y(n) через алгоритм формирования кривой, в результате чего получается сигнал во времени y(t).
Частота сигнала на входе изменяется о постоянного тока (синусоида с частотой 0 Hz) до нормализованной частоты 0,5 по теореме Котельникова (критерию Найквиста) с шагом в 0,001 по нормализованной шкале. Результат в виде графика симулирует передаточную функцию фильтра. Если результаты моделирования удовлетворяют требованиям, можно приступать к аппаратной реализации фильтра.
Фрагмент статьи указанных авторов опубликованной в
EDN, March 3, 1983 by Cahners Publishing Company,
Division of Reed Holdings, Inc.
Терминология
Английский термин |
Русский эквивалент |
Пояснение |
Magnitude |
Уровень |
Уровень сигнала |
Attenuation |
Ослабление |
Снижение уровня выходного сигнала по отношению к уровню входного сигнала |
Cutoff frequency |
Частота среза |
Частота, на которой отклик фильтра падает ниже заданного значения пульсаций (1-δ1) |
Pass-band |
Полоса пропускания |
Диапазон частот, в котором ослабление сигнала не превышает заданного значения. |
Stop-band |
Полоса задержания |
Диапазон частот, в котором сигнал подвергается ослаблению |
Stop-band attenuation |
Ослабление в полосе задержания |
Минимальное ослабление в полосе задержания |
Pass-band ripple |
Пульсации в полосе задержания |
Максимальное отклонение от желаемого уровня в полосе задержания |
Sampling rate |
Частота выборок |
Частота, с которой происходит выборка значений входного сигнала |
Filter coefficients |
Коэффициенты фильтра |
Числа, представляющие обратное преобразование Фурье передаточной функции фильтра. Коэффициенты определяют характеристики фильтра и являются основой для проектирования фильтра. |
Taps |
Узлы |
Численно равно количеству выбранных входных значений, обрабатываемых фильтром для получения очередного выходного значения. Численно равно также числу коэффициентов фильтра. Пригодно для оценки задержки фильтра. |
