МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ
НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ «ЛЬВІВСЬКА ПОЛІТЕХНІКА»
Кафедра ЕОМ
ЗВІТ
з лабораторної роботи №2
з дисципліни: «Цифрова обробка сигналів»
на тему: «Дискретизація і квантування сигналів»
Мета роботи: дослідити процес дискретизації і квантування сигналів, оцінити похибку оцифровування.
Завдання:
при чому, згідно варіанту:
№
А1
А2
А3
А4
19
0,13
27
-2
19
1
2
1/7
9
0
Тобто, аналітичний запис сигналу такий:
.
Аналітичний розрахунок кроку дискретизації та періоду сигналу
Згідно теореми Котельникова: , де : - гранична частота. Оскільки, заданий сигнал містить різні частоти, то граничною буде найбільша з них: . Отже:
Підставивши отримане значення у теорему Котельникова, маємо крок дискретизації:
Для знаходження періоду заданого сигналу слід знайти найменше спільне кратне між періодами всіх окремих складових сигналу. Таких частин є чотири (чотири доданки присутні в аналітичному представленні сигналу):
; ;
;
Як відомо, амплітуда та фаза не впливають на період сигналу, тому до уваги слід брати лише частоту. Отже, складові заданого сигналу мають такі періоди: ; ; ; . Очевидно, що найменше спільне кратне становить (воно ділиться без остачі на решту періодів). Таким чином період заданого складеного сигналу становить:
Текст програми
clear all
//очистка пам’яті
clc
//закриття всіх графічних вікон
close()
//очистка екрану
A1=0,13; A2=27; A3=-2; A4=19;
//амплітуда
w1=1; w2=2; w3=1/7; w4=9;
//частота
phi1=%pi/5; phi2=0; phi3=%pi/2; phi4=%pi/3;
//фаза
M=2^5;
//кількість рівнів квантування
koef=2^0;
//коефіцієнт кількості відліків
w_gr=max([w1,w2,w4,w3]);
//гранична кругова частота
f_gr=w_gr/(2*%pi);
//гранична лінійна частота
dt=1/(2*f_gr*koef);
//дискрет часу за теоремою //Котельникова
T=14*%pi;
//період з аналітичних розрахунків
t=0:dt:T-dt;
//вектор часу для одного періоду
x=A1*cos(w1*t+phi1)-A2*sin(w2*t+phi2)+A3*sin(w3*t+phi3)-A4*cos(w4*t+phi4);
//вектор дискретного сигналу
maxA=max(abs(x))
//максимальне значення амплітуди
minA=-maxA
//мінімальне значення амплітуди
N=length(x);
//довжина вектору сигналу
k=(maxA-minA)/(M-1);
//квант амплітуди
K=minA:k:maxA;
//вектор рівнів квантування
y=floor(x/k)*k;
if modulo(M,2)==0
y=y+k/2;
end;
//округлення дискретного значення //сигналу до найближчого рівня //квантування, а отже, отримання //квантованого, тобто цифрового //сигналу
KK=ones(N,1)*K; plot(t,KK,'k--')
ff=gca()
ff.auto_ticks=["on","on","on"]
xlabel('Час,с'); ylabel('Рівні квантування')
//відображення рівнів квантування
plot2d(t,x,3)
//графік дискретного сигналу
plot2d2(t,y,5)
//графік квантованого сигналу
a=max(abs(y-x))
disp(a,"a=")
//абсолютна похибка
b=(1/N)*(sum(y)-sum(x))
disp(b,"b=")
//середня похибка
d=(1/N)*sum((y-x).^2)
disp(d,"d=")
//дисперсія
Оцінка похибки оцифровування
Koef
M
A
B
D
1
8
5.306998
- 2.115*10-15
9.5563364
32
1.2212212
- 3.130*10-15
0.5099397
256
0.1480894
- 2.453*10-15
0.0077457
2
8
6.3897337
- 3.754
13.500203
32
1.4439402
0.0461124
0.7738661
256
0.1758867
0.0028029
0.0102776
4
8
6.7305864
0.0268367
14.521762
32
1.5210266
0.0969586
0.7917321
256
0.1853390
0.0007367
0.0115514
8
8
6.812571
- 0.1082102
15.414744
32
1.5389912
0.0824666
0.7921512
256
0.1871377
- 0.0051983
0.0112629
Графіки дискретного та квантованого сигналу для таких параметрів :
М=32; koef=8
/
Висновок: при виконанні лабораторної роботи було проведено оцифровування сигналу, заданого аналітичним виразом : . Для цього визначено крок дискретизації та період досліджуваного сигналу. Вони становлять, відповідно : ;
Здійснено оцінку точності оцифровування за критеріями абсолютної, середньої похибки та дисперсії, в залежності від частоти дискретизації та кількості рівнів квантування. З отриманих результатів видно, що перший параметр практично не впливає на точність оцифровування, тоді як зі збільшенням другого, точність оцифровування збільшується.
Отже, для коректного представлення сигналу слід забезпечити частоту дискретизації не менше ніж , тобто 4 відліків в одиницю часу та максимально можливу кількість рівнів квантування.