ЛР2 Дискретные фильтры Вариант2
.docxМИНОБРНАУКИ РОССИИ
Санкт-Петербургский государственный
электротехнический университет
«ЛЭТИ» им. В.И. Ульянова (Ленина)
Кафедра ТОР
отчет
по лабораторной работе №2
по дисциплине «Цифровая обработка сигналов»
Тема: Дискретные фильтры
|
|
|
Студенты гр. |
|
|
|
|
|
Преподаватель |
|
Апалина П.В. |
Санкт-Петербург
202X
Цели работы.
– Пропускание дискретного сигнала через дискретный фильтр и получение графика выходного сигнала;
– Анализ сигналов, проходящих через элементы памяти фильтра, при реализации фильтра в разных формах;
– Получение графиков характеристик фильтра с помощью среды визуализации фильтров FVTool;
– Разложение функции передачи фильтра на простые дроби и получение аналитической формулы для импульсной характеристики фильтра.
Структурные схемы.
На рис. 1 – 3 приведены структурные схемы реализации дискретного фильтра, соответствующие различным вариантам представления одной и той же функции передачи в пространстве состояний.
Рисунок 1 – Прямая форма реализации дискретного фильтра
Рисунок 2 – Каноническая форма реализации фильтра
Рисунок 3 – Транспонированная форма реализации фильтра
Программный код.
clear; %удаление переменных из рабоченй области
close all; %закрытие всех графических окон
%1. Создание переменных
U1 = 0; %В
U2 = 8; %В
U3 = 3; %В
U4 = 0; %В
T1 = 4; %мс
T2 = 7; %мс
Fd = 5; %кГц
a = [1, -2.5614, 2.9222, -1.6586, 0.3931]; %вектор коэффициентов знаменателя функции передачи
b = [0.0056, 0.0224, 0.0336, 0.0224, 0.0056]; %вектор коэффициентов числителя функции передачи
%2. Формирование дискретного сигнала
T = 1/Fd; %интервал дискретизации, мс
Tk1 = 0:T:T1; %вектор моментов времени взятия отсчетов первого линейного фрагмента
Tk2 = T1:T:T2; %вектор моментов времени взятия отсчетов второго линейного фрагмента
Tk = [Tk1 Tk2(2:end)]; %вектор моментов времени взятия отсчетов
u1T = 2*Tk1; %значения отсчетов первого линейного фрагмента
u2T = -1*Tk2 + 7; %значения отсчетов второго линейного фрагмента
xk = [u1T(1:(length(u1T) - 1)) (u1T(end)+u2T(1))/2 u2T(2:end)]; %значения отсчетов всего дискретного сигнала
xk0 = [xk zeros(1,length(xk))]; %добавление к вектору значений отсчетов нулей
figure; %окно для вывода графика дискретного сигнала
stem(xk0); %график дискретного сигнала
xlabel('k'); %подпись оси абсцисс
ylabel('x(k), B'); %подпись оси ординат
%3. Пропускание сигнала через дискретный фильтр
y_st = filter(b, a, xk0); %обработка сигнала дискретным фильтром
figure; %окно для вывода графика выходного сигнала фильтра
stem(y_st); %выходной сигнал фильтра
xlabel('k'); %подпись оси абсцисс
ylabel('y(k), B'); %подпись оси ординат
b_kan = [1, 0, 0, 0, 0]; %вектор коэффициентов числителя функции передачи для расчета сигнала, прошедшего через рекурсивную часть фильтра
y_kan = filter(b_kan, a, xk0); %обработка сигнала дискретным фильтром
figure; %окно для вывода графика сигнала
stem(y_kan); %сигнал, хранящийся в элементах памяти фильтра, реализованного в соответствии с канонической формой
xlabel('k'); %подпись оси абсцисс
ylabel('yвнутр(k), B'); %подпись оси ординат
states = []; %заготовка матрицы внутренних состояний
s = []; %текущее состояние фильтра
for k = 1:length(xk0)
[y(k), s] = filter(b, a, xk0(k), s); %обработка одного отсчета с заданием и сохранением внутреннего состояния фильтра
states = [states s]; %добавление нового столбца к матрице состояний
end
figure; %окно для вывода графиков
plot(states.'); %графики всех внутренних сигналов фильтра
xlabel('k'); %подпись оси абсцисс
ylabel('yвнутр(k), B'); %подпись оси ординат
legend('yвнутр1(k)', 'yвнутр2(k)', 'yвнутр3(k)', 'yвнутр4(k)');
%4. Определение максимального по модулю значения сигнала (внутреннего
%состояния) хранящегося в элементах памяти при работе фильтра
max_straight = max(max(abs(y_st)), max(abs(xk0))); %для прямой формы реализации фильтра
max_kanon = max(max(abs(y_kan)), max(abs(xk0))); %для канонической формы реализации фильтра
max_trans = max(max(abs(states))); %для транспонированной формы реализации фильтра
Форма реализации фильтра |
Максимальное по модулю внутреннее состояние |
Прямая |
7.6000 |
Каноническая |
76.0032 |
Транспонированная |
10.7597 |
%5. Получение графиков характеристик фильтра
%ввод в командную строку команды fvtool(b, a)
%6. Получение аналитической формы для импульсной характеристики фильтра
[r, p, k] = residuez(b, a); %разложение функции передачи на простые дроби
r_mod = abs(r); %вычисление модулей вычетов
p_mod = abs(p); %вычисление модулей полюсов
r_ang = angle(r); %вычисление фаз вычетов
p_ang = angle(p); %вычисление фаз полюсов
|
Модуль |
Фаза, рад |
|
Вычеты |
|
r1 |
0.1318 |
2.0847 |
r2 |
0.1318 |
– 2.0847 |
r3 |
0.3724 |
– 1.4077 |
r4 |
0.3724 |
1.4077 |
|
Полюсы |
|
p1 |
0.8839 |
0.8000 |
p2 |
0.8839 |
– 0.8000 |
p3 |
0.7093 |
0.3559 |
p4 |
0.7093 |
– 0.3559 |
|
Целая часть |
|
k |
0.0142 |
|
Представление функции передачи в виде суммы простых дробей:
Обратное z-преобразование:
Объединение комплексно-сопряженных пар:
Выводы.
В ходе лабораторной работы дискретный сигнал из предыдущей работы был пропущен через дискретный фильтр с получением графика выходного сигнала. Были получены сигналы, проходящие через элементы фильтра при прямой, канонической и транспонированной формах реализации и графики различных характеристик фильтра. Также было произведено разложение функции передачи на простые дроби и получена аналитическая формула для импульсной характеристики фильтра.
