QuantDMC - Matlab library for quantizing discrete memoryless channels.
This software contains implementations of the algorithms for quantizing
discrete memoryless channels, where mutual information is the objective
function. The main library features are Matlab implementations of:
* Dynamic programming algorithm, for finding optimal quantizers for
binary-input DMCs [1],
* KL-means algorithm, for efficiently finding good quantizers for arbitrary
DMCs [2],
* Greedy combining algorithm, an earlier algorithm for arbitrary DMCs,
which can sometimes outperform KL-means algorithm at the expense of
higher complexity [3].
If you use this software and write a paper, please cite relevant publications:
[1] B. M. Kurkoski and H. Yagi, "Quantization of binary-input discrete
memoryless channels," IEEE Transactions on Information Theory, vol. 60,
no. 8, pp. 4544-4552, August 2014. http://dx.doi.org/10.1109/TIT.2014.2327016
[2] A. Zhang and B. M. Kurkoski, "KL Means Algorithm for Quantization of
Discrete Memroyless Channels," Proceedings of International Symposium on
Information Theory, July 2016.
[3] B. M. Kurkoski, K. Yamaguchi and K. Kobayashi, "Noise Thresholds for
Discrete LDPC Decoding Mappings," Proceedings of IEEE Global
Communications Conference, December 2008.
This software is provided under an MIT license to supplement papers on
quantization of discrete memoryless channels. See LICENSE for details.
INSTALLATION
Download the zip file from
http://www.kurkoski.org/source
To install, extract the tar file:
% unzip QuantDmc-N.zip
where N is the version number.
In Matlab, cd to the directory and STARTUP modifies your search path:
>> cd QuantDmc-N
>> startup
>> help quantDmc
The library includes a MEX function and binaries for some platforms.
If your platform is not included, compile using:
>> mexify
To run an example
>> cd example
>> biAwgnQuantization
Get help:
>> help quantDmc
VERSION HISTORY
Version 4, 2016 March 11
* Added QUANTDMCKLMEANS function to implement the KL means clustering
algorithm for quantizing non-binary input DMCs.
* Added QUANTDMCGREEDY function to implement the greedy combining
algorithm for quantizing non-binary input DMCs
* Modified CHANNELSORT to accept non-normalized input, so that
ChannelSort(rand(2,M)) produces a random channel.
* Changed filenames. Functions have leading lowercase. Now uses
"Bi" in filename to identify binary-input quantization algorithms.
* Added examples using QUANTDMCKLMEANS, QUANTDMCGREEDY
* Removed LDPC decoding functions.
Version 3, 2012 June 21
* Added functions QdeConvergence and QdeThreshold to find noise
threshold for quantized messages LDPC decoder using maximization of
mutual information.
Version 2, 2012 May 31
* Added BiAwgn2Dmc and ExBiAwgn
* The mexify function is more robust to path changes
* Fixed a bug that prevented compiling with Microsoft Visual C++ (use
DBL_MAX/DBL_MIN from float.h instead of a fixed constant and use
log(x) / log(2) instead of log2(x) ).
Version 1, 2012 May 23
* Initial release. Contains Matlab and C/MEX functions to find the
optimal quantizer for a DMC in the sense of maximizing mutual
information.