• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

Parzen窗法(模式识别_Matlab实现:附具体实现代码)

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

最近学习了《计算机模式识别》中的Parzen窗法原理,老师也讲到这种方法的实现过程及Matlab代码实现过程(代码由老师提供),在此感谢我的赵宗泽赵老师。下面我将个人的理解写了篇小文章,希望对需要的朋友有所帮助,理解有误或不足之处还望大家及时指出纠正。
Parzen窗法原理




整个实现过程:

Matlab实现过程:
显示函数:

clear;clc
%  parzen 方窗    parzen1 高斯窗
x=normrnd(0,1,1,10000);

f=sort(x(1:1000));

% N=10   h= 0.25 , 1, 4
p1=Parzen1(x,0.25,10); 
p2 = Parzen1(x,1,10);
p3 = Parzen1(x,4,10);
subplot(331)
plot(f(1:1000),p1)
subplot(332)
plot(f(1:1000),p2)
subplot(333)
plot(f(1:1000),p3)

hold on
% N=100   h= 0.25 , 1, 4
p1=Parzen(x,0.25,100); 
p2 = Parzen(x,1,100);
p3 = Parzen(x,4,100);
subplot(334)
plot(f(1:1000),p1)
subplot(335)
plot(f(1:1000),p2)
subplot(336)
plot(f(1:1000),p3)

hold on
% N=1000   h= 0.25 , 1, 4
p1=Parzen(x,0.25,1000); 
p2 = Parzen(x,1,1000);
p3 = Parzen(x,4,1000);
subplot(337)
plot(f(1:1000),p1)
subplot(338)
plot(f(1:1000),p2)
subplot(339)
plot(f(1:1000),p3)

方窗函数:

function p=Parzen(x,h,N)
%% 方窗  parzen 窗   
f = x(1:1000);
f=sort(f);
b=0;

for i=1:1000
    for j=1:N
        if abs((x(j)-f(i))/h) <= 1/2   %方窗
            q=1;
        else
            q=0;
        end
        b= q+ b;
    end
    a(i)=b;
    b=0;
end

for i=1:1000
    p(i) = 1/(N*h)*a(i);
end
end

正态窗函数的确定:


实现过程:

确定正态窗函数:

function  p =  Parzen1(x,h,N)
%  高斯函数Parzen 窗  统计落在parzen窗内的估计概率
%  x - 符合某种概率密度分布的数据
%  h - 窗长度
%  N -
%
f = x(1:1000);
f=sort(f);
b=0;
%h1 =  h/sqrt(N);
h1 =  h;
for i=1:1000
    for j=1:N
    b= b+ exp(((x(j)-f(i))/h1).^2/(-2))/sqrt(2*pi)/h1;
    end
    p(i) =  b/N;
    b=0;
end
end

运行显示结果:

代码操作说明:
运行之前需要把文件的路径添加到matlab,然后,运行parzen_show.m文件,其他文件都是函数。


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
Delphi 编译错误信息表发布时间:2022-07-18
下一篇:
RADDELPHIXE5的android开发环境配置发布时间:2022-07-18
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap