Board logo

标题: C语言与数字信号处理——均匀分布的随机数 [打印本页]

作者: look_w    时间: 2017-11-18 20:05     标题: C语言与数字信号处理——均匀分布的随机数

1. 公式概率密度函数:


f
(n)={1
ba


,
0,

axb





均值:


E
[X
]=a+b
2





方差:


V
AR[X
]=(ba)
2

12





2. C代码生成随机数C代码:
double uniform(double a, double b, long int * seed){       double t;       *seed = 2045 * (*seed) + 1;       *seed = (*seed) % 1048576;       t = (*seed)/1048576.0;       t = a + (b - a) * t;       return (t);}参数说明:
生成1000个均匀分布于区间
[0,1]

的随机数:

void main(void){    long int seed = 13579;    int j, num;    double a, b, temp;    FILE * fp;    a = 0;    b = 1;    num = 1000;    fp = fopen("uniform.dat", "w");    for (j = 0; j < num; j++)    {        temp = Uniform(a, b, &seed);        fprintf(fp, "%10.7f\n", temp);    }    fclose(fp);}




欢迎光临 电子技术论坛_中国专业的电子工程师学习交流社区-中电网技术论坛 (http://bbs.eccn.com/) Powered by Discuz! 7.0.0