Цифровая обработка сигналов — лабораторная работа №2
Указания по выполнению работы
Необходимые данные из работы № 1:
· Вектор отсчетов дискретного сигнала.
· Коэффициенты числителя (b) и знаменателя (a) функции передачи рассчитанного фильтра нижних частот.
1. Исследование поведения внутреннего состояния фильтра
Для фильтра нижних частот, рассчитанного в процессе выполнения работы № 1, исследовать поведение внутреннего состояния в зависимости от времени при различных формах реализации. Исследуются следующие формы реализации:
· прямая;
· каноническая;
· транспонированная прямая.
Для каждой формы реализации производится обработка двух сигналов:
· Дискретного сигнала, полученного в процессе выполнения работы № 1 согласно индивидуальному заданию (для наблюдения затухающего «хвоста» выходного сигнала входной сигнал необходимо дополнить некоторым количеством нулевых отсчетов).
· Дискретного белого гауссова шума с нулевым средним и единичной дисперсией (1000 некоррелированных отсчетов; формируется с помощью функции randn(1, 1000)).
Для каждой формы реализации и каждого сигнала необходимо зафиксировать максимальную (по модулю) величину внутреннего состояния фильтра, достигаемую в процессе обработки. По результатам заполняется следующая таблица.
Форма реализации | Макс. абс. внутреннее состояние | |
фильтра | Сигнал из инд. задания | Дискретный белый шум |
Прямая | ||
Каноническая | ||
Транспонированная прямая |
Для унификации расчетов все формы реализации фильтра рассматриваются как реализация в пространстве состояний. Необходимо получить для каждой формы реализации параметры пространства состояний A, B, C, D. Далее обработка сигнала с сохранением всей истории смены внутреннего состояния системы может производиться с помощью следующего цикла (предполагается, что обрабатываемый сигнал обозначен идентификатором x):
s = zeros(size(B)); % вектор состояния – начальное значение
S = zeros(length(s), length(x)); % история работы – начальное значение
for k = 1:length(x) % цикл по отсчетам сигнала
S(:,k) = s; % сохранение истории смены внутреннего состояния
y(k) = C*s + D*x(k); % расчет выходного сигнала
s = A*s + B*x(k); % обновление внутреннего состояния
end
После выполнения обработки можно построить график зависимости от времени для всех элементов внутреннего состояния:
plot(S')
или график зависимости максимального абсолютного значения внутреннего состояния от времени:
plot(max(abs(S)))
Получить значение для записи в таблицу можно, набрав следующую команду:
max(max(abs(S)))
2. Исследование влияния округления коэффициентов фильтра
Исследовать влияния округления коэффициентов фильтра на его параметры (импульсную и частотную характеристику). Округление осуществляется с точностью 1/256 (можно использовать следующий код MATLAB: x = 256*round(x/256)). Исследование проводится для следующих форм реализации фильтра:
· прямая;
· последовательная (в виде каскадного соединения секций второго порядка).
Необходимо получить и привести в отчете графики АЧХ и импульсной характеристики до и после округления для каждой из форм реализации фильтра.
Полезные функции MATLAB
Формирование единичной матрицы размером N´N — eye(N).
Формирование нулевой матрицы размером M´N — zeros(M, N).
Преобразование параметров пространства состояния в коэффициенты числителя и знаменателя функции передачи фильтра (полезно для контроля правильности формирования параметров A, B, C, D):
[b, a] = ss2tf(A, B, C, D)
Формирование матрицы размером M ´ N, заполненной некоррелированными гауссовыми случайными числами с нулевым средним и единичной дисперсией: randn(M, N).
Преобразование коэффициентов числителя и знаменателя функции передачи фильтра в набор параметров секций второго порядка: [sos, g] = tf2sos(b, a). Строки возвращаемой функцией матрицы sos содержат описания отдельных секций фильтра. Каждая строка содержит 6 элементов [b0 b1 b2 1 a1 a2] и соответствует функции передачи вида
. Параметр g — общий коэффициент усиления. Обратное преобразование: [b, a] = sos2tf(sos, g).
Обработка сигнала фильтром, представленным в виде секций второго порядка: y = sosfilt(sos, x). Здесь x — вектор отсчетов входного сигнала, sos — матрица описания секций второго порядка, y — выходной сигнал.
Получение характеристик дискретного фильтра: функция fvtool(b, a). Входные параметры — векторы коэффициентов числителя (b) и знаменателя (a) функции передачи фильтра.
Расчет частотной характеристики дискретного фильтра: функция freqz (см. описание работы № 1).
Расчет импульсной характеристики дискретного фильтра: функция impz (см. описание работы № 1).
Параметры пространства состояния для различных форм реализации фильтра
В формулах использованы следующие обозначения:
· Im, m — единичная матрица размером m´m;
· 0m, n — нулевая матрица, содержащая m строк и n столбцов.
Прямая форма
Размер вектора состояния — m + n. Параметры пространства состояния:
|
Каноническая форма
Размер вектора состояния — max(m, n). Далее считаем m и n равными m, при необходимости считая недостающие коэффициенты нулевыми. Параметры пространства состояния:
|
Транспонированная прямая форма
Размер вектора состояния — max(m, n). Далее считаем m и n равными m, при необходимости считая недостающие коэффициенты нулевыми. Параметры пространства состояния:
|









