【MATLAB】对离散采样信号添加高斯白噪声(已知Eb/N0)
(1)首先计算已知信号序列(采样之后得到的信号)的平均功率。该序列在第n个点处的功率为:

如果已知的信号序列中的总共的点数为N个,则该序列的平均功率为:

在MATLAB中求平均功率的方法是:
Pav=sum(x.^2)/length(x);
(2)第二步是求单个符号的能量。能量的定义是功率乘以时间。对于单个符号来说,因为已经被采样了,每个符号可能对应多个采样点。因此,此处需要已知符号速率。
每个符号的能量为:

在MATLAB中求单位符号能量的方法是:
Eb=sum(x.^2)/(length(x)*fb);
(3)第三步是求噪声的单边功率谱密度。根据Eb/N0即可,注意首先要把dB转化为实际的倍数。若已知的Eb/N0是dB单位的,则转化过程如下:
ebn0=10^((EbN0)/10);
随后得到n0:
n0=Eb/ebn0;
(4)第四步是根据噪声的单边功率谱密度求噪声的方差。对于实信号来说,如果信号的采样频率是fs,则噪声带宽为采样频率的一半。噪声的方差即为噪声的平均功率,噪声的平均功率是单边功率谱密度和噪声带宽的乘积,因此噪声的方差为:

MATLAB中的计算过程:
pn=n0*fs/2;(从实际仿真的结果来看,乘以fs是符合理论值的,该内容需要进一步核实)
(5)第五步即生成噪声序列。
NOISE=sqrt(pn)*randn(1,length(x));
注:参考文献:
Bit-Error-Rate Simulation Using Matlab
作者:JE Gilley
http://xueshu.baidu.com/s?wd=paperuri:(18dc898216ce76b4c166f194fab1b349)&filter=sc_long_sign&sc_ks_para=q%3DBit-Error-Rate+Simulation+Using+Matlab&tn=SE_baiduxueshu_c1gjeupa&ie=utf-8&sc_us=12877983928575481934
【MATLAB】对离散采样信号添加高斯白噪声(已知Eb/N0)的更多相关文章
- [转] Matlab中给信号加高斯白噪声的方法
MATLAB中产生高斯白噪声非常方便,可以直接应用两个函数,一个是WGN,另一个是AWGN.WGN用于产生高斯白噪声,AWGN则用于在某一信号中加入高斯白噪声. 1. WGN:产生高斯白噪声 y = ...
- Matlab给三维点云添加高斯噪声和随机噪声
写在前面 在我们进行点云配准一类的模拟实验时,第一步就是对原始点云进行适当的RT变换,并添加一定的噪声,得到测量点云,然后才可以用我们的算法去进行后面的配准操作.在添加噪声这一块,matlab里并没有 ...
- 高斯白噪声(white Gaussian noise,WGN)
本文科普一下高斯白噪声(white Gaussian noise,WGN). 百度百科上解释为“高斯白噪声,幅度分布服从高斯分布,功率谱密度服从均匀分布”,听起来有些晦涩难懂,下面结合例子通俗而详细地 ...
- Matlab实现加性高斯白噪声信道(AWGN)下的digital调制格式识别分类
Matlab实现加性高斯白噪声信道(AWGN)下的digital调制格式识别分类 内容大纲 加性高斯白噪声信道(AWGN)下的digital调制格式识别分类 (1. PSK; 2. QPSK; 3.8 ...
- MATLAB中产生高斯白噪声的两个函数
MATLAB中产生高斯白噪声非常方便,可以直接应用两个函数,一个是WGN,另一个是AWGN.WGN用于产生高斯白噪声,AWGN则用于在某一信号中加入高斯白噪声.1.WGN:产生高斯白噪声 y = wg ...
- 【FPGA】高斯白噪声的Verilog实现
本文章主要讨论高斯白噪声的FPGA实现.简单的方法可以采用在Matlab中产生服从一定均值和方差的I.Q两路噪声信号.然后将两组数据存在FPGA中进行回放,以此来产生高斯白噪声.这种方法优点是产生方法 ...
- 基于MATLAB的离散小波变换
申明,本文非笔者原创,原文转载自: 基于Matlab的离散小波变换 http://blog.sina.com.cn/s/blog_725866260100ryh3.html 简介 在 ...
- MATLAB实现连续周期信号的频谱分析(正余弦波信号举例)
关于MATLAB实现连续信号的频谱分析,以正余弦波信号频谱分析为例分析如下: 1.含有频率f ,2f和3f的正弦波叠加信号,即: 其中,f =500Hz.试采用Matlab仿真软件对该信号进行频谱分析 ...
- Python分析离散心率信号(下)
Python分析离散心率信号(下) 如何使用动态阈值,信号过滤和离群值检测来改善峰值检测. 一些理论和背景 到目前为止,一直在研究如何分析心率信号并从中提取最广泛使用的时域和频域度量.但是,使用的信号 ...
随机推荐
- __weak 和 __strong 还有Autorelease的用法
使用容器的block版本的枚举器时,内部会自动添加一个AutoreleasePool: Autorelease对象是在当前的runloop迭代结束时释放的,而它能够释放的原因是系统在每个runloop ...
- HDU6315 Naive Operations(多校第二场1007)(线段树)
Naive Operations Time Limit: 6000/3000 MS (Java/Others) Memory Limit: 502768/502768 K (Java/Other ...
- 设置linux服务器文件夹权限
最近搞的网站一上传图片,就报500错误.经排查是服务器文件夹权限设置问题. 使用命令: chmod o+rwx avatar 即可改变文件夹权限设置.
- stdin stdout stderr 标准I/O流
Unix中一切皆文件,磁盘等设备在操作系统来看都是文件. 对文件进行操作时,需要打开这个文件,并获得文件描述符(file descriptor, fd) 而每个进程生来就有三个文件描述符绑定在它身上, ...
- BZOJ1725】[Usaco2006 Nov]Corn Fields牧场的安排 状压DP
Description Farmer John新买了一块长方形的牧场,这块牧场被划分成M列N行(1<=M<=12; 1<=N<=12),每一格都是一块正方形的土地.FJ打算在牧 ...
- Hibernate JPA 如何使用SQL文直接查询
对于复杂SQL,可以直接调用native sql来是实现 public List<Partner> findPartners() { List<Partner> partner ...
- Asp.net获取系统信息
[DllImport("kernel32")] public static extern void GlobalMemoryStatus(ref MEMORY_INF ...
- 12.标准标签库(JSTL)
1.JSTL标签库安装 JSTL的概念: JSP标准标签库(JSP Standard Tag Library)是一个实现 Web 应用程序中常见的通用功能的定制标记库集功能包括迭代和条件判断.数据管理 ...
- 1.1 Go安装与项目结构初始化
软件安装安装包下载地址为:https://golang.org/dl/ 如果打不开可以: https://golang.google.cn/dl/ https://dl.google.com/go/g ...
- hadoop install start-dfs.sh 失败
linux:ubuntu 16.04 LTS hadoop version: 2.7.3 JDK: java-9-open-jdk issue: start-dfs.sh start-dfs.sh:c ...