说明:关注公众号可免费看,保证你不会白关注,不亏


关于EsN0、EbN0与SNR三者关系的描述,在MATLAB帮助文档中搜索词条“AWGN Channel”有比较详细的描述,但有些细节没有讲清楚。

简单翻译解释一下,就是

  • SNR表示每个采样点的信号噪声比。
  • EbN0表示每个比特能量与噪声功率谱密度的比值。
  • EsN0表示每个符号能量与噪声功率谱密度的比值。

EsN0与EbN0的关系


EsN0与EbN0的关系比较简单,上面描述了一大堆,核心是
如果不和信道编码一起算,假设为MMM进制调制,那么其关系式为
Es/N0(dB)=Eb/N0(dB)+10log⁡10(k){E_s}/{N_0}({\rm{dB}}) = {E_b}/{N_0}({\rm{dB}}) + 10{\log _{10}}(k)Es​/N0​(dB)=Eb​/N0​(dB)+10log10​(k)

k=log2(M)k=log_2(M)k=log2​(M)

重点是EsN0和SNR的关系,如下

EsN0与SNR的关系



也就是说,对于

  • 复信号
    Es/N0(dB)=10log⁡10(Tsym/Tsamp)+SNR(dB)=10log⁡10(Fs/RB)+SNR(dB){E_s}/{N_0}({\rm{dB}}) = 10{\log _{10}}({T_{sym}}/{T_{samp}}) + SNR({\rm{dB}})\\ = 10{\log _{10}}({F_s}/{R_B}) + SNR({\rm{dB}})Es​/N0​(dB)=10log10​(Tsym​/Tsamp​)+SNR(dB)=10log10​(Fs​/RB​)+SNR(dB)

对这种情况下简单作一个推导(2020.12.13更新)
EsN0=S⋅TsymN/Bn=Tsym⋅Fs⋅SN=FsRB⋅SN\frac{{{E_s}}}{{{N_0}}} = \frac{{S \cdot {T_{sym}}}}{{N/{B_n}}} = {T_{sym}} \cdot {F_s} \cdot \frac{S}{N} = \frac{{{F_s}}}{{{R_B}}} \cdot \frac{S}{N}N0​Es​​=N/Bn​S⋅Tsym​​=Tsym​⋅Fs​⋅NS​=RB​Fs​​⋅NS​

⇒Es/N0(dB)=10log⁡10(Fs/RB)+SNR(dB)\Rightarrow {E_s}/{N_0}({\text{dB}}) = 10{\log _{10}}({F_s}/{R_B}) + SNR({\text{dB}})⇒Es​/N0​(dB)=10log10​(Fs​/RB​)+SNR(dB)

这就是符号信噪比EsN0与SNR的关系,根据这个关系,即可得出带内信噪比与SNR的关系为
带内信噪比(dB)=10log⁡10(Fs/Bs)+SNR(dB)带内信噪比({\text{dB}}) = 10{\log _{10}}({F_s}/{B_s}) + SNR({\text{dB}})带内信噪比(dB)=10log10​(Fs​/Bs​)+SNR(dB)

其中,BsB_sBs​为信号带宽,如对FSK信号来说,信号带宽BsB_sBs​就不是RBR_BRB​了。

  • 实信号
    Es/N0(dB)=10log⁡10(0.5∗Tsym/Tsamp)+SNR(dB)=10log⁡10(0.5∗Fs/RB)+SNR(dB){E_s}/{N_0}({\rm{dB}}) = 10{\log _{10}}({0.5*T_{sym}}/{T_{samp}}) + SNR({\rm{dB}})\\ = 10{\log _{10}}({0.5*F_s}/{R_B}) + SNR({\rm{dB}})Es​/N0​(dB)=10log10​(0.5∗Tsym​/Tsamp​)+SNR(dB)=10log10​(0.5∗Fs​/RB​)+SNR(dB)

其中对复信号的情况进行了推导,过程有了,不再赘述,核心是

N0=N/Bn{N_0} = N/{B_n}N0​=N/Bn​

为噪声双边功率谱密度,将其代入即可,各参数代表的含义为

  • SSS为输入信号的功率,单位W
  • NNN为噪声功率,单位W
  • BnB_nBn​为噪声带宽,单位Hz
  • FsF_sFs​为采样频率,单位Hz

那么问题是,实信号关系式为什么比复信号多乘了0.5,且在下面有说明“Note that…”,即对于复信号的情况,噪声带宽为

Bn=Fs=1/Tsamp{B_n} = {F_s} = 1/{T_{{\rm{samp}}}}Bn​=Fs​=1/Tsamp​

那么对于实信号,噪声带宽是多少呢?其实,对于实信号,噪声带宽为

Bn=Fs/2{B_n} = {F_s/2} Bn​=Fs​/2

这样就不难得到实信号时EsN0与SNR的关系了,但为什么实信号时噪声带宽为Fs/2F_s/2Fs​/2,或许可以这样理解,实信号的频谱是关于Fs/2F_s/2Fs​/2对称的,也就是说只有一半的频谱是有用的,自然噪声的影响只能算Fs/2F_s/2Fs​/2的带宽范围;而对于复信号,更准确地说是解析信号,其频谱是在0−Fs0-F_s0−Fs​范围内的,噪声的影响为整个FsF_sFs​范围,所以此时噪声带宽为FsF_sFs​。

仿真验证

awgn函数加噪源码说明

out = awgn(sig, reqSNR, 'measured')

一般来说awgn输入为该3个参数,sig表示将要加噪的信号,reqSNR表示信噪比(信号功率与噪声功率之比),'measure’表示在加噪之前计算信号功率。

函数参数中指定为’measured’时,在加入噪声之前计算信号功率。

sigPower = sum(abs(sig(:)).^2)/numel(sig); % linear

reqSNR单位为dB形式,转换为线性形式

reqSNR = 10^(reqSNR/10);

则噪声功率为

noisePower = sigPower/reqSNR;

然后再生成高斯白噪声,分为实信号和复信号两种情况,复信号时噪声为

noise = sqrt(noisePower/2)* (randn(size(sig)) + 1i*randn(size(sig)));

实信号时噪声为

noise = sqrt(noisePower)* randn(size(sig));

其中,randn函数作用为生成功率为1的高斯白噪声序列。

EsN0与SNR关系验证(以BPSK调制为例)

N = 300; % 符号个数
sym = randi([0 1],1,N);
Fs = 9600;
RB = 200;
alpha = 0.3; % 滚降系数
fc = 3000; % 载波
fd = Fs/RB; % 过采倍数
EsN0 = 15; % 符号信噪比 dB为单位
LinEsN0 = 10^(EsN0/10); % 线性单位的EsN0
SNR = EsN0 - 10*log10(Fs/RB); % SNR 以dB为单位
%% 基带信号
M = 2;
Len = N*Fs/RB;
t = 0:1/Fs:(Len-1)/Fs;
pha_bpsk = pskmod(sym,M); % 生成相位
figure;plot(pha_bpsk,'.b','MarkerSize',15);
title('BPSK星座图');h = rcosine(RB,Fs,'fir/sqrt',alpha); % 根升余弦成形
bas_bpsk = rcosflt(pha_bpsk,RB,Fs,'filter',h).';
delay=(length(h)+1)/2; %%%%时延
bas_bpsk=bas_bpsk(delay:end-delay+1);
sig_bpsk_pure = bas_bpsk.*exp(1j*2*pi*fc*t);
sig_bpsk_n = awgn(sig_bpsk_pure,SNR,'measured');% EsN0 SNR的关系
sigPower = sum(abs(sig_bpsk_pure(:)).^2)/numel(sig_bpsk_pure); % 信号功率
sigma_n2=sigPower/10^(SNR/10); % 噪声功率
noise = sqrt(sigma_n2/2)* (randn(size(sig_bpsk_pure)) + 1i*randn(size(sig_bpsk_pure))); % 生成复高斯噪声
nlen = length(noise);
Et = sum(abs(noise).^2); % 噪声能量(时域)
Ef = sum(abs(fft(noise)/sqrt(nlen)).^2);% 噪声能量(频域)
wd = ones(1,fd); % 积分窗,长度为一个符号采样点数
Es = mean(conv(abs(sig_bpsk_pure).^2,wd)); % 单个符号的能量(时域符号周期积分求平均的方法)
Es1 = sum(abs(sig_bpsk_pure(:)).^2)/N; % 单个符号的能量(总能量除以符号个数)
N0 = mean(abs(noise).^2); % 噪声双边功率谱密度 通过时域求得
N0pri = mean(abs(fft(noise)/sqrt(nlen)).^2); % 噪声双边功率谱密度 通过频域求得
EsN0pri = Es/N0; % 通过计算符号能量和噪声双边功率谱密度得到的EsN0
SNRpri = 10*log10(sigPower/sigma_n2); % 信噪比

计算结果

代码中EsN0设置为15dB,计算结果因生成的随机符号序列不同可能会稍有不同,但都满足以上分析,将本人计算结果分享如下

噪声能量
Et = 450.0291
Ef = 450.0291信号功率
sigPower = 0.0208噪声功率
sigma_n2 = 0.0315信号单个符号能量
Es = 0.9928
Es1 = 0.9960噪声双边功率谱密度
N0 = 0.0313
N0pri = 0.0313EsN0线性单位值
LinEsN0 = 31.6228EsN0通过Es/N0得到的值
EsN0pri = 31.7677由公式得到的SNR值(dB为单位)
SNR = -1.8124由10*log10(信号功率/噪声功率)计算得到的SNR值(dB为单位)
SNRpri =  -1.8124

【各种信噪比联系与区别详解】实信号、复信号Es、N0、符号信噪比EsN0、带内信噪比、比特信噪比EbN0、SNR的含义及关系详解相关推荐

  1. 【OFDM系列2】OFDM复信号符号信噪比EsN0、比特信噪比EbN0、SNR的含义及关系详解

    更基础的各类信噪比的关系请看博客 [干货2020.12.13更新]实信号.复信号Es.N0.符号信噪比EsN0.带内信噪比.比特信噪比EbN0.SNR的含义及关系详解 本文只讨论OFDM复信号的信噪比 ...

  2. 【转】通信人必看之区别:S/N,C/N,Eb/N0,Ec/N0,Es/N0

    信噪比 S/N .载噪比 C/N 与 Eb/N0之全方位区别 Eb的单位是J,定义是接收端的平均比特能量,N0的单位是W/Hz(J),也是在接收端定义的平均功率谱密度.S和N的单位是W.简单的换算,是 ...

  3. 19. linux中权限详解,Linux权限位,读写执行权限真正含义,chmod详解

    linux中权限详解,Linux权限位,读写执行权限真正含义,chmod详解 文章目录 Linux权限位 读写执行 三种权限真正含义和作用 权限对文件的作用 权限对目录的作用 示例 chmod 使用数 ...

  4. python中文意思k-对python中的*args与**kwgs的含义与作用详解

    在定义函数的时候参数通常会使用 *args与**kwgs,形参与实参的区别不再赘述,我们来解释一下这两个的作用. *args是非关键字参数,用于元组,**kw是关键字参数 例如下面的代码 def fo ...

  5. UML类图与类的关系详解

    UML类图与类的关系详解   2011-04-21 来源:网络   在画类图的时候,理清类和类之间的关系是重点.类的关系有泛化(Generalization).实现(Realization).依赖(D ...

  6. Java中常见RuntimeException与其他异常表及Exception逻辑关系详解

    Java中常见RuntimeException与其他异常表及Exception逻辑关系详解 前言 常见`RuntimeException` 其他错误类型 `Error`类 `Exception`类 E ...

  7. 关系型数据库表之间的联系[关系]详解

    关系型数据库表之间的联系[关系]详解 在表中,行和列的逻辑顺序无关紧要.每个表至少包含一列,该列被称为主键,它唯一地标识了表中的每一行. 键是表中扮演特殊角色的列,有两种键:主键.外键. 主键(Pri ...

  8. python什么意思k_对python中的*args与**kwgs的含义与作用详解

    对python中的*args与**kwgs的含义与作用详解 在定义函数的时候参数通常会使用 *args与**kwgs,形参与实参的区别不再赘述,我们来解释一下这两个的作用. *args是非关键字参数, ...

  9. Linux和GNU系统的关系详解

    今天广泛使用的 GNU 版本通常被称为"Linux",而它的许多用户并不知道 它基本上是由GNU 项目开发的 GNU 系统 . Linux内核 和 GNU 系统简介 确实有一个 L ...

最新文章

  1. 智能语音交互技术在360的落地实践
  2. 关于kthreadd
  3. 关于Oracle Stream的安装、配置和使用
  4. Vue—上手实践—环境搭建
  5. 李洪强经典面试题146-网络
  6. Java并发编程包中atomic的实现原理
  7. java实现人脸识别源码【含测试效果图】——ServiceImpl层(UserServiceImpl)
  8. 活力四射的Windows Embedded Standard 7
  9. Pentium 4处理器架构/微架构/流水线 (8) - NetBurst执行核详解 - 指令时延与吞吐量
  10. 附加作业:源自邹老师的作业“链接”
  11. 防火墙中查看用户流量
  12. 如何系统学习SWAT模型—建模方法、实例应用、高级进阶
  13. 两年数据对比柱形图_职场必学技能,用PPT组合图表玩转多重数据分析展示!
  14. unix网络编程中的fd是什么
  15. Qt之QGraphicsView入门篇
  16. OpenAI祭出120亿参数魔法模型!从文本描述生成的图像栩栩如生,仿佛拥有人类的想象力...
  17. 从安卓recovery 的 backup 备份数据中手动恢复 通讯录、短信,或者其他软件中的信息的方法
  18. eclipse的python_eclipse中集成python开发环境
  19. Flutter 解决软键盘弹出背景图片变形
  20. HTML5期末大作业:网站——卡通漫画游戏官方网页 (萌王) 13个页面 HTML+CSS+JavaScript ~ 学生HTML个人网页作业作品下载 ~ web课程设计网页规划与设计

热门文章

  1. Spring Data Solr教程:CRUD(差不多)
  2. Java应用程序中的消息传递主体
  3. Linux 命令之 pico -- 文本编辑器
  4. ORACLE数据库常用命令总结
  5. totolinkn200up怎么设置_totolinkN200R无线路由器如何设置啊,求高人指点
  6. 上网登录窗不弹出_配置 Windows XP 正常上网(TLS HTTPS),连接到 NAS
  7. 【WebRTC---源码篇】(三)Windows/Linux音视频采集封装模块
  8. 深入浅出讲解C语言#define宏定义应用及使用方法
  9. 织梦网站上传服务器不显示图片,解决织梦后台登陆不显示验证码图片问题
  10. python写前端图形界面_如何Tkinter模块编写Python图形界面