1. 环境工具

语言:c语言

作图:gnuplot

2. 高斯白噪声

[ 1] 为什么要产生高斯白噪声

在分析一个系统的抗噪声性能或者是一种对信号的调制方式分析的时候,在模拟信号通过信道的时候,使用的是高斯白噪声来模拟信道中的噪声模型,由此,在固定信噪比下,可以分析不同调制手段最终解调后受干扰的程度好坏,通信系统中的噪声是热噪声,而白噪声是近似于白噪声的,当对白噪声取值的时候,我们发现它符合高斯分布,故而出现了高斯白噪声,对于高斯白噪声,其频谱符合均匀分布。

[ 2] 如何产生高斯白噪声

对于离散时间点的高斯白噪声的产生,可以使用其研究信号的传输特性,对于高斯白噪声的产生即是产生一些离散的高斯随机数,matlab中对于高斯随机数的产生有特定的函数,一行代码即可搞定,但是对于使用c语言编程实现,就使用到很多关于统计数学方面的知识。

方法一:包括使用c语言自带的产生随机数函数,产生n多个随机数,然后将这很多个随机数加起来,当作一个样本,然后产生很多个这样的样本,这些数据的和或者均值就会趋近于高斯分布,最后可以使用归一化处理方式将数据映射至某个特定的数据区间,这种方法实现起来比较简单。

方法二:这种方法是使用著名的Box-Muller方法,这是一种实现起来也比较简单但是分析其真正算法实现方法时候十分的复杂,它的原理是产生两个满足[0,1]上均匀分布的数据x,y,然后通过两个设定的公式让其转换为相互独立的高斯分布数据X,Y,这两个公式使用一个即可:

怎样产生利用循环产生多个高斯随机数,再将每个数据进行归一化映射,映射至某个需要的幅度值区域,对于给定的均值m和标准偏差sd的情况下的高斯随机数,只需要在此基础上再做如下运算处理:

c编程实现如下(代码没有完全展示):

产生数据写入文本中,为了方便作图,同时产生一列x坐标的数据:

3. gnuplot绘图

上面产生了区间为[-2:2]的高斯随机数,产生了512个数据,利用gnuplot画出它的散点分布图如下:

连续高斯白噪声图如下:

将产生的高斯随机数进行fft变换,利用gnuplot观察高斯随机数的频谱图;

由上面的频谱图分析来看,生产的高斯随机数的频谱满足近似于均匀分布,当然,在频率分辨率更高和高斯随机数点数更多的时候,均匀分布更明显。

信号通过信道传输就是在远离啊信号中叠加上高斯白噪声信号,下图绘制处AM信号中叠加高斯白噪声的模拟图像:

c语言编程高斯白噪声信号,关于产生高斯白噪声相关推荐

  1. 用C语言编程实现矩形波信号,信号与系统综合设计性实验

    信号与系统综合设计性实验 傅立叶变换性质 实验设备 硬件 电脑软件 MATLAB 实验目的 掌握MATLAB的基本使用方法 掌握MATLAB环境下信号表示及产生方法 掌握MATLAB环境下傅立叶变换方 ...

  2. 用C语言编程实现矩形波信号,简易多功能函数信号发生器 毕业设计论文定稿--118155152.doc...

    简易多功能函数信号发生器 毕业设计论文定稿--118155152 华北水利水电学院毕业设计 PAGE PAGE 63 分类号 编 号 华北水利水电学院 North China Institute of ...

  3. C语言编程技巧-signal(信号机制)

    http://blog.sina.com.cn/s/blog_6a1837e90100v1vc.html

  4. 深入理解awgn函数如何向信号中添加高斯白噪声

    引言 在数值模拟应用中,经常在模拟信号中添加噪声数据,分析不同模型的信号解析能力.博文使用MATLAB中提供的awgnawgn函数向信号XX添加高斯白噪声,但从实现原理上分析了awgnawgn的实现过 ...

  5. 伪随机序列的产生c语言,伪随机序列的c语言编程实现.pdf

    伪随机序列的c语言编程实现 A typical PRN Sequence ---m Sequence 云南民族大学 姓名:陈 楠 学号:12011113201 年级:11 级信号与信息处理专业 m 序 ...

  6. 共阳极数码管动态扫描c语言,《C语言编程实训》实训指导书三

    1 C 语言编程实训语言编程实训 实训指导书三实训指导书三 适应专业 应用电子技术适应专业 应用电子技术 广州康大职业技术学院自动化系广州康大职业技术学院自动化系 二二 0 一一 0 年十一月年十一月 ...

  7. C 语言编程 — GDB 调试工具

    目录 文章目录 目录 前文列表 代码调试 GDB 启动 GDB 交互命令 运行程序 暂停程序 设置断点 设置观察点 设置捕捉点 打印信息 查询运行信息 分割窗口 前文列表 <程序编译流程与 GC ...

  8. 访问外部扩展C语言编程,单片机C语言编程(系统扩展IC)8.ppt

    单片机C语言编程(系统扩展IC)8 第8章 单片机系统扩展 第8章 单片机系统扩展 目 录 8.1 扩展并行三总线 8.2 扩展简单并行输入/输出口 8.3 扩展并行数据存储器 8.4 串行扩展总线接 ...

  9. 基于DSP的数字振荡器C语言编程,基于DSP的数字振荡器的设计与实现.pdf

    1 基于 DSP 的数字振荡器的设计与实现 基于 DSP 的数字振荡器的设计与实现 黄福莹 陈华 徐金隆 广西大学计算机与电子信息学院 南宁 530004 摘要 摘要 本文阐述了一种基于 DSP 芯片 ...

  10. Linux下C语言编程-进程的创建

    Linux下C语言编程-进程的创建 作者:hoyt 1.进程的概念 Linux操作系统是面向多用户的.在同一时间可以有许多用户向操作系统发出各种命令.那么操作系统是怎么实现多用户的环境呢?在现代的操作 ...

最新文章

  1. 单例模式及getInstance()的用法
  2. git reset revert 回退回滚取消提交返回上一版本
  3. Spring Boot 集成数据库
  4. php使用Header函数,PHP_AUTH_PW和PHP_AUTH_USER做用户验证及缺点
  5. 修改RAC VIP IP
  6. Shell基础(一):Shell基础应用、简单Shell脚本的设计、使用Shell变量、变量的扩展应用...
  7. /31位掩码实验演示
  8. nagios监控3306端口
  9. Alexa排名 介绍
  10. womic网络错误_wo mic 电脑版下载-WO Mic Client下载 3.4 最新电脑版 - 河东下载站
  11. 闪马智能+兑观科技|视频智能解析联合实验室揭牌成立
  12. 如何用一个makefile编译多个目标
  13. Signal信号处理
  14. VMware中GPU虚拟化的三种模式(1)–vSGA
  15. 五种3DMAX使用版本区别比较(一)
  16. Terminator的快捷键操作
  17. HapiJS开发手册
  18. 智课雅思词汇---二十四、形容词后缀-al-ial-ar-ary-ic-id-ish-ile-ine-oid-ory
  19. 小韩实操 -- Mysql数据库的备份与恢复及安全配置
  20. SSR 配置postcss 自动将px转化为rem

热门文章

  1. 人脸识别-驾驶疲劳检测(1) 眨眼检测
  2. bandgap分析(原理、trimming、非线性、chopper)
  3. NMS(非极大值抑制)的来龙去脉,简单明了
  4. 转录组分析之 Trimming对reads进行处理
  5. 王建农老师昆笛 + 简谱
  6. 陕西师范大学第七届程序设计竞赛网络同步赛 D ZQ的睡前故事(java)
  7. [转载]MATLAB内存管理
  8. 【Musescore 】开源打谱软件 快速入门笔记
  9. STM32F4 ETH-Lwip以太网通信
  10. mysql 计算农历_干支方法结算(农历算法)