作为标题,我试图找到两个概率密度函数的交点,以最小决策误差找到最优决策点。
就我而言, 一个分布是Rayleigh分布,另一个分布是Rician 分布。
(你可以认为Rayleigh和Rician都是高斯分布,因为我试图陈述的问题也会出现在高斯的情况下。)
生成对应于每个pdf的两个向量。
Fs=1000;
x=linspace(0,20,Fs*20)
Ray=pdf('Rayleigh',x,1);
Ric=pdf('rician',x,3,1);
直观地,找到这两个pdf的交叉点。
我设定了一定的门槛,比如说
epsilon=0.001;
并遍历两个向量的所有向量元素。
如果两个矢量之间的元素差异小于该阈值,则记录索引。
如果交叉点发生在
附近index=350,
然后我可以预期这些指数的价值差异
347, 348, 349, 350, 351, 352, 353,
将小于epsilon ,然后我选择中位数,即index = 350,来表示两个分布的交点。
现在的问题是,由于这些pdf的性质,这个值在开头和尾部都非常接近于零。
所以,无论我如何选择epsilon,记录的索引都会像
1,2,347, 348, 349, 350, 351, 352, 353, 6000,6001,6002,6003,6004,6005,6006.....
我该如何解决这个问题? ,还是有任何可靠的方法在Matlab中找到两个pdf的交集? (我认为这个功能应该非常基础。)
答案 0 :(得分:0)
我会修改你的方法如下:
换句话说:
[~, index] = min(abs(Ray./Ric-1));
在你的例子中,这给出了
>> index
index =
2107
作为 x 索引函数的pdf如下所示。找到的intesection指数被认为是正确的(图中略高于2000):