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 = 718.952468 Iteration count = 2/200, distortion = 445.859091 Iteration count = 3/200, distortion = 445.465107 Iteration count = 4/200, distortion = 445.282146 Iteration count = 5/200, distortion = 445.173715 Iteration count = 6/200, distortion = 445.016988 Iteration count = 7/200, distortion = 444.896874 Iteration count = 8/200, distortion = 444.843481 Iteration count = 9/200, distortion = 444.795686 Iteration count = 10/200, distortion = 444.737170 Iteration count = 11/200, distortion = 444.730479 Iteration count = 12/200, distortion = 444.730479 No. of centers = 2, loop count = 12, distortion = 444.73 Iteration count = 1/200, distortion = 444.730479 Iteration count = 2/200, distortion = 346.095406 Iteration count = 3/200, distortion = 172.784770 Iteration count = 4/200, distortion = 166.726815 Iteration count = 5/200, distortion = 166.481369 Iteration count = 6/200, distortion = 166.437105 Iteration count = 7/200, distortion = 166.402733 Iteration count = 8/200, distortion = 166.385449 Iteration count = 9/200, distortion = 166.374599 Iteration count = 10/200, distortion = 166.363676 Iteration count = 11/200, distortion = 166.362467 Iteration count = 12/200, distortion = 166.362467 No. of centers = 4, loop count = 12, distortion = 166.362 Iteration count = 1/200, distortion = 166.362467 Iteration count = 2/200, distortion = 87.232829 Iteration count = 3/200, distortion = 79.299693 Iteration count = 4/200, distortion = 74.320858 Iteration count = 5/200, distortion = 72.493337 Iteration count = 6/200, distortion = 72.088821 Iteration count = 7/200, distortion = 72.017706 Iteration count = 8/200, distortion = 71.990512 Iteration count = 9/200, distortion = 71.984123 Iteration count = 10/200, distortion = 71.978880 Iteration count = 11/200, distortion = 71.974198 Iteration count = 12/200, distortion = 71.972502 Iteration count = 13/200, distortion = 71.972502 No. of centers = 8, loop count = 13, distortion = 71.9725 Iteration count = 1/200, distortion = 71.972502 Iteration count = 2/200, distortion = 41.342668 Iteration count = 3/200, distortion = 40.250804 Iteration count = 4/200, distortion = 39.905384 Iteration count = 5/200, distortion = 39.599340 Iteration count = 6/200, distortion = 39.342399 Iteration count = 7/200, distortion = 39.232766 Iteration count = 8/200, distortion = 39.109541 Iteration count = 9/200, distortion = 39.014013 Iteration count = 10/200, distortion = 38.907538 Iteration count = 11/200, distortion = 38.725561 Iteration count = 12/200, distortion = 38.435148 Iteration count = 13/200, distortion = 38.254092 Iteration count = 14/200, distortion = 38.075198 Iteration count = 15/200, distortion = 37.951148 Iteration count = 16/200, distortion = 37.890673 Iteration count = 17/200, distortion = 37.856178 Iteration count = 18/200, distortion = 37.829915 Iteration count = 19/200, distortion = 37.812942 Iteration count = 20/200, distortion = 37.812145 Iteration count = 21/200, distortion = 37.812145 No. of centers = 16, loop count = 21, distortion = 37.8121 Iteration count = 1/200, distortion = 37.812145 Iteration count = 2/200, distortion = 22.464753 Iteration count = 3/200, distortion = 20.100071 Iteration count = 4/200, distortion = 18.751343 Iteration count = 5/200, distortion = 18.314426 Iteration count = 6/200, distortion = 18.117394 Iteration count = 7/200, distortion = 17.968261 Iteration count = 8/200, distortion = 17.916356 Iteration count = 9/200, distortion = 17.859204 Iteration count = 10/200, distortion = 17.806843 Iteration count = 11/200, distortion = 17.603180 Iteration count = 12/200, distortion = 17.358075 Iteration count = 13/200, distortion = 17.259681 Iteration count = 14/200, distortion = 17.186595 Iteration count = 15/200, distortion = 17.159313 Iteration count = 16/200, distortion = 17.155720 Iteration count = 17/200, distortion = 17.152484 Iteration count = 18/200, distortion = 17.148322 Iteration count = 19/200, distortion = 17.143360 Iteration count = 20/200, distortion = 17.143360 No. of centers = 32, loop count = 20, distortion = 17.1434