ЛР4 > Линейное преобразование сигналов
Цель работы: научиться создавать сигналы сложной формы, используя свойства линейности.
Руководство по лабораторной работе
Для выполнения лабораторной работы Вам необходимо повторить соответствующие лекции.
Скачать Материалы к лабораторной работе №4.
ТЕОРЕТИЧЕСКИЕ СВЕДЕНИЯ
Формирование сложных последовательностей сигналов можно осуществлять с помощью линейных математических операций – умножения на константу, сложения и временного сдвига. В качестве примера рассмотрим формирование последовательности прямоугольных импульсов из соответствующих гармонических составляющих.
Формула, описывающая разложение импульсного периодического сигнала на гармонические составляющие выглядит следующим образом:
.
Программа, реализующая эту функцию для восьми гармонических составляющих, выглядит следующим образом (пример № 1):
N=8; %число ненулевых гармоник
t = -1:0.01:1; %вектор моментов времени
A = 1; %амплитуда
T = 1; %период
nh = (1:N)*2 – 1; %номера ненулевых гармоник
% вычисление строк-гармоник
harmonics = cos(2*pi*nh’*t/T);
Am = 2/pi./nh; %амплитуды гармоник
Am(2:2:end)=-Am(2:2:end); %чередование знаков
s1 = harmonics.*repmat(Am’, 1, length(t));
%формирование строк – частных сумм гармоник
s2 = cumsum(s1);
for k=1:N,
subplot(4,2,k); plot(t,s2(k,:))
end
Результат работы данной программы показан на рисунке 1.
Рисунок 1. Формирование импульсного сигнала из восьми гармонических составляющих.
Для полного понимания принципа работы программы – посмотрите документацию для следующих функций – repmat и cumsum.
Генерировать периодические сигналы различной формы можно с помощью встроенных функций среды MatLab:
square – последовательность прямоугольных импульсов;
sawtooth – последовательность треугольных импульсов;
diric – функция Дирихле (периодическая sinc-функция);
chirp – генерация колебаний с меняющейся частотой.
Для генерации дискретного белого шума с нормальным распределением можно использовать функцию randn(m, n). В результате вызова этой функции генерируется массив, содержащий m строк и n столбцов псевдослучайных чисел, имеющих нормальное распределение с нулевым математическим ожиданием и единичной дисперсией. Пример работы этой функции показан ниже:
Пример № 2
x=randn(1, 10000);
plot(x);
Результат генерации случайного сигнала показан на рисунке 2.
Рисунок 2. Генерация случайного сигнала.
В пакете MatLab есть еще одна полезная функция – awgn. Она позволяет добавлять к сигналу белый шум с заданным уровнем. Формат вызова данной функции следующий:
y = awgn(x, snr, sigpower, state, ‘powertype’), где
x – вектор отсчета сигнала, snr – скаляр, задающий соотношение сигнал/шум в единицах, определяемых параметром ‘powertype’ (по умолчанию – в децибелах),
sigpower – мощность сигнала, state – принудительная установка генератора случайных чисел (последние три параметра не являются обязательными).
ЗАДАНИЕ
-
Проработайте основные примеры, изложенные выше, в системе MATLAB.
-
Создайте М-файл, который реализует следующие сигналы из соответствующих гармонических составляющих:
- Пилообразный сигнал:
;
- Последовательность треугольных импульсов:
.
- Исследуйте самостоятельно функции square, sawtooth, diric и chirp. Для визуализации работы функции chirp удобно использовать функцию построения спектрограммы (specgram(s, [ ], Fs), где s – исследуемый сигнал, [ ] – диапазон его значений, Fs – частота дискретизации).
- Для случайного сигнала, генерируемого с помощью функции randn(m, n) создайте М-файл, в котором: генерировался бы сигнал, для него рассчитывалось среднее значение, СКО и строилась гистограмма.
- Создайте М-файл, в котором к сгенерированному периодическому сигналу добавлялся случайный шум. Вычислите статистические характеристики такого сигнала.
- Создайте М-файл, в котором к гармоническому сигналу добавляется белый шум в заданном соотношении (используйте для этого функцию awgn).
-
Сгенерируйте сигнал, состоящий из 16 отсчетов. Для данного сигнала создайте М-файл, который реализует следующие варианты разложения сигнала:
-
импульсное разложение;
-
ступенчатое разложение;
-
четное/нечетное разложение;
-
чередующееся разложение.