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