ЛР3 > Сигналы и их свойства. Генерация сигналов в среде MatLab
Цель работы: научиться создавать различные типы сигналов и визуализировать их.
Руководство по лабораторной работе
Для выполнения лабораторной работы Вам необходимо повторить соответствующие лекции.
Скачать Материалы к лабораторной работе №3.
ТЕОРЕТИЧЕСКИЕ СВЕДЕНИЯ
Гармонические сигналы и их комбинации в среде MatLab создаются с помощью функций Sin(x) и Cos(x). Следующий пример демонстрирует сигнал, представляющий собой сумму двух синусоид – 3Гц с амплитудой 1 В и 40 Гц с амплитудой 0,25 В. Сигнал сформирован для интервала времени от 0 до 1 с, частота дискретизации – 100 Гц.
Пример № 1.
fs = 100; %частота дискретизации 100 Гц
t = 0:1/fs:1; %интервал времени от 0 до 1 сек
x = sin(2*pi*t*3) + .25*sin(2*pi*t*40);%сумма гармоник
plot(t,x);
grid on
Результат работы программы представлен на рисунке 1.
Рисунок 1. Результат работы программы из примера № 1.
Следующий пример демонстрирует генерацию гармонического сигнала с частотой 1 КГц (частота дискретизации – 8 КГц), амплитуда которого изменяется по экспоненциальному закону. Начальная амплитуда сигнала – 2 В, начальная фаза сигнала – 450. В примере показаны различные способы визуализации сигнала (посмотрите документацию для следующих команд – subplot, plot, stem, stairs).
Пример № 2.
Fs = 8e3; %частота дискретизации 8 КГц
t = 0:1/Fs:1; %1 секунда дискретных моментов времени
t = t’; %преобразование строки в столбец
A = 2; %амплитуда – 2 В
f0 = 1e3; %частота – 1 КГц
phi = pi/4; %начальная фаза – 45 град
s1 = A*cos(2*pi*f0*t+phi); %гармонический сигнал
alpha = 1e3; %скорость затухания экспоненты
s2 = exp(-alpha*t).*s1; %затухающая синусоида
subplot(2,2,1); plot(s2(1:100))
subplot(2,2,2); plot(s2(1:100), ‘.’)
subplot(2,2,3); stem(s2(1:100))
subplot(2,2,4); stairs(s2(1:100))
Результат работы программы представлен на рисунке 2.
Рисунок № 2. Результат работы программы из примера № 2.
Для генерации одиночных импульсов в среде MatLab имеются встроенные функции:
rectpuls – прямоугольный импульс;
tripuls – треугольный импульс;
sinc – импульс вида sin(πt)/ (πt);
gausplus – радиоимпульс с гауссовой огибающей;
pulstran – последовательность из конечного числа импульсов произвольной формы.
Рассмотрим несколько примеров с использованием данных функций.
Функция rectpuls формирует одиночный прямоугольный импульс с единичной амплитудой. Формат вызова данной функции следующий:
y = rectpuls (t, width), где
t – вектор значений времени, width – ширина (длительность) импульса.
В качестве следующего примера рассмотрим генерацию одиночного отрицательного импульса, длительностью 20 мс и амплитудой – минус 5 В (пример № 3):
Пример № 3.
Fs=1e3;
t=-40e-3:1/Fs:40e-3;
T=20e-3;
A=5;
s=-A*rectpuls(t,T);
plot(t,s);
ylim([-6 6]);
Функция tripuls формирует одиночный треугольный импульс с единичной амплитудой. Формат вызова данной функции следующий:
y = rectpuls (t, width, skew), где
t – вектор значений времени, width – ширина (длительность) импульса, skew – коэффициент асимметрии импульса, определяющий положение его вершины. Пик импульса расположен при t = width*skew/2 . Параметр skew должен лежать в диапазоне от -1 до 1.
В качестве следующего примера рассмотрим генерацию одиночного треугольного импульса, длительностью 60 мс, амплитудой 10 В и смещением вершины на 15 мс (пример № 4).
Пример № 4
Fs = 1e3; %частота дискретизации
t = -50e-3:1/Fs:50e-3; %дискретное время
A = 10; %амплитуда
T1 = 0.5; %смещение вершины
T2 = 60e-3; %нижнее основание
s = A*tripuls(t,T2,T1);% генерация импульса
plot(t,s)
grid on
Функция gausplus формирует одиночный радиоимпульс с гауссовой огибающей и единичной амплитудой. Формат вызова данной функции следующий:
y = gauspuls(t, fc, bw, bwr), где
t – вектор значений времени, fc – несущая частота в Гц, bw – относительная ширина спектра (ширина спектра, деленная на несущую частоту), bwr – уровень (в децибелах), по которому производится измерение ширины спектра.
В качестве примера рассмотрим генерацию одиночного радиоимпульса с несущей частотой = 4 КГц, шириной спектра = 400 Гц, амплитудой = 1 В, уровнем измерения ширины спектра = – 20 дБ (пример № 5).
Пример № 5.
Fs = 16e3;% частота дискретизации 16 КГц
t = -10e-3:1/Fs:10e-3;%длительность радиоимпульса
Fc = 4e3;%несущая частота 4 КГц
bw = 0.1;%относительная ширина спектра 0.1
bwr = -20;%уровень = -20 дБ
s=gauspuls(t,Fc,bw,bwr);% генерация радиоимпульса
plot(t,s);
grid on
Функция pulstran служит для генерации конечной последовательности импульсов одинаковой формы с произвольно задаваемыми задержками и уровнями. Формат вызова этой функции следующий:
y = pulstran(t, d, ‘func’, p1, p2, …), где
t – вектор значений времени, d – вектор задержек, ‘func’ – имя функции, генерирующей одиночный импульс (могут использоваться функции rectpuls,
tripuls, gausplus или собственные функции). Оставшиеся параметры p1, p2, … – дополнительные, они передаются функции ‘func’ при ее вызове.
ЗАДАНИЕ
-
Проработайте основные примеры, изложенные выше, в системе MATLAB.
-
Измените параметры генерируемых сигналов в М-файлах из примеров № 1 и № 2. Для каждого из примеров создайте по два варианта собственной реализации.
-
С помощью функции rectpuls создайте одиночный двухполярный импульс, изображенный на рисунке 3.
Рисунок 3. Одиночный двухполярный импульс.
-
С помощью функции tripuls создайте одиночный трапецеидальный импульс, изображенный на рисунке 4.
Рисунок 4. Одиночный трапецеидальный импульс.
Исследуйте самостоятельно функции sinc и pulstran