在C ++中将正态分布拟合到直方图

时间:2015-06-04 09:18:25

标签: c++ data-fitting

我正在研究C ++中的频谱感知,直到现在我的问题是如何估计噪声的确切值。所以我做了数据的直方图,我想在这个直方图上拟合高斯分布,然后我得到了这个拟合分布的平均值,就像在matlab中[均值,方差] = normfit(x)。

vec noise::gauss_fit(vec spectrum_sensed,int Nfft)
{
    Histogram<double> hist;
    hist.setup(min(spectrum_sensed),max(spectrum_sensed),Nfft);
    // now I need to fit this histogram by a normal distribution "Normal"
    // and finally I get the mean of this distribution: normal.get_setup();
}

提前感谢您的帮助!

1 个答案:

答案 0 :(得分:1)

正态分布使这很容易:

mean = sum(spectrum_sensed)/N

variance = sum((spectrum_sensed-mean)^2)/N

您不适合直方图,适合数据。在正态分布的情况下,由于一切都是分析性的,所以没有任何拟合。

相关问题