
- •Практическое занятие № 5
- •Основные теоретические сведения Цель фильтрации и типы фильтров
- •Фильтры конечной и бесконечной импульсных характеристик
- •Фильтры и передаточные функции
- •Коэффициенты фильтра и названия фильтра
- •Преимущества и неудобства ких-фильтров
- •Импульсные и частотные характеристики цифровых фильтров
- •Формирование белого гауссовского шума
- •Фильтрация данных в matlaBе
- •Ход работы:
- •Варианты заданий:
- •Контрольные вопросы:
Импульсные и частотные характеристики цифровых фильтров
Импульсную характеристику фильтра с коэффициентами числителя и коэффициенты знаменателя вычисляют посредством оператора impz. Его запись такова
[h, t] = impz (b, a).
MATLAB отображает значения характеристики в векторе-столбце h, времени в векторе-столбце t.
Если указанная функция записана в виде impz (b, a) без аргументов, то получим график импульсной дискретной характеристики фильтра в текущем окне.
Частотная характеристика фильтра с коэффициентами числителя b и коэффициентами знаменателя вычисляется посредством оператора freqz. Форма его вызова такова
[h, f] = freqz (b, a).
MATLAB отображает значения частотной характеристики в векторе-столбце h, частоту в векторе-столбце f.
Если записать функцию в виде freqz (b, a) без аргументов, то получим график частотной характеристики фильтра в текущем окне фигуры.
Пример 2. Построить импульсную и частотную характеристики цифрового фильтра низкой частоты 10-го порядка, полученного в примере 1.
impz (b, a)
freqz (b, a)
Полученные графики показаны на рис. 2 (рис.2.а – импульсная характеристика, рис. 2.б - частотная характеристика).
a b
Рис.2
Формирование белого гауссовского шума
Идеализированный
случайный процесс с нормальным
распределением, т.е. "белый" шум
может быть получен в MATLABе посредством
использования оператора randn.
Достаточно задать дискрет времени
,
образовать с этим шагом массив (вектор)
моментов времени в нужном диапазоне, а
затем сформировать по указанной процедуре
вектор-столбец длиной, равной длине
вектора
.
Пример 3. Построить белый шум на интервале от 0 до 20 с = 0.01с.
Ts=0.01;
t=0:Ts:20;
x = randn(1,length(t));
plot(t,x), grid
title('Белый шум');
xlabel('Время (сек)');
ylabel('x(t)')
Фильтрация данных в matlaBе
Фильтрация - преобразование заданного сигнала с помощью линейного фильтра, описываемого дискретной передаточной функцией вида
Фильтрация осуществляется в MATLABе при помощи оператора filter следующим образом
y = filter(b, a, x),
где x – заданный вектор значений входного сигнала; y – вектор значений выходного сигнала фильтра, получаемого вследствие фильтрации; b, a – вектор коэффициентов числителя, знаменателя дискретной передаточной функции фильтра.
Чтобы избежать фазовых искажений полезного сигнала при его восстановлении, можно воспользоваться процедурой двойной фильтрации – filtfilt. Обращение к ней имеет такую же форму, что и к процедуре filter. В отличие от последней процедура filtfilt осуществляет обработку вектора x в два приема: сначала в прямом, а затем в обратном направлении. Результат имеет практически нулевое искажение фазы и амплитуду, измененную квадратом отклика амплитуды фильтра.
Ход работы:
Имеется
полезный сигнал
длительностью
,
к которому в результате его измерения
прибавляется белый шум
с интенсивностью
.
Для нечетных вариантов
и для четных –
.
Известен также порядок фильтра
и время (период) дискретизации
.
Необходимо:
построить полезный сигнал ;
сгенерировать белый шум с интенсивностью ;
построить белый шум;
рассчитать зашумленный сигнал
, как сумму полезного сигнала и помехи измерения;
построить зашумленный сигнал ;
6) вычислять частоту среза;
спроектировать цифровой фильтр низкой частоты с помощью указанного окна;
построить импульсную характеристику спроектированного фильтра;
построить частотную характеристику спроектированного фильтра;
выполнить фильтрацию зашумленного сигнала с помощью функций filter и filtfilt.
выполнить сравнение восстановленного процесса и полезного сигнала на одном графике в обоих вариантах фильтрации.