C语言与数字信号处理——均匀分布的随机数
来源:互联网 发布:双11淘宝活动方案 编辑:程序博客网 时间:2024/05/17 23:47
1. 公式
概率密度函数:
均值:
方差:
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);}
参数说明:
- a:给定区间的下限
- b:给定区间的上限
- *seed:随机数的种子
生成1000个均匀分布于区间
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);}
3. 对比matlab生成结果
用matlab生成相同数量的随机数,对比概率密度估计:
num = 1000;a = 0;b = 1;% 绘制概率密度函数x = -(a+1):0.01:(b+1);y = unifpdf(x,a,b); figure(1); plot(x,y); % 绘制随机数对比图z1 = VarName1;z2 = unifrnd(a,b,1,num); x1 = 0:1:(num-1);figure(2); plot(x1, z1, 'r.', x1, z2, 'b.');% 绘制概率密度估计对比图y1 = ksdensity(z1);y2 = ksdensity(z2);figure(3);plot(y1,'DisplayName','y1');hold on;plot(y2,'DisplayName','y2');hold off;
概率密度函数图:
随机数对比图:
概率密度估计对比图:
0 0
- C语言与数字信号处理——均匀分布的随机数
- C语言与数字信号处理——正态分布的随机数
- 数字信号产生之均匀分布的随机数
- 数字信号处理-C语言数字信号的产生
- 100000个随机数证明C语言随机数为均匀分布
- 数字信号处理c语言程序集
- 均匀分布随机数产生的程序
- .net实现的随机数均匀分布
- 数字信号处理与数字信号处理器
- [数字信号处理]单位冲击响应与频响以及FIR实现代码(C语言)
- [数字信号处理]单位冲击响应与频响以及FIR实现代码(C语言)
- C语言卷积和C语言互相关:数字信号处理中的卷积和互相关的C语言代码
- 数字信号处理——卷积
- 数字信号处理 DIT-FFT和IFFT的 C语言程序实现
- C++均匀分布U(0,1)的随机数
- C++中如何产生均匀分布的随机数
- 均匀分布随机数的生成算法简介
- C语言的随机数
- [LeetCode]5. Longest Palindromic Substring
- SSM杰信商务平台项目day05
- ubuntu 16.04获取root用户权限
- table标签 动态 增加行
- 面向对象-封装
- C语言与数字信号处理——均匀分布的随机数
- 软件测试课程笔记
- 图像二值化常用方法介绍
- CentOS7关闭防火墙
- Linux 下网络性能测试工具 iperf 的安装和使用
- 【JZOJ5082】【GDSOI2017第三轮模拟】Informatics Training
- Linux指令学习
- centos7 安装 gcc-6.2.0
- 图案输出(二)----输出平行四边形图案:(难度系数:小于半颗星)