MATLAB è Simulink íà ðóññêîì

https://hub.exponenta.ru/
 

Обработка сигналов и изображений\Communications Toolbox

Список функций CommunicationsToolbox: Кодирование источника

  В оглавление \ К следующему разделу \ К предыдущему разделу

LLOYDS
Оптимизация параметров нелинейного квантования

Синтаксис:

[partition,codebook] = lloyds(trainingset,initcodebook);
[partition,codebook] = lloyds(trainingset,length);
[partition,codebook] = lloyds(trainingset,...,tol);
[partition,codebook] = lloyds(trainingset,...,tol,plotflag);
[partition,codebook,distor] = lloyds(...);
[partition,codebook,distor,reldistor] = lloyds(...);

Описание:

  • [partition,codebook] = lloyds(trainingset,initcodebook)

Оптимизирует параметры нелинейного квантования partition и codebook по тестовому набору данных из вектора trainingset. Входной параметр initcodebook является вектором, содержащим хотя бы два элемента, и задает начальное приближение для набора уровней квантования (codebook). Результат codebook — оптимизированный набор уровней квантования, он является вектором той же длины, что и initcodebook. Результат partition — вектор, длина которого на единицу меньше, чем длина вектора codebook. Этот вектор задает границы зон квантования.

Подробное описание смысла параметров partition и codebook приведено на странице с описанием функции quantiz.

Замечание. Функция lloyds подбирает параметры квантования, минимизирующие среднеквадратическую ошибку квантования для набора данных из вектора trainingset. Поэтому вектор trainingset должен содержать выборку, типичную для данных, которые планируется квантовать с использованием оптимизированных параметров.

  • [partition,codebook] = lloyds(trainingset,length)

То же, что предыдущий вариант синтаксиса, но вторым входным параметром функции является не вектор, а скаляр length, который задает длину вектора codebook. Начальное приближение в данном случае выбирается автоматически.

  • [partition,codebook] = lloyds(trainingset,...,tol)

То же, что предыдущие варианты синтаксиса, но параметр tol задает пороговое значение для завершения работы итерационного алгоритма (см. далее). По умолчанию значение tol равно 10–7.

  • [partition,codebook] = lloyds(trainingset,...,tol,plotflag)

То же, что предыдущий вариант синтаксиса, но дополнительно выводится график тестового сигнала, на котором также показаны оптимизированные уровни квантования и границы зон квантования. Значение параметра plotflag может быть любым, важно лишь его наличие.

  • [partition,codebook,distor] = lloyds(...)

Дополнительно возвращает средний квадрат ошибки квантования — выходной параметр distor.

  • [partition,codebook,distor,reldistor] = lloyds(...)

Дополнительно возвращает параметр reldistor, связанный с завершением работы итерационного алгоритма. При первой причине завершения (см. далее) reldistor показывает относительное изменение среднего квадрата ошибки на последней итерации. При второй причине завершения значение reldistor равно значению distor.

Примеры.

Приведенный ниже код оптимизирует параметры квантования для передачи синусоидального сигнала по трехбитовому каналу. Поскольку типичным примером сигнала является синусоида, вектор trainingset представляет собой набор отсчетов синусоиды. Поскольку предполагаемый канал связи является трехбитовым, функция lloyds оптимизирует набор уровней и границ зон для восьмиуровневого квантования (23 = 8).

% Генерируем один период синусоидального сигнала
x = sin([0:1000]*pi/500);
% Оптимизируем параметры квантования
[partition,codebook] = lloyds(x,2^3)
partition =

-0.8540 -0.5973 -0.3017 0.0031 0.3077 0.6023 0.8572

codebook =

Columns 1 through 7
-0.9504 -0.7330 -0.4519 -0.1481 0.1558 0.4575 0.7372
Column 8
0.9515

Алгоритм.

Функция lloyds использует итерационный алгоритм для минимизации среднеквадратической ошибки квантования. Завершение работы алгоритма может происходить по одной из двух причин:

  1. Относительное изменение среднего квадрата ошибки на очередной итерации стало меньше чем tol (по умолчанию значение параметра tol равно 10–7).
  2. Средний квадрат ошибки стал меньше чем eps*max(trainingset), где eps — относительная точность вычислений с плавающей запятой в MATLAB.

Сопутствующие функции: compand, dpcmopt, quantiz.

Литература:

  • S. P. Lloyd. "Least Squares Quantization in PCM." IEEE Transactions on Information Theory. Vol IT-28, March 1982, 129–137.
  • J. Max. "Quantizing for Minimum Distortion." IRE Transactions on Information Theory. Vol. IT-6, March 1960, 7–12.

  В оглавление \ К следующему разделу \ К предыдущему разделу

 

Поиск по сайту:


Система Orphus