注册 登录
编程论坛 Matlab

高斯白噪声信噪比问题

guduyiren 发布于 2010-06-02 15:37, 1411 次点击
有一组数据,需要在各个点上加上高斯白噪声,要用C语言实现,现在有如下程序:
//产生均匀分布的随机数
double uniform(double a,double b,long int *seed)
//a为区间的下限,b为区间的上限,seed为随机数的种子
{
    double t;
    *seed=2045*(*seed)+1;
    *seed=*seed-(*seed/1048576)*1048576;
    t=(*seed)/1048576.0;
    t=a+(b-a)*t;
    return(t);
}
//产生正太分布的随机数
double gauss(double mean,double sigma,long int *seed)
//mean为均值,sigma为方差,seed为随机数的种子
{
    int i;
    double x,y;
    double uniform();
    for(x=0,i=0;i<12;i++) x+=uniform(0.0,1.0,seed);
    x=x-6.0;
    y=mean+x*sigma;
    return(y);
}
但是上面参数并没有用到信噪比,好像加高斯白噪声的时候应该有信噪比那个参数吧!不知道怎么用那个信噪比,希望高手指点!感激不尽。
0 回复
1