天天看点

Matlab演示Parzen窗法

Parzen窗法:

假定围绕x点的区域Rn为一立方体,边长为hn,空间维度为d,则体积为Vn=hnd,考察xk是否落入超立方体内,则要检查向量x-xk的每一个分量是否小于1/2。

定义窗函数为  

于是

Matlab演示Parzen窗法
Matlab演示Parzen窗法

利用matlab模拟,代码如下:

function p=Parzen(xi,x,h1)

% xi=randn(2,1024);  xi 为样本

% x=linspace(-2,2,1024); x为概率密度的自变量的取值

% h1=1; 为样本数为1时的窗宽

% p : x对应的概率密度函数值 

N=size(xi,2);

hn=h1/sqrt(N);

[X Xi]=meshgrid(x,xi);  %用来生成网格矩阵

b=abs(X-Xi);

f=zeros(N,N);

for m=1:N

    forn=1:N

       if (b(m,n)<=0.5)

           f(m,n)=1;

       end

    end

end

 p=sum(f/(hn*hn))/N;

 plot(x,p)

end

最终画出的 x-p 正态分布图形为:

Matlab演示Parzen窗法
Matlab演示Parzen窗法

继续阅读