Произведите индекс квантования и квантованное выходное значение
index = quantiz(sig,partition)
[index,quants] = quantiz(sig,partition,codebook)
[index,quants,distor] = quantiz(sig,partition,codebook)
index = quantiz(sig,partition)
возвращается уровни квантования в векторе действительных чисел сигнализируют о sig
с помощью параметра partition
. partition
является вектором действительных чисел, записи которого находятся в строго порядке по возрастанию. Если partition
имеет длину n, index
является вектором, kth запись которого
0, если sig
(k) ≤ partition
(1)
m, если partition
(m) <sig
(k) ≤ partition
(m+1)
n, если partition
(n) <sig
(k)
[index,quants] = quantiz(sig,partition,codebook)
совпадает с синтаксисом выше, за исключением того, что codebook
предписывает значение для каждого раздела в квантовании, и quants
содержит квантование sig
на основе уровней квантования и заданных значений. codebook
является вектором, длина которого превышает длину partition
одним. quants
является вектором - строкой, длина которого совпадает с длиной sig
. quants
связан с codebook
и index
quants(ii) = codebook(index(ii)+1);
где ii
является целым числом между 1 и length(sig)
.
[index,quants,distor] = quantiz(sig,partition,codebook)
совпадает с синтаксисом выше, за исключением того, что distor
оценивает среднеквадратическое искажение этого набора данных квантования.
Команда ниже округляет несколько чисел между 1 и 100 до самого близкого кратного 10. quants
содержит округленные числа, и index
говорит, в каком уровне квантования каждый номер находится.
[index,quants] = quantiz([3 34 84 40 23],10:10:90,10:10:100)
Вывод ниже.
index = 0 3 8 3 2 quants = 10 40 90 40 30