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

Проектирование фильтров методом обмена Ремеза

В большинстве случаев алгоритм обмена Ремеза предоставляет больше возможностей при проектировании. Алгоритм обмена Ремеза дает оптимальный КИХ фильтр по критерию минимакс ошибки (ссылка 7).

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

В общем, для заданного набора требований к фильтру алгоритм обмена Ремеза позволяет быстро получить результат с минимально возможным числом коэффициентов фильтра, особенно в сравнении с методом окна. Также, пульсации в полосе пропускания имеют равную амплитуду, равно как в полосе задержания. Достаточно задать величину K – отношение пульсаций полос пропускания и задержания.

Реализованный на Фортране алгоритм обмена Ремеза прост в использовании. Рассмотрим для примера КИХ фильтр нижних частот со следующими требованиями:

- частота квантования – 50kHz;

- fp = 10kHz, нормализованная fp=0.2;

- fs = 14kHz, нормализованная fs=0,28;

- минимальное ослабление в полосе задержания - 40 dB;

- максимальные пульсации в полосе пропускания - 0.2 dB;

- отношение пульсация в полосах пропускания и задержания K=1 (равные пульсации).

Программа на фортране запрашивает ввод данных в 5 строках:

СТРОКА1

FILT – количество узлов фильтра (коэффициентов). Если задать 0, программа считает этот параметр неопределенным (в нашем случае зададим 0);

JTYPE – тип фильтра (ФНЧ, ФВЧ, полосовой). Задаем 1 для нашего случая –ФНЧ;

NBANDS – число полос пропускания и задержания, суммарно. Для ФНЧ и ФВЧ задаем 2, для полосового фильтра – 3. В нашем случае – 2;

JPUNCH – обычно параметр равен 0;

LGRID – количество частотных точек для алгоритма обмена Ремеза. Для большинства случаев задам 16. Для высокоэффективных фильтров с числом узлов более 50 задаем 32;

СТРОКА 2

- строка 2 включает нормализованные частоты полос пропускания и задержания. В нашем случае полоса пропускания находится в диапазоне 0-0.2, полоса задержания в диапазоне 0.28- 0.5. Поэтому в данной строке укажем 4 параметра (0/0.2/0.28/0.5);

СТРОКА 3

- здесь задается усиление желаемой передаточной функции, Vout/Vin для каждой полосы. В нашем случае фильтр имеет единичное усиление в полосе пропускания и нулевое в полосе задержания, поэтому вводим (1/0);

СТРОКА 4

- здесь задается желаемое соотношение пульсаций для двух полос. В нашем случае пульсации равны, поэтому задаем (1);

СТРОКА 5

- эта строка требуется при неопределенном ранее числе узлов фильтра. Мы рассматриваем именно такой случай (NFILT=0 в строке 1), поэтому здесь задаем желаемую величину пульсаций в dB. В соответствии с этим, программа будет определять число узлов, при котором пульсации не превысят заданные. Поскольку заданы пульсации 0.2 dB, при ослаблении в полосе задержания 40 dB необходимо ввести (0.2/40.0).

По заданным параметрам программа подбирает порядок фильтра (число узлов) (ссылки 5,6). Результат обычно сводится к +4 узлам к правильному значению.

На рис. 6 приведена типичная результирующая распечатка. «Длина фильтра» (Filter length), определенная программой, дает число 24. «Импульсный отклик» (impulse response) дает коэффициенты фильтра. В последующих нескольких строках просто повторяются входные данные для полосы 1 (пропускания) и полосы 2 (задержания). «Желаемое значение» (desired value) показывает желаемые передаточные функции полос фильтра. «Вес» (weighting) пульсаций в полосах пропускания и задержания 1.0 и 1.0 соответственно. «Девиация» (deviation) – это пульсации в каждой полосе, которые равны 0.011 и 0.011 соответственно. «Девиация в децибелах» (deviation in dB) представляет ранее описанные величины пульсаций в dB. «Внешние частоты» (external frequencies) показывают значения частот полос пропускания и задержания с максимальными пульсациями.

Рис.6. Распечатка результатов работы программы при NFILT=0

Как видим, пробный запуск программы дает при 24 узлах пульсации в полосе пропускания 0.19 dB и ослабление в полосе задержания 39.08 dB, что не соответствует исходным требованиям. Поэтому повторяем запуск, скорректировав значение N до 27. Новые резудьтаты расчета приведены на рис. 7.

Рис. 7. Распечатка результатов работы программы при N=27

Фильтр-ограничитель (anti-aliasing filter), соответствующий рис.8, минимизирует высокочастотную составляющую сигнала и шумы, обеспечивая надлежащее качество сигнала на входе АЦП. Чаще всего, для таких случаев достаточна крутизна спада не выше 6...24 dB/oct. АЦП оцифровывает входящий сигнал с частотой, втрое выше верхней частоты сигнала. Хотя в соответствии с теоремой Котельникова (критерием Найквиста) достаточно двухкратного превышения, практика проектирования рекомендует коэффициент 3. Выборки с выхода АЦП сохраняются в ОЗУ (RAM). Для фильтра с 27 узлами потребуется 27 ячеек памяти, каждая разрядностью 16 битов.

Рис.8. Блок-схема цифрового КИХ фильтра

В ПЗУ (PROM) хранятся коэффициенты фильтра, определенные ранее. Иногда вместо ПЗУ имеет смысл использовать ОЗУ, например для адаптивных фильтров. Число ячеек ПЗУ равно числу различных коэффициентов фильтра. Благодаря симметрии, КИХ фильтр имеет N/2 различных коэффициентов для четного N (N – это число узлов) и (1+N)/2 для нечетного. Поэтому фильтр с 27 узлами потребует ПЗУ с 14 -тью16-битовыми ячейками.

Тактирование и коэффициент деления счетчиков для ОЗУ и ПЗУ таковы, чтобы получить правильные значения выборок и коэффициентов для перемножителя (multiplier). Каскад перемножитель-аккумулятор является главной частью цифрового фильтра и осуществляет умножение и сложение в соответствии с уравнением 2.

Существует большое количество разнообразных умножителей – сумматоров, в том числе выпускаемых фирмой Analog Devices. Например, ADSP-1010 перемножает два 16-разрядных кода и сохраняет результат в 35-разрядном аккумуляторе, который имеет 3 дополнительных разряда. Это позволяет отслеживать переполнение результата при сложении двух или более 32-разрядных кодов.

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