lloyds

Оптимизируйте параметры квантования с помощью алгоритма Ллойда

Синтаксис

[partition,codebook] = lloyds(training_set,initcodebook)
[partition,codebook] = lloyds(training_set,len)
[partition,codebook] = lloyds(training_set,...,tol)
[partition,codebook,distor] = lloyds(...)
[partition,codebook,distor,reldistor] = lloyds(...)

Описание

[partition,codebook] = lloyds(training_set,initcodebook) оптимизирует скалярные параметры квантования partition и codebook для обучающих данных в векторном training_set. initcodebook, вектор длины по крайней мере 2, исходное предположение значений книги шифров. Выход codebook вектор той же длины как initcodebook. Выход partition вектор, длина которого является той меньше, чем длина codebook.

Смотрите Представляют Разделы, Представляют Книги шифров или страницу с описанием для quantiz в этой главе, для описания форматов partition и codebook.

Примечание

lloyds оптимизирует для данных в training_set. Для лучших результатов, training_set должно быть похоже на данные, которые вы планируете квантовать.

[partition,codebook] = lloyds(training_set,len) совпадает с первым синтаксисом, за исключением того, что скалярный аргумент len указывает на размер векторного codebook. Этот синтаксис не включает начальное предположение книги шифров.

[partition,codebook] = lloyds(training_set,...,tol) совпадает с этими двумя синтаксисами выше, за исключением того, что tol замены 10-7 в условии 1 из описания алгоритма ниже.

[partition,codebook,distor] = lloyds(...) возвращает итоговое среднеквадратическое искажение в переменной distor.

[partition,codebook,distor,reldistor] = lloyds(...) возвращает значение reldistor это связано с завершением алгоритма. В условии 1 из алгоритма ниже, reldistor относительное изменение в искажении между последними двумя итерациями. В условии 2, reldistor совпадает с distor.

Примеры

Код ниже оптимизирует параметры квантования для синусоидальной передачи через трехбитный канал. Поскольку типичные данные являются синусоидальными, training_set произведенная синусоида. Поскольку канал может передать три бита за один раз, lloyds готовит книгу шифров длины 23.

% Generate a complete period of a sinusoidal signal.
x = sin([0:1000]*pi/500);
[partition,codebook] = lloyds(x,2^3)

Выход ниже.

partition =

  Columns 1 through 6 

   -0.8540   -0.5973   -0.3017    0.0031    0.3077    0.6023

  Column 7 

    0.8572


codebook =

  Columns 1 through 6 

   -0.9504   -0.7330   -0.4519   -0.1481    0.1558    0.4575

  Columns 7 through 8 

    0.7372    0.9515

Алгоритмы

lloyds использует итеративный процесс, чтобы попытаться минимизировать среднеквадратическое искажение. Обработка оптимизации заканчивается когда также

  • Относительное изменение в искажении между итерациями меньше 10-7.

  • Искажение меньше eps*max(training_set), где eps MATLAB относительная точность с плавающей точкой.

Ссылки

[1] Ллойд, S.P., “Квантование наименьших квадратов в PCM”, Транзакции IEEE на Теории информации, издании IT-28, март 1982, стр 129–137.

[2] Max, J., “Квантуя для Минимального Искажения”, Транзакции IRE на Теории информации, издании IT-6, март 1960, стр 7–12.

Смотрите также

|

Представлено до R2006a