0

如何用高斯噪声扰乱信号,例如 sin(x)?

我需要这样的东西:

#include <math>
#include <lib with gaussian noise>
int main{
 float *a[Dim]
 for(int i=0;i<Dim;i++)
  a[i]=sim[i/10]+noise;
}
4

1 回答 1

2

如果你有 C++.11,你可以使用std::normal_distribution. 代码看起来像这样:

#include <random>
int main()
{
    std::random_device rd;
    std::mt19937 gen(rd()); 
    std::normal_distribution<> d;
    float *a[Dim]

    for(int i=0;i<Dim;i++) {
        float noise = d(gen);
        a[i]=sim[i/10]+noise;
    }
}
于 2013-10-07T21:07:36.580 回答