Моделирование квантования в 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. График значений индексов


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  




Подборка статей по вашей теме: