Мiнiстерство освiти і науки України
Національний університет “Львівська політехніка”
/
Лабораторна робота №2
з диципліни: «Цифрова обробка сигналів»
на тему:«ДИСКРЕТИЗАЦІЯ І КВАНТУВАННЯ СИГНАЛІВ»
1. Завдання
Форма сигналу:
Варіант
№
Параметри сигналу
А1
А2
А3
А4
4
0,48
23
-5
-17
13
1/7
15
5
0
Тобто, аналітичний запис сигналу такий:
2.Аналітичний розрахунок кроку дискретизації та періоду сигналу
Згідно теореми Котельникова: , де : - гранична частота. Оскільки, заданий сигнал містить різні частоти, то граничною буде найбільша з них: .
Отже: .
Підставивши отримане значення у теорему Котельникова, маємо крок дискретизації:
Для знаходження періоду заданого сигналу слід знайти найменше спільне кратне між періодами всіх окремих складових сигналу. Таких частин є чотири (чотири доданки присутні в аналітичному представленні сигналу):
; ;
;
Як відомо, амплітуда та фаза не впливають на період сигналу, тому до уваги слід брати лише частоту. Отже, складові заданого сигналу мають такі періоди: ; ; ; . Таким чином період заданого складеного сигналу становить:
clearall
//очистка пам’яті
clc
//закриття всіх графічних вікон
close()
//очистка екрану
A1=0.48; A2=23; A3=-5; A4=-17;
//амплітуда
w1=13; w2=1/7; w3=15; w4=5;
//частота
phi1=%pi/7; phi2=%pi/5; phi3=0; phi4==%pi/4;
//фаза
M=2^4;
//кількість рівнів квантування
koef=2^1;
//коефіцієнт кількості відліків
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;
ifmodulo(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=")
//дисперсія
3. Текст програми
clear all
clc
close()
A1=0.48; A2=23; A3=-5; A4=-17;
w1=13; w2=1/7; w3=15; w4=5;
phi1=%pi/7; phi2=%pi/5; phi3=0; phi4==%pi/4;
M=2^4;
koef=2^1;
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=")
4. Оцінка похибки оцифровування
Koef
M
A
B
D
1
8
5.6328845
1.178D-14
10.714905
32
1.2693674
1.064D-14
0.5337596
256
0.1546910
1.071D-14
0.0080766
2
8
6.3703483
1.652D-14
13.339752
32
1.4358915
1.605D-14
0.7080139
256
0.1746814
1.533D-14
0.0094748
4
8
6.3703483
1.243D-14
13.853924
32
1.4392162
1.219D-14
0.7099387
256
0.1746814
1.179D-14
0.0102858
8
8
6.3801158
- 6.767D-16
14.10636
32
1.440516
- 5.414D-16
0.7113771
256
0.1752263
- 2.978D-15
0.0102951
5. Графіки дискретного та квантованого сигналу для таких параметрів :
М=32; koef=4
/
6. Висновки
В даній лабораторній роботі проведено оцифровування сигналу, заданого аналітичним виразом : . Для цього визначено крок дискретизації та період досліджуваного сигналу. Вони становлять, відповідно : ;
Здійснено оцінку точності оцифровування за критеріями абсолютної, середньої похибки та дисперсії, в залежності від частоти дискретизації та кількості рівнів квантування. З отриманих результатів видно, що перший параметр практично не впливає на точність оцифровування, тоді як зі збільшенням другого, точність оцифровування збільшується.
Отже, для коректного представлення сигналу слід забезпечити частоту дискретизації не менше ніж , тобто 5 відліків в одиницю часу та максимально можливу кількість рівнів квантування.