【通信原理 入坑之路】—— 数字载波传输系统 之 2PSK(二进制相移键控)2ASK(二进制幅度键控)的超详细分析
在之前的文章里面,我们讨论过数字基带传输系统,他们指的是传输二进制脉冲成型信号。然而,在绝大部分场合,我们需要将数字基带信号装载到高频载波上(也就是我们所说的调制),通过天线等将高频波发射出去。这就是我们后面需要学习的数字载波调制系统。
一、2PSK
PSK(频移键控)基本概述
所谓 PSK,指的就是使用二进制的基带信号来控制载波的相位,使载波的相位能够反映出数字消息的特征。我们注意:对于2PSK,其实和2ASK类似,也是可以通过下面的通式来表示: s ( t ) = ∑ − ∞ + ∞ a n g T ( t − n T ) c o s ω c t s(t) = \sum_{-∞}^{+∞}a_ng_T(t - nT)cosω_ct s(t)=−∞∑+∞angT(t−nT)cosωct
大家可能会好奇了:为什么2PSK也可以这么表示呢?我们逐个逐个拆开来看看:
∑
−
∞
+
∞
a
n
g
T
(
t
−
n
T
)
\sum_{-∞}^{+∞}a_ng_T(t - nT)
−∞∑+∞angT(t−nT)
这个部分得到的,就是我们之前的博客中所讨论到的数字基带信号,如下图上半部分的那种门信号。然后,我们不是要让这个基带信号和高频载波
c
o
s
ω
c
t
cosω_ct
cosωct相乘嘛,同时,因为是调相,所以是需要让数字信号能够控制高频载波的相位的。一般来说:因为我们现在考虑的是一个二进制系统,所以
a
n
a_n
an 可能的取值就有两个(一般是取对极信号,即±a),因此两个
a
n
a_n
an 取值的话我们就可以用高频载波的两种不同的相位去表示它们。 而为了使相位最容易区分,即差异最大,我们就取 0° 和 180° 作为两个相位。所以现在数字基带信号乘上高频载波之后的结果就是:
s
(
t
)
=
{
∑
−
∞
+
∞
a
n
g
T
(
t
−
n
T
)
c
o
s
(
ω
c
t
)
a
n
=
+
a
∑
−
∞
+
∞
a
n
g
T
(
t
−
n
T
)
c
o
s
(
ω
c
t
+
π
)
a
n
=
−
a
s(t) = \begin{cases} \sum_{-∞}^{+∞}a_ng_T(t - nT)cos(ω_ct) \quad a_n = +a\\ \sum_{-∞}^{+∞}a_ng_T(t - nT)cos(ω_ct + π) \quad a_n = -a\\ \end{cases}
s(t)={∑−∞+∞angT(t−nT)cos(ωct)an=+a∑−∞+∞angT(t−nT)cos(ωct+π)an=−a
进一步,得: s ( t ) = { ∑ − ∞ + ∞ a g T ( t − n T ) c o s ( ω c t ) a n = + a ∑ − ∞ + ∞ − a g T ( t − n T ) c o s ( ω c t ) a n = − a s(t) = \begin{cases} \sum_{-∞}^{+∞}ag_T(t - nT)cos(ω_ct) \quad a_n = +a\\ \sum_{-∞}^{+∞}-ag_T(t - nT)cos(ω_ct) \quad a_n = -a\\ \end{cases} s(t)={∑−∞+∞agT(t−nT)cos(ωct)an=+a∑−∞+∞−agT(t−nT)cos(ωct)an=−a
那么,其实整合起来就是下面的结果:
s
(
t
)
=
∑
−
∞
+
∞
a
n
g
T
(
t
−
n
T
)
c
o
s
ω
c
t
s(t) = \sum_{-∞}^{+∞}a_ng_T(t - nT)cosω_ct
s(t)=−∞∑+∞angT(t−nT)cosωct
发射框图(模拟方法实现 and 数字方法实现)
2PSK的发射机可以由模拟和数字两种方式实现,大家需要掌握。
解调(相干解调)与差错性能分析
由于2PSK中,发射的高频信号是一个恒幅的信号,因此无法项2ASK那样使用包络检波来进行解码,但是相干解调和相关解调依旧适用。其中,相干解调就是先让信号经过一个带通滤波器,然后让本地恢复(这里涉及到载波同步问题,我们后续的文章会介绍) 的高频载波 c o s ( ω c ′ t ) cos(ω'_ct) cos(ωc′t) 与信号相乘,最后让信号经过一个低通滤波器即可。【值得注意的是:这里本地恢复的载波,频率上我加了一个 ′ ' ′,但是 ω c ′ ω'_c ωc′ 与 ω c ω_c ωc是十分接近的。】
我们来推导一下相关解调的数学步骤:
上图是相关解调的框图。首先我们假设信道的高斯白噪声为:
n
(
t
)
n(t)
n(t)
那么在接收端(也就是在经过带通滤波器之前)所得到的信号形式就是:
r
(
t
)
=
{
a
c
o
s
ω
c
t
+
n
(
t
)
−
a
c
o
s
ω
c
t
+
n
(
t
)
r(t) = \begin{cases} acosω_ct + n(t)\\ -acosω_ct + n(t) \end{cases}
r(t)={acosωct+n(t)−acosωct+n(t)
下面经过带通滤波器,这里我们需要补充一点有关窄带高斯噪声的相关知识:
首先,什么是窄带信号呢?我们先给出一个定义式,然后具体解释:
X
(
t
)
=
a
(
t
)
c
o
s
[
2
π
f
c
t
+
ф
(
t
)
]
X(t) = a(t)cos[2πf_ct + ф(t)]
X(t)=a(t)cos[2πfct+ф(t)]
这里的
X
(
t
)
X(t)
X(t) 就是我们所说的窄带信号。其中,
a
(
t
)
a(t)
a(t) 和
ф
(
t
)
ф(t)
ф(t)都是随机过程,但是它们的变化幅度相对于其中心频率
f
c
f_c
fc的周期变化来说缓慢得多,我们就把这种信号称之为窄带信号。 我们将上面的式子,用三角函数求和公式(
c
o
s
(
a
+
b
)
=
c
o
s
a
c
o
s
b
−
s
i
n
a
s
i
n
b
cos(a+b) = cosacosb - sinasinb
cos(a+b)=cosacosb−sinasinb)拆开,可以得到:
X
(
t
)
=
a
(
t
)
c
o
s
ф
(
t
)
c
o
s
(
2
π
f
c
t
)
−
a
(
t
)
s
i
n
ф
(
t
)
s
i
n
(
2
π
f
c
t
)
X(t) = a(t)cosф(t)cos(2πf_ct) - a(t)sinф(t)sin(2πf_ct)
X(t)=a(t)cosф(t)cos(2πfct)−a(t)sinф(t)sin(2πfct)
我们可以令:
a
c
(
t
)
=
a
(
t
)
c
o
s
ф
(
t
)
a_c(t) = a(t)cosф(t)
ac(t)=a(t)cosф(t);
a
s
(
t
)
=
a
(
t
)
s
i
n
ф
(
t
)
a_s(t) = a(t)sinф(t)
as(t)=a(t)sinф(t)
那么,回到我们的主题上,一个高斯噪声通过一个带通滤波器之后得到的结果就是一个窄带高斯信号,那么我们按照上面这个式子的格式,也可以把这个窄带高斯噪声的数学表达式写出来:
n
(
t
)
=
n
c
(
t
)
c
o
s
(
ω
c
t
)
−
n
s
(
t
)
s
i
n
(
ω
c
t
)
n(t) = n_c(t)cos(ω_ct) - n_s(t)sin(ω_ct)
n(t)=nc(t)cos(ωct)−ns(t)sin(ωct)
【其中, n ( t ) , n c ( t ) , n s ( t ) n(t), n_c(t), n_s(t) n(t),nc(t),ns(t) 都有着相同的方差】
于是乎,我们就可以写出经过带通滤波器之后的2PSK信号的表达式: r ′ ( t ) = { a c o s ω c t + n c ( t ) c o s ( ω c t ) − n s ( t ) s i n ( ω c t ) − a c o s ω c t + n c ( t ) c o s ( ω c t ) − n s ( t ) s i n ( ω c t ) r'(t) = \begin{cases} acosω_ct + n_c(t)cos(ω_ct) - n_s(t)sin(ω_ct)\\ -acosω_ct + n_c(t)cos(ω_ct) - n_s(t)sin(ω_ct) \end{cases} r′(t)={acosωct+nc(t)cos(ωct)−ns(t)sin(ωct)−acosωct+nc(t)cos(ωct)−ns(t)sin(ωct)
然后将 r ′ ( t ) r'(t) r′(t) 与本地恢复的载波相乘,再经过低通滤波器滤去高频分量之后就可以得到: z n ( t ) = { a + n c ( t ) 发 送 " 1 " − a + n c ( t ) 发 送 " 0 " z_n(t) = \begin{cases} a+n_c(t) \quad 发送"1"\\ -a+n_c(t) \quad 发送 "0" \end{cases} zn(t)={a+nc(t)发送"1"−a+nc(t)发送"0"
我们假设原本 n ( t ) n(t) n(t) (也就是最初的高斯白噪声)的概率密度函数为: p ( n ) = 1 2 π σ n e − n 2 2 σ n 2 p(n) = \frac{1}{\sqrt{2π}σ_n}e^{\frac{-n^2}{2σ_n^2}} p(n)=2πσn1e2σn2−n2
而我们看 z n ( t ) z_n(t) zn(t) 的表达式也可以知道,无论是 a + n c ( t ) a+n_c(t) a+nc(t) 还是 − a + n c ( t ) -a+n_c(t) −a+nc(t),由于 a a a 是常数的缘故,这两个式子的方差仍然是 n c ( t ) n_c(t) nc(t) 的方差,而通过我们刚刚的分析, n c ( t ) n_c(t) nc(t) 的方差又等于 n ( t ) n(t) n(t)的方差,因此,接收到 "1"或"0"的概率密度函数可以分别表示为: p ( z ∣ s 1 ) = 1 2 π σ n e − ( z − a ) 2 2 σ n 2 p ( z ∣ s 2 ) = 1 2 π σ n e − ( z + a ) 2 2 σ n 2 p(z|s_1) = \frac{1}{\sqrt{2π}σ_n}e^{\frac{-(z - a)^2}{2σ_n^2}}\\ p(z|s_2) = \frac{1}{\sqrt{2π}σ_n}e^{\frac{-(z + a)^2}{2σ_n^2}} p(z∣s1)=2πσn1e2σn2−(z−a)2p(z∣s2)=2πσn1e2σn2−(z+a)2
而很明显,最佳的判决门限是: γ = a − a 2 = 0 γ = \frac{a - a}{2} = 0 γ=2a−a=0
因此,假设发送的是符号
s
0
s_0
s0,错判成符号
s
2
s_2
s2的概率就可以表示为:
p
(
s
0
)
∫
γ
0
+
∞
p
(
z
∣
s
0
)
d
z
p(s_0)\int_{γ_0}^{+∞}p(z|s_0)dz
p(s0)∫γ0+∞p(z∣s0)dz
因此,整个2PSK系统的误码率就是写成: P E = p ( s 0 ) ∫ γ 0 + ∞ p ( z ∣ s 0 ) d z + p ( s 2 ) ∫ − ∞ γ 0 p ( z ∣ s 2 ) d z P_E = p(s_0)\int_{γ_0}^{+∞}p(z|s_0)dz + p(s_2)\int_{-∞}^{γ_0}p(z|s_2)dz PE=p(s0)∫γ0+∞p(z∣s0)dz+p(s2)∫−∞γ0p(z∣s2)dz
而具体的误码率应该是多少呢?用上面的方法计算未免过于繁琐,因此,我们给出下面的公式:
P
E
=
Q
(
a
1
−
a
2
2
σ
)
P_E = Q(\frac{a_1 - a_2}{2σ})
PE=Q(2σa1−a2)
值得注意的是:
a
1
,
a
2
a_1, a_2
a1,a2分别表示了两种码元的接收表征。
σ
2
σ^2
σ2是噪声的功率。因此,我们可以进一步写成:
P
E
=
Q
(
a
−
(
−
a
)
2
σ
n
c
)
=
Q
(
2
a
2
σ
n
c
)
=
Q
(
a
2
σ
n
c
2
)
P_E = Q(\frac{a - (-a)}{2σ_{nc}}) = Q(\frac{2a}{2σ_{nc}}) = Q(\sqrt{\frac{a^2}{σ^2_{nc}}})
PE=Q(2σnca−(−a))=Q(2σnc2a)=Q(σnc2a2)
因为我们刚刚说过窄带高斯噪声,其
n
n
c
n_{nc}
nnc 部分的功率和原来噪声的功率是一样的,因此可以用:
σ
n
c
σ_{nc}
σnc代替
σ
σ
σ。
我们先看看噪声功率: σ n c 2 σ^2_{nc} σnc2,我们假设噪声的单边功率谱密度是 N 0 N_0 N0,带通滤波器的带宽是码元频率的两倍,即: B = 2 f b = 2 1 T B = 2f_b = 2\frac{1}{T} B=2fb=2T1。因此,高斯噪声通过带通滤波器之后的功率就是: σ n c 2 = 2 N 0 T σ^2_{nc} = \frac{2N_0}{T} σnc2=T2N0
下面我们分析比特能量 E b E_b Eb,因为我们现在讨论的是二进制系统,所以一共就有两种码元,每一个码元就只由一位比特构成。我们我们就分别看看这两种码元的能量:
【1】当发送的是码元 "1"时,信号应该是: a c o s ω c t acosω_ct acosωct,那么码元能量就等于这个信号的平方在一个码元周期内的积分,即: ∫ 0 T ( a c o s ω c t ) 2 d t = 1 2 a 2 T \int_{0}^T(acosω_ct)^2dt = \frac{1}{2}a^2T ∫0T(acosωct)2dt=21a2T
【2】当发送的是码元 "0"时,信号应该是: − a c o s ω c t -acosω_ct −acosωct,那么码元能量就等于这个信号的平方在一个码元周期内的积分,即: ∫ 0 T ( − a c o s ω c t ) 2 d t = 1 2 a 2 T \int_{0}^T(-acosω_ct)^2dt = \frac{1}{2}a^2T ∫0T(−acosωct)2dt=21a2T
所以比特能量就可以表示为: E b = P ( 1 ) E s 1 + P ( 0 ) E s 0 = 1 2 1 2 a 2 T + 1 2 1 2 a 2 T = 1 2 a 2 T E_b = P(1)E_{s1} + P(0)E_{s0} = \frac{1}{2} \frac{1}{2}a^2T + \frac{1}{2}\frac{1}{2}a^2T = \frac{1}{2}a^2T Eb=P(1)Es1+P(0)Es0=2121a2T+2121a2T=21a2T
所以,结合上面误码率的表达式,我们发现: P E = Q ( a 2 σ n c 2 ) = Q ( a 2 2 N 0 T ) = Q ( 1 2 a 2 T N 0 ) = Q ( E b N 0 ) P_E = Q(\sqrt{\frac{a^2}{σ^2_{nc}}}) = Q(\sqrt{\frac{a^2}{\frac{2N_0}{T}}}) = Q(\sqrt{\frac{\frac{1}{2}a^2T}{N_0}}) = Q(\frac{E_b}{N_0}) PE=Q(σnc2a2)=Q(T2N0a2)=Q(N021a2T)=Q(N0Eb)
特别需要注意的是:并不是所有的2PSK的误码率都是 Q ( E b N 0 ) Q(\frac{E_b}{N_0}) Q(N0Eb),这个表达式是基于解码使用的是相干解调。如果使用的是基于匹配滤波器的相关解调,那么误码率会更低,达到: Q ( 2 E b N 0 ) Q(\frac{2E_b}{N_0}) Q(N02Eb)
核心区别在于:相干解调中,与接收信号相乘的是纯载波 c o s ω c t cosω_ct cosωct,而下图是相关解调:
与接收信号相乘的是 发送信号 : a c o s ω c t acosω_ct acosωct,乘完了之后得到的是这样的表达式: r n ( t ) = { E s 1 + N 0 发 送 " 1 " E s 0 + N 0 发 送 " 0 " r_n(t) = \begin{cases} E_{s1}+N_0 \quad 发送"1"\\ E_{s0}+N_0 \quad 发送 "0" \end{cases} rn(t)={Es1+N0发送"1"Es0+N0发送"0"
因此,误码率函数在这里就开始不同,但是推导是类似的。主要是这个噪声功率有点不一样。
二、2ASK
就二进制而言,2PSK和2ASK就连表达式都是一模一样的(虽然从意义上看有些不同),因此,2ASK和2PSK的解调也是几乎完全类似的。相干解调和相关解调的框图,推导也是一样的。
不过值得注意的是:2ASK还可以用包络检波法进行解调,发送符号“1”时,接收到的信号包络服从莱斯分布;发送符号“0”时,接收到的信号的包络服从瑞利分布。【大家需要记忆】
而误码率方面也有些许不同,2ASK的误码率就留给读者们按照上文的思路自己去推导啦,我们下面直接给出来:
- 相干解调时,有: P E = Q ( E b 2 N 0 ) P_E = Q(\frac{E_b}{2N_0}) PE=Q(2N0Eb)
- 相关解调时,有: P E = Q ( E b N 0 ) P_E = Q(\frac{E_b}{N_0}) PE=Q(N0Eb)
更多推荐
所有评论(3)



那么,加 99,再减 100,当然就是 “-1” 了。
计算机,使用的是二进制数。
八位二进制数是:0000 0000 ~ 1111 1111。
相当于十进制数:0 ~ 255。
如果,进位 = 1,就是:2^8 = 256。
那么,加 255,再减 256,这也就是 “-1” 了。
所以:255 (1111 1111),就是:-1;
同理:254 (1111 1110),就是:-2;
253 (1111 1101),就是:-3;
。。。 。。。
128 (1000 0000),即:-128。
以上这些正数,就是计算机专家 “发明” 的补码了。
由此可知:
所谓的 “补码”,也是正常的数字。
它之所以能代替负数,关键是【舍弃了进位】。
而并非是来自“符号位原码反码”。
解释或说明“补码”,只需做一道小学算术题。
但是,老外却弄不懂这些。
所以才编造一套谎言:机器数符号位模符号位也参加运算 ...
你看过【卖拐】吗?
你要是跟着老外学算术,你立刻、马上、直接就掉沟里去了!
呵呵
任意的进制中,都有“补码”。
你看十进制,两位数,就是:0 ~ 99。
可以有:27 + 99 = (一百) 26
也可以:27 - 1 = 26
如果你忽略进位,依旧保持两位数,
这两种算法的功能,就是相同的!
就是说,当你舍弃了进位:
正数,就能当负数使用!
加法,也就可以实现减法运算!
如果在计算机中舍弃进位:
减法器,就可以省掉了。
只用一个加法器,就可横行天下!
也可以说,计算机中,根本就没有:原码反码补码。
你费这么多语言来解释补码,只能说:你被忽悠瘸了。