首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

C语言与数字信号处理——均匀分布的随机数

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);}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
参数说明:
  • a:给定区间的下限
  • b:给定区间的上限
  • *seed:随机数的种子
生成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);}
返回列表