Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Завдання_ЦОЕД 2013_заочники.docx
Скачиваний:
6
Добавлен:
01.05.2025
Размер:
760 Кб
Скачать
☆

Лабораторная работа №1 Формирование и исследование типовых сигналов

Цель: Изучить основные возможности пакета MATLAB для формирования типовых сигналов, используя SIGNAL PROCESSING TOOLBOX & SIMULINK.

1.1 Формирование типовых сигналов

RECTPULS Прямоугольный импульс

Синтаксис: у = rectpuls(t)

у = rectpuls(t, w)

Описание:

Функция у = rectpuls(t) формирует прямоугольный импульс единичной амплитуды для заданной в векторе t последовательности отсчетов времени. Генерируется импульс с шириной 1, центрированный относительно t = 0. В векторе y формируется часть импульса, соответствующая последовательности отсчетов, заданной в векторе t.

Функция у = rectpuls(t, w) формирует импульс ширины w.

Сопутствующие функции: CHIRP, COS, DIRIC, GAUSPULS, PULSTRAN, SAWTOOTH, SIN, SINC, SQUARE, TRIPULS.

SQUARE Последовательность прямоугольных импульсов

Синтаксис: у = square(t)

у = square(t, duty)

Описание:

Функция у=square(t) формирует последовательность прямоугольных импульсов с периодом , для заданной в векторе t последовательности отсчетов времени. Генерируемая последовательность отличается от синусоиды с периодом только тем, что представляет собой прямоугольные импульсы с амплитудой ±1.

Функция у= square(t, duty) формирует последовательность прямоугольных импульсов с заданной продолжительностью положительной полуволны, которая определяется параметром duty, в процентах от периода.

Сопутствующие функции: CHIRP, COS, DIRIC, GAUSPULS, PULSTRAN, REC7PULS, SAWTOOTH, SIN, SINC, TRIPULS.

TRIPULS Треугольный импульс

Синтаксис:

у = tripuls(t)

у = tripuls(t, w)

у = tripuls(t, w, s)

Описание:

Функция у = tripuls(t) формирует симметричный треугольный импульс единичной амплитуды для заданной в векторе t последовательности отсчетов времени. Генерируется импульс с шириной 1, центрированный относительно t=0. В векторе у формируется часть импульса, соответствующая последовательности отсчетов, заданной в векторе t.

Функция у = tripuls(t, w) формирует треугольный импульс ширины w.

Функция у=tripuls(t, w, s) формирует треугольный импульс, наклон которого определяется параметром s, где -1 < s <1. Для симметричного импульса s = 0.

Сопутствующие функции: CHIRP, COS, DIRIC, GAUSPULS, PULSTRAN, RECTPULS, SAWTOOTH, SIN, SINC, SQUARE.

SAWTOOTH Генератор пилообразных и треугольных сигналов

Синтаксис:

x = sawtooth(t)

x = sawtooth(t, 'width')

Описание:

Функция х = sawtooth(t) формирует пилообразный сигнал с амплитудой 1 и периодом 2. Последовательность значений аргумента задается в векторе t. При t = 2 х = - 1 .

Функция х = sawtooth(t, width) формирует модифицированный пилообразный сигнал. Параметр width задается в диапазоне от 0 до 1 и определяет часть периода, в которой возрастает сигнал. Сигнал возрастает от -1 до 1 на интервале от 0 до 2*width, а затем убывает от 1 до -1 на интервале от 2*width до 2. Если width=0.5, то формируется симметричная волна. Функция sawtooth(t,l) эквивалентна функции sawtooth(t).

Диагностика:

Если параметр width не является скаляром, выводится сообщение: Requires WIDTH parameter to be a scalar (Параметр width должен быть скаляром).

Пример:

Сгенерируем и выведем на экран треугольную последовательность, заданную в диапазоне от 0 до 4 с параметром width = 1 (рисунок 1.1, а):

t = (0:0.1 :4*pi);

х = sawtooth(t, 1);

plot(t, х)

и с параметром width = 0.5 (рис. 1.1,б):

t = (0 : 0.1 : 4*pi);

х = sawtooth(t, 0.5);

plot(t, х)

а) width = 1 б) width = 0.5

Рисунок 1.1

Сопутствующие функции: CHIRP, COS, DIRIC, GAUSPULS, PULSTRAN, RECTPULS, SIN, SINC, SQUARE, TRIPULS.

CHIRP Косинусоида с переменной частотой

Синтаксис:

y = chirp(t, f0, t1,f1)

у = chirp(t, f0, t1, f1, 'method')

у = chirp(t, f0, t1, f1, 'method', phi)

Описание:

Функция у = сhirp(t, f0, tl, fl) формирует выборку из косинусоидального сигнала с линейно меняющейся частотой для моментов времени, определенных в векторе t; f0 - мгновенная частота в момент времени 0, fl - мгновенная частота в момент времени t1; f0 и f1 задаются в герцах. По умолчанию f0= 0, tl=1, f1=100.

Функция у = chirp(t, f0, tl, fl, 'method') позволяет задать закон изменения частоты, определяющийся значением параметра 'method'. Если параметр method = linear, то закон изменения частоты определяется выражением fj(t) = f0 + t, где  = (f1 -f0)/t1; если параметр method = quadratic, то закон изменения частоты определяется выражением fj (t) = f0+t2, где  = (f1 -f0)/t1; если параметр method = logarithmic, то закон изменения частоты определяется выражением fj (t) = f0+10t, где  = [log10(f1 -f0)]/t1. В этом случае fl должно быть больше f0.

Функция у = chirp(t, f0, tl, fl, 'method', phi) позволяет задать начальную фазу в параметре phi (град.). По умолчанию phi = 0.

Функция у = chirp(t, f0, tl, fl, 'method') позволяет задать закон изменения частоты, определяющийся значением параметра 'method'. Принимаемые по умолчанию значения подставляются в том случае, если переменная отсутствует или задано пустое значение. Звук такого сигнала напоминает визг – откуда и его английское название.

Пример:

Построим спектр сигнала с линейно изменяющейся частотой (рисунок 1.2).

t = 0 : 0.001 : 2; %Время наблюдения 2 с, частота дискретизации 1кГц.

y = chirp(t, 0,1, 150); % Начальное значение частоты сигнала 0 Гц при t = 0, конечное -150 Гц при t=1.

specgram (y, 256, 1e3, 256, 250)

Сопутствующие функции: COS, DIRIC, GAUSPULS, PULSTRAN, RECTPULS, SIN, SINC, SQUARE, TRIPULS.

Рисунок 1.2

GAUSPULS Синусоида, модулированная функцией Гаусса

Синтаксис:

yi = gauspuls(t, fc, bw)

yi = gauspuls(t, fc, bw, bwr)

[yi, yq] = gauspuls(...)

[yi, yq, ye] = gauspuls(...)

tc = gauspuls('cutoff, fc, bw, bwr, tpe)

Описание:

Группа функций gauspuls формирует синусоидальный сигнал, модулированный функцией Гаусса.

Функция yi = gauspuls(t, fc, bw) возвращает последовательность отсчетов сигнала, вычисленных в моменты времени, заданные в векторе t; fc определяет частоту синусоиды, a bw - ширину полосы частот сигнала. По умолчанию fc = 1000 Гц, a bw = 0.5.

Функция yi = gauspuls(t, fc, bw, bwr) возвращает последовательность от-петов сигнала, имеющего следующие параметры: амплитуда - 1, ширина полосы частот - 100bw, границы полосы частот определяются уровнем атухания bwr дБ по отношению к нормализованной амплитуде сигнала. Параметр bwr должен быть отрицательным. По умолчанию bwr = -6 дБ. Функции [yi, yq] = gauspuls(...) возвращают два вектора: yi и yq. Вектор yi содержит отсчеты исходного сигнала, а вектор yq - отсчеты сигнала, синусоида в котором сдвинута по фазе на 90°.

Функции [yi, yq, ye] = gauspuls(...) дополнительно возвращают огибающую сигнала.

Функция tc = gauspuls('cutoff', fc, bw, bwr, tpe) вычисляет время отсечения tc (большее или равное 0); tc соответствует моменту времени, в который амплитуда огибающей сигнала снижается до tpe дБ. Величина параметра tpe должна быть отрицательной, поскольку он определяет относительный уровень сигнала, меньший, чем пиковое значение (равное 1). По умолчанию tpe = - 60 дБ.

Пример:

Преобразуем и выведем на экран синусоиду, модулированную функцией Гаусса со следующими параметрами:

  • частота синусоиды - 50 кГц;

  • ширина полосы-60%;

  • частота дискретизации - 1 мГц.

Сигнал заканчивается, когда амплитуда огибающей снизится до 40 дБ.

tc = gauspuls('cutoff', 50еЗ, 0.6, [ ], -40);

t = -tc: 1e-6: tc;

i = gauspuls(t, 50e3, 0.6);

plot(t, i);

Рисунок 1.3

Сопутствующие функции: CHRP, COS, DIRIC, PULSTRAN, RECTPULS, SAWTOOTH, SIN, SINC, SQUARE, TRIPULS.

SINC Функция sinc

Синтаксис: у = sinc(x)

Описание:

Функция у = sinc(x) формирует последовательность значений функции sinc

которая представляет собой обратное преобразование Фурье прямоугольного импульса ширины 2p и высоты 1:

.

Последовательность отсчетов аргумента задается в массиве х. Последовательность значений функции sinc формируется в векторе у. Количество элементов вектора у равно количеству элементов вектора х.

Известно, что любая функция g(t), частотный спектр которой ограничен диапазоном wÎ [-p, p], может быть представлена в виде суммы бесконечного, но счетного количества функций sinc. Из этого следует, что такая функция может быть полностью восстановлена по последовательности ее отсчетов, в общем случае бесконечной:

Пример:

Выполним идеальную интерполяцию функции по заданной последовательности отсчетов (рисунок 1.4). За пределами заданного интервала функция равна 0. Частота дискретизации равна частоте Найквиста.

t = (1:10)';

х = randn(size(t));

ts = linspace(-5,15, 600)';

у = sinc(ts(:, ones(size(t))) -t(:, ones(size(ts)))')*x;

plot(t, x, 'o', ts, y)

Рисунок 1.4

Сопутствующие функции: CHIRP, COS, DIRIC, GAUSPULS, PULSTRAN, RECTPULS, SAWTOOTH, SIN, SQUARE, TRIPULS.

PULSTRAN Генератор импульсов

Синтаксис:

у = pulstran(t, d, 'func')

у = pulstran(t, d, 'func', p1, p2,...)

у = pulstran(t, d, p, Fs)

у = pulstran(t, d, p)

Описание:

Группа функций pulstran генерирует последовательность импульсов. Форма импульса может быть задана функцией или определена набором отсчетов.

Функция у = pulstran(t, d, 'func') позволяет в параметре 'func' задать форму импульса. Параметр 'func' принимает одно из следующих значений:

  • gauspuls - синусоида, модулированная кривой Гаусса;

  • rectpuls - прямоугольный импульс;

  • tripuls - треугольный импульс.

Выходной сигнал у рассчитывается для значений аргумента, заданных в векторе t, по формуле у = func(t - d(1)) + func(t - d(2)) + ... Число импульсов в заданном диапазоне значений аргумента равно length(d).

Функция у = pulstran(t, d, 'func', pi, p2,...) позволяет задавать дополнительные параметры обращения к 'func', например func(t - d(l), p1, р2,...).

Функция у = pulstran(t, d, p, Fs) позволяет определять импульс последовательностью отсчетов, заданных в векторе р. Частота дискретизации задается параметром Fs.

При использовании функции у = pulstran(t, d, p) частота дискретизации полагается равной 1 Гц.

Примеры:

1. Сформируем и выведем на экран пилообразный сигнал d частотой повторения импульсов 3 Гц и длиной импульса - 0,1 с (рисунок 1.5). Продолжительность сигнала составит 1с при частоте дискретизации 1кГц.

t = 0: 1/1еЗ: 1;

d =0:1/3:1;

у = pulstran(t, d, 'tripuls', 0.1, -1);

plot(t, у)

  1. Сформируем и выведем на экран последовательность гауссовых импульсов, имеющих частоту несущей 10 кГц и ширину полосы 50% (рисунок 1.6). Частота повторения импульсов составляет 1 кГц, частота дискретизации -50 кГц, длина импульса - 10 мс. Коэффициент затухания амплитуды импульсов равен 0.8.

t = 0: 1/50еЗ: 10е-3;

d = [0 : 1/1 еЗ : 10е-3; 0.8 .^(0 : 10)]';

у = pulstran(t, d, 'gauspuls', 10еЗ, 0.5);

plot(t,y);

Рисунок 1.5

Рисунок 1.6

  1. Сформируем последовательность 10 окон Хемминга (рисунок 1.7).

р = hamming(32);

t = 0 : 320; d = (0 : 9)'*32;

у = pulstran(t, d, p );

plot (t, у);

Сопутствующие функции: CHRP, COS, DIRIC, GAUSPULS, RECTPULS, SAWTOOTH, SIN, SINC, SQUARE, TRIPULS.

Рисунок 1.7