Uploaded by Иван Дзыгар

Otchyot po laboratornoy rabote 4

advertisement
МИНИСТРСТВО НАУКИ И ВЫСШЕГО ОБРАЗОВАНИЯ РФ
Федеральное государственное автономное
образовательное учреждение
высшего образования
«МОСКОВСКИЙ ПОЛИТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ»
(ФГАОУ ВО «Московский Политех»)
Факультет: «Машиностроение»
Кафедра: «Автоматика и управление»
Дисциплина: «Математические основы дискретных систем»
Отчёт по лабораторной работе №4
Тема: «Генерация сигналов»
Группа 201-251
Выполнил:
Зарубин Илья Александрович
Проверил:
Чернокозов Владимир Васильевич
Москва 2021
Цель работы: изучение средств системы по генерации сигналов,
разложению их в ряд Фурье и дискретному преобразованию Фурье,
приобретение практических навыков их использования.
Теоретическая часть
Сигнал может быть:
Аналоговый – исходный физический сигнал, являющийся непрерывной
функцией времени;
Дискретный – результат преобразования аналогового сигнала в
последовательность чисел, которые являются значениями сигнала в отдельные
(дискретные) моменты времени, называются отсчетами. Как правило, отсчеты
берутся через равные промежутки времени т, называемые периодом
дискретизации. Величина, обратная периоду дискретизации, называется
частотой дискретизации: fd = 1/t. Круговая частота определяется, как ωd = 2π/t;
Цифровой; в вычислительных устройствах отсчеты сигнала
представляются в виде двоичных чисел. Процесс преобразования отсчетов в
числа называется квантованием по уровню, а возникшие при этом ошибки –
ошибками или шумами квантования. Сигнал, дискретный во времени и
квантованный по уровню, называют цифровым.
Для того, чтобы гармонический сигнал мог быть адекватно представлен
дискретными отсчетами, его частота не должна превышать половины частоты
дискретизации: fN = fD/2. Эта частота называется частотой Найквиста.
Дискретный сигнал представляет собой последовательность чисел,
поэтому для его расчета формируют вектор опорных значений времени. Для
этого удобно задавать значение частоты дискретизации Fs и использовать
обратную величину частоты дискретизации в качестве шага временного ряда.
2
Функции генерации дискретных сигналов
Функции генерации одиночных импульсов
В пакете Signal Processing системы MatLab имеются функции,
генерирующие часто встречаемые на практике непериодические сигналы:
rectpuls – прямоугольный импульс вида 𝑟𝑟𝑟𝑟𝑟𝑟𝑟𝑟(𝑡𝑡) = �
sinc – импульс вида sin 𝑐𝑐(𝑡𝑡) =
sin 𝜋𝜋𝜋𝜋
𝜋𝜋𝜋𝜋
1 − |𝑡𝑡|, |𝑡𝑡| ≤
;
0, |𝑡𝑡| ≥
1
2
1;
2
| | | |
tripuls – треугольный импульс вида ⋀(𝑡𝑡) = �1 − 𝑡𝑡 , 𝑡𝑡 ≤ 1.
0, |𝑡𝑡| ≥ 1
Прямоугольный импульс
Синтаксис
y = rectpuls(t,width),
где t – вектор значений времени, width – ширина (длительность) импульса
(по умолчанию width = 1, в этом случае функция rectpuls производит результат,
соответствующий математической функции rect.
Функция Дирака
Наибольший интерес в теоретическом отношении представляет
предельный случай прямоугольного импульса, когда его длительность
стремится к нулю, а высота импульса стремится к бесконечности. В этом
случае в результате предельного перехода получаем новую функцию с
необычайными свойствами. Она называется «дельта-функция», или функция
Дирака. Эта функция обладает следующими свойствами:
1. Она равна нулю при t <0 и t> 0 и бесконечна в точке t = 0:
∞
2. ∫∞ 𝛿𝛿 (𝑡𝑡)𝑑𝑑𝑑𝑑 = 1
𝛿𝛿 (𝑡𝑡) = �
0,
∞,
𝑡𝑡 ≠ 0
𝑡𝑡 = 0
3
Импульс с ограниченной полосой частот
Для формирования импульса вида sin(𝜋𝜋𝜋𝜋)/(𝜋𝜋𝜋𝜋) используется функция sinc:
Синтаксис
y = sinc(t),
где t – вектор значений времени.
Треугольный импульс
Для формирования треугольного импульса с единичной амплитудой служит
функция tripuls:
Синтаксис
y = tripuls(t,width,skew),
где t – вектор значений времени; width – ширина (width = 1 по умолчанию)
импульса; skew – коэффициент асимметрии импульса, определяющий
положение его вершины.
Пик импульса расположен при t = width*skew/2, параметр skew должен
лежать в диапазоне от –1 до 1 (skew = 0 по умолчанию).
Функции генерации последовательности импульсов
Функция формирования конечной последовательности импульсов pulstran.
Для генерации конечной последовательности импульсов одинаковой
формы с произвольно задаваемыми задержками и уровнями служит функция
pulstran.
Синтаксис
y = pulstran(t, d, ‘func’, p1, p2, …)
y = pulstran(t, d, p, fs, 'method')
Сами импульсы могут задаваться одним из двух способов:
1. Именем функции, генерирующей импульс;
4
2. Рассчитанным вектором отсчетов, с помощью которого задается форма
импульса.
Для первого способа функция вызывается следующим образом:
y = pulstran(t, d, ‘func’, p1, p2, …),
где t – вектор значений времени; d – вектор задержек (если d –
двухстолбцовая матрица, то первый столбец трактуется как задержки
импульсов, а второй – как их уровни); ‘func’ – имя функции, генерирующей
одиночный импульс; оставшиеся параметры – p1, p2, … – дополнительные.
Для второго способа надо рассчитать вектор отсчетов импульса и вызвать
функцию следующим образом:
y = pulstran(t, d, p, fs, 'method').
Смысл входных параметров t и d тот же, что и раньше. Вектор р должен
содержать отсчеты одиночного импульса, а параметр fs указывает частоту
дискретизации, использованную при расчете этого вектора. Считается, что
первый отсчет из вектора р соответствует нулевому моменту времени. Так как
частота fs может не совпадать с шагом значений вектора t, и задержки из
вектора d тоже не обязательно кратны этому шагу, для пересчета задержанных
импульсов к сетке моментов времени t в общем случае надо задавать
интерполяцию. Метод интерполяции задается в параметре 'method'. Он может
принимать следующие значения: 'nearest', 'linear', 'cubic', 'v5cubic', 'spine', 'chip'.
По умолчанию fs = 1 и 'method' = 'linear'.
Функция формования последовательности прямоугольных импульсов
square
Для генерации последовательности прямоугольных импульсов служит
функция square:
Синтаксис
y = square(t,duty),
5
где t – вектор значений времени; duty – коэффициент заполнения –
величина, обратная скважности (в процентах), т. е. отношение длительности
импульса к периоду. По умолчанию duty = 50, т. е. генерируется меандр.
Ряд Фурье
Разложению в ряд Фурье могут подвергаться периодические сигналы. При
этом они представляются в виде суммы гармонических функций либо
комплексных экспонент с частотами, образующими арифметическую
прогрессию. Для того, чтобы такое разложение существовало, фрагмент
сигнала длительностью в один период должен удовлетворять условиям
Дирихле:
1. Не должно быть разрывов второго рода (с уходящими в бесконечность
ветвями функции);
2. Число разрывов первого рода (скачков) должно быть конечным;
3. Число экстремумов должно быть конечным.
Существует несколько форм представления: синусно-косинусная,
вещественная, комплексная.
Представим синусно-косинусную форму ряда Фурье:
𝑠𝑠(𝑡𝑡) =
𝑎𝑎0
2
+ ∑∞
𝑘𝑘=1(𝑎𝑎𝑘𝑘 cos(𝑘𝑘𝜔𝜔1 𝑡𝑡 ) + 𝑏𝑏𝑘𝑘 sin(𝑘𝑘𝜔𝜔1 𝑡𝑡)), (1)
где ω1 = 2π/T – круговая частота, кратные ей частоты kω1 называются
гармониками.
Коэффициенты ряда ak и bk рассчитываются по формулам (2), (3):
2
𝑇𝑇
2
𝑇𝑇
−
2
𝑎𝑎𝑘𝑘 = ∫ 𝑠𝑠(𝑡𝑡) cos(𝑘𝑘𝜔𝜔1 𝑡𝑡)𝑑𝑑𝑑𝑑 ; (2)
𝑇𝑇
2
𝑇𝑇
2
𝑇𝑇
−
2
𝑏𝑏𝑘𝑘 = ∫ 𝑠𝑠(𝑡𝑡) sin(𝑘𝑘𝜔𝜔1 𝑡𝑡)𝑑𝑑𝑑𝑑 ; (3)
𝑇𝑇
Слагаемое с константой a0 представляет собой среднее сигнала на периоде,
рассчитываемое по формуле (4):
6
𝑎𝑎0
2
1
𝑇𝑇
2
𝑇𝑇
−
2
(4)
= ∫ 𝑠𝑠(𝑡𝑡)𝑑𝑑𝑑𝑑.
𝑇𝑇
Если s(t) является четной функцией, то все bk будут равны нулю, и в
формуле ряда Фурье будут присутствовать только косинусные слагаемые; если
s(t) является нечетной функцией, то останутся только синусные слагаемые.
Совокупность амплитуд гармоник ряда Фурье называется амплитудным
спектром, а совокупность их фаз – фазовым спектром.
Разложение в ряд Фурье последовательности прямоугольных
импульсов.
Рассмотрим последовательность прямоугольных импульсов с амплитудой
А, длительностью τ и периодом повторения T. Начало отсчета времени
возьмем расположенным в середине импульса. Данный сигнал является четной
функцией, и при разложении его в ряд Фурье будут присутствовать только
косинусные слагаемые ak, равные
𝑇𝑇
2
𝑇𝑇
−
2
2
2𝜋𝜋𝜋𝜋
𝑎𝑎𝑘𝑘 = ∫ 𝐴𝐴 cos �
𝑇𝑇
𝑇𝑇
𝑡𝑡� 𝑑𝑑𝑑𝑑 =
2𝐴𝐴
𝜋𝜋𝜋𝜋
2𝜋𝜋𝜋𝜋
sin �
𝑇𝑇
�.
Отношение периода к длительности импульсов называется скважностью
последовательности импульсов q=T/τ. Если ввести этот параметр в формулу
для коэффициента ряда Фурье, а затем привести формулу к виду sin(x) / x,
получим:
𝑎𝑎𝑘𝑘 =
2𝐴𝐴
𝜋𝜋𝜋𝜋
𝜋𝜋𝜋𝜋
sin � � =
𝑞𝑞
𝜋𝜋𝜋𝜋
2𝐴𝐴 sin( 𝑞𝑞 )
𝑞𝑞
𝜋𝜋𝜋𝜋
𝑞𝑞
.
Поскольку при 𝑥𝑥 → 0 sin(𝑥𝑥)/𝑥𝑥 → 1, то
𝑎𝑎0
2
=
𝐴𝐴
𝑞𝑞
=
𝐴𝐴𝐴𝐴
𝑇𝑇
.
Само представление последовательности прямоугольных импульсов в виде
ряда Фурье можно записать в виде формулы:
𝐴𝐴
𝑠𝑠(𝑡𝑡) = + ∑∞
𝑘𝑘=1
𝑞𝑞
2𝐴𝐴
𝜋𝜋𝜋𝜋
𝜋𝜋𝜋𝜋
sin( )cos �
𝑞𝑞
2𝜋𝜋𝜋𝜋
𝑇𝑇
𝑡𝑡�.
7
Последовательность прямоугольных импульсов со скважностью, равной
двум, когда длительность импульсов и промежутки между ними равны,
называется меандром. Представление меандра в виде ряда Фурье может быть
записано следующим образом:
𝐴𝐴
𝑠𝑠(𝑡𝑡) = +
2
2𝐴𝐴
𝜋𝜋
(cos �
2𝜋𝜋
𝑇𝑇
1
𝑡𝑡� − cos �3
3
2𝜋𝜋
𝑇𝑇
1
𝑡𝑡� + cos �5
5
2𝜋𝜋
𝑇𝑇
𝑡𝑡� −. . .).
Так как последовательность прямоугольных импульсов содержит скачки
(разрывы 1-го рода), в окрестностях точек разрывов суммирование ряда Фурье
дает наклонный участок, а на примыкающих к разрыву участках сумма ряда
Фурье дает заметные пульсации. Это явление, присущее рядам Фурье для
любых сигналов с разрывами 1-го рода, называется эффектом Гиббса.
Прямое и обратное преобразование Фурье
Преобразование Фурье является инструментом спектрального анализа
непериодических сигналов. В системе MatLab для вычисления прямого
преобразования Фурье одномерных сигналов используется функция fft:
Синтаксис
y = fft(x) – вычисляет прямое ДПФ (дискретное преобразование Фурье)
для вектора х; если х – матрица, преобразование производится для каждого ее
столбца по отдельности;
y = fft(x,N) – вычисляет прямое ДПФ; перед вычислением предварительно
приводит исходные данные к размеру N, урезая их или дополняя нулями.
Для вычисления обратного преобразования Фурье одномерных сигналов
используется функция ifft:
Синтаксис
x = ifft(y,N) – вычисляет обратное ДПФ; предварительно приводит
исходные данные к размеру N, урезая их или дополняя нулями.
8
Для вычисления прямого ДПФ двумерного сигнала используется функция
fft2, обратного ДПФ – ifft:
Синтаксис
y = fft2(x,N) – вычисляет прямое ДПФ для матрицы х;
y = fft2(x,N) – вычисляет прямое ДПФ; перед вычислением
предварительно приводит исходные данные к размеру N, урезая их или
дополняя нулями.
x = ifft2(y) – вычисляет обратное ДПФ для матрицы y;
x = ifft2(y,N) – вычисляет обратное ДПФ; перед вычислением
предварительно приводит исходные данные к размеру N, урезая их или
дополняя нулями.
При выводе спектральных графиков иногда желательно, чтобы компонента
с нулевой частотой вектора х находилась в центре, а диапазон отображаемых
частот простирался от –fD / 2 до fD / 2. Сделать это позволяет функция fftshift,
которая меняет местами половины переданного ей вектора.
Синтаксис
y = fftshift(x)
В рассчитанном преобразовании Фурье присутствуют наряду с
вещественными коэффициентами и мнимые. Поэтому для визуализации ДПФ
необходимо определить модуль ДПФ. Для этого и используют функцию abs –
определение модуля аргумента.
Синтаксис
у = abs(х)
Для оценки энергии на различных частотах применяется спектральная
плотность мощности (СПМ), равная произведению вектора ДПФ на
9
сопряженный ему вектор. Для вычисления сопряженного вектора используется
функция conj.
Синтаксис
у = conj(х)
Поскольку преобразования Фурье переводит сигнал из временной области
в частотную, для вывода графика спектра надо задать вектор нормализованных
частот. Размер этого вектора должен совпадать с размером вектора ДПФ
(размер вектора вычисляет функция size).
Ниже приведены примеры формирования прямоугольных импульсов и
импульса вида sin(t) / (t) и их спектров и СПМ.
10
Практическая часть
Рисунок 1. Задание 1
Рисунок 2. Задание 2
11
Рисунок 3. Задание 3
Рисунок 4. Задание 4
12
Рисунок 5. Задание 5
Рисунок 6. Задание 6
13
Рисунок 7. Задание 7
Рисунок 8. Задание 8
14
Рисунок 9. Задание 9
Рисунок 10. Задание 10
15
Рисунок 11. Задание 11
Рисунок 12. Задание 12
Рисунок 13. Задание 13
16
Самостоятельная часть
Задание:
1. Сформировать затухающий гармонический сигнал Asin(2πft + φ) с частотой
дискретизации 5 кГц, вектор отсчетов времени задать от –1 до 1 с шагом,
равным обратной величине частоты дискретизации, амплитуда равна 4 В,
частота гармонического сигнала 1,5 кГц, начальная фаза гармонического
сигнала 30 градусов, скорость затухания 100. Выдать на одном графике в
разных подобластях два графика, используя функцию plot (красным цветом,
точечной линией) и функцию stem (зеленым цветом, линия оканчивается
символом ^).
2. Сформировать последовательности из 4 импульсов, имеющих форму одного
периода функции cos(t)2. Длительность импульсов равна 70 мс, частота его
дискретизации 250 Гц. Расстояние между центрами импульсов будет
равным 70 мс, а частота дискретизации выходного сигнала 1 кГц. Вектор
отсчетов времени задать от –0 до 0.5 с шагом, равным обратной величине
частоты дискретизации. Импульсы затухают с ростом номера.
3. Сформировать меандр сложением отдельных 16 гармоник, процесс
получения отобразить в 4 столбцах (столбец из 4 строк).
4. Сформировать меандр соответствующей функции и вывести его график.
5. Сформировать одиночный прямоугольный импульс и его Фурье-образ.
Частота дискретизации равна 1е3, вектор отсчетов времени задать от –0 до
40е–3 с шагом, равным обратной величине частоты дискретизации,
амплитуда равна 5 В, длительность импульса равна 20е–3. Выдать график
прямоугольного импульса, (от лимитировать значения по оси у от –6 до 6
командой ylim([–6 6]), задаваемой после команды plot). Вывести сетку.
Значения частоты для вывода Фурье преобразования задать f =1 000·(1:41) /
512. Спектральный график вывести с нулевой частотой, находящейся в
центре, для чего использовать соответствующую функцию.
6. Сформировать одиночный сигнал вида sin(x)/x и его СПМ. Вектор времени
задать от –5 до 5 с шагом, равным 0.01. Значения частоты для вывода СПМ
17
задать равными f = 1 000 · (1 : 1001) / 512. Спектральный график вывести с
нулевой частотой, находящейся в центре, для чего использовать
соответствующую функцию. Полученный график отлимитировать от 900 до
1 000.
7. Построить графики трехмерных функций и их Фурье-преобразований:
a. Z1 = rect(x)*rect(y);
b. Z2 = sinc(x)*sinc(y),
используя результаты выполнения заданий 5 и 6 соответственно.
18
Рисунок 14. Задание 1
Рисунок 15. Задание 2
19
Рисунок 16. Задание 3
Рисунок 17. Задание 4
20
Рисунок 18. Задание 5
Рисунок 19. Задание 6
Рисунок 20. Задание 7
21
Вывод: в данной лабораторной работе я изучил средства систем по
генерации сигналов, разложению их в ряд Фурье и дискретному
преобразованию Фурье, а также приобрел практические навыки их
использования.
22
Download