МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ
НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ “ЛЬВІВСЬКА ПОЛІТЕХНІКА”
/
Звіт з лабораторної роботи №2
з дисципліни: «Цифрова обробка сигналів»
на тему: «Дискретизація і квантування сигналів»
Завдання
Форма сигналу:
Варіант
№
Параметри сигналу
А1
А2
А3
А4
/
8
-12
17
4
1
11
19
2/7
4/8
0
20
-3
5
2
-5
6
19
1/3
3/8
0
Тобто, аналітичний запис сигналу такий:
Аналітичний розрахунок кроку дискретизації та періоду сигналу
Згідно теореми Котельникова: , де : - гранична частота. Оскільки, заданий сигнал містить різні частоти, то граничною буде найбільша з них: .
Отже: .
Підставивши отримане значення у теорему Котельникова, маємо крок дискретизації:
Для знаходження періоду заданого сигналу слід знайти найменше спільне кратне між періодами всіх окремих складових сигналу. Таких частин є чотири (чотири доданки присутні в аналітичному представленні сигналу):
; ;
;
Як відомо, амплітуда та фаза не впливають на період сигналу, тому до уваги слід брати лише частоту. Отже, складові заданого сигналу мають такі періоди: ; ; ; . Очевидно, що найменше спільне кратне становить (воно ділиться без остачі на решту періодів). Таким чином період заданого складеного сигналу становить:
Текст програми
clear all
//очистка пам’яті
clc
//закриття всіх графічних вікон
close()
//очистка екрану
A1=-3; A2=5; A3=2; A4=-5;
//амплітуда
w1=6; w2=19; w3=1/3; w4=3/8;
//частота
phi1=%pi/2; phi2=%pi/4; phi3=0; phi4=%pi/6;
//фаза
M=2^3;
//кількість рівнів квантування
koef=2^0;
//коефіцієнт кількості відліків
w_gr=max([w1,w2,w4,w3]);
//гранична кругова частота
f_gr=w_gr/(2*%pi);
//гранична лінійна частота
dt=1/(2*f_gr*koef);
//дискрет часу за теоремою //Котельникова
T=6*%/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
1.4523548
- 0.0064112
0.7420725
32
0.3259239
0.0369919
0.0374364
256
0.0401403
0.0024167
0.0005782
2
8
1.5279938
0.0281808
0.7770604
32
0.3469651
- 0.0101300
0.0412174
256
0.0421292
0.0005540
0.0005715
4
8
1.7277255
0.0233922
0.9759288
32
0.3893297
0.0060301
0.0510923
256
0.0474204
0.0019286
0.0007655
8
8
1.7277255
0.0402130
0.9770745
32
0.3896946
0.0025544
0.0514916
256
0.0474434
0.0010910
0.0007526
Графіки дискретного квантового сигналу для таких параметрів: М=8; koef=8
/
Висновки
В даній лабораторній роботі проведено оцифровування сигналу, заданого аналітичним виразом :
Для цього визначено крок дискретизації та період досліджуваного сигналу. Вони становлять, відповідно : ;
Здійснено оцінку точності оцифровування за критеріями абсолютної, середньої похибки та дисперсії, в залежності від частоти дискретизації та кількості рівнів квантування. З отриманих результатів видно, що перший параметр практично не впливає на точність оцифровування, тоді як зі збільшенням другого, точність оцифровування збільшується.
Отже, для коректного представлення сигналу слід забезпечити частоту дискретизації не менше ніж , тобто 6 відліків в одиницю часу та максимально можливу кількість рівнів квантування.