Моделирование квантования в MATLAB
M-функция MATLAB имеет вид:
[ind, xQ, D] = quantiz(x, partition, codebook),
где x – вектор отсчетов сигнала; partition – вектор границ интервалов P1,P2,…,PL-1; codebook – вектор C1,C2,…,CL значений кодовой книги; ind – вектор-столбец индексов (номеров) интервалов; xQ – вектор-строка квантованных значений сигнала; D – средний квадрат ошибки квантования:
Пример 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
Исходный и квантованный сигналы приведены на рис. 27, график значений индексов (отсчетов) приведен на рис. 28.
Рис.27. График исходного и квантованного сигнала
Рис.28. График значений индексов
Дата добавления: 2015-09-29; просмотров: 2988;