Главная страница

ыс. А. Б. Сергиенко минобрнауки россии санктПетербургский государственный электротехнический университет лэти им. В. И. Ульянова (Ленина) А. В. Петров а. Б. Сергиенко цифровая обработка сигналов лабораторный практикум


Скачать 1.73 Mb.
НазваниеА. Б. Сергиенко минобрнауки россии санктПетербургский государственный электротехнический университет лэти им. В. И. Ульянова (Ленина) А. В. Петров а. Б. Сергиенко цифровая обработка сигналов лабораторный практикум
Дата06.04.2023
Размер1.73 Mb.
Формат файлаpdf
Имя файлаdsp_labs_2018-1.pdf
ТипПрактикум
#1040607
страница5 из 8
1   2   3   4   5   6   7   8
3.3. Индивидуальное задание
В данной лабораторной работе используется сигнал из индивидуального задания для лабораторной работы № 1. Дополнительные индивидуальные па- раметры отсутствуют.
3.4. Указания к выполнению работы
1. Подготовка к началу работы. Запустите MATLAB и сделайте теку- щей папку вашей бригады на сервере дисплейного класса.
Создайте в редакторе MATLAB новый файл MATLAB-программы и скопируйте в него часть кода из программы, созданной при выполнении ла- бораторной работы № 1 или № 2. Необходимо выбрать фрагмент кода, с по- мощью которого формируется исходный дискретный сигнал и строится его график.
Сохраните новую программу с соответствующим именем и добейтесь ее стабильной работы (программа должна формировать вектор отсчетов дис- кретного сигнала и строить его график).
Последующие пункты работы выполняются путем дополнения создан- ной MATLAB-программы.
2. Расчет ДПФ. Вычислите ДПФ для дискретного сигнала из индивиду- ального задания. Используя функцию stem, постройте графики модуля и фа- зы спектральных отсчетов в одном графическом окне друг под другом (с по- мощью функции subplot).

39
Справка
Для вычисления ДПФ в MATLAB имеется функция fft (она вычисляет
ДПФ с использованием быстрых алгоритмов — FFT, Fast Fourier Transform).
В простейшем случае она вызывается без дополнительных параметров:
y = fft(x)
. Здесь x — вектор отсчетов сигнала; y — вектор результатов вычисления ДПФ.
Замечание
Чтобы улучшить внешний вид частотных графиков, целесообразно изменить принятые по умолчанию пропорции графического окна, растянув его в ширину.
3. Оценка ширины спектра сигнала. Используя обратное ДПФ, опре- делите минимальное число низкочастотных гармонических составляющих сигнала, содержащих не менее 90 % его энергии. Примерная последователь- ность действий:
1. Рассчитайте энергию исходного сигнала:
2 0
( )
k
E
x k
=

(3.6)
2. Создайте копию вектора результатов ДПФ под новым именем.
3. Обнулите в созданной копии результатов ДПФ те элементы, которые соответствуют гармоникам с номерами, превышающими некоторое порого- вое значение
N
max
. Исходное значение
N
max следует принять равным 0.
Замечание
При определении диапазона номеров обнуляемых элементов ДПФ следует принять во внимание следующее:
• нумерация элементов массивов в MATLAB начинается с единицы;
• первое значение в массиве результатов ДПФ соответствует постоянной со-
ставляющей сигнала (
(0)
X
ɺ
);
• для получения корректного спектра вещественного сигнала в векторе ре- зультатов ДПФ должны сохраняться пары значений, соответствующие парам одинаковых по модулю положительных и отрицательных частот;
• вторая половина вектора результатов ДПФ с учетом периодичности спек- тров дискретных сигналов соответствует отрицательным частотам. В каче- стве примера в табл. 3.1 приведены разные способы нумерации элементов 8- точечного ДПФ. Двойной рамкой и полужирным шрифтом в таблице выделен диапазон элементов вектора, который необходимо обнулить в случае N
max
= 2.

40
Таблица 3.1
Номер элемента вектора MATLAB
1 2 3 4 5
6
7 8
Номер n из теоретической формулы ДПФ
0 1 2 3 4
5
6 7
Нумерация с использованием отрицательных частот 0 1 2 3
±4 3 −2 −1 4. Вычислите обратное ДПФ и постройте график получившегося сигна- ла функцией stem.
Справка
Вычисление обратного ДПФ производится с помощью функции ifft:
x = ifft(y);
5. Вычислите энергию получившегося сигнала по (3.6). Если она мень- ше, чем 90 % энергии исходного сигнала E
0
, увеличьте N
max на единицу и повторите шаги 3–5.
Поиск значения N
max можно реализовать вручную (задавая новое значе- ние, запуская программу и анализируя результаты) либо написать MATLAB- программу, которая будет это делать автоматически.
В результате выполнения данного пункта работы должно быть получено значение N
max
, при котором сигнал после обратного БПФ содержит не менее
90 % энергии исходного сигнала. Кроме того, должен быть построен график указанного сигнала вместе с исходным в общих координатных осях.
4. Дополнение сигнала нулями. Скопируйте исходный дискретный сигнал в переменную с новым именем и добавьте к концу этой копии сигнала нулевые отсчеты в количестве, равном длине сигнала (длина вектора должна, таким образом, увеличиться в 2 раза). Вычислите ДПФ для дополненного ну- лями сигнала, постройте (с помощью функции stem) графики модуля и фазы спектральных отсчетов в одном графическом окне друг под другом (с помо- щью функции subplot).
Замечание
Чтобы улучшить внешний вид частотных графиков, целесообразно изменить принятые по умолчанию пропорции графического окна, растянув его в ширину.
5. Измерение скорости расчетов при вычислении ДПФ непосредст-
венно по теоретической формуле. Функция fft гибко выбирает алгоритм вычисления в зависимости от длины преобразуемого сигнала, поэтому изме- рить с ее помощью скорость вычислений по прямой формуле не удастся. Для реализации такого измерения придется вычислять ДПФ как произвольное

41 линейное преобразование — путем перемножения вектора сигнала и квад- ратной матрицы преобразования.
Справка
Матрица преобразования для ДПФ рассчитывается функцией dftmtx (N — размер вычисляемой матрицы ДПФ):
D = dftmtx(N);
Для измерения скорости вычислений необходимо реализовать следую- щий код (предполагается, что вектор сигнала xстрока). Для измерения времени выполнения фрагмента кода используется пара функций tic и toc
(первая запускает таймер, вторая выводит результат), вычисления повторяют- ся в цикле много раз, чтобы время выполнения кода было достаточно велико.
Внимание!
Число повторений цикла (в приведенном примере — 1000) необходимо по- добрать экспериментально, чтобы время расчета при N = 1024 составляло
примерно 1 секунду. Это время ощутимо варьируется от запуска к запуску, так что стремиться к большой точности здесь не следует.
N = 1024; % размер ДПФ
% дополнение сигнала нулями до длины N
x1 = [x zeros(1, N-length(x))];
D = dftmtx(N); % матрица ДПФ
y = zeros(1, N); % массив для результатов ДПФ
tic % старт таймера
for k = 1:1000 % цикл для измерения времени
y = x1 * D; % вычисление ДПФ по прямой формуле
end
toc % отображение измеренного времени
Запишите подобранное число повторений цикла K и занесите измерен- ное время выполнения кода при N = 1024 в табл. 3.2.
Таблица 3.2
N
Параметр
64 128 256 512 1024 2048 4096 8192
Время, с
Время одно- кратного вычис- ления ДПФ, мкс
Повторите эксперимент для остальных значений N, указанных в табли- це, не меняя подобранное число повторений цикла K.

42
Внимание!
Все измерения должны осуществляться на одном и том же компьютере.
Последняя строка таблицы заполняется при подготовке отчета путем де- ления измеренных значений времени на использованное число повторений цикла K.
Внимание!
Время работы кода растет пропорционально N
2
, поэтому для последнего зна- чения 8192 оно будет составлять около 1 минуты.
6. Измерение скорости расчетов при вычислении ДПФ с использо-
ванием быстрого алгоритма. Функция fft гибко выбирает алгоритм вы- числения в зависимости от длины преобразуемого сигнала, и при длине, рав- ной степени двойки, будет использован широко известный алгоритм Кули—
Тьюки, число операций в котором пропорционально N log
2
(N).
Для измерения скорости вычислений необходимо реализовать следую- щий код. Его общая структура аналогична коду, приведенному выше, однако в явном виде дополнять сигнал нулями не нужно — функции fft можно пе- редать дополнительный входной параметр, указывающий размерность вы- числяемого ДПФ: y = fft(x, N).
Внимание!
Число повторений цикла (в приведенном примере — 100 000) необходимо подобрать экспериментально, чтобы время расчета при N = 1024 составляло
примерно 1 секунду. Это число должно оказаться примерно в 100 раз больше, чем в предыдущем случае.
N = 1024; % размер ДПФ
y = zeros(1, N); % массив для результатов ДПФ
tic % старт таймера
for k = 1:100000 % цикл для измерения времени
y = fft(x, N); % вычисление БПФ
end
toc % отображение измеренного времени
Запишите подобранное число повторений цикла K и занесите измерен- ное время выполнения кода при N = 1024 в таблицу, по форме повторяющую табл. 3.2.

43
Повторите эксперимент для остальных значений N, указанных в табли- це, не меняя подобранное число повторений цикла K.
Внимание!
Все измерения должны осуществляться на том же компьютере, на котором производились измерения при вычислении ДПФ непосредственно по теоре- тической формуле.
Последняя строка таблицы заполняется при подготовке отчета путем де- ления измеренных значений времени на использованное число повторений цикла K.
7. Подготовка материалов для отчета. В завершение работы необхо- димо скопировать в документ Microsoft Word (в качестве заготовки для отче- та) созданный программный код и все полученные графики:
• исходный дискретный сигнал;
• модуль и фазу результатов ДПФ;
• дискретный сигнал, восстановленный после обнуления части гармо- ник, и исходный сигнал, построенные в общих координатных осях;
• модуль и фазу результатов ДПФ при дополнении сигнала нулями.
3.5. Содержание отчета
Отчет должен содержать созданный в процессе работы программный код, оформленный в виде законченного документа (с заголовками разделов, формулами и комментариями к коду). Полученные в ходе работы графики и заполненные таблицы размещаются в соответствующих разделах отчета.
Используя значение N
max
, необходимо рассчитать ширину спектра сиг- нала в герцах.
Кроме того, в соответствующем разделе должны быть построены графи- ки затрат времени на однократное вычисление ДПФ прямым и быстрым ме- тодами. Для получения этих данных следует разделить занесенные в таблицы значения времени на использованное количество повторений цикла. Вдоль горизонтальной оси следует откладывать log
2
(N). Вертикальная ось также должна быть представлена в логарифмическом масштабе.
Совместно с этими экспериментальными графиками следует построить аппроксимирующие зависимости:
• для прямого расчета ДПФ: t = k
1
N
2
;
• для быстрого расчета ДПФ: t = k
2
N log
2
(N).

44
Коэффициенты k
1
и k
2
необходимо подобрать самостоятельно так, что- бы аппроксимирующая зависимость при значениях N = 1024 и 8192 была как можно ближе к результатам измерений. Значения k
1
и k
2
должны быть при- ведены в отчете.
В конце отчета необходимо привести выводы по результатам работы.
3.6. Контрольные вопросы
1. Запишите матрицу ДПФ для N = 4.
2. Как вычислить энергию сигнала через его ДПФ?
3. Является ли монотонной зависимость энергии сигнала после обнуле- ния части спектра и обратного ДПФ от числа использованных гармоник? От- вет обосновать.
4. Можно ли найти такой сигнал {x(k)} длиной N отсчетов, чтобы его
ДПФ совпадало с самим сигналом, т. е. чтобы для всех n выполнялось равен- ство
( )
( )
X n
x n
=
ɺ
?
5.
Длину дискретного сигнала увеличили в 2 раза путем дублирования каждого отсчета ({x(0), x(0), x(1), x(1), …, x(N

1), x(N

1)}). Как изменятся результаты ДПФ?
6.
Сигнал представляет собой сумму двух синусоид с частотами 300 и
320 Гц. Частота дискретизации равна 10 кГц, длина сигнала 500 отсчетов.
Как примерно будет выглядеть модуль ДПФ этого сигнала?
7.
Сигнал представляет собой сумму двух синусоид с частотами 400 и
450 Гц. Частота дискретизации равна 5 кГц, длина сигнала 200 отсчетов. Как примерно будет выглядеть модуль ДПФ этого сигнала?
8.
Сигнал представляет собой сумму двух синусоид с частотами 500 и
525 Гц. Частота дискретизации равна 10 кГц, к сигналу длиной 400 отсчетов добавлено столько же нулевых значений. Как примерно будет выглядеть мо- дуль ДПФ этого сигнала?
9.
Последовательность отсчетов {x(k)} длиной N (k = 0, 1, …, N

1) подвергли прямому ДПФ. К полученному результату еще раз применили прямое ДПФ. Чему будет равен результат? (Выразить его через {x(k)}.)
10.
Последовательность отсчетов {x(k)} длиной N (k = 0, 1, …, N

1) подвергли обратному ДПФ. К полученному результату еще раз применили обратное ДПФ. Чему будет равен результат? (Выразить его через {x(k)}.)

45 11.
Отсчеты последовательности {x(k)} являются чисто мнимыми. Каки- ми свойствами благодаря этому будет обладать ее ДПФ?
12.
Придумайте максимально эффективную (по числу арифметических операций) схему реализации ДПФ для N = 3. Сколько вещественных сложе- ний/вычитаний и умножений она требует? (Считать, что вычитание — от- дельная операция, по сложности эквивалентная сложению, так что операции умножения на

1 не требуются.)
13.
Как с помощью ДПФ можно получить N равномерно расположенных отсчетов спектра (
(
)
2
X j
n N
π
ɺ
, n = 0, 1, …, N − 1) последовательности ко- нечной длины, состоящей из M > N отсчетов?
14.
Запишите матрицу ДПФ для N = 6.
15.
К спектральному отсчету
(
2)
X N
ɺ
прибавили единицу. Как изменит- ся последовательность отсчетов {x(k)}, которой это ДПФ соответствует?
16.
Экспериментальные и аппроксимирующие зависимости временных затрат на однократное вычисление ДПФ прямым и быстрым методами рас- ходятся при низких значениях N. Как это можно объяснить?

46
4. ПРОЕКТИРОВАНИЕ ДИСКРЕТНЫХ ФИЛЬТРОВ
4.1. Цели работы
Синтез дискретного ФНЧ, удовлетворяющего заданным требованиям, путем использования нескольких алгоритмов:
• билинейного преобразования и четырех стандартных аналоговых про- тотипов;
• синтеза с использованием оконных функций;
• минимаксного синтеза;
• минимизации среднеквадратической ошибки.
4.2. Теоретические сведения
Под проектированием (или синтезом) цифрового фильтра понимается выбор таких наборов коэффициентов {a
i
} и {b
i
}, при которых характеристи- ки получающегося фильтра удовлетворяют заданным требованиям.
При синтезе ФНЧ набор задаваемых параметров может выглядеть сле- дующим образом (рис. 4.1):
F
д
— частота дискретизации;
F
pass
— граница полосы пропускания;
F
stop
— граница полосы задерживания;
A
pass
— допустимая неравномерность АЧХ в полосе пропускания;
A
stop
— требуемое подавление сигнала в полосе задерживания.
0
f
|
K( )
f
|
F
pass
A
pass
A
stop
F
stop
F
д
/2
Рис. 4.1. Параметры, требуемые для синтеза ФНЧ
Серые области на рисунке демонстрируют допуски, в которые должна укладываться АЧХ фильтра в полосах пропускания и задерживания. В пере-

47 ходной зоне (диапазон частот F
pass
F
stop
) никаких требований к АЧХ рас- считываемого фильтра не предъявляется.
Номинальное значение коэффициента передачи фильтра в полосе про- пускания, как правило, равно единице (0 дБ). В зависимости от способа рас- чета фильтра отклонения коэффициента передачи в полосе пропускания от единицы могут быть как односторонними, так и двусторонними.
Методы синтеза цифровых фильтров можно классифицировать по раз- личным признакам:
• по типу получаемого фильтра:
‒ методы синтеза рекурсивных фильтров;
‒ методы синтеза нерекурсивных фильтров;
• по наличию аналогового прототипа:
‒ методы синтеза с использованием аналогового прототипа (метод би- линейного z-преобразования);
прямые (без использования аналогового прототипа) методы синтеза:
оптимальные, в которых численными итерационными метода- ми ищется минимум заданной функции качества (минимаксный син- тез и минимизация квадратической ошибки);
субоптимальные, не дающие оптимального решения, но позво- ляющие значительно упростить вычисления по сравнению с опти- мальными методами (синтез с использованием окон).
Метод билинейного z-преобразования
позволяет синтезировать рекур- сивный дискретный фильтр по частотной характеристике аналогового прото- типа. При синтезе дискретного фильтра по аналоговому прототипу необхо- димо реализовать переход из p-области в z-область, т. е. преобразовать функ- цию передачи аналогового фильтра H(p) в функцию передачи дискретного фильтра H(z). Получающийся дискретный фильтр не может быть полностью идентичен аналоговому по своим характеристикам — хотя бы потому, что частотные характеристики дискретного фильтра являются периодическими.
Можно говорить только об определенном соответствии характеристик ана- логового и дискретного фильтров.
Функция передачи аналоговой цепи с сосредоточенными параметрами представляет собой дробно-рациональную функцию переменной p. Чтобы по- лучить функцию передачи дискретного фильтра, необходимо перейти из
p-области в z-область, причем дробно-рациональный характер функции должен

48 сохраниться. Поэтому замена для переменной p должна представлять собой также дробно-рациональную функцию переменной z. Чтобы частотные харак- теристики аналогового и дискретного фильтров были связаны простой зависи- мостью, искомая замена переменной должна отображать мнимую ось в
p-области на единичную окружность в z-области. В этом случае частотные ха- рактеристики аналогового и дискретного фильтров будут связаны лишь транс- формацией частотной оси, и никаких искажений «по вертикали» не будет.
Простейшей из функций, удовлетворяющих перечисленным требовани- ям, является билинейное преобразование (bilinear transformation):
1
д
1 2
1 1
2 1
1
z
z
p
F
T z
z




=
=
+
+
Частотные характеристики аналогового а
( )
K ω
ɺ
и дискретного д
( )
K
ω
ɺ
фильтров, как уже было сказано, связаны друг с другом лишь трансформаци- ей частотной оси (для наглядного сопоставления формул частотная характе- ристика дискретного фильтра представлена как функция абсолютной частоты
T
ω = ωɶ ): д
а
2
( )
tg
2
T
K
K
T

ω



ω =








ɺ
ɺ
, а
д
2
( )
arctg
2
T
K
K
T

ω



ω =








ɺ
ɺ
На низких частотах, когда ωT << 1, тангенс примерно равен своему ар- гументу, откуда следует
2
tg
2
T
T
ω

 ≈ ω




Поэтому в области низких частот частотные характеристики аналогово- го и дискретного фильтров почти совпадают. Далее, по мере ускорения роста функции тангенса, частотная характеристика дискретного фильтра все силь- нее сжимается по горизонтали (по сравнению с аналоговым прототипом) и на частоте Найквиста, равной π/T, достигает значения, которое частотная харак- теристика аналогового фильтра имела бы на бесконечной частоте (рис. 4.2).
При билинейном z-преобразовании левая половина p-плоскости отобра- жается внутрь единичной окружности на z-плоскости, поэтому синтез по ус-

49 тойчивому аналоговому прототипу даст гарантированно устойчивый дис- кретный фильтр.
0
w
0
w д
/2
w
|
( )|
K
а w
|
( )|
K
д w
Рис. 4.2. Трансформация частотной оси при билинейном
z-преобразовании
Для получения дискретного фильтра с заданными частотами среза необ- ходимо скорректировать частоты среза аналогового прототипа, чтобы ком- пенсировать искажения частотной оси. Так, для синтеза дискретного ФНЧ с частотой среза ω
0д аналоговый фильтр-прототип должен иметь частоту среза
ω

, связанную с ω
0д следующим образом:


2
tg
2
T
T
ω


ω =




1   2   3   4   5   6   7   8


написать администратору сайта