vecQuantize
Vector quantization using LBG method of center splitting
Contents
Syntax
- center=vecQuantize(data, codeBookSize)
- center=vecQuantize(data, codeBookSize, showPlot)
- [center, U]=vecQuantize(data, codeBookSize, ...)
- [center, U, centerHistory]=vecQuantize(data, codeBookSize, ...)
Description
center=vecQuantize(data, codeBookSize) returns the centers (codebook) of k-means via LBG method, where
- data: data matrix where each column is an observation
- codeBookSize: codebook size or number of cluster centers (should be the power of 2)
- center: codebook matrix where each column is a codeword
center=vecQuantize(data, codeBookSize, 1) display the animation and messages during training.
[center, U]=vecQuantize(data, codeBookSize, ...) returns extra info of the partition matrix U.
References
- Y. Linde, A. Buzo, and R.M. Gray, "An Algorithm for Vector Quantizer Design", IEEE Transactions on Communications, vol. 28, pp. 84-94, 1980.
Example
DS=dcData(2); data=DS.input; codeBookSize=2^5; showPlot=1; codebook=vecQuantize(data, codeBookSize, showPlot);
Iteration count = 1/200, distortion = 668.183139 Iteration count = 2/200, distortion = 416.853472 Iteration count = 3/200, distortion = 416.843053 Iteration count = 4/200, distortion = 416.843053 No. of centers = 2, loop count = 4, distortion = 416.843 Iteration count = 1/200, distortion = 416.843053 Iteration count = 2/200, distortion = 361.240896 Iteration count = 3/200, distortion = 358.026084 Iteration count = 4/200, distortion = 325.105896 Iteration count = 5/200, distortion = 236.431714 Iteration count = 6/200, distortion = 179.314740 Iteration count = 7/200, distortion = 162.448495 Iteration count = 8/200, distortion = 159.284691 Iteration count = 9/200, distortion = 157.650188 Iteration count = 10/200, distortion = 157.132397 Iteration count = 11/200, distortion = 157.022580 Iteration count = 12/200, distortion = 156.963080 Iteration count = 13/200, distortion = 156.878675 Iteration count = 14/200, distortion = 156.821063 Iteration count = 15/200, distortion = 156.756457 Iteration count = 16/200, distortion = 156.721061 Iteration count = 17/200, distortion = 156.716956 Iteration count = 18/200, distortion = 156.714337 Iteration count = 19/200, distortion = 156.712253 Iteration count = 20/200, distortion = 156.703497 Iteration count = 21/200, distortion = 156.672608 Iteration count = 22/200, distortion = 156.644475 Iteration count = 23/200, distortion = 156.625974 Iteration count = 24/200, distortion = 156.546677 Iteration count = 25/200, distortion = 156.429180 Iteration count = 26/200, distortion = 156.331724 Iteration count = 27/200, distortion = 156.304235 Iteration count = 28/200, distortion = 156.292422 Iteration count = 29/200, distortion = 156.277826 Iteration count = 30/200, distortion = 156.265535 Iteration count = 31/200, distortion = 156.256675 Iteration count = 32/200, distortion = 156.250012 Iteration count = 33/200, distortion = 156.248702 Iteration count = 34/200, distortion = 156.248702 No. of centers = 4, loop count = 34, distortion = 156.249 Iteration count = 1/200, distortion = 156.248702 Iteration count = 2/200, distortion = 74.249259 Iteration count = 3/200, distortion = 67.215322 Iteration count = 4/200, distortion = 66.718152 Iteration count = 5/200, distortion = 66.587251 Iteration count = 6/200, distortion = 66.536307 Iteration count = 7/200, distortion = 66.511532 Iteration count = 8/200, distortion = 66.473883 Iteration count = 9/200, distortion = 66.354047 Iteration count = 10/200, distortion = 66.231841 Iteration count = 11/200, distortion = 66.147277 Iteration count = 12/200, distortion = 66.087188 Iteration count = 13/200, distortion = 66.009719 Iteration count = 14/200, distortion = 65.973679 Iteration count = 15/200, distortion = 65.935583 Iteration count = 16/200, distortion = 65.919095 Iteration count = 17/200, distortion = 65.908328 Iteration count = 18/200, distortion = 65.904071 Iteration count = 19/200, distortion = 65.902605 Iteration count = 20/200, distortion = 65.902605 No. of centers = 8, loop count = 20, distortion = 65.9026 Iteration count = 1/200, distortion = 65.902605 Iteration count = 2/200, distortion = 40.429894 Iteration count = 3/200, distortion = 38.686602 Iteration count = 4/200, distortion = 37.570180 Iteration count = 5/200, distortion = 36.626073 Iteration count = 6/200, distortion = 35.923046 Iteration count = 7/200, distortion = 35.403114 Iteration count = 8/200, distortion = 35.207482 Iteration count = 9/200, distortion = 35.153070 Iteration count = 10/200, distortion = 35.125244 Iteration count = 11/200, distortion = 35.074388 Iteration count = 12/200, distortion = 35.038794 Iteration count = 13/200, distortion = 34.999235 Iteration count = 14/200, distortion = 34.989194 Iteration count = 15/200, distortion = 34.975316 Iteration count = 16/200, distortion = 34.970247 Iteration count = 17/200, distortion = 34.960867 Iteration count = 18/200, distortion = 34.951238 Iteration count = 19/200, distortion = 34.932404 Iteration count = 20/200, distortion = 34.918841 Iteration count = 21/200, distortion = 34.911519 Iteration count = 22/200, distortion = 34.905583 Iteration count = 23/200, distortion = 34.896748 Iteration count = 24/200, distortion = 34.892457 Iteration count = 25/200, distortion = 34.890464 Iteration count = 26/200, distortion = 34.890464 No. of centers = 16, loop count = 26, distortion = 34.8905 Iteration count = 1/200, distortion = 34.890464 Iteration count = 2/200, distortion = 19.477319 Iteration count = 3/200, distortion = 17.473910 Iteration count = 4/200, distortion = 16.872732 Iteration count = 5/200, distortion = 16.609121 Iteration count = 6/200, distortion = 16.440784 Iteration count = 7/200, distortion = 16.346405 Iteration count = 8/200, distortion = 16.250786 Iteration count = 9/200, distortion = 16.165609 Iteration count = 10/200, distortion = 16.116657 Iteration count = 11/200, distortion = 16.082556 Iteration count = 12/200, distortion = 16.067118 Iteration count = 13/200, distortion = 16.040057 Iteration count = 14/200, distortion = 16.024663 Iteration count = 15/200, distortion = 16.021589 Iteration count = 16/200, distortion = 16.012541 Iteration count = 17/200, distortion = 16.006254 Iteration count = 18/200, distortion = 15.983029 Iteration count = 19/200, distortion = 15.967188 Iteration count = 20/200, distortion = 15.956869 Iteration count = 21/200, distortion = 15.920437 Iteration count = 22/200, distortion = 15.910884 Iteration count = 23/200, distortion = 15.906353 Iteration count = 24/200, distortion = 15.890453 Iteration count = 25/200, distortion = 15.889346 Iteration count = 26/200, distortion = 15.889346 No. of centers = 32, loop count = 26, distortion = 15.8893
