先从两个问题入手。

Q1:为什么要将EbNo转换为SNR呢?

A1:因为要加入高斯白噪声信道,高斯白噪声信道的噪声参数是与SNR直接相关的,所以要将EbNo转换为SNR。

Q2:为什么仿真要用EbNo,而不用SNR呢?

A1:因为用EbNo可以直观的看到系统性能,比如采用只采用QPSK,那么BER达到千分之一时,EbNo大约为7,如果采用单用户,进行了信道编码又进行了均衡,也采用QPSK星座映射,但EbNo为7时,BER为百分之一,那就证明系统设计有问题或者仿真出错了。因为SNR和EbNo是线性关系,所以用SNR为参数看BER只能看到大概的趋势,不能看到系统性能到底如何。

SNR到底怎么用EbNo表示,举个例子来说明。

假如要传送一些速率为1kb/s的数据,信道编码采用1/3卷积编码,每秒在这些编码数据前添加200bit的训练序列,星座映射采用QPSK,波形成形采用因子为0.25的升余弦函数,上采样倍数为10。

首先来看一下经过各模块速率的变化,原始信息速率为1kb/s,1/3卷积编码后变为3kb/s,也就是每秒传3000bit数据,添加200bit的训练序列后,变为每秒传3200bit,此时速率变为3.2kb/s,采用QPSK调制后,速率变为1.6ksymble/s。

再来看看EbNo和SNR的单位。

EbNo就是Eb/No。

Eb表示单位比特的能量,单位是焦耳(Joules)。

No表示功率谱密度,单位是瓦特/赫兹(Watts/Hz)。

SNR就是S/R。

S表示信号功率,单位是瓦特(Watts)。

N表示噪声功率,单位是瓦特(Watts)。

显然SNR单位是无量纲的。EbNo的单位是Joules·Hz/ Watts,其实也是无量纲的。

因为Watts表示是焦耳/秒(Joules /s),而1 Hz=1/s。这样可以得到下式。

Joules·Hz/ Watts=Joules·(1 /s)/(Joules /s)=1

所以EbNo的单位也是无量纲的,我厉害吧,很少有人推这个吧,虽然很简单。

就前面的例子来说,可以EbNo和SNR是这样转换的。

SNR=EbNo·(1/3)·(3000/3200)·2·(1/10)·(1/1+0.25)

用dB表示,就是

SNR=EbNo+10log(1/3)+10log(3000/3200)+10log(2)+10log(1/10)+10log(1/1+0.25)

此处log以10为底,其中1/3是卷积码引入的,3000/3200是因为添加了训练序列这个额外的开销而引入,2是QPSK引入的,1/10是成形前上采样引入的,1/1+0.25是升余弦波形引入的。

一般很容易忘记考虑训练序列或者保护间隔,一般影响不大,本例中10log(3000/3200)接近0,但其他各项影响都很大,如果仿真结果性能超好,应该看看是否忘记哪项了。如果系统还进行了扩频,比如添加训练序列后进行了16倍扩频,那么还要考虑扩频增益带来的影响,应该还要加上10log(1/16)。为什么要这样加加减减要想清楚,举个比较很多人不理解的地方,比如“为什么要减去过采样的影响?”,可以从这个方面去理解,在基带数字信号处理时,接收端A/D变换之后,要进行匹配滤波,此时过采样点数越高,同步精度越好,这样会带来性能的提高,为了提高性能,当然发送时所需要的SNR就越大,所以要减去(很遗憾,好像还是没解释太明白,但这可能是目前最容易理解的了,注意要意会)。

最后,希望大家牢记一些典型的数值,比如10log(2)为3,这样别人一说用16PSK,你就要反应出来,相对于现在的QPSK方式,系统性能大约要降低6dB。

我记性不好,所以趁不迷糊,希望能有所帮助,相信我没错的,助人为乐最开心了。

学通信,基本概念要清晰。

matlab中将ebn0转snr,EbNo(EbN0)和SNR相关推荐

  1. 关于SNR和EbN0转换关系

    EbNo(EbN0)和SNR SNR = EbN0 + 10log10(nBits*coderate) - 10log10(0.5or1 * upfactor) 参数说明: Coderate:编码码率 ...

  2. 对信噪比SNR、EbN0、EsN0的个人详细理解

    前言 最近在看信噪比方面的知识,看了不少文章和几篇论文,发现对信噪比的理解和公式不尽相同,下面根据自己理解做一下总结. 在通信系统的接收端,噪声会随着信号一起进入接收机,这时就会判断在信噪比为多少的情 ...

  3. 信噪比SNR和EbN0

    ON转存 SNR,或者我们平时说的信噪比,其实是一个不精确的概念.信噪比有很多种,Eb/N0,Ec/N0,Es/N0,Ior/Ioc... 一般来说,仿真的时候N0是固定的,计算出能量Eb.Ec或是E ...

  4. matlab读取txt到矩阵,如何在MATLAB中将文本文件中的数据读入矩阵(How to read data from a text file into a matrix in MATLAB)...

    如何在MATLAB中将文本文件中的数据读入矩阵(How to read data from a text file into a matrix in MATLAB) 我在将.txt文件读入单个矩阵时遇 ...

  5. matlab 图片转化为avi,在matlab中将tiff图像转换为avi

    我正在尝试使用VideoWriter将大量的tiff图像转换为avi视频.我在使用for循环将图像转换为视频时遇到了麻烦.这里是我到目前为止的代码:在matlab中将tiff图像转换为avi func ...

  6. MATLAB中将文件夹添加到路径

    ** MATLAB中将文件夹添加到路径 打开matlab,运行程序时出错,提示找不到该文件夹怎么办? 运行显示找不到文件/文件夹颜色是浅色 用addpath添加文件夹: 1.首先要将matlab路径处 ...

  7. Matlab中将数据保存为txt或dat格式四种方法

    转载于 Tsingke 老师的文章--Matlab中将数据保存为txt或dat格式四种方案 - Tsingke - 博客园.                                       ...

  8. MATLAB中将图像转换为二值图像im2bw

    在MATLAB中将图像转换为二值图像,主要运用im2bw函数,涉及到一个灰度门槛的数值. 对于灰度图像 bw=im2bw(I,level); level空着的话,默认是0.5.level一般使用gra ...

  9. matlab中将RGB图像转化为灰度图像

    MyYuanLaiPic = imread('e:/image/matlab/Cluo.jpg');%读取RGB格式的图像 MyFirstGrayPic = rgb2gray(MyYuanLaiPic ...

最新文章

  1. 飞塔安全实验室:2016年物联网将成为新的战场
  2. (转)MySQL 线程池内幕
  3. java junit Assert断言用法示例: Assert.assertEquals(期望的结果,运算的结果)
  4. Django 自定义表名
  5. My cnblogs's first day
  6. 手把手教你python实现量价形态选股知乎_【手把手教你】Python实现基于事件驱动的量化回测...
  7. 我的世界服务器按键显示mode,【服务器相关】【求助!】关于服务器中使用gamemode等命令错误。...
  8. myEclipse配置java版本(环境、项目、编译)
  9. python多重继承super父类参数_python – 多重继承如何与super()和不同的__init __()参数一起使用?...
  10. Ant 下载安装配置使用教程
  11. 学习小甲鱼Python入门(二)习题笔记-列表
  12. OpenSSL FIPS安装
  13. java 文本框 虚体字_虚字的意思、虚的繁体字、虚的笔顺笔画、虚字部首和繁体字虚的意思...
  14. 面试题:在浏览器输入 URL 回车之后发生了什么?(超详细版)
  15. 学习数据库视频笔记4
  16. 什么是域名?域名详细介绍
  17. 痛心!华为高管丁耘去世,享年 53 岁
  18. Android Binder学习指南
  19. python 可视化案例_Python之路 08 数据可视化案例
  20. vcg函数值_几个经典的数学库之一学习---VCGlib(2)

热门文章

  1. 抽象类java启动线程_java 线程复习笔记
  2. neo4j3.0 java使用_neo4j-java连接
  3. linux 串口 字符 间隔,嵌入式linux编程过成中模块从串口读数需要特定的字符段并且需要每两位字符数组元素转换成一个16进制数(提取特定字符串+字符串转16进制)...
  4. ArcEngine和GDAL读写栅格数据机制对比(一)
  5. XML DOM---解析xml dom
  6. css根据当前宽度设置css,JS和CSS实现自动根据分辨率设置页面宽度
  7. 花音机器人_【扑杀花音攻略组】超弩级光机器人攻略
  8. 电脑计算机内存不够怎么办,电脑内存不足怎么办 电脑内存不足怎么解决
  9. java数组表格输出_Java 如何将数组中的数据以表格形式输出
  10. mysql sqlite 分页查询_sqlite分页查询