Я использую ядро Гаусса для оценки PDF-файла данных на основе уравнения где K (. ) - гауссовское ядро, данные - заданный вектор. z - это ячейка от 1 до 256. Размер ячейки равен 1.
Я реализовал код Matlab. Однако результат показывает, что амплитуда моей оценки PDF (синий цвет) не похожа на реальный PDF-файл данных. Не могли бы вы увидеть мой код и прокомментировать мой код?
КОД MATLAB
function pdf_est=KDE()
close all;
%%Random values of 20 pixels, range=[1 256]
data=randi([1 256],1,20);
%% Estimate histogram%%%%%
pdf_est=zeros(1,256);
z=256;
for i=1:z
for j=1:length(data)
pdf_est(i)=pdf_est(i)+Gaussian(i-data(j));
end
end
%% Plot real histogram 1 to 256; binsize=1;
hold on
plot(imhist(uint8(data))./length(data),'r');
%% Plot histogram estimation
plot(pdf_est./length(data),'b');
hold off
function K=Gaussian(x)
sigma=1;
K=1./(sqrt(2*pi)*sigma)*exp(-x^2./(2*sigma^2));
РЕЗУЛЬТАТ СИНИЙ - мой результат, КРАСНЫЙ - настоящий pdf