Сгенерируйте словарь Кода Хаффмана для источника с известной вероятностной моделью
[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.