Цифровая обработка сигналов — лабораторная работа №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 элементов [bbb2 1 aa2] и соответствует функции передачи вида . Параметр g — общий коэффициент усиления. Обратное преобразование: [b, a] = sos2tf(sos, g).

Обработка сигнала фильтром, представленным в виде секций второго порядка: y = sosfilt(sos, x). Здесь x — вектор отсчетов входного сигнала, sos — матрица описания секций второго порядка, y — выходной сигнал.

Получение характеристик дискретного фильтра: функция fvtool(b, a). Входные параметры — векторы коэффициентов числителя (b) и знаменателя (a) функции передачи фильтра.

Расчет частотной характеристики дискретного фильтра: функция freqz (см. описание работы № 1).

Расчет импульсной характеристики дискретного фильтра: функция impz (см. описание работы № 1).

Параметры пространства состояния для различных форм реализации фильтра

В формулах использованы следующие обозначения:

·  Imm — единичная матрица размером m´m;

·  0mn — нулевая матрица, содержащая m строк и n столбцов.

Прямая форма

Размер вектора состояния — m + n. Параметры пространства состояния:

D = b0

Каноническая форма

Размер вектора состояния — max(mn). Далее считаем m и n равными m, при необходимости считая недостающие коэффициенты нулевыми.

Параметры пространства состояния:

D = b0

Транспонированная прямая форма

Размер вектора состояния — max(mn). Далее считаем m и n равными m, при необходимости считая недостающие коэффициенты нулевыми.

Параметры пространства состояния:

D = b0