parzen 窗的matlab实现
用一下程序简单实现使用parzen窗对正态分布的概率密度估计:
(其中核函数选用高斯核)
%run for parzen close all;clear all;clc; x=normrnd(0,1,1,10000);%从正态分布中产生样本 f=-5:0.01:5;%确定横坐标范 % N=100 h= 0.25 , 1, 4 p1=Parzen(x,0.25,10,f); p2 = Parzen(x,1,10,f); p3 = Parzen(x,4,10,f); subplot(331) plot(f,p1) subplot(332) plot(f,p2) subplot(333) plot(f,p3) hold on % N=100 h= 0.25 , 1, 4 p1=Parzen(x,0.25,100,f); p2 = Parzen(x,1,100,f); p3 = Parzen(x,4,100,f); subplot(334) plot(f,p1) subplot(335) plot(f,p2) subplot(336) plot(f,p3) hold on % N=1000 h= 0.25 , 1, 4 p1=Parzen(x,0.25,1000,f); p2 = Parzen(x,1,1000,f); p3 = Parzen(x,4,1000,f); subplot(337) plot(f,p1) subplot(338) plot(f,p2) subplot(339) plot(f,p3)
function p = Parzen(x,h,N,f)
% 高斯函数Parzen 窗 统计落在parzen窗内的估计概率
% h - 窗长度
% N -采样点数
b=0;
h1 = h/sqrt(N);
for i=1:length(f)
for j=1:N
b= b+ exp(((f(i)-x(j))/h1).^2/(-2))/sqrt(2*pi)/h1;
end
p(i) = b/N;
b=0;
end
end

浙公网安备 33010602011771号