前言
最近在看信噪比方面的知识,看了不少文章和几篇论文,发现对信噪比的理解和公式不尽相同,下面根据自己理解做一下总结。
在通信系统的接收端,噪声会随着信号一起进入接收机,这时就会判断在信噪比为多少的情况下误码率是多少,这时SNR、Eb/N0、Es/N0都可能用到。SNR 也即信噪比,是接收端模拟信号的重要测量指标,可以通过频谱仪等仪器实际测量接收端的模拟信号得到。而Eb/N0 是指通信系统传输一比特信息所需要的能量和噪声功率谱密度的比值,是衡量整个通信系统性能归一化的一个系统指标。一般情况下,模拟通信系统常采用SNR-BER来衡量通信系统的性能,数字通信系统常采用Eb/N0-BER 来衡量通信系统的性能。由于数字通信系统常采用Eb/N0 作为衡量系统的性能指标,但实际测量Eb/N0 比较困难,故而研究Eb/N0 与SNR 的转化关系变的十分重要。
S/N,SNR
SNR:Signal-to-Noise Ratio,是信号功率与噪声功率的比值,SNR 为S/N的dB形式,如下式,其中S:信号功率,N:噪声功率
S
N
R
=
10
l
g
(
S
/
N
)
SNR=10lg(S/N)
SNR=10lg(S/N) 此2个功率在实际通信或仿真中都可以计算或监测到,实际试验可以用频率分析系测得;Matlab中是给定Eb/N0,求出噪声功率,具体可见参考文献;GNURadio中的模拟信道中噪声是用电压幅值表示的,如下式,其中VS和VN分别为信号和噪声的电压均方值。
S
N
R
=
20
l
g
(
V
S
/
V
N
)
SNR=20lg(V_S/V_N)
SNR=20lg(VS/VN)
Eb/N0、Es/N0
Eb/N0:Ratio of bit energy to noise power spectral density,每个二进制bit能量与噪声功率谱密度的比值。
Es/N0:Ratio of symbol energy to noise power spectral density,每个符号能量与噪声功率谱密度的比值。
这里的Eb和Es是平均bit和平均符号能量,不同的bit可能有不同的能量。先看几个概念:
-
N0:噪声的单边功率谱密度
-
Rb:比特率,即每秒传输多少个bit的二进制数
-
Rs:符号率,每秒传输多少个符号的数据
-
K:每个符号所承载的二进制bit数。
-
Tsym:符号周期,每个符号持续的时间,易知Tsym = 1/Rs,单位秒。
-
Tsamp:采样周期,每个采样点持续的时间,Tsamp = 1/Fs,其中Fs为采样率。
-
Bn:噪声带宽,单位赫兹,对于awgn噪声,有 Bn=Fs=1/Tsamp 。
-
sps:每个符号的采样个数,显然sps=Fs/Rs
有如下关系,其中k为每个符号包含的bit数,这个很容易理解。
E
s
/
N
0
=
E
b
/
N
0
∗
k
E_s/N_0=E_b/N_0*k
Es/N0=Eb/N0∗k 与S/N的关系如下,其中Tsym为
E
s
=
S
∗
T
s
y
m
,
N
0
=
N
/
B
n
E_s=S∗T_{sym}, N_0=N/B_n
Es=S∗Tsym,N0=N/Bn 上式容易理解,能量=功率*时间,功率谱=功率/带宽。
但我一直纠结的地方在于Bn如何确定:
- 有的文章写Bn是信号带宽,如果用根升余弦发送滤波器的话就是(1+α)Rs(这个在普通通信原理书上都可以找到),这种是从实际出发,因为实际测得的噪声带宽就是信号带宽,那么Bn当然是信号带宽,具体参考《数字通信系统中Eb/N0 与SNR 转换方法的研究》,知网上可以找到。截取部分公式如下,从下面公式可以看出,Eb/N0好像跟采样率Fs没有什么关系,这在很多通信原理书上介绍误码率的时候是符合的。
文章也介绍了Matlab中信噪比的表示方法:
这里的insValue是平方根升余弦滚降成型滤波器的插值倍数,做过仿真的人都知道,这就是sps。个人对上面这段话不是非常理解。 - 下面这种方法也是很多博客上介绍的方法,对于实信号,Bn=Fs/2。当实数连续信号被采样后,在频域上就是周期的频谱,我们只处理-Fs/2至Fs/2范围内的频谱,那么噪声也就包含在频谱-Fs/2至Fs/2内,此时带宽Bn就是Fs/2(带宽只考虑正频域)。为方便考虑,所以有如下公式:
E
s
/
N
0
=
S
∗
T
s
y
m
/
(
N
/
B
n
)
=
(
T
s
y
m
∗
0.5
F
s
)
∗
(
S
/
N
)
实
信
号
E_s/N_0=S∗T_{sym}/(N/B_n)=(T_{sym}∗0.5F_s)∗(S/N) 实信号
Es/N0=S∗Tsym/(N/Bn)=(Tsym∗0.5Fs)∗(S/N)实信号 而对于复信号(此复信号是带通信号对应的复低通信号),Bn=Fs,采样频率小一倍,所以有如下公式:
E
s
/
N
0
=
S
∗
T
s
y
m
/
(
N
/
B
n
)
=
(
T
s
y
m
∗
F
s
)
∗
(
S
/
N
)
复
信
号
E_s/N_0=S∗T_{sym}/(N/B_n)=(T_{sym}∗F_s)∗(S/N)复信号
Es/N0=S∗Tsym/(N/Bn)=(Tsym∗Fs)∗(S/N)复信号
《https://ww2.mathworks.cn/help/comm/ug/awgn-channel.html?s_tid=srchtitle》中解释如下:
从上图可以看出,对于复信号,采样率为B/2*2=B,对于实信号,采样率为2B.
总结
转换为dB单位则为:
对于复信号: Es/N0(dB)=10log10(Tsym/Tsamp)+SNR(dB);
对于实信号:Es/N0(dB)=10log10(0.5*Tsym/Tsamp)+SNR(dB);
参考文献
https://ww2.mathworks.cn/help/comm/ug/awgn-channel.html?s_tid=srchtitle
《数字通信系统中Eb/N0 与SNR 转换方法的研究》-论文
《Bit-Error-Rate (BER) Simulation Using MATLAB》-论文