- •Міністерство освіти і науки україни
- •49600, Дніпропетровськ-5, пр. Гагаріна, 4
- •Лабораторная работа №1 Формирование и исследование типовых сигналов
- •1.1 Формирование типовых сигналов
- •1.2 Применение пакета sumulink для формирования и исследования сигналов.
- •Лабораторная работа № 2 Быстрое преобразование Фурье
- •2.1 Получение спектра сигнала
- •2.2 Дискретное преобразование Фурье
- •2.3.1 Прямое одномерное дискретное бпф — fft
- •2.3 Быстрое преобразование Фурье (бпф)
- •2.3.2 Перегруппировка выходного массива преобразования Фурье fftshift
- •2.3.3 Обратное одномерное дискретное бпф –ifft
- •Замечание
- •2.3.4 Матрица дискретного преобразования Фурье — dftmtx
- •Лабораторная работа №3 Свертка и деконволюция
- •3.1 Свертка одномерных сигналов — conv
- •3.2 Операция, обратная свертке — deconv
- •Свертка двумерная и многомерная — conv2 и convn
- •Лабораторная работа №4 Исследование характеристик аналоговых и цифровых фильтров
- •4.1 Теоретические основы
- •Лабораторная работа № 5 Расчет цифровых фильтров в среде matlab
- •5.1 Расчет цифровых фильтров в командном окне
- •5.1.1 Расчет коэффициентов нерекурсивного фильтра с помощью функции fir1.
- •5.1.2 Расчет коэффициентов и рекурсивного фильтра
- •5.1.3 Построение графиков ачх и фчх
- •Построение графика ипх
- •5.1.5 Моделирование процесса цифровой фильтрации
- •5.1.5.1. Моделирование входного процесса и построение его графика
- •Два способа фильтрации в командном окне
- •5.2 Расчет фильтра с помощью пакета sptool
- •5.2.1 Интерактивная оболочка spTool
- •5.2.2 Пример
- •5.3 Расчет фильтра с помощью пакета fdatool
- •Сопоставление способов расчета
Лабораторная работа №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, у)
Сформируем и выведем на экран последовательность гауссовых импульсов, имеющих частоту несущей 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
Сформируем последовательность 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
