Моделювання дискретних сигналів
Автор: Vitaliy Lymar • Апрель 22, 2018 • Лабораторная работа • 830 Слов (4 Страниц) • 436 Просмотры
МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ
НАЦІОНАЛЬНИЙ АВІАЦІЙНИЙ УНІВЕРСИТЕТ
НАВЧАЛЬНО-НАУКОВИЙ ІНСТИТУТ ІНФОРМАЦІЙНО-ДІАГНОСТИЧНИХ СИСТЕМ
КАФЕДРА БІОКІБЕРНЕТИКИ ТА АЕРОКОСМІЧНОЇ МЕДИЦИНИ
Лабораторна робота № 1
На тему: «Моделювання дискретних сигналів»
Виконав: студент гр. БМ-462
Лимар В.М.
Перевірив: Гордєєв А.Д.
Оцінка __________________
Київ – 2017
%=== Завдання #1.1 ===
% Моделювання одиничного імпульсу
N = 10;
n = 0:N-1;
x = double((n)==3);
y = double((n)==2);
d = 3; %Змінна для довільної затримки
class(x)
figure()
subplot(2, 1, 1), stem(x)
subplot(2, 1, 2), stem(y-d)%будує графік з затримкою вказаній в змінній d
Результат роботи програми:
[pic 1]
Запитання:
Який тип даних повертають оператори логічного порівняння?
Оператори логічного порівняння повертають тип даних boolean, який приймає значення логічної 1 або 0.
З якою метою використовується оператор double?
Оператор double перетворює елементи масиву із цілочисельного формату в числа з плаваючою крапкою, для підвищення точності.
%=== Завдання #1.2 ===
% Моделювання дискретного сигналу
N = 201;
n = 0: N-1;
x = cos(pi*n/16);
figure()
subplot(3, 1, 1), stem(x)
subplot(3, 1, 2), plot(x)
subplot(3, 1, 3), stairs(x)
Результат роботи програми:
[pic 2]
Запитання:
Чи є гармонійна послідовність x(n) періодичною? Якщо так,то визначте її період.
Так, послідовність є гармонічною з періодом 25 відліків.
%=== Завдання #1.3 ===
% Моделювання дискретної експоненти
n = 0: 20;
a1 = 0.8;
a2 = -0.8;
a3 = 1.1;
a4 = -1.1;
x1 = (a1).^n;
x2 = (a2).^n;
x3 = (a3).^n;
x4 = (a4).^n;
figure()
subplot(2, 2, 1), stem(x1), title('a = 0.8');
% продовжіть для сигналів х2, х3, х4
subplot(2, 2, 2), stem(x2), title('a = -0.8');
subplot(2, 2, 3), stem(x3), title('a = 1.1');
subplot(2, 2, 4), stem(x4), title('a = -1.1');
Результат роботи програми:
[pic 3]
Запитання:
Як впливає значення параметра a на вид сигналу?
Параметр а прямо пропорційний швидкості росту кривої. Якщо параметр менше 1 графік функції буде спадаючим, якщо більше – зростаючим.
%=== Завдання #1.4 - 1.6 ===
%?1.5
%?1.6
% Знаходження піків сигналу
fs = 1000;
t = 0:1/fs:2;
x = 3*sin(6*pi*t) + 5*sin(16*pi*t);
pks = pksdetect(x);
figure()
plot(t, x, 'k-'); hold on;
plot(t(pks), x(pks), 'ko '); hold off;
xlabel('time (s)'); ylabel('x(t)');
Результат роботи програми:
[pic 4]
Запитання:
Для чого використовується функція hold? Як можна змінити програмний код, щоб отримати той же результат без використання цієї функції?
Функція hold зберігає поточний графік в графічному вікні, так що наступні команди приведуть до побудови інших графіків в цьому ж вікні.
%=== Завдання #2.1 - 2.2 ===
% Моделювання стохастичного сигналу
fs = 200;
T = 1/fs;
D = 0.25;
n = 0:1000;
r = randn(size(n))*sqrt(D); % шум
s = 1.8*cos(20*pi*n*T); % сигнал
x = s + r; % сигнал+шум
figure()
plot(x)
title('Стохастичний сигнал')
xlabel('x'), ylabel('y')
fprintf('Математичне сподівання сигналу = %4.3g\n', mean(s))
fprintf('Дисперсія сигналу = %4.3g\n', var(s))
fprintf('Математичне сподівання шуму = %4.3g\n', mean(r))
fprintf('Дисперсія шуму = %4.3g\n', var(r))
fprintf('Математичне сподівання сигнал + шум = %4.3g\n', mean(x))
fprintf('Дисперсія сигнал + шум = %4.3g\n', var(x))
...