Пример: Фильтры с импульсной характеристикой конечной длительности по обмену Remez
Функция
remez реализует алгоритм обмена Ремеза для конструкции фильтра с импульсной характеристикой конечной длительности.
Чтобы ознакомиться с основными проблемами использования алгоритма и примерами, см. книги Rabiner, Gold "Theory and Application of Digital Signal Processing" (Рабинер, Голд. Теория и практика обработки цифрового сигнала) (на английском языке) (издатель Prentice-Hall, Inc.) и Parks, Burrus "Digital Filter Design" (Паркс, Беррас. Создание цифрового фильтра) (на английском языке) (издательство Wiley-Interscience).
Фильтр нижних частот
1. Определите отклик 1 в полосе пропускания и 0 в полосе затухания и интерполируйте прямой переход между кромками полосы пропускания и полосы затухания.
Как правило, число точек в сетке частот должно быть в 8-10 раз больше длины фильтра, с частотами, которые начинаются с 0 и равномерно возрастают до 0.5. Определение отклика требует определения кромок полосы и весов, назначенных ошибкам в каждой полосе. Алгоритм минимизирует максимальную взвешенную ошибку по диапазону частот [0, 0.5].
2. Определите края полосы пропускания и полосы задерживания:
3. Определите веса полосы пропускания, полосы задерживания и полосы перехода:
4. Определите функцию, которая дает требуемый отклик, как функцию частоты. Расчет в каждой точке сетки позволяет построить вектор отклика.
5. Определите весовой вектор, который назначает вес каждой точке сетки для соответствующей полосы.
6. Используйте функции remez и
length, чтобы вычислить коэффициенты фильтра:
7. Используйте функцию
gain, чтобы вычислить для этого нечетного по длине фильтра максимальные ошибки полосы пропускания и полосы задерживания, которые задаются усилением в точках 0 и 0.5:
8. Постройте график функции и ее частотной характеристики от 0 до .5.
Видимыми являются десять экстремальных частот, включая точку, где линия (1 - δ1) пересекает край полосы пропускания pb, и точку, где линия δ2 пересекает край полосы задерживания sb. Ошибка равномерно чередуется на экстремальных частотах каждой полосы. Чтобы увидеть пример, в котором две ошибки d неодинаковы, измените вес полосы затухания на 0.5 в приведенной выше спецификации фильтра.
Полосовой пропускающий фильтр
1. Определите функцию отклика, которая конструируется путем добавления функций для отклика в каждой полосе перехода и полосе пропускания.
2. Примените функцию фильтра одновременно ко всей сетке, используя оператор умножения векторов. Веса являются равномерными.
3. Создайте фильтр с 45 коэффициентами:
4. Постройте график частотной характеристики фильтра: