1

関数を呼び出して、データの cdfcurves をプロットしようとしましたcdfplot(x)。ここに私のコードの一部があります:

    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

残念ながら、私が得る結果は非常に混乱しています。 ここに画像の説明を入力

黄色と紫の曲線はゼロ以外の値から始まりますが、CDF 曲線は常にゼロから開始する必要があります! 誰か私にいくつかの提案をしてもらえますか? 黄色の曲線を単独でプロットしようとしましたが、まだ「偏っている」です。ご協力ありがとう御座います!

4

1 に答える 1

1

問題は、データplot_vec1にゼロが含まれていることです。-infで dB に変換すると、これらのゼロは に変換されます10*log10()。次にcdfplot、最小の有限値(-67黄色の曲線について)の下に多くのサンプル( value -inf)があることがわかります。そのため、ゼロ以外の累積確率が得られます。

たとえば、次の 2 つの図を比較します。

  1. 通常の場合、すべての値は有限です:

    cdfplot([1 2 3 4 5 6])
    

    ここに画像の説明を入力

  2. いくつかの値は次の-infとおりです。

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

    ここに画像の説明を入力

    ここで、有限の最小値 は、縦軸に示される累積確率3を持ちます。0.33これは、6 つのサンプルのうち 2 つが次の- infとおりであるため3です。

考えられる回避策: 対数を適用する前にこれらのゼロを削除するか、結果-infを dB 単位の非常に小さな値 ( など) に置き換えます-100

于 2015-07-29T12:17:47.217 に答える