ЛР1 Дискретные сигналы
.docxМИНОБРНАУКИ РОССИИ
Санкт-Петербургский государственный
электротехнический университет
«ЛЭТИ» им. В.И. Ульянова (Ленина)
Кафедра ТОР
отчет
по лабораторной работе №1
по дисциплине «Цифровая обработка сигналов»
Тема: ДИСКРЕТНЫЕ СИГНАЛЫ
Студенты гр. |
|
|
|
|
|
Преподаватель |
|
Апалина П.В. |
Санкт-Петербург
202X
Цели работы
• Знакомство со средой MATLAB.
• Формирование и построение графика кусочно-линейного дискретного сигнала.
• Расчет и построение графика спектра дискретного сигнала.
• Расчет и построение графика аналогового сигнала, восстановленного по дискретным отсчетам в соответствии с теоремой Котельникова.
Индивидуальное задание
В данной лабораторной работе рассматривается кусочно-линейный сигнал s(t), заданный параметрами Uk, Tk, k = 1…4, как показано на рис. 1.
Рис. 1. Кусочно-линейный сигнал, исследуемый в работе
При выполнении работы производится дискретизация данного сигнала с заданной частотой Fд. Параметры сигнала и используемая частота согласно варианту бригады №2 представлены в табл. 1.
Табл. 1. Параметры сигнала
U1, В |
U2, В |
U3, В |
U4, В |
T1, мс |
T2, мс |
Fд, кГц |
4 |
4 |
8 |
0 |
6 |
10 |
3 |
Обработка данных
Выполним в программной среде MATLAB три задачи:
1. Представление дискретного сигнала.
2. Построение АЧХ и ФЧХ сигнала.
3. Восстановление аналогового сигнала по Фурье-образам.
Код программы с подробными комментариями и полученные графики (рис. 2-4) приведем ниже.
Рис. 2. График дискретного сигнала
Рис. 3. Графики амплитудного и фазового спектров сигнала
Рис. 4. Совмещенный график дискретного восстановленного аналогового сигналов
Код программы
%% Построение графика дискретного сигнала
close all; % закрытие всех открытых прежде графиков
U1 = 4;
U2 = 4;
U3 = 8;
U4 = 0;
T1 = 0.006;
T2 = 0.01;
Fd = 3000; % исходные данные в СИ (В, с, Гц)
T = 1/Fd; % Создадим вектор отсчетов заданного сигнала: x(k) = u(kT), где T = 1/Fд — интервал дискретизации.
t1 = 0:T:T1;
t2 = T1:T:T2; % векторы моментов времени взятия отсчетов
a1 = 0; % Зададим линейные функции для описания сигнала по двум диапазонам времени
b1 = 4;
u1 = a1*t1 + b1;
a2 = -U3/(T2-T1);
b2 = -a2*T2;
u2 = a2*t2 + b2;
u = [u1(1:end-1) u2]; % На момент взятия отсчета приходится скачок уровня аналогового сигнала.
% Значение дискретного отсчета выберем произвольно в пределах диапазона
% скачка, для этого исключим дублирование последних точек справа с помощью end-1
t = [t1(1:end-1) t2];
% Построим график дискретного сигнала
figure(1);
stem(t, u, 'Linewidth', 1.5);
ax = gca;
ax.FontSize = 12;
xlabel('T, с');
ylabel('U, В');
%% Построение графика спектра дискретного сигнала
k = (0:length(t)-1).';
w = (-pi:(0.001*pi):pi);
kw = k*w; % Вычислим произведение столбца k и строки w — это даст матрицу размером N x M, содержащую все попарные произведения значений k и w
sign = kw*(-1j); % Умножим полученную матрицу на -j, чтобы получить показатель комплексной экспоненты
ex = exp(sign); % Значение комплексной экспоненты
% Умножим сформированный ранее вектор отсчетов сигнала x на матрицу значений комплексных экспонент.
% Эта операция реализует суммирование по k в формуле (1.3) и в результате
% дает вектор-строку значений спектра, рассчитанных для M частот из вектора w
Xw = u*ex; % X(w)
% Построим графики амплитудного и фазового спектров сигнала, разместив их друг под другом в одном графическом окне
linear_f = Fd*w/(2*pi); % линеаризованная частота
figure(2);
subplot(2,1,1);
plot(linear_f, abs(Xw), 'Linewidth', 1.5);
xlabel('f, Гц');
ylabel('А(f)');
ax = gca;
ax.FontSize = 12;
subplot(2,1,2);
plot(linear_f, angle(Xw), 'Linewidth', 1.5);
xlabel('f, Гц');
ylabel('Ф(f)');
ax = gca;
ax.FontSize = 12;
%% Восстановление аналогового сигнала по теореме Котельникова
tv = -5*T : T/10 : (T2+5*T); % Сигнал рассчитывается для равномерно следующих значений времени,
% расположенных в 10 раз чаще, чем было при дискретизации сигнала. Сформируем вектор
% моментов времени для расчета восстановленного сигнала по (1.5).
% Охватываемый диапазон времени будет выходить за края
% сигнала как минимум на 5 исходных интервалов дискретизации.
null = zeros(1,length(tv)); % Формируем заполненную нулями «заготовку» для вектора
% значений восстановленного сигнала s(t). Длина этого вектора должна
% совпадать с длиной вектора моментов времени.
for k = 0:length(u)-1
null = null + (u(k+1)*sinc(1/T*(tv-k*T)));
end
figure(3);
plot(tv, null);
hold on;
stem(t, u);
ax = gca;
ax.FontSize = 12;
xlabel('T, с');
ylabel('U, В');
Выводы
В лабораторной работе было выполнено представление кусочно-линейного сигнала в виде дискретного ряда, построены графики АЧХ и ФЧХ. Выполнены расчет и построение графика аналогового сигнала, восстановленного по дискретным отсчетам в соответствии с теоремой Котельникова.
Непрерывный сигнал был задан в виде ряда чисел, взятых с промежутком, определяемым заданной частотой дискретизации. Мы рассчитали спектр в основном частотном диапазоне и построили графики амплитудного и фазового спектров. Для этого были перемножены вектор отсчетов сигнала и матрица значений комплексных экспонент, получен вектор-строка значений спектра.
Чтобы восстановить сигнал с помощью теоремы Котельникова, мы сформировали вектор моментов времени с шагом в 10 раз меньше интервала дискретизации. Охватываемый диапазон времени должен был быть введен с запасом на 5 исходных интервалов дискретизации вправо и влево. Это позволило увидеть на графике затухающие «хвосты» функций sin(x)/x.
