Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

ЛР2 Дискретные фильтры

.docx
Скачиваний:
0
Добавлен:
27.01.2026
Размер:
463.26 Кб
Скачать

МИНОБРНАУКИ РОССИИ

Санкт-Петербургский государственный

электротехнический университет

«ЛЭТИ» им. В.И. Ульянова (Ленина)

Кафедра ТОР

отчет

по лабораторной работе №2

по дисциплине «Цифровая обработка сигналов»

Тема: ДИСКРЕТНЫЕ ФИЛЬТРЫ

Студенты гр.

Преподаватель

Апалина П.В.

Санкт-Петербург

202X

Цели работы

• Пропускание дискретного сигнала через дискретный фильтр и получение графика выходного сигнала.

• Анализ сигналов, проходящих через элементы памяти фильтра, при реализации фильтра в разных формах.

• Получение графиков характеристик фильтра с помощью среды визуализации фильтров FVTool.

• Разложение функции передачи фильтра на простые дроби и получение аналитической формулы для импульсной характеристики фильтра.

Индивидуальное задание

В данной лабораторной работе используется сигнал из индивидуального задания для лабораторной работы № 1. Этот сигнал в процессе выполнения работы пропускается через дискретный рекурсивный фильтр 4-го порядка, функция передачи которого имеет вид:

Коэффициенты фильтра b0…b4, a1…a4 являются индивидуальными для каждой бригады и выдаются преподавателем (табл. 1).

Таблица 1. Индивидуальное задание

b0

b1

b2

b3

b4

a0

a1

a2

a3

a4

0,0018

0,0072

0,0108

0,0072

0,0018

1

-2,7737

3,0190

-1,5048

0,2879

Обработка данных

1. Формирование кусочно-линейного дискретного сигнала

close all;

U1 = 4; % сигнал из работы 1

U2 = 4;

U3 = 8;

U4 = 0;

T1 = 0.006;

T2 = 0.01;

Fd = 3000;

% Построим график дискретного сигнала

% В данной работе при построении графиков сигналов для оцифровки

% горизонтальной оси целесообразно использовать не время, а номера

% отсчетов, вызывая функции plot и stem с одним аргументом: plot(x) и т. п.

T = 1/Fd;

t1 = 0:T:T1;

t2 = T1:T:T2;

a1 = 0;

b1 = 4;

u1 = a1*t1 + b1

a2 = -U3/(T2-T1);

b2 = -a2*T2;

u2 = a2*t2 + b2;

x0 = [zeros(1, 31)]; % Сделаем строку из 31 нулевых отсчетов

u = [u1(1:end-1) u2 x0]; % добавим нулевые отсчеты в конец графика

%t = [t1(1:end-1) t2];

figure(1);

stem(u);

x0 = [zeros(1, 100)]; %добавим ещё нулей

u = [u1(1:end-1) u2 x0];

Рис. 4. График дискретного сигнала прямой формы реализации дискретного фильтра

2. Пропускание сигнала через дискретный фильтр

%% Анализ прямой формы реализации дискретного фильтра

%Получим выходной сигнал фильтра, воспользовавшись для его реализации

%имеющейся в MATLAB готовой функцией filter.

b = [0.0018 0.0072 0.0108 0.0072 0.0018];

a = [1 -2.7737 3.0190 -1.5048 0.2879];

%u - входной сигнал

y_pr = filter(b, a, u);

figure(2);

stem(y_pr);

Рис. 5. График дискретного сигнала канонической формы реализации дискретного фильтра

3. Анализ прямой формы реализации дискретного фильтра

ymax_pr = abs(max(y_pr)); % Определим максимальное по модулю значение сигналов,

%хранящихся в элементах памяти при работе фильтра

Результаты для всех фильтров приведены в таблице 2.

4. Анализ канонической формы реализации дискретного фильтра

%% Анализ канонической формы реализации дискретного фильтра

y_kan = filter(1, a, u);

figure(3);

stem(y_kan);

Рис. 6. График дискретного сигнала канонической формы реализации дискретного фильтра

ymax_kan = abs(max(y_kan)); % Определим максимальное по модулю значение сигналов,

%хранящихся в элементах памяти при работе фильтра

5. Анализ транспонированной формы реализации дискретного фильтра.

%% Анализ транспонированной формы реализации дискретного фильтра

%Элементы памяти не образуют линию задержки, как это было в прямой и

%канонической формах. Поэтому в данном случае необходимо получить графики

%для всех сигналов, проходящих через элементы памяти фильтра.

%[y_trans, s_out] = filter(b, a, u, s_in);

%Дополнительный входной параметр s_in задает начальное внутреннее

%состояние, а в дополнительном выходном результате s_out функция

%возвращает итоговое внутреннее состояние, достигнутое после

%обработки сигнала x.

%Для получения всей истории изменения внутреннего состояния в про-

%цессе работы фильтра необходимо организовать цикл, в котором через

%фильтр будут пропускаться отдельные отсчеты сигнала. После обработки

%каждого отсчета внутреннее состояние фильтра будет сохраняться в виде

%очередного столбца отведенной для этого матрицы.

states = []; % заготовка матрицы внутренних состояний

s = []; % текущее состояние фильтра

for k = 1:length(u)

% обработка одного отсчета с заданием и сохранением

% внутреннего состояния фильтра

[y_trans(k), s] = filter(b, a, u(k), s);

% добавление нового столбца к матрице состояний

states = [states s];

end

figure(4);

plot(states');

ymax_trans = max(states(:));

%% Получение графиков характеристик фильтра

fvtool(b, a)

Рис. 7. Сигнал после фильтра c транспонированной формой реализации

Таблица 2. Результаты анализа фильтров

Форма реализации фильтра

Максимальное по модулю внутреннее состояние

Прямая

1794

Каноническая

4.429

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

10.367

6. Получение графиков характеристик фильтра

Рис. 7. АЧХ фильтра

Рис. 8. ФЧХ фильтра

Рис. 9. Групповая задержка фильтра

Рис. 10. Импульсная характеристика фильтра

Рис. 11. Расположение нулей и полюсов функции передачи

7. Получение аналитической формулы для импульсной характеристики фильтра

%% Получение аналитической формулы для импульсной характеристики фильтра

%Разложим функцию передачи фильтра на простые дроби

%с помощью функции residuez.

[r, p, k] = residuez(b, a);

%Выходные результаты: r — вектор вычетов, p — вектор соответствующих

%им полюсов, k — вектор коэффициентов целой части функции передачи

%После вызова функции residuez необходимо вычислить модули и фазы

%полюсов и вычетов (с помощью функций abs и angle соответственно)

r_mod = abs(r); %вычисление модулей вычетов

p_mod = abs(p); %вычисление модулей полюсов

r_ang = angle(r); %вычисление фаз вычетов

p_ang = angle(p); %вычисление фаз полюсов

Таблица 3. Модули и фазы полюсов и вычетов

Модуль

Фаза, рад

Вычеты

r1

0,2324

2,6976

r2

0,2324

-2,6976

r3

0,6206

-1,2297

r4

0,6206

1,2297

Полюсы

p1

0,8383

0,4407

p2

0,8383

-0,4407

p3

0,64

0,1892

p4

0,64

-0,1892

Целая часть

k

0,0063

Импульсная характеристика имеет вид:

Подставив значения из таблицы 3, получим:

Пара комплексно-сопряженных полюсов дает пару слагаемых импульсной характеристики в виде комплексно-сопряженных экспонент. Сумма таких слагаемых представляет собой вещественную синусоиду с экспоненциально меняющейся амплитудой:

Тогда можно привести импульсную характеристику к вещественному виду:

Вывод

В ходе данной лабораторной работы дискретный сигнал полученный в предыдущей работы был пропущен через дискретный фильтр. Были получены сигналы, проходящие через элементы фильтра при прямой, канонической и транспонированной формах реализации. Также было произведено разложение функции передачи на простые дроби и получена аналитическая формула для импульсной характеристики фильтра.