Сгенерируйте словарь Кода Хаффмана для источника с известной вероятностной моделью
[dict,avglen] = huffmandict(symbols,p)
[dict,avglen] = huffmandict(symbols,p,N)
[dict,avglen] = huffmandict(symbols,p,N,variance
)
Функция huffmandict
генерирует словарь Кода Хаффмана, соответствующий источнику с известной вероятностной моделью. Необходимые входные параметры
symbols
, который перечисляет отличные значения сигналов, которые производит источник. Это может иметь форму числового вектора, числового массива ячеек или алфавитно-цифрового массива ячеек. Если это - массив ячеек, это должна быть или строка или столбец.
p
, вектор вероятности, k-й элемент которого является вероятностью, с которой источник производит k-й элемент symbols
. Длина p
должна равняться длине symbols
.
Выходные параметры huffmandict
dict
, массив 2D ячейки столбца, в который первые списки столбцов отличные значения сигналов от symbols
и вторых списков столбцов соответствующие кодовые комбинации Хафмана. Во втором столбце каждая кодовая комбинация Хафмана представлена как числовой вектор - строка.
avglen
, средняя длина среди всех кодовых комбинаций в словаре, взвешивается согласно вероятностям в векторном p
.
[dict,avglen] = huffmandict(symbols,p)
генерирует бинарный словарь Кода Хаффмана с помощью максимального алгоритма отклонения.
[dict,avglen] = huffmandict(symbols,p,N)
генерирует N
-ary словарь Кода Хаффмана с помощью максимального алгоритма отклонения. N
является целым числом между 2 и 10, который не должен превышать количество исходных символов, вероятности которых появляются в векторном p
.
[dict,avglen] = huffmandict(symbols,p,N,
генерирует словарь Кода Хаффмана Не с минимальным отклонением, если variance
)variance
является 'min'
и максимальное отклонение, если variance
является 'max'
. N
является целым числом между 2 и 10, который не должен превышать длину векторного p
.
[1] Sayood, Халид, введение в сжатие данных, Сан-Франциско, Моргана Кофманна, 2000.