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

c语言编程高斯白噪声信号,关于产生高斯白噪声1 环境工具语言 c 语言作图 gnuplot2 高斯白噪声 1 为什么要产生高斯白噪声在分析一个系统的抗噪声性能或者是一种对信号的调制方式分析的时候 在模拟信号通过信道的时候 使用的是高斯白噪声来模拟信道中的噪声模型 由此 在固定信噪比下 可以分析不同调制手段最终解调后受干扰的程度好坏 通信系统中的噪声是热噪声 而白噪声是近似于白噪声的 当对白噪声取值的时候 我们发现它符合高斯分布 故而出

1. 环境工具

语言:c语言

作图:gnuplot

2. 高斯白噪声

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

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

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

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

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

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

7c43bed1a71a3ee104a67b30b2a0c8b3.png

a2ed7d1cb3b1e50fb27b865bf4f837a3.png

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

e44d3208a9204265372e55393a2f4cb2.png

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

080a0883b764aff9fc95d8daf99012b0.png

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

d17530101d714d6ba2f08de0b4a4ab9e.jpg

3. gnuplot绘图

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

7395b3a973644162b7b345dc595ab66a.png

连续高斯白噪声图如下:

ee4cc2a8b39aca7d9b7a74757dd6fdea.png

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

3719410fd71943499091ebab2b8810d3.jpg

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

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

05b0a65bd0091d58045d2b825bd13b54.png

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/231515.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 如何利用净推荐值(NPS)测量用户忠诚度?

    如何利用净推荐值(NPS)测量用户忠诚度?用户满意度是每个企业都非常关心的问题,满意度水平高的企业往往也有着良好的营收效益。相反,用户满意度较差的企业,也可以通过用户满意度的相关调研,深入了解自己的不足之处,哪些方面有待改进。如何通过简单的数据指标,科学有效地测量出用户满意度呢?今天我们将为大家介绍一种调研用户满意度的常用方法——净推荐值(NPS)NPS是什么NPS即净推荐值(NetPromoterScore),是一种计量客户将会向其他人推荐企业或服务可能性的指数。是目前最流行的顾客忠诚度分析指标。NPS净推荐值的数据收集方

    2022年4月29日
    45
  • 病毒***的判断

    病毒***的判断

    2021年8月4日
    55
  • python正则匹配数字或者汉字

    python正则匹配数字或者汉字1、正则匹配汉字importrestr1=’hjggj小vjjk明’pat=re.compile(r'[\u4e00-\u9fa5]+’)result=pat.findall(str1)print(result)#输出[‘小’,’明’]2、正则匹配数字importrere.findall(r’\d+’,’hello42I’ma32string30…

    2022年6月16日
    51
  • Cubieboard2 debian

    Cubieboard2 debian环境准备本文所使用的主机环境为kubuntu12.10,然而一般情况下,下面涉及到的命令对基于Debian的(X)ubuntu系列都应该适用。为不引起混淆,我们作如下约定:工作目录为$WORK_DIR,目标系统rootfs目录为$WORK_DIR/$ROOTFS_DIR命令均以root用户执行笔者的设定如下:WORK_DIR=/home/itv

    2022年7月22日
    7
  • 国二C语言:VC++2010学习版「建议收藏」

    国二C语言:VC++2010学习版「建议收藏」全国计算机等级考试二级C语言程序设计考试大纲(2019年版)指出:开发环境:MicrosoftVisualC++2010学习版。也就是说,不管你在学习过程中用的是什么样的开发环境…

    2022年4月20日
    337
  • 数据库课程设计—超市零售信息管理系统(Python实现)

    数据库课程设计—超市零售信息管理系统(Python实现)数据库课程设计超市零售信息管理系统 Python 实现 SQLServer 文章目录数据库课程设计前言 一 设计目的 二 设计内容一 需求分析 一 设计概念 二 功能说明 1 进货管理 2 销售管理 3 库存管理 4 人员管理 三 功能模块图二 概念结构设计三 逻辑结构设计四 代码实现 一 实现 Python 连接 SQLSevere 数据库 二 创建数据库表 三 插入数据 四 创建界面按钮 并实现数据库的 增删改查 五 总结前言 一 设计目的学生根据所学的数据库系统原理与程序设计的知识 能够针对一个

    2025年10月20日
    2

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号