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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • go语言 ssh_websshpro

    go语言 ssh_websshprogowebssh推荐使用文章目录gowebssh推荐使用1.前言2.项目地址3.简单修改4.交叉编译5.结果展示1.前言一般ssh的登录使用需要ssh客户端进行登录,比如xshell、putty等,之前我们也推荐过九款:https://blog.csdn.net/weixin_39510813/article/details/118722265。目前我们有一个需求是在web上登录设备的ssh,一番搜索后找到一个比较小巧合适的,并且做了一点简单的修改,基于go+vue的,最后可以打

    2025年6月2日
    4
  • Java模式(适配器模式)

    Java模式(适配器模式)

    2021年11月14日
    46
  • ZOJ-1188「建议收藏」

    ZOJ-1188「建议收藏」也很水,直接统计权值然后排序即可

    2022年7月12日
    18
  • python处理通达信 5分钟数据 .lc5文件处理,生成csv文件,期货回测

    python处理通达信 5分钟数据 .lc5文件处理,生成csv文件,期货回测importstructimportdatetimeimportmathimporttime#根据二进制前两段拿到日期分时defget_date_str(H1,H2):year=math.floor(H1/2048)+2004month=math.floor(H1%2048/100)day=H1%2048%100hour=math.floor(H2/60)minute=H2%6.

    2022年7月24日
    30
  • 程序心形曲线绘制_java输出心形图案

    程序心形曲线绘制_java输出心形图案代码如下:importjava.awt.Color;importjava.awt.Graphics;importjava.awt.Image;importjava.awt.Toolkit;importjavax.swing.JFrame;@SuppressWarnings(“serial”)publicclassDemoextendsJFrameimplementsRunna…

    2022年10月16日
    3
  • 计算机病毒有哪几种,计算机病毒有哪几种

    计算机病毒有哪几种,计算机病毒有哪几种前言计算机病毒,也叫电脑病毒。它的种类很多。一旦感染这些病毒,轻则软件无法打开或文件被加密等;重则可能会使系统崩溃导致电脑无法正常启动,而电脑之所以会中病毒,主要是以下原因:1.用户在电脑安全方面做得不够严谨2.用户下载或打开了不明文件或链接3.未安装杀软以下是病毒及病毒的特征和解决方法。(1)JJY.exe:特征:此文件一旦打开,首先这个文件会启动它的动画,然后重启。重启之后你会发现你的…

    2022年5月3日
    53

发表回复

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

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