I have encountered a problem with your implementation and seeking your help. The PDFs obtained using translated versions of the signal (image histogram, in this case) is not the same.
data = [23 23 23 22 22 22 21 22 23];
data = [53 53 53 52 52 52 51 52 53];
MIN = 0
MAX = 255
n = 256;
This gives a good uni-modal estimate, whereas the second one is incomprehensible.
Please take a look at the density plots in each case.
This might be a problem with the bandwidth estimation but I don't know how to solve it.
Any help is appreciated.