Функции > Обработка сигналов > Цифровая фильтрация > Пример: Фильтры с импульсной характеристикой конечной длительности по обмену Remez
Пример: Фильтры с импульсной характеристикой конечной длительности по обмену 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. Постройте график частотной характеристики фильтра:
Щелкните для копирования этого выражения
Щелкните для копирования этого выражения
Было ли это полезно?