МИНИСТРСТВО НАУКИ И ВЫСШЕГО ОБРАЗОВАНИЯ РФ Федеральное государственное автономное образовательное учреждение высшего образования «МОСКОВСКИЙ ПОЛИТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ» (ФГАОУ ВО «Московский Политех») Факультет: «Машиностроение» Кафедра: «Автоматика и управление» Дисциплина: «Математические основы дискретных систем» Отчёт по лабораторной работе №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