- •Практическое занятие № 5
- •Основные теоретические сведения Цель фильтрации и типы фильтров
- •Фильтры конечной и бесконечной импульсных характеристик
- •Фильтры и передаточные функции
- •Коэффициенты фильтра и названия фильтра
- •Преимущества и неудобства ких-фильтров
- •Ход работы:
- •Импульсные и частотные характеристики цифровых фильтров
- •Формирование белого гауссовского шума
- •Фильтрация данных в matlaBе
- •Варианты заданий:
- •Контрольные вопросы:
Фильтры и передаточные функции
Вообще, z- преобразование Y(z) выхода цифрового фильтра связано с z- преобразованием X(z) входа выражением вида
где
- передаточная функция фильтра.
Здесь, константы
и
являются коэффициентами фильтра и
порядок фильтра максимум
и
.
Необходимо отметить, что коэффициенты фильтра начинаются с индекса 1, а не 0. Это отражает стандартную схему индексации в MATLABе векторов.
MATLAB хранит коэффициенты в двух векторах, один для числителя и другого для знаменателя. В соответствии с соглашением, MATLAB использует векторы-строки для коэффициентов фильтра.
Коэффициенты фильтра и названия фильтра
Многие
стандартные названия фильтров отражают
характер коэффициентов
и
таким образом:
когда
(т.е.
является скаляром), это БИХ-фильтр,
всеполюсной, рекурсивный (выходной
сигнал зависит от предыдущих значений
выходного сигнала);когда
(то есть
,
является скаляром), КИХ-фильтр, всенулевой,
нерекурсивный (выходной сигнал зависит
от значений входного сигнала, отсутствует
обратная связь, стабильный);если одновременно и больше чем ноль, то это БИХ фильтр, полюсно-нулевой, рекурсивный, является неким аналогом динамического звена.
Преимущества и неудобства ких-фильтров
КИХ-фильтры имеют следующие ниже перечисленные преимущества:
они могут иметь точно линейную фазу;
они всегда устойчивы;
используемые методы проектирования обычно линейные;
они могут быть легко реализованы аппаратно;
переходные процессы запуска фильтра имеют конечную продолжительность.
Одно из неудобств КИХ-фильтров в том, что они часто имеют намного более высокий порядок фильтра, чем БИХ-фильтры для достижения заданного уровня работы. Соответственно, задержка этих фильтров часто намного больше, чем для эквивалентного исполнения БИХ-фильтров.
Проектирование КИХ-фильтров в MATLABе
Заключительной проблемой проектирования линейного цифрового фильтра является вычисление векторов коэффициентов числителя и знаменателя его дискретной передаточной функции .
Представленная дискретная передаточная функция описывает в сжатой форме такое конечно-разностное уравнение фильтра:
КИХ-фильтр описывается только одним вектором . Знаменатель этой дискретной передаточной функции тождественно равен 1.
Группа функций fir1 предназначена для расчета коэффициентов цифрового КИХ-фильтра с линейной фазой методом взвешивания с использованием окна. Общий вид обращения к этой процедуре
b = fir1 (n, Wn, 'ftype', window).
Процедура вычисляет вектор n+1 коэффициентов КИХ-фильтра с нормализованной частотой среза Wn.
Все
функции проектирования фильтров работают
с нормализованными частотами, так
что они не требуют системную частоту
дискретизации как дополнительный
входной аргумент. Используется
соглашение, что единичная частота -
частота Найквиста, определенная как
половина частоты дискретизации.
Нормализованная частота, поэтому,
находится всегда в интервале
.
Для системы с частотой дискретизации
1000 Гц, 300 гц - 300/500 = 0.6. Чтобы преобразовывать
нормализованную частоту назад в Герц
надо умножить наполовину частоту
дискретизации.
Параметр
'ftype'
задает желаемый тип фильтра (ФНЧ, ФВЧ,
полосовой или режекторный). Он может
отсутствовать (и тогда по умолчанию
рассчитываются параметры ФНЧ с частотой
среза Wn,
если параметр Wn
задан в виде вектора из
двух элементов
рассчитывается полосовой
фильтр с полосой пропускания от
до
) или принимать одно из
четырёх значений. В первом случае
синтезируется ФВЧ с частотой среза Wn.
Во втором — режекторный фильтр (прим
этом Wn должен
быть вектором из двух элементов, значения
которых определяют границы полосы
задерживания по отношению к частоте
Найквиста). В третьем случае рассчитываются
параметры многополосного фильтра,
первая полоса которого является полосой
пропускания, а в четвертом — тоже
многополосный фильтр, первая полоса
которого является полосой задерживания.
При расчете режекторных фильтров и ФВЧ порядок фильтра следует назначать четным числом.
Параметр window позволяет устанавливать тип окна. Если этот параметр не указан, то, по умолчанию, будет использовано окно Хемминга.
Окно
используется, когда присутствует явление
Гиббса. Как следствие явления Гиббса,
частотная характеристика фильтров
может содержать отклонения от номинала
(идеальной характеристики) и скачки на
краях полосы. Пока порядок фильтра
остается конечным, эти беспорядки не
могут быть устранены. При использовании
функции окна
эти скачки можно ограничить за счет
крутизны фильтра
Для того чтобы вычислять окна различного типа используются следующие функции программы MATLAB:
boxcar(n) создает вектор-столбец из n элементов прямоугольного окна. Это окно имеет одинаковое величину (единицу) для всех значений
,
в которых ответ импульса должен быть
сохранен, и величина нуля для всех
величин
,
в
которых ответ импульса должен быть
устранен:
,
.
- triang (n) создает вектор-столбец, состоящий из n элементов треугольного окна. Дискретная функция окна
,
.
- hamming (n) создает вектор-столбец из n элементов окна Хэмминга. Дискретная функция окна
,
.
blackman (n) создает вектор-столбец из n элементов окна Блэкмана. Дискретная функция окна
,
.
Пример
1. Создайте цифровой ФНЧ 10 порядка с
нормализованной частотой среза
,
с использование окна Хэмминга.
[b,а] = fir1 (10, 0.6).
MATLAB возвращает следующий
b =
0.0000 0.0127-0.0638 0.2760 0.5997
0.2760-0.0248 0.0127 0.0000
a = 1.
