Программа написана швейцарскими ребятами и модифицирована мною для генерации профиля кода в нашем формате.
Пример вызова:
./peg -numM 576 -numN 900 -codeName irReg900_576.dat -degFileName DenEvl_62.deg -Nprofile 0
Параметры вызова описаны в файле MainPEG.cpp за исключением последнего, который задает номер профиля кода.
В соответсвиии с данным номером (0) будет создан файл ldpc_profile0.h, который затем может быть вставлен в рабочий проект.
Входной параметр degFileName означает имя файла с расширением deg. Он задает распределение степеней узлов в таннер-графе. Иными словами: распределение числа единиц в столбцах проверочной матрицы. Он опреляет стратегию алгоритма PEG при синтезе кода. Повидмому мне удалось найти распределение близкое к оптимальному для скоростей порядка 0,5.
Другие файлы *.deg в директории Debug не сильно от него отличаются и дают примерно одинаковые результаты.
Содержание файла:
5
2 3 4 5 6
0.490 0.100 0.295 0.100 0.015
Здесь 5 означает число различных степеней в распределении. Вторя строка - значения возможных степеней. Третья -
вероятности степеней (в сумме должны быть равны 1).
P.S. Проект создан под Linux. Файл stdafx.h не мешает сборке, однако его наличие позволяет создать (ничего не меняя) проет консольного приложения VS под Windows.