Файл: А. Б. Сергиенко минобрнауки россии санктПетербургский государственный электротехнический университет лэти им. В. И. Ульянова (Ленина) А. В. Петров а. Б. Сергиенко цифровая обработка сигналов лабораторный практикум.pdf
ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 18.01.2024
Просмотров: 243
Скачиваний: 12
ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.
26
2.4. Указания к выполнению работы
1. Подготовка к началу работы. Запустите MATLAB и сделайте теку- щей папку вашей бригады.
Создайте в редакторе MATLAB новый файл MATLAB-программы и скопируйте в него часть кода из программы, созданной при выполнении ла- бораторной работы № 1. Необходимо выбрать фрагмент кода, с помощью ко- торого формируется исходный дискретный сигнал и строится его график.
Сохраните новую программу с соответствующим именем и добейтесь, чтобы она работала (программа должна формировать вектор отсчетов дис- кретного сигнала и строить его график).
Замечание
В данной работе при построении графиков сигналов для оцифровки горизон- тальной оси целесообразно использовать не время, а
номера отсчетов, вы- зывая функции plot и stem с одним аргументом: plot(x) и т. п.
2. Пропускание сигнала через дискретный фильтр. Чтобы увидеть за- тухающие переходные процессы, возникающие после завершения сигнала, добавьте к нему нулевые отсчеты в конце. Число нулевых отсчетов должно быть равно числу отсчетов исходного дискретного сигнала.
Справка
Функция zeros(m, n) возвращает заполненную нулями матрицу с m стро- ками и n столбцами. Функция length(x) возвращает длину вектора x. Со- единить две матрицы по горизонтали можно, записав их в квадратных скобках через пробел или запятую. Таким образом, если сигнал хранится в переменной
x и представляет собой вектор-строку, дополнить его нулями можно так:
x0 = [x, zeros(1, length(x))];
Получите выходной сигнал фильтра, воспользовавшись для его реализа- ции имеющейся в MATLAB готовой функцией filter.
Справка
Функция filter реализует обработку сигнала дискретным фильтром.
Функция используется следующим образом:
y = filter(b, a, x);
Здесь b — вектор [b0 b1 b2 b3 b4] коэффициентов числителя функции передачи; a — вектор [1 a1 a2 a3 a4] коэффициентов знаменателя функции передачи (см. (2.6)); x — входной сигнал; y — выходной сигнал.
27
Внимание!
Обратите внимание на то, что для фильтра 4-го порядка векторы коэффици- ентов содержат пять элементов, так как в них присутствуют коэффициенты в том числе для нулевой степени полиномов. Кроме того, не забудьте, что от- сутствующий в индивидуальном задании коэффициент a
0
(он всегда равен единице, см. (2.6)) при вызове функции filter должен быть включен в со- став вектора параметров a.
Постройте график выходного сигнала с помощью функции stem. Гра- фик должен демонстрировать искаженный фильтром сигнал, а также зату- хающий переходный процесс, происходящий после окончания сигнала на входе фильтра.
3. Анализ прямой формы реализации дискретного фильтра. Струк- турная схема прямой формы реализации дискретного фильтра показана на рис. 2.3. При использовании прямой формы реализации дискретного фильтра в элементах памяти (элементах задержки) хранятся непосредственно отсчеты входного и выходного сигналов, поэтому все необходимые для анализа этой формы сигналы уже были получены при выполнении предыдущего пункта работы.
Определите максимальное по модулю значение сигналов, хранящихся в элементах памяти при работе фильтра (т. е. выберите наибольший из макси- мумов модулей входного и выходного сигналов), и занесите его в табл. 2.2.
Таблица 2.2
Форма реализации фильтра Максимальное по модулю внутреннее состояние
Прямая
Каноническая
Транспонированная
Справка
Для определения максимального значения элемента вектора служит функция
max:
xmax = max(x);
С помощью этой же функции можно выбрать максимум из двух чисел:
max_a_b = max(a, b);
Для вычисления модуля числа служит функция abs.
4. Анализ канонической формы реализации дискретного фильтра.
Структурная схема канонической формы реализации дискретного фильтра
28 показана на рис. 2.4. При использовании канонической формы реализации дискретного фильтра в элементах памяти хранятся отсчеты сигнала, про- шедшего через рекурсивную часть фильтра, т. е. через фильтр с функцией пе- редачи следующего вида:
1 1
2 3
4 1
2 3
4 1
( )
1
H z
a z
a z
a z
a z
−
−
−
−
=
+
+
+
+
(2.7)
Получите сигнал, хранящийся в элементах памяти фильтра, реализован- ного в соответствии с канонической формой, пропустив входной сигнал че- рез фильтр с функцией передачи (2.7), использовав для этого функцию
1 2 3 4 5 6 7 8
filter.
Постройте график полученного сигнала с помощью функции stem.
Определите максимальное по модулю значение полученного сигнала и занесите его в табл. 2.2.
5. Анализ транспонированной формы реализации дискретного
фильтра. Структурная схема транспонированнойформы реализации дис- кретного фильтра показана на рис. 2.5. Из схемы видно, что элементы памяти
не образуют линию задержки, как это было в прямой и канонической фор- мах. Поэтому в данном случае необходимо получить графики для всех сигна- лов, проходящих через элементы памяти фильтра.
Проще всего для этого воспользоваться тем фактом, что функция
filter реализует обработку сигнала именно по схеме рис. 2.5, и, кроме того, она предоставляет возможность доступа к внутреннему состоянию фильтра.
Справка
Для доступа к внутреннему состоянию фильтра функция filter использу- ется следующим образом:
[y, s_out] = filter(b, a, x, s_in);
Дополнительный входной параметр s_in задает начальное внутреннее со- стояние, а в дополнительном выходном результате s_out функция возвраща- ет итоговое внутреннее состояние, достигнутое после обработки сигнала x.
Для получения всей истории изменения внутреннего состояния в про- цессе работы фильтра необходимо организовать цикл, в котором через фильтр будут пропускаться отдельные отсчеты сигнала. После обработки каждого отсчета внутреннее состояние фильтра будет сохраняться в виде очередного столбца отведенной для этого матрицы.
29
В приводимом ниже примере кода предполагается, что обрабатываемый сигнал хранится в векторе с именем x.
states = []; % заготовка матрицы внутренних состояний
s = []; % текущее состояние фильтра
for k = 1:length(x)
% обработка одного отсчета с заданием и сохранением
% внутреннего состояния фильтра
[y(k), s] = filter(b, a, x(k), s);
% добавление нового столбца к матрице состояний
states = [states s];
end
По окончании работы цикла вся история изменения внутреннего состоя- ния фильтра будет записана в матрицу states. Разные строки этой матрицы соответствуют разным элементам памяти фильтра, разные столбцы — раз- ным моментам времени.
Постройте в общих координатных осях графики всех внутренних сигна- лов фильтра с помощью функции plot.
Справка
Функция plot при передаче ей матричного параметра строит отдельные гра- фики для всех столбцов матрицы. Поэтому для получения графиков всех внутренних сигналов фильтра матрицу states необходимо транспониро- вать: plot(states').
Определите максимальное по модулю значение внутреннего состояния, достигаемое при работе фильтра, и занесите его в табл. 2.2.
Справка
Функция max при передаче ей матричного аргумента находит максимум для каждого столбца матрицы отдельно. Чтобы найти значение, максимальное для всей матрицы, нужно вызвать функцию max 2 раза либо преобразовать матрицу в один столбец, указав двоеточие в качестве номера элемента:
A_max = max(max(A));
A_max = max(A(:));
6. Получение графиков характеристик фильтра. Вызовите среду ви- зуализации характеристик фильтров (Filter Visualization Tool, FVTool), пере- дав ей векторы коэффициентов фильтра аналогично тому, как это делается при вызове функции filter (приведенная ниже команда набирается в ко- мандном окне MATLAB):
30
fvtool(b, a)
Выбор просматриваемых характеристик и управление параметрами ана- лиза производятся с помощью средств графического интерфейса окна, от- крывающегося после вызова данной функции.
Копирование графиков в буфер обмена производится с помощью коман- ды меню Edit Copy Figure окна среды FVTool.
Получите и перенесите в документ Microsoft Word (в качестве заготовки для отчета) следующие графики:
• АЧХ (Magnitude Response);
• фазочастотная характеристика (ФЧХ; Phase Response);
• групповая задержка (Group Delay Response);
• импульсная характеристика (Impulse Response);
• расположение нулей и полюсов функции передачи на комплексной плоскости (Pole/Zero Plot).
7. Получение аналитической формулы для импульсной характери-
стики фильтра. Разложите функцию передачи фильтра на простые дроби с помощью функции residuez.
Справка
Функция residuez используется следующим образом:
[r, p, k] = residuez(b, a)
Входные параметры: b и a — векторы коэффициентов фильтра (аналогично функции filter).
Выходные результаты: r — вектор вычетов, p — вектор соответствующих им полюсов, k — вектор коэффициентов целой части функции передачи.
Функции передачи используемых в лабораторной работе фильтров имеют одинаковые степени полиномов числителя и знаменателя, поэтому вектор k содержит лишь один элемент.
После вызова функции residuez необходимо вычислить модули и фа- зы полюсов и вычетов (с помощью функций abs и angle соответственно) и занести эти результаты в табл. 2.3. В эту же таблицу нужно занести и значе- ние целой части функции передачи k.
При подготовке отчета по лабораторной работе необходимо получить аналитическую формулу для импульсной характеристики фильтра (см. (2.3),
(2.4)). После получения импульсной характеристики в комплексной форме
31 необходимо выполнить суммирование комплексно-сопряженных пар (2.5), приведя импульсную характеристику к вещественному виду.
8. Подготовка материалов для отчета. В за- вершение работы необходимо скопировать в доку- мент Microsoft Word (в качестве заготовки для отчета) созданный программный код и все полученные гра- фики:
• входной и выходной сигналы фильтра;
• внутренний сигнал фильтра, реализованного в канонической форме;
• внутренние сигналы фильтра, реализованного в транспонированной форме;
• графики характеристик фильтра, полученные в среде FVTool.
Таблица 2.3
Модуль
Фаза, рад
Вычеты
r
1
r
2
r
3
r
4
Полюсы
p
1
p
2
p
3
p
4
Целая часть
k
2.5. Содержание отчета
Отчет должен содержать:
1. Структурные схемы всех трех форм реализации фильтра с подписан- ными числовыми значениями коэффициентов.
2. Созданный в процессе работы программный код, оформленный в виде законченного документа (с заголовками разделов, формулами и коммента- риями к коду).
3. Полученные в ходе работы графики и заполненные таблицы (разме- щаются в соответствующих разделах отчета).
4. Вывод аналитической формулы для импульсной характеристики фильтра.
5. Выводы по результатам работы.
2.6. Контрольные вопросы
1. Оценить по графику ФЧХ групповую задержку, вносимую фильтром в полосе пропускания.
2. Как примерно будет выглядеть график частотной зависимости груп- повой задержки, если изменить ФЧХ фильтра указанным образом?
3. Импульсная характеристика фильтра представляет собой сумму экс- поненциально затухающих синусоидальных колебаний. Исходя из располо-
32 жения нулей и полюсов функции передачи на комплексной плоскости, оце- нить период (в отсчетах) этих синусоидальных колебаний.
4. Как, исходя из расположения нулей и полюсов функции передачи на комплексной плоскости, можно оценить частоту среза ФНЧ?
5. Как будет примерно выглядеть АЧХ фильтра, если добавить пару ну- лей функции передачи в указанных точках z-плоскости?
6. Что произойдет с АЧХ фильтра, если заданным образом изменить расположение полюсов функции передачи на z-плоскости?
7. Что произойдет с импульсной и частотной характеристиками фильт- ра, если в формуле для его функции передачи произвести замену переменной
z → z
2
?
8. Что произойдет с импульсной и частотной характеристиками фильт- ра, если у всех полюсов и нулей функции передачи поменять знак: p
i
→ −p
i
,
z
i
→ −z
i
?
9. Что произойдет с импульсной и частотной характеристиками ком- плексного фильтра, если все полюсы и нули функции передачи заменить на комплексно-сопряженные: p
i
→
*
i
p
,
z
i
→
*
i
z
?
10. Что произойдет с импульсной и частотной характеристиками фильт- ра, если в формуле для его функции передачи заменить
z
на −
z
?
11. Определить функцию передачи между двумя указанными точками структурной схемы фильтра.
12. Исходя из коэффициентов функции передачи фильтра, пояснить ре- зультаты, полученные при анализе сигналов внутри схемы, соответствующей канонической реализации фильтра.
13. Почему для канонической реализации пиковое значение внутренних состояний оказывается намного больше, чем для прямой схемы?
14. Получить функцию передачи для фильтра, представленного в про- странстве состояний:
2 1
1 3
=
A
,
1 1
=
B
,
[
]
2 1
=
C
, D = 1.
15.
Получить функцию передачи для фильтра, представленного в про- странстве состояний параметрами A, B, C, D, заданными преподавателем.
16. Как изменятся параметры пространства состояний, если внести в структурную схему фильтра указанные преподавателем изменения?
33
3. ДИСКРЕТНОЕ ПРЕОБРАЗОВАНИЕ ФУРЬЕ
3.1. Цели работы
• Расчет дискретного преобразования Фурье (ДПФ) средствами MAT-
LAB.
• Оценка с помощью прямого и обратного ДПФ полосы частот, в кото- рой сосредоточена основная доля энергии сигнала.
• Наблюдение изменений результатов вычисления ДПФ, происходящих при дополнении сигнала нулевыми отсчетами.
• Оценка степени ускорения вычислений за счет алгоритмов быстрого преобразования Фурье (БПФ).
3.2. Теоретические сведения
Дискретное преобразование Фурье — это разновидность преобразова- ния Фурье, специально предназначенная для анализа дискретных сигналов конечной длительности. При этом данное преобразование определено для периодически продолженного сигнала конечной длительности x(k),
k = 0, …, N−1:
(
)
( )
для любого
x k
N
x k
k
+
=
(3.1)
Поскольку сигнал (3.1) является дискретным, его спектр должен быть периодическим с периодом 2π/
T, где T — период дискретизации. Так как этот сигнал является также и периодическим, его спектр должен быть дискретным с расстоянием между гармониками, равным 2π/(NT). Далее, если не оговоре- но иное, предполагается, что период дискретизации равен 1 с.
Прямое и обратное ДПФ рассчитываются по следующим формулам: прямое:
2 1
0
( )
( )
nk
N
j
N
k
X n
x k e
π
−
−
=
=
∑
ɺ
,
(3.2) обратное:
2 1
0 1
( )
( )
nk
N
j
N
n
x k
X n e
N
π
−
=
=
∑
ɺ
Связь ДПФ и спектра дискретного сигнала. Имея один и тот же ко- нечный набор чисел, можно рассчитать либо спектральную функцию этого дискретного сигнала по (1.3), либо его ДПФ по (3.2). Разумеется, возникает