CDF图不是从零开始

时间:2015-07-29 11:23:12

标签: matlab plot cdf

我试图通过调用cdfplot(x)函数来绘制数据的cdfcurves。这是我的代码的一部分:

    figure; 
    for i=1:length(num_curves)
        h = cdfplot(10*log10(plot_vec1(:,i)));
        set(h,'Linewidth',2,'Color',cc(i,:),'Linestyle','-');
        hold on
        %set(color, cc(i,:));
    end

不幸的是,我得到的结果非常令人困惑。 enter image description here

黄色和紫色曲线从非零值开始,但CDF曲线应始终从零开始! 谁能给我一些建议?我试图自己绘制黄色曲线,但它仍然有偏见'。 谢谢你的帮助!

1 个答案:

答案 0 :(得分:1)

问题是您的数据plot_vec1包含零。当您使用-inf转换为dB时,这些零将转换为10*log10()。然后cdfplot看到最小有限值(黄色曲线中约为-67)下方有许多样本(值为-inf)。这就是为什么它会给出非零的准确概率。

例如,比较这两个数字

  1. 正常情况下,所有值都是有限的:

    cdfplot([1 2 3 4 5 6])
    

    enter image description here

  2. 有些值为-inf

    cdfplot([-inf -inf 3 4 5 6])
    

    enter image description here

    此处,最小有限值3在垂直轴上显示0.33累积概率。这是因为6个样本中有2个是- inf,因此低于3

  3. 可能的解决方法:在应用对数之前删除这些零,或者将结果-inf替换为非常小的dB值,例如-100