Page 18 - 6858
P. 18
x P L 1 C
L
2. Моделювання квантування
2.1. Моделювання квантування в Matlab
M-функция квантування в Matlab має вигляд:
[ind, xQ, D] = quantiz(x, partition, codebook)
де x – вектор відліків сигналу; partition – вектор меж інтервалів P 1 , P 2 , ,P L 1 ; codebook – вектор C , C , , C
L
2
1
значень кодової книги; ind – вектор-стовпець індексів (номерів) інтервалів; xQ – ветор-строка квантованих значень
сигналу; D – середній квадрат помилки квантування:
1 N t ~ 2
D x( n x ) .
n
N n 1
Приклад застосування m-функции:
% квантування гармонійного (50 Гц) сигналу одиничної амплітуди
% частота дискретизації 1000 Гц
i=1:20;
x=cos(2*pi*50*i/1000);
partition=[-.75 -.25 .25 .75];
codebook=[-.825 -.5 0 .5 .825];
[ind, xQ, D] = quantiz(x, partition, codebook);
plot(i,x), hold on, stem(i,xQ)
legend('Початковий сигнал','Результат квантований.')
for n=1:4
prt(n,i)=partition(n); plot(i,prt,'k')
end
for m=1:5
cdbk(m,i)=codebook(m); plot(i,cdbk,'r-.')
end
figure
stem(i,ind), title('Індекси')
ind, xQ, D
Початковий і квантований сигнали приведені на рис.6, графік значень індексів приведений на рис.7.
Рис.2.7
Рис.2.6
2.2. Моделювання квантування в Simulink
18