Файл: А. Б. Сергиенко минобрнауки россии санктПетербургский государственный электротехнический университет лэти им. В. И. Ульянова (Ленина) А. В. Петров а. Б. Сергиенко цифровая обработка сигналов лабораторный практикум.pdf
ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 18.01.2024
Просмотров: 240
Скачиваний: 12
ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.
Ñàíêò-Ïåòåðáóðã
2018
ЦИФРОВАЯ
ОБРАБОТКА СИГНАЛОВ
А. В. Петров, А. Б. Сергиенко
МИНОБРНАУКИ РОССИИ
Санкт-Петербургский государственный электротехнический университет «ЛЭТИ» им. В. И. Ульянова (Ленина)
А. В. ПЕТРОВ А. Б. СЕРГИЕНКО
ЦИФРОВАЯ ОБРАБОТКА СИГНАЛОВ
Лабораторный практикум
Санкт-Петербург
Издательство СПбГЭТУ «ЛЭТИ»
2018
УДК 621.391
ББК 32.811.3
П30
Петров А. В., Сергиенко А. Б.
П30 Цифровая обработка сигналов: лабораторный практикум. СПб.: Изд-во
СПбГЭТУ «ЛЭТИ», 2018. 78 с.
ISBN 978-5-7629-2342-2
Представлено описание пяти компьютерных лабораторных работ, вы- полняемых при изучении курса «Цифровая обработка сигналов» в системе
MATLAB с использованием специализированного пакета расширения Signal
Processing Toolbox.
Предназначено для студентов факультета радиотехники и телекоммуни- каций, обучающихся по программам подготовки бакалавров по направлению
11.03.01 «Радиотехника», а также по программе подготовки специалистов по специальности 11.05.01 «Радиоэлектронные системы и комплексы».
УДК 621.391
ББК 32.811.3
Рецензенты: кафедра радиосистем и обработки сигналов Санкт-
Петербургского государственного университета телекоммуникаций им. проф.
М. А. Бонч-Бруевича; канд. техн. наук В. М. Москалев (Военно-космическая академия им. А. Ф. Можайского).
Утверждено редакционно-издательским советом университета в качестве учебного пособия
ISBN 978-5-7629-2342-2
СПбГЭТУ «ЛЭТИ», 2018
3
1. ДИСКРЕТНЫЕ СИГНАЛЫ
1.1. Цели работы
• Знакомство со средой MATLAB.
• Формирование и построение графика кусочно-линейного дискретного сигнала.
• Расчет и построение графика спектра дискретного сигнала.
• Расчет и построение графика аналогового сигнала, восстановленного по дискретным отсчетам в соответствии с теоремой Котельникова.
1.2. Теоретические сведения
Дискретизация аналогового сигнала. Исходный физический сигнал
(напряжение, ток и т. д.) является непрерывной функцией времени s(t). Такие сигналы, определенные во все моменты времени, называют аналоговыми
(рис. 1.1, а). Последовательность чисел {x(k)}, представляющая сигнал при цифровой обработке, является дискретным рядом и не может полностью со- ответствовать аналоговому сигналу (рис. 1.1, б).
t
0
k
0
s(t)
x(k)
а
б
Рис. 1.1. Аналоговый (а) и дискретный (б) сигналы
Числа, составляющие последовательность {x(k)}, являются значениями сигнала в отдельные (дискретные) моменты времени и называются отсчета-
ми сигнала x(k). Как правило, отсчеты берутся через равные промежутки времени T, называемые периодом дискретизации (или интервалом, шагом дискретизации):
x(k) = s(kT).
(1.1)
Величина, обратная периоду дискретизации, называется частотой дис-
кретизации: F
д
= 1/T. Соответствующая ей круговая частота определяется следующим образом: ω
д
= 2π/T.
4
В общем случае представление сигнала набором дискретных отсчетов приводит к потере информации, так как мы ничего не знаем о поведении сиг- нала в промежутках между отсчетами. Однако существует класс аналоговых сигналов, для которых такой потери информации не происходит и которые могут быть точно восстановлены по значениям своих дискретных отсчетов.
Процесс преобразования аналогового сигнала в последовательность от- счетов называется дискретизацией, а результат такого преобразования —
дискретным сигналом.
Спектр дискретного сигнала. Преобразование Фурье (ПФ) позволяет вычислить спектральную плотность сигнала, представляющего собой непре- рывную функцию времени:
( )
( )
j t
S
s t e
dt
∞
− ω
−∞
ω =
∫
ɺ
(1.2)
ПФ — это взаимная корреляционная функция (ВКФ) при нулевом сдви- ге между сигналом и комплексными гармоническими колебаниями с разны- ми частотами. Поэтому спектр дискретного сигнала рассчитывается анало- гичным образом через ВКФ в дискретном времени:
( )
( )
j k
k
X
x k e
∞
− ω
=−∞
ω =
∑
ɶ
ɺ ɶ
,
(1.3) где ω
ɶ — нормированная частота. Она равна изменению фазы между сосед- ними отсчетами гармонического сигнала и измеряется в радианах на отсчет.
Из этой формулы видно главное свойство спектра любого дискретного сигнала: спектр является периодическим, его период равен 2π рад/отсчет (это значение соответствует нормированной частоте дискретизации: д
2
ω = π
ɶ
рад/отсчет):
(
2 )
( )
X
X
ω ± π =
ω
ɺ
ɺ
ɶ
ɶ .
Следует также обратить внимание на размерность спектральной функ- ции дискретного сигнала: она совпадает с размерностью отсчетов.
Установим связь между спектром дискретного сигнала и спектром ана- логового сигнала. Пусть значения
x
(
k
) являются отсчетами аналогового сиг- нала
s
(
t
), взятыми с периодом
T
(1.1). В этом случае спектр дискретного сиг- нала (см. (1.3)) связан со спектром аналогового сигнала (1.2) следующим об- разом:
5 д
1 2
( )
n
n
X
S
T
T
∞
=−∞
ω − π
ω =
∑
ɶ
ɺ
ɺ
ɶ
(1.4)
Таким образом, спектр дискретного сигнала представляет собой беско- нечный ряд сдвинутых копий спектра исходного непрерывного сигнала
s
(
t
)
(на рис. 1.2 изображен модуль спектра дискретного сигнала). Расстояние по частоте между соседними копиями спектра равно частоте дискретизации
ω
д
= 2π/
T
0
w д
/2
w
–w д
| ( )|
X w
–
/2
w д
w д
0
p w
–2p
–p
2p
Рис. 1.2. Модуль спектра дискретного сигнала
Характер спектра дискретного сигнала демонстрирует частотно- временную дуальность преобразования Фурье:
• периодический сигнал → дискретный спектр (ряд Фурье);
• периодический спектр → дискретный сигнал.
Формула (1.3) позволяет рассчитать спектр последовательности отсче- тов {
x
(
k
)}, никак не связывая эти отсчеты с аналоговым сигналом. Форму- ла (1.4) предполагает, что отсчеты {
x
(
k
)} получены путем дискретизации аналогового сигнала
s
(
t
), и показывает связь между спектрами дискретного и аналогового сигналов. Следует подчеркнуть, что эти 2 формулы дают одина- ковый результат.
Отсюда следует еще один важный факт. Соединить отсчеты {
x
(
k
)} для получения аналогового сигнала можно произвольным образом. В каждом случае аналоговый сигнал будет, разумеется, иметь свой спектр. Однако ре- зультат суммирования сдвинутых копий спектров по формуле (1.4) всегда будет одним и тем же, поскольку определяется только значениями дискрет- ных отсчетов {
x
(
k
)} = {
s
(
kT
)} и формулой (1.3).
Формула обратного преобразования Фурье в дискретном времени анало- гична формуле вычисления коэффициентов комплексного ряда Фурье:
6 1
( )
( )
2
j k
x k
X
e
d
π
ω
−π
=
ω
ω
π
∫
ɶ
ɺ ɶ
ɶ
Свойства преобразования Фурье в дискретном времени. Под свойст- вами ПФ подразумевается взаимное соответствие трансформаций сигналов и их спектров. Ниже перечислены основные свойства ПФ в дискретном времени.
Линейность. ПФ в дискретном времени, согласно определению (1.3), является линейной комбинацией отсчетов последовательности, поэтому оно подчиняется принципу суперпозиции:
1 2
( )
( )
( )
y k
ax k
bx k
=
+
↔
1 2
( )
( )
( )
Y
aX
bX
ω =
ω +
ω
ɺ
ɺ
ɺ
ɶ
ɶ
ɶ .
Задержка.
При задержке сигнала на
∆k
отсчетов амплитудный спектр не меняется, а фазовый спектр приобретает дополнительное слагаемое
k
−ω∆
ɶ
, линейно зависящее от частоты:
( )
(
)
y k
x k
k
=
− ∆
↔ ( )
( )
j
k
Y
X
e
− ω∆
ω =
ω
ɶ
ɺ
ɺ
ɶ
ɶ
Свертка.
Линейной свертке дискретных последовательностей соответ- ствует произведение их спектров:
1 2
( )
( )
(
)
n
y k
x n x k
n
∞
=−∞
=
−
∑
↔
1 2
( )
( )
( )
Y
X
X
ω =
ω
ω
ɺ
ɺ
ɺ
ɶ
ɶ
ɶ .
Чередование знаков сигнала.
Изменение знаков у элементов исходной последовательности с нечетными номерами приводит к сдвигу спектра сиг- нала по частоте на π рад/отсчет:
( )
( ) ( 1)
k
y k
x k
−
=
⋅ −
↔ ( )
(
)
Y
X
ω =
ω + π
ɺ
ɺ
ɶ
ɶ
Инвертирование последовательности во времени.
Инверсия последо- вательности отсчетов во времени соответствует инверсии спектра по частоте:
( )
(
)
y k
x
k
= −
↔ ( )
(
)
Y
X
ω =
−ω
ɺ
ɺ
ɶ
ɶ .
Вставка нулей.
Вставка
N
– 1 нулей между соседними элементами ис- ходной последовательности приводит к сужению спектра сигнала в
N
раз:
(
),
,
( )
где — любое целое число,
0,
,
x k N
k
Nm
y k
m
k
Nm
=
=
≠
↔ ( )
(
)
Y
X N
ω =
ω
ɺ
ɺ
ɶ
ɶ .
Восстановление аналогового сигнала по теореме Котельникова. Ри- сунок 1.2 наглядно демонстрирует и способ восстановления непрерывного сигнала по дискретным отсчетам. Для этого необходимо пропустить дис-
7 кретный сигнал через идеальный фильтр нижних частот (ФНЧ) с частотой среза, равной половине частоты дискретизации. Амплитудно-частотная ха- рактеристика (АЧХ) такого фильтра показана на рис. 1.2 штриховой линией, а импульсная характеристика (ИХ) имеет форму sin(
) (
)
t T
t T
π
π
. Выходной сигнал (если сдвинутые копии спектра на рис. 1.2 не перекрываются, он бу- дет в точности совпадать с исходным аналоговым сигналом), таким образом, будет представлять собой сумму сдвинутых и умноженных на отсчеты сиг- нала копий ИХ идеального ФНЧ: sin
( )
(
)
k
t
kT
T
s t
s kT
t
kT
T
∞
=−∞
−
π
=
−
π
∑
(1.5)
Подводя итог сказанному, сформулируем
теорему Котельникова: лю- бой сигнал
s(t), спектр которого не содержит составляющих с частотами вы- ше некоторого значения в
в
2
f
ω = π , может быть без потерь информации пред- ставлен своими дискретными отсчетами {
s(kT)}, взятыми с интервалом T, удовлетворяющим следующему неравенству: в
в
1 2
T
f
π
<
=
ω
Восстановление исходного непрерывного сигнала s(t) по набору его дис- кретных отсчетов {s(kT)} производится по формуле (1.5).
1.3. Индивидуальное задание
В данной лабораторной работе рассматри- вается кусочно-линейный сигнал s(t), заданный параметрами U
k
, T
k
, k = 1…4, как показано на рис. 1.3.
При выполнении работы производится дискретизация данного сигнала с заданной час- тотой F
д
Параметры сигнала и используемая часто- та дискретизации являются индивидуальными для каждой бригады и выдаются преподавате- лем в виде табл. 1.1.
0
Т
1
Т
2
U
1
U
2
U
3
U
4
s t
( )
t
Рис. 1.3. Кусочно-линейный сигнал, исследуемый в работе
8
Таблица 1.1
U
1
, В
U
2
, В
U
3
, В
U
4
, В
T
1
, мс
T
2
, мс
F
д
, кГц
1.4. Указания к выполнению работы
1. Запуск MATLAB и знакомство с его средой.
Запустите программу
MATLAB (ее значок на рабочем столе имеет вид
). Откроется окно
MATLAB.
MATLAB — интерпретируемый язык программирования, позволяющий осуществлять вычисления как в интерактивном режиме, так и путем запуска программ (сценариев, scripts). Работа в интерактивном режиме сводится к на- бору в командной строке MATLAB необходимых команд (выполнение ко- манды производится после нажатия клавиши
Enter
), например:
>> A = sqrt(cos(pi/12)^2 + 1)
A =
1.3903
В результате выполнения данной команды будет создана переменная A со значением, равным
(
)
2
cos
12 1
π
+ .
• Создайте переменные для всех параметров сигнала (U
1
…U
4
, T
1
, T
2
) и частоты дискретизации F
д
Справка
Все созданные и хранящиеся на данный момент в памяти переменные ото- бражаются в рабочей области Workspace.
2. Формирование дискретного сигнала. MATLAB ориентирован на работу с векторами и матрицами. Используйте эти возможности для создания
вектора отсчетов заданного сигнала: x(k) = u(kT), где T = 1/F
д
— интервал дискретизации.
• Сформируйте вектор моментов времени взятия отсчетов.
Справка
Для создания векторов в виде арифметических прогрессий используется сим- вол двоеточия. Конструкция x1:dx:x2 означает создание равномерной по- следовательности чисел с первым элементом x1, шагом dx и конечным зна- чением, равным x2 или меньше его не более чем на dx. Если шаг последова- тельности равен единице, dx можно не указывать: x1:x2.
9
• Рассчитайте значения отсчетов первого линейного фрагмента сигнала
(u(t) = a
1
t + b
1
при t = 0…T
1
). Значения параметров a
1
и b
1
, а также диапазон используемых номеров элементов вектора моментов времени определите са- мостоятельно.
Справка
Для обращения к части элементов вектора нужно указать в круглых скобках
вектор номеров этих элементов. Чаще всего требуется обращение к одиноч- ному элементу (x(n)) или сплошному диапазону номеров (x(n1:n2)). Для ссылки на последний элемент можно использовать ключевое слово end.
Внимание!
В отличие от многих языков программирования, нумерация элементов в
MATLAB всегда начинается с единицы!
• Аналогичным образом рассчитайте значения отсчетов второго линей- ного фрагмента сигнала (u(t) = a
2
t + b
2
при t = T
1
…T
2
). Значения параметров
a
2
и b
2
, а также диапазон используемых номеров элементов вектора момен- тов времени определите самостоятельно.
Замечание
Если на момент взятия отсчета приходится скачок уровня аналогового сигна- ла, для целей данной работы значение дискретного отсчета может быть вы- брано произвольно в пределах диапазона скачка. Однако с теоретической точки зрения правильнее всего принять значение отсчета равным середине скачка (полусумме значений аналогового сигнала справа и слева от скачка).
• Постройте график дискретного сигнала, использовав сначала функ- цию plot, а затем функцию stem, чтобы сравнить результаты их работы.
Справка
Наиболее часто для построения графиков используется функция plot в форме plot(y) или plot(x, y) (в первом случае по горизонтали откла- дываются номера элементов вектора, во втором варианте строится зависи- мость y(x)). Параметры x и y должны быть векторами одинаковой длины.
Для построения графиков дискретных сигналов полезна функция stem, ко- торая имеет такой же синтаксис. Она строит графики в виде вертикальных
«стебельков».
10
3. Создание MATLAB-программы. Для дальнейшей работы необходи- мо превратить код, созданный в интерактивном режиме, в MATLAB- программу (сценарий, script). Для этого выполните следующее:
• Создайте (средствами Windows) папку для лабораторных работ вашей бригады. Место расположения этих папок указывает преподаватель.
• В окне MATLAB сделайте созданную папку бригады текущей папкой.
Для этого служит поле Current Folder в верхней части окна.
• В панели истории введенных команд (Command History) выделите команды, с помощью которых задавались параметры дискретного сигнала и производилось его формирование (выделение диапазона строк производится путем щелчка мышью при нажатой клавише Shift). Скопируйте выделенные команды в буфер обмена.
Справка
Если панель Command History отсутствует на экране, включите ее отобра- жение командой меню Desktop Command History.
• Создайте новый файл MATLAB-программы (самый левый значок
(New script) панели инструментов, команда меню File New Script или клавиши Ctrl + N) и вставьте программный код из буфера обмена.
• Сохраните файл, дав ему соответствующее имя.
Справка
Имена файлов в MATLAB фактически являются идентификаторами пере-
менных, поэтому на них налагаются ограничения. Допустимые символы: ла- тинские буквы, цифры, символ подчеркивания; первый символ — не цифра.
1 2 3 4 5 6 7 8
Ñàíêò-Ïåòåðáóðã
2018
ЦИФРОВАЯ
ОБРАБОТКА СИГНАЛОВ
А. В. Петров, А. Б. Сергиенко
МИНОБРНАУКИ РОССИИ
Санкт-Петербургский государственный электротехнический университет «ЛЭТИ» им. В. И. Ульянова (Ленина)
А. В. ПЕТРОВ А. Б. СЕРГИЕНКО
ЦИФРОВАЯ ОБРАБОТКА СИГНАЛОВ
Лабораторный практикум
Санкт-Петербург
Издательство СПбГЭТУ «ЛЭТИ»
2018
УДК 621.391
ББК 32.811.3
П30
Петров А. В., Сергиенко А. Б.
П30 Цифровая обработка сигналов: лабораторный практикум. СПб.: Изд-во
СПбГЭТУ «ЛЭТИ», 2018. 78 с.
ISBN 978-5-7629-2342-2
Представлено описание пяти компьютерных лабораторных работ, вы- полняемых при изучении курса «Цифровая обработка сигналов» в системе
MATLAB с использованием специализированного пакета расширения Signal
Processing Toolbox.
Предназначено для студентов факультета радиотехники и телекоммуни- каций, обучающихся по программам подготовки бакалавров по направлению
11.03.01 «Радиотехника», а также по программе подготовки специалистов по специальности 11.05.01 «Радиоэлектронные системы и комплексы».
УДК 621.391
ББК 32.811.3
Рецензенты: кафедра радиосистем и обработки сигналов Санкт-
Петербургского государственного университета телекоммуникаций им. проф.
М. А. Бонч-Бруевича; канд. техн. наук В. М. Москалев (Военно-космическая академия им. А. Ф. Можайского).
Утверждено редакционно-издательским советом университета в качестве учебного пособия
ISBN 978-5-7629-2342-2
СПбГЭТУ «ЛЭТИ», 2018
3
1. ДИСКРЕТНЫЕ СИГНАЛЫ
1.1. Цели работы
• Знакомство со средой MATLAB.
• Формирование и построение графика кусочно-линейного дискретного сигнала.
• Расчет и построение графика спектра дискретного сигнала.
• Расчет и построение графика аналогового сигнала, восстановленного по дискретным отсчетам в соответствии с теоремой Котельникова.
1.2. Теоретические сведения
Дискретизация аналогового сигнала. Исходный физический сигнал
(напряжение, ток и т. д.) является непрерывной функцией времени s(t). Такие сигналы, определенные во все моменты времени, называют аналоговыми
(рис. 1.1, а). Последовательность чисел {x(k)}, представляющая сигнал при цифровой обработке, является дискретным рядом и не может полностью со- ответствовать аналоговому сигналу (рис. 1.1, б).
t
0
k
0
s(t)
x(k)
а
б
Рис. 1.1. Аналоговый (а) и дискретный (б) сигналы
Числа, составляющие последовательность {x(k)}, являются значениями сигнала в отдельные (дискретные) моменты времени и называются отсчета-
ми сигнала x(k). Как правило, отсчеты берутся через равные промежутки времени T, называемые периодом дискретизации (или интервалом, шагом дискретизации):
x(k) = s(kT).
(1.1)
Величина, обратная периоду дискретизации, называется частотой дис-
кретизации: F
д
= 1/T. Соответствующая ей круговая частота определяется следующим образом: ω
д
= 2π/T.
4
В общем случае представление сигнала набором дискретных отсчетов приводит к потере информации, так как мы ничего не знаем о поведении сиг- нала в промежутках между отсчетами. Однако существует класс аналоговых сигналов, для которых такой потери информации не происходит и которые могут быть точно восстановлены по значениям своих дискретных отсчетов.
Процесс преобразования аналогового сигнала в последовательность от- счетов называется дискретизацией, а результат такого преобразования —
дискретным сигналом.
Спектр дискретного сигнала. Преобразование Фурье (ПФ) позволяет вычислить спектральную плотность сигнала, представляющего собой непре- рывную функцию времени:
( )
( )
j t
S
s t e
dt
∞
− ω
−∞
ω =
∫
ɺ
(1.2)
ПФ — это взаимная корреляционная функция (ВКФ) при нулевом сдви- ге между сигналом и комплексными гармоническими колебаниями с разны- ми частотами. Поэтому спектр дискретного сигнала рассчитывается анало- гичным образом через ВКФ в дискретном времени:
( )
( )
j k
k
X
x k e
∞
− ω
=−∞
ω =
∑
ɶ
ɺ ɶ
,
(1.3) где ω
ɶ — нормированная частота. Она равна изменению фазы между сосед- ними отсчетами гармонического сигнала и измеряется в радианах на отсчет.
Из этой формулы видно главное свойство спектра любого дискретного сигнала: спектр является периодическим, его период равен 2π рад/отсчет (это значение соответствует нормированной частоте дискретизации: д
2
ω = π
ɶ
рад/отсчет):
(
2 )
( )
X
X
ω ± π =
ω
ɺ
ɺ
ɶ
ɶ .
Следует также обратить внимание на размерность спектральной функ- ции дискретного сигнала: она совпадает с размерностью отсчетов.
Установим связь между спектром дискретного сигнала и спектром ана- логового сигнала. Пусть значения
x
(
k
) являются отсчетами аналогового сиг- нала
s
(
t
), взятыми с периодом
T
(1.1). В этом случае спектр дискретного сиг- нала (см. (1.3)) связан со спектром аналогового сигнала (1.2) следующим об- разом:
5 д
1 2
( )
n
n
X
S
T
T
∞
=−∞
ω − π
ω =
∑
ɶ
ɺ
ɺ
ɶ
(1.4)
Таким образом, спектр дискретного сигнала представляет собой беско- нечный ряд сдвинутых копий спектра исходного непрерывного сигнала
s
(
t
)
(на рис. 1.2 изображен модуль спектра дискретного сигнала). Расстояние по частоте между соседними копиями спектра равно частоте дискретизации
ω
д
= 2π/
T
0
w д
/2
w
–w д
| ( )|
X w
–
/2
w д
w д
0
p w
–2p
–p
2p
Рис. 1.2. Модуль спектра дискретного сигнала
Характер спектра дискретного сигнала демонстрирует частотно- временную дуальность преобразования Фурье:
• периодический сигнал → дискретный спектр (ряд Фурье);
• периодический спектр → дискретный сигнал.
Формула (1.3) позволяет рассчитать спектр последовательности отсче- тов {
x
(
k
)}, никак не связывая эти отсчеты с аналоговым сигналом. Форму- ла (1.4) предполагает, что отсчеты {
x
(
k
)} получены путем дискретизации аналогового сигнала
s
(
t
), и показывает связь между спектрами дискретного и аналогового сигналов. Следует подчеркнуть, что эти 2 формулы дают одина- ковый результат.
Отсюда следует еще один важный факт. Соединить отсчеты {
x
(
k
)} для получения аналогового сигнала можно произвольным образом. В каждом случае аналоговый сигнал будет, разумеется, иметь свой спектр. Однако ре- зультат суммирования сдвинутых копий спектров по формуле (1.4) всегда будет одним и тем же, поскольку определяется только значениями дискрет- ных отсчетов {
x
(
k
)} = {
s
(
kT
)} и формулой (1.3).
Формула обратного преобразования Фурье в дискретном времени анало- гична формуле вычисления коэффициентов комплексного ряда Фурье:
6 1
( )
( )
2
j k
x k
X
e
d
π
ω
−π
=
ω
ω
π
∫
ɶ
ɺ ɶ
ɶ
Свойства преобразования Фурье в дискретном времени. Под свойст- вами ПФ подразумевается взаимное соответствие трансформаций сигналов и их спектров. Ниже перечислены основные свойства ПФ в дискретном времени.
Линейность. ПФ в дискретном времени, согласно определению (1.3), является линейной комбинацией отсчетов последовательности, поэтому оно подчиняется принципу суперпозиции:
1 2
( )
( )
( )
y k
ax k
bx k
=
+
↔
1 2
( )
( )
( )
Y
aX
bX
ω =
ω +
ω
ɺ
ɺ
ɺ
ɶ
ɶ
ɶ .
Задержка.
При задержке сигнала на
∆k
отсчетов амплитудный спектр не меняется, а фазовый спектр приобретает дополнительное слагаемое
k
−ω∆
ɶ
, линейно зависящее от частоты:
( )
(
)
y k
x k
k
=
− ∆
↔ ( )
( )
j
k
Y
X
e
− ω∆
ω =
ω
ɶ
ɺ
ɺ
ɶ
ɶ
Свертка.
Линейной свертке дискретных последовательностей соответ- ствует произведение их спектров:
1 2
( )
( )
(
)
n
y k
x n x k
n
∞
=−∞
=
−
∑
↔
1 2
( )
( )
( )
Y
X
X
ω =
ω
ω
ɺ
ɺ
ɺ
ɶ
ɶ
ɶ .
Чередование знаков сигнала.
Изменение знаков у элементов исходной последовательности с нечетными номерами приводит к сдвигу спектра сиг- нала по частоте на π рад/отсчет:
( )
( ) ( 1)
k
y k
x k
−
=
⋅ −
↔ ( )
(
)
Y
X
ω =
ω + π
ɺ
ɺ
ɶ
ɶ
Инвертирование последовательности во времени.
Инверсия последо- вательности отсчетов во времени соответствует инверсии спектра по частоте:
( )
(
)
y k
x
k
= −
↔ ( )
(
)
Y
X
ω =
−ω
ɺ
ɺ
ɶ
ɶ .
Вставка нулей.
Вставка
N
– 1 нулей между соседними элементами ис- ходной последовательности приводит к сужению спектра сигнала в
N
раз:
(
),
,
( )
где — любое целое число,
0,
,
x k N
k
Nm
y k
m
k
Nm
=
=
≠
↔ ( )
(
)
Y
X N
ω =
ω
ɺ
ɺ
ɶ
ɶ .
Восстановление аналогового сигнала по теореме Котельникова. Ри- сунок 1.2 наглядно демонстрирует и способ восстановления непрерывного сигнала по дискретным отсчетам. Для этого необходимо пропустить дис-
7 кретный сигнал через идеальный фильтр нижних частот (ФНЧ) с частотой среза, равной половине частоты дискретизации. Амплитудно-частотная ха- рактеристика (АЧХ) такого фильтра показана на рис. 1.2 штриховой линией, а импульсная характеристика (ИХ) имеет форму sin(
) (
)
t T
t T
π
π
. Выходной сигнал (если сдвинутые копии спектра на рис. 1.2 не перекрываются, он бу- дет в точности совпадать с исходным аналоговым сигналом), таким образом, будет представлять собой сумму сдвинутых и умноженных на отсчеты сиг- нала копий ИХ идеального ФНЧ: sin
( )
(
)
k
t
kT
T
s t
s kT
t
kT
T
∞
=−∞
−
π
=
−
π
∑
(1.5)
Подводя итог сказанному, сформулируем
теорему Котельникова: лю- бой сигнал
s(t), спектр которого не содержит составляющих с частотами вы- ше некоторого значения в
в
2
f
ω = π , может быть без потерь информации пред- ставлен своими дискретными отсчетами {
s(kT)}, взятыми с интервалом T, удовлетворяющим следующему неравенству: в
в
1 2
T
f
π
<
=
ω
Восстановление исходного непрерывного сигнала s(t) по набору его дис- кретных отсчетов {s(kT)} производится по формуле (1.5).
1.3. Индивидуальное задание
В данной лабораторной работе рассматри- вается кусочно-линейный сигнал s(t), заданный параметрами U
k
, T
k
, k = 1…4, как показано на рис. 1.3.
При выполнении работы производится дискретизация данного сигнала с заданной час- тотой F
д
Параметры сигнала и используемая часто- та дискретизации являются индивидуальными для каждой бригады и выдаются преподавате- лем в виде табл. 1.1.
0
Т
1
Т
2
U
1
U
2
U
3
U
4
s t
( )
t
Рис. 1.3. Кусочно-линейный сигнал, исследуемый в работе
8
Таблица 1.1
U
1
, В
U
2
, В
U
3
, В
U
4
, В
T
1
, мс
T
2
, мс
F
д
, кГц
1.4. Указания к выполнению работы
1. Запуск MATLAB и знакомство с его средой.
Запустите программу
MATLAB (ее значок на рабочем столе имеет вид
). Откроется окно
MATLAB.
MATLAB — интерпретируемый язык программирования, позволяющий осуществлять вычисления как в интерактивном режиме, так и путем запуска программ (сценариев, scripts). Работа в интерактивном режиме сводится к на- бору в командной строке MATLAB необходимых команд (выполнение ко- манды производится после нажатия клавиши
Enter
), например:
>> A = sqrt(cos(pi/12)^2 + 1)
A =
1.3903
В результате выполнения данной команды будет создана переменная A со значением, равным
(
)
2
cos
12 1
π
+ .
• Создайте переменные для всех параметров сигнала (U
1
…U
4
, T
1
, T
2
) и частоты дискретизации F
д
Справка
Все созданные и хранящиеся на данный момент в памяти переменные ото- бражаются в рабочей области Workspace.
2. Формирование дискретного сигнала. MATLAB ориентирован на работу с векторами и матрицами. Используйте эти возможности для создания
вектора отсчетов заданного сигнала: x(k) = u(kT), где T = 1/F
д
— интервал дискретизации.
• Сформируйте вектор моментов времени взятия отсчетов.
Справка
Для создания векторов в виде арифметических прогрессий используется сим- вол двоеточия. Конструкция x1:dx:x2 означает создание равномерной по- следовательности чисел с первым элементом x1, шагом dx и конечным зна- чением, равным x2 или меньше его не более чем на dx. Если шаг последова- тельности равен единице, dx можно не указывать: x1:x2.
9
• Рассчитайте значения отсчетов первого линейного фрагмента сигнала
(u(t) = a
1
t + b
1
при t = 0…T
1
). Значения параметров a
1
и b
1
, а также диапазон используемых номеров элементов вектора моментов времени определите са- мостоятельно.
Справка
Для обращения к части элементов вектора нужно указать в круглых скобках
вектор номеров этих элементов. Чаще всего требуется обращение к одиноч- ному элементу (x(n)) или сплошному диапазону номеров (x(n1:n2)). Для ссылки на последний элемент можно использовать ключевое слово end.
Внимание!
В отличие от многих языков программирования, нумерация элементов в
MATLAB всегда начинается с единицы!
• Аналогичным образом рассчитайте значения отсчетов второго линей- ного фрагмента сигнала (u(t) = a
2
t + b
2
при t = T
1
…T
2
). Значения параметров
a
2
и b
2
, а также диапазон используемых номеров элементов вектора момен- тов времени определите самостоятельно.
Замечание
Если на момент взятия отсчета приходится скачок уровня аналогового сигна- ла, для целей данной работы значение дискретного отсчета может быть вы- брано произвольно в пределах диапазона скачка. Однако с теоретической точки зрения правильнее всего принять значение отсчета равным середине скачка (полусумме значений аналогового сигнала справа и слева от скачка).
• Постройте график дискретного сигнала, использовав сначала функ- цию plot, а затем функцию stem, чтобы сравнить результаты их работы.
Справка
Наиболее часто для построения графиков используется функция plot в форме plot(y) или plot(x, y) (в первом случае по горизонтали откла- дываются номера элементов вектора, во втором варианте строится зависи- мость y(x)). Параметры x и y должны быть векторами одинаковой длины.
Для построения графиков дискретных сигналов полезна функция stem, ко- торая имеет такой же синтаксис. Она строит графики в виде вертикальных
«стебельков».
10
3. Создание MATLAB-программы. Для дальнейшей работы необходи- мо превратить код, созданный в интерактивном режиме, в MATLAB- программу (сценарий, script). Для этого выполните следующее:
• Создайте (средствами Windows) папку для лабораторных работ вашей бригады. Место расположения этих папок указывает преподаватель.
• В окне MATLAB сделайте созданную папку бригады текущей папкой.
Для этого служит поле Current Folder в верхней части окна.
• В панели истории введенных команд (Command History) выделите команды, с помощью которых задавались параметры дискретного сигнала и производилось его формирование (выделение диапазона строк производится путем щелчка мышью при нажатой клавише Shift). Скопируйте выделенные команды в буфер обмена.
Справка
Если панель Command History отсутствует на экране, включите ее отобра- жение командой меню Desktop Command History.
• Создайте новый файл MATLAB-программы (самый левый значок
(New script) панели инструментов, команда меню File New Script или клавиши Ctrl + N) и вставьте программный код из буфера обмена.
• Сохраните файл, дав ему соответствующее имя.
Справка
Имена файлов в MATLAB фактически являются идентификаторами пере-
менных, поэтому на них налагаются ограничения. Допустимые символы: ла- тинские буквы, цифры, символ подчеркивания; первый символ — не цифра.
1 2 3 4 5 6 7 8
Внимание!
Русские буквы в именах файлов использовать нельзя!
• Отредактируйте код, удалив ненужные строки, возможно, оставшиеся после экспериментов, производившихся в интерактивном режиме. Запустите
MATLAB-программу клавишей F5, кнопкой панели инструментов или ко- мандой меню Debug Run. Добейтесь того, чтобы программа работала без ошибок.
Справка
На данном этапе уже не нужен вывод на экран результатов выполнения каж- дой команды — это было полезно при освоении системы в интерактивном режиме. Чтобы отключить вывод результатов расчета на экран, в конце каж- дой строки кода нужно поставить символ «точка с запятой».
11
Чтобы избежать возможных ошибок из-за повторного определения перемен- ных при очередном запуске программы, добавьте в ее начало команду
clear, удаляющую все переменные, содержащиеся в рабочей области
Workspace.
Последующие пункты работы выполняются путем дополнения создан- ной MATLAB-программы.
4. Построение графика спектра дискретного сигнала. Спектр дис- кретного сигнала рассчитывается по (1.3). При расчете необходимо учесть, что рассматриваемый сигнал содержит конечное число (N) ненулевых отсче- тов. Необходимо рассчитать спектр в основном частотном диапазоне
(
ω = −π +π
ɶ
…
) и построить графики амплитудного и фазового спектров.
На примере расчета спектра дискретного сигнала можно познакомиться с выполнением в MATLAB векторно-матричных операций. Примерная по- следовательность выполнения расчета:
• Сформируйте вектор-столбец номеров отсчетов k:
0 1
1
N
=
−
k
⋮
Справка
Рассмотренный ранее способ создания равномерных последовательностей создает вектор-строку. Превратить строку в столбец можно с помощью опе- рации транспонирования, которая в MATLAB задается символами «.'».
Апостроф без точки («'») означает эрмитово сопряжение матрицы (транспо- нирование в сочетании с комплексным сопряжением). Для вещественных матриц обе операции эквивалентны.
Следует помнить, что оператор «.'» имеет более высокий приоритет, чем оператор «:», используемый для формирования равномерных последова- тельностей, поэтому для транспонирования строки ее следует взять в скобки:
k = (0:N-1).';
• Сформируйте вектор-строку равномерно расположенных частот для расчета спектра. Диапазон частот — от −π до +π, шаг по частоте рекоменду- ется выбирать так, чтобы вектор содержал от 500 до 1000 элементов:
12
[
]
1 2
M
= ω
ω
ω
w
ɶ
ɶ
ɶ
…
Здесь M — число частот в векторе w.
Справка
Константа π в MATLAB задается как pi.
• Вычислите произведение столбца k и строки w — это даст матрицу размером N × M, содержащую все попарные произведения значений k и
ωɶ
• Умножьте полученную матрицу на −j, чтобы получить показатель комплексной экспоненты из (1.3).
Справка
Мнимую единицу в MATLAB можно задать с помощью констант 1i или 1j.
После запуска системы значение мнимой единицы также присвоено пере- менным i и j, однако эти значения могут быть переопределены в процессе работы.
• Вычислите значения комплексной экспоненты из формулы (1.3).
Справка
Функции exp, sin, sqrt и т. п. обрабатывают матричные аргументы поэле-
ментно.
• Умножьте сформированный ранее вектор отсчетов сигнала x на мат- рицу значений комплексных экспонент. Эта операция реализует суммирова- ние по k в формуле (1.3) и в результате дает вектор-строку значений спектра, рассчитанных для M частот из вектора w.
• Постройте графики амплитудного и фазового спектров сигнала, раз- местив их друг под другом в одном графическом окне. Зависимости следует строить не от нормированной частоты
ωɶ
, а от линейной частоты д
(2 )
f
F
=
ω
π
ɶ
Справка
Для создания нового графического окна служит команда figure. Команда
subplot(r, c, n) делит графическое окно на «клетки» (r строк и
c столбцов) и делает текущей «клетку» n (нумерация осуществляется по строкам). Последующие команды plot и stem будут выводить графики в текущей «клетке».
13
Чтобы избежать увеличения числа графических окон после каждого запуска программы, добавьте в ее начало команду close all, закрывающую все графические окна.
Для получения амплитудного и фазового спектров понадобятся следующие функции:
• abs(x) — вычисление модуля, в том числе для комплексных чисел;
• angle(x) — вычисление аргумента (фазы) комплексных чисел (в радиа- нах).
5. Восстановление аналогового сигнала по теореме Котельникова.
Восстановление аналогового сигнала s(t) с ограниченным спектром по его дискретным отсчетам x(k) в соответствии с теоремой Котельникова произво- дится по формуле (1.5).
При расчетах с помощью компьютера значения сигнала s(t) могут быть вычислены для произвольного конечного набора значений времени t. В дан- ной лабораторной работе сигнал s(t) рассчитывается для равномерно сле- дующих значений времени, расположенных в 10 раз чаще, чем было при дис- кретизации сигнала.
Для вычисления отдельных слагаемых формулы (1.5) удобно использо- вать матричные возможности MATLAB, рассчитывая эти слагаемые сразу для всех требуемых значений t, при этом для суммирования слагаемых при- дется организовать традиционный цикл.
Справка
Цикл с заранее заданным числом повторений (цикл for) в MATLAB чаще всего записывается следующим образом:
for k = 1:N
% тело цикла
end
В данном случае тело цикла будет выполнено N раз, для целочисленных зна- чений переменной k, меняющихся от единицы до N.
• Сформируйте вектор моментов времени для расчета восстановленного сигнала по (1.5). Шаг по времени должен быть в 10 раз меньше исходного интервала дискретизации. Охватываемый диапазон времени должен выхо- дить за края сигнала как минимум на 5 исходных интервалов дискретизации
(это необходимо для того, чтобы увидеть на графике затухающие «хвосты» функций sin(x)/x).
14
• Сформируйте заполненную нулями «заготовку» для вектора значений восстановленного сигнала s(t). Длина этого вектора должна совпадать с дли- ной созданного на предыдущем шаге вектора моментов времени.
Справка
Функция zeros(m, n) возвращает заполненную нулями матрицу с m стро- ками и n столбцами. Функция length(x) возвращает длину вектора x.
• Реализуйте вычисление суммы по k в (1.5), использовав для этого цикл по отсчетам сигнала. В теле цикла к созданной ранее «заготовке» для сигнала должно прибавляться очередное слагаемое формулы (1.5).
Справка
Поскольку слагаемые формулы (1.5) рассчитываются сразу для всех момен- тов времени t, числитель и знаменатель функции sin(x)/x являются вектора-
ми, и их деление друг на друга должно выполняться поэлементно. По умол- чанию MATLAB выполняет операции умножения и деления по матричным правилам. Чтобы осуществить поэлементные действия с матрицами, перед знаком операции необходимо поставить точку: «.*», «./».
• Выведите график восстановленного сигнала с помощью функции
plot. Разрывы на графике вызваны неопределенностями (0/0) при расчете функции sin(x)/x с нулевым аргументом.
Справка
Избавиться от этих разрывов можно, использовав для расчета функции sin(x)/x готовые средства MATLAB. Функция sinc возвращает результат, равный sin(πx)/(πx) (именно так определяется функция sinc в зарубежных ис- точниках).
• Постройте графики исходного дискретного и восстановленного анало- гового сигналов в общих координатных осях, чтобы наглядно видеть, как они соотносятся друг с другом.
Справка
Команды hold on и hold off включают и выключают режим сохранения текущего содержимого окна при построении нового графика.
Для управления цветом графиков можно добавлять к командам plot и stem дополнительные строковые параметры, например, plot(x, y, 'r') задает вывод графика красным цветом.
15
6. Подготовка материалов для отчета. В завершение работы необхо- димо скопировать в документ Microsoft Word (в качестве заготовки для отче- та) созданный программный код и все полученные графики (дискретный сиг- нал; его амплитудный и фазовый спектры; совместно показанные дискрет- ный и восстановленный аналоговый сигналы).
Справка
Для переноса графиков в документы Word следует использовать команду
Copy Figure из меню Edit окна графика. Перед этим целесообразно задать векторный формат копирования, выбрав в том же меню команду Copy Op-
tions и установив переключатели Preserve Information и Transparent Back-
ground.
1.5. Содержание отчета
Отчет должен содержать созданный в процессе работы программный код, оформленный в виде законченного документа (с заголовками разделов, формулами и комментариями к коду). Полученные в ходе работы графики
с подписями осей и размерностями размещаются в соответствующих разде- лах отчета. В конце отчета должны быть приведены выводы по результатам работы.
1.6. Контрольные вопросы
1. Частоту дискретизации сигнала увеличили в 2 раза. Как изменится амплитуда выбросов аналогового сигнала, восстановленного согласно теоре- ме Котельникова?
2. У отсчетов сигнала с четными номерами изменили знак, т. е. сфор- мировали последовательность y(k) = −x(k) (−1)
k
. Как при этом изменился спектр дискретного сигнала? (Необходимо выразить
( )
Y ω
ɺ ɶ через ( )
X ω
ɺ ɶ .)
3.
Построенный в отчете график амплитудного спектра дискретного сигнала имеет выраженный пик на некоторой ненулевой частоте. Приведя необходимые графики, продемонстрируйте, что сигнал действительно имеет
сходство с гармоническим колебанием соответствующей частоты.
4.
Последовательность отсчетов дискретного сигнала конечной дли- тельности зеркально перевернули во времени, т. е. сформировали последова- тельность
{ ( )} { (
1), (
2),
, (2), (1), (0)}
y k
x N
x N
x
x
x
=
−
−
…
, 0 1
k
N
≤ ≤
− ,
16 общая формула: ( )
(
1
)
y k
x N
k
=
− −
, 0 1
k
N
≤ ≤
− .
Здесь N — число отсчетов сигнала. Как при этом изменился спектр дискрет- ного сигнала? (Необходимо выразить ( )
Y ω
ɺ ɶ через ( )
X ω
ɺ ɶ .)
5.
Спектр
( )
X ω
ɺ ɶ некоторой дискретной последовательности {x(k)} пре- образовали следующим образом: ( )
(2 )
Y
X
ω =
ω
ɺ
ɺ
ɶ
ɶ . Что представляет собой по- следовательность отсчетов {y(k)}? (Как она связана с последовательностью
{x(k)}?)
6.
Последовательность отсчетов дискретного сигнала бесконечной дли- тельности инвертировали во времени, т. е. сформировали последовательность
y(k) = x(−k). Как при этом изменился спектр дискретного сигнала? (Необхо- димо выразить ( )
Y ω
ɺ ɶ через ( )
X ω
ɺ ɶ .)
7.
Амплитуда пульсаций аналогового сигнала, восстановленного со- гласно теореме Котельникова, возрастает как вблизи скачков, так и вблизи точек излома сигнала, однако в окрестностях скачков это возрастание оказы- вается существенно сильнее. Как это можно объяснить?
8.
Дискретный сигнал подвергли амплитудной модуляции, т. е. сфор- мировали последовательность
0
( )
( ) cos(
)
y k
x k
k
=
ωɶ
, где
0
ωɶ — некоторая не- сущая частота. Как при этом изменился спектр дискретного сигнала? (Необ- ходимо выразить ( )
Y ω
ɺ ɶ через ( )
X ω
ɺ ɶ .)
9.
У отсчетов сигнала с нечетными номерами изменили знак, после че- го между всеми парами соседних отсчетов вставили по одному отсчету с ну- левым значением, т. е. сформировали последовательность следующего вида:
2
(
2)( 1)
,
четное,
( )
0,
нечетное.
k
x k
k
y k
k
−
=
Как при этом изменился спектр дискретного сигнала? (Необходимо вы- разить ( )
Y ω
ɺ ɶ
через
( )
X ω
ɺ ɶ
.)
10. Дискретный сигнал подвергли амплитудной модуляции, т. е. сфор- мировали последовательность
0
( )
( )sin(
)
y k
x k
k
=
ω
ɶ
, где
0
ω
ɶ
— некоторая не- сущая частота. Как при этом изменился спектр дискретного сигнала? (Необ- ходимо выразить ( )
Y ω
ɺ ɶ
через
( )
X ω
ɺ ɶ
.)
17 11. В бесконечном дискретном сигнале каждый отсчет продублировали:
{y(k)} = {…, x(−1), x(−1), x(0), x(0), x(1), x(1), x(2), x(2), …}.
Как при этом изменился спектр дискретного сигнала? (Необходимо вы- разить ( )
Y ω
ɺ ɶ
через
( )
X ω
ɺ ɶ
.)
12. По отсчетам бесконечного дискретного гармонического сигнала
0
( )
cos(
)
x k
A
k
=
ω + ϕ
ɶ
, −∞ < k < +∞, восстановили аналоговый сигнал в соот- ветствии с теоремой Котельникова. Будет ли восстановленный сигнал яв- ляться гармоническим? Ответ обосновать.
13. Последовательность отсчетов дискретного сигнала бесконечной дли- тельности сложили с этой же последовательностью, инвертированной во вре- мени, т. е. сформировали последовательность y(k) = x(k) + x(−k). Как при этом изменился спектр дискретного сигнала? (Необходимо выразить
( )
Y ω
ɺ ɶ
через
( )
X ω
ɺ ɶ
.)
14. Из последовательности отсчетов дискретного сигнала бесконечной длительности вычли эту же последовательность, инвертированную во време- ни, т. е. сформировали последовательность y(k) = x(k) − x(−k). Как при этом изменился спектр дискретного сигнала? (Необходимо выразить
( )
Y ω
ɺ ɶ
через
( )
X ω
ɺ ɶ
.)