- •Руководство
- •Устройства обработки и преобразования информации
- •Часть 1
- •1. Применение MatLab в инженерных расчетах
- •1.1. Панель инструментов и меню MatLab
- •1.2. Работа с MatLab в режиме прямых вычислений
- •Форматы вывода результатов
- •Константы и системные переменные
- •Арифметические операции
- •1.2. Графические средства MatLab
- •Вывод нескольких кривых на один график
- •Редактирование графиков в графическом окне
- •1.3. Организация вычислений с помощью м-файлов
- •1.4. Домашнее задание
- •1.5. Лабораторное задание
- •1.6. Содержание отчета
- •Контрольные вопросы
- •2. Моделирование сигналов в MatLab
- •2.1. Моделирование типовых детерминированных сигналов
- •2.1.1. Моделирование одиночных импульсов
- •2.1.2. Моделирование последовательностей сигналов
- •Примеры применения функции pulstran
- •2.3. Моделирование сигналов сложной формы
- •2.4. Домашнее задание
- •2.5. Лабораторное задание
- •2.6. Содержание отчета
- •Контрольные вопросы и задания
- •Устройства обработки и преобразования информации
- •Часть 1
2. Моделирование сигналов в MatLab
Ц ель работы. Практическое освоение применения системы MatLab для моделирования сигналов в радиотехнических устройствах.
2.1. Моделирование типовых детерминированных сигналов
2.1.1. Моделирование одиночных импульсов
В MatLab (пакет Signal) реализован ряд функций, формирующих последовательности данных, которые являются математическими моделями типовых одиночных импульсов.
Функция rectpuls формирует одиночный импульс прямоугольной формы. Команда вида
у = rectpuls(t - t0, tp)
позволяет сформировать вектор значений у одиночного импульса прямоугольной формы единичной амплитуды, длительностью tp, центрированного относительно момента времени t0. Вектор t задает временные отсчеты, в которые рассчитывается вектор у. Если длительность импульса tp не указана, ее значение по умолчанию равно единице. На рис. 2.1 приведены результаты моделирования сигнала, состоящего из трех последовательных прямоугольных импульсов разной высоты и ширины, сформированных последовательностью команд:
t = 0:0.01:10;
y = 0.75*rectpuls(t-3, 2)+0.5*rectpuls(t-8, 0.4)...
+1.35*rectpuls(t-5, 0.8);
plot(t,y), grid
Импульс треугольной формы единичной амплитуды можно сформировать с помощью функции tripuls:
у = tripuls(t,tp,asym).
Параметры t и tp имеют токой же смысл, что и для функции rectpuls. Параметр asym (- 1< asym <1) определяет степень асимметрии треугольника. Если asym=0 или не указан, импульс имеет симметричную форму (первый импульс на рис. 2.2):
y =0.75*tripuls(t - 1, 0.5)+0.5*tripuls(t - 5, 0.5, - 1)...
+1.35*tripuls(t - 3, 0.8,1);
p
Рис. 2.1
Радиоимпульс с гауссовской огибающей можно смоделировать с помощью функции gauspuls:
у = gauspuls(t, fc, bw).
Она формирует вектор значений этого сигнала с единичной амплитудой, несущей частотой
fc, Гц, и с шириной спектра bw. Если два последних аргумента не указаны, они по умолчанию устанавливаются равными 1000 и 0,5 Гц соответственно.
Пример моделирования одиночного гауссовского радиоимпульса (рис. 2.3):
t = 0 : 0.01 : 10;
y = 0.75*gauspuls(t - 3, 2,0.25);
plot(t, y), grid
Рис.
2.3
Рис.
2.2
2.1.2. Моделирование последовательностей сигналов
Полигармонические колебания, т.е. сигналы, состоящие из конечного числа гармонических составляющих, можно формировать при помощи функций sin(x) и cos(x) (рис. 2.4):
t = 0 : 0.01 : 50;
y =2+ 0.7*sin(2*pi*0.1*t-pi/2)+0.5*cos(2*pi*0.08*t+pi/6);
plot(t,y), grid
Периодические последовательности прямоугольных и пилообразных импульсов можно моделировать с помощью функций square, sawtooth, которые генерируют соответствующие импульсы с периодом на векторе временных отсчетов t. Обе функции имеют сходный синтаксис:
у = square(t, tau);
у = sawtooth(t, tau).
Для функции square tau определяет длительность импульса (в процентах от периода), для функции sawtooth tau – часть периода, в которой сигнал увеличивается. Ниже приведен пример применения рассматриваемых функций и результаты моделирования (рис.2.5).
t = 0 : 0.01 : 50;
y=0.7*square(pi*t/5, 25);
y1=0.5*sawtooth(pi*t/10, 0.75);
plot(t,y, t,y1), grid
Рис.
2.4
Рис.
2.5
Функция pulstran позволяет формировать последовательности импульсов, одинаковой формы с произвольно задаваемыми задержками и амплитудами. Форма импульсов может задаваться либо именем функции, генерирующей импульс, либо вектором отсчетов. Обращение к ней имеет вид
у = pulstran(t, d, 'form', pl, p2,...).
Вектор t – массив отсчетов времени, вектор d – задержки центров импульсов; параметр 'form' имя функции, определяющей форму импульсов, например 'rectpuls', 'tripuls', 'gauspuls', р1, р2, ... – дополнительные параметры импульса, которые передаются функции 'form'. Вектор d может быть двумерным: первый столбец – массив задержек центров импульсов, второй – амплитуд соответствующих импульсов (рис. 2.7).
В другом варианте функция pulstran может вызываться следующим образом:
у = pulstran(t, d, p, fs, 'metod'),
где t и d – как и ранее векторы отсчетов времени и задержек центров импульсов; p – вектор отсчетов одиночного сигнала; fs – частота дискретизации отсчетов одиночного сигнала; 'metod' – строковая константа, задающая метод интерполяции этого сигнала между отсчетами вектора p. Эта константа может принимать следующие значения:
‘nearest' – ступенчатая интерполяция;
'linear' - линейная
'spline' – кубическими сплайнами,
'pchip' или 'cubic' кусочно-полиномиальная полиномами Эрмита 3-й степени. Более подробную информацию можно получить во встроенной справочной системе MatLab для функции interp1.