之前的部分像 PAM、PSK 和 QAM 这些调制方式的一个重要特性也就是无记忆的,这些调制方式的输出仅取决于当前的输入。这些方式明显的优点也就是实现的简便,然而例如 PSK 这些方式,存在着相位跳变的问题,这会带来更高的带宽占用。

# 差分编码和 DPSK

一个常用的、也是最直观的使用的编码方式就是 NRZ 不归零码,如果输入的 bit 为 1 就输出 1,输入为 0 就输出 - 1(或者类似的),这样的输出信号可以直接用来乘以载波实现 2-PAM 或者 BPSK 调制。

而一个” 改进 “的方式也就是所谓的差分编码。差分编码的输出取决于当前的输入和先前的输出结果,如果当前输入和之前的输出一致,那么输出就是 0,否则就是 1。记当前输入为aka_k,之前的输出为bk1b_{k-1},那么差分编码的输出bkb_k 就是:

bk=akbk1b_k=a_k\oplus b_{k-1}

我们来考虑一个 PSK 传输的情景,在理想的情况下,发射端载波频率为fTX=fcf_{TX}=f_c,接收端和发射端保持完全的载波同步即fRX=fcf_{RX}=f_c,那么接收端收到信号是cos(2πfct+θ)\cos(2\pi f_ct+\theta),采用相干解调,得到:

cos(2πfct+θ)cos(2πfct)=cos(2πfct)2cos(θ)sin(2πfct)cos(2πfct)sin(θ)=12cos(4πfct)cos(θ)+12cos(θ)12sin(4πfct)sin(θ)\begin{aligned} \cos(2\pi f_ct+\theta)\cos(2\pi f_ct)=&\cos(2\pi f_ct)^2\cos(\theta)-\sin(2\pi f_ct)\cos(2\pi f_ct)\sin(\theta)\\[2ex] =&\frac{1}{2}\cos(4\pi f_ct)\cos(\theta)+{\color{blue}\frac{1}{2}\cos(\theta)}-\frac{1}{2}\sin(4\pi f_ct)\sin(\theta) \end{aligned}

两个高频部分可以通过低通滤波器去除,得到剩下的也就是相位部分。这样接收端得到的相位θ^=θ\hat{\theta}=\theta

然而,实际上发射端和接收端的载波频率难以保证完美的同步,存在发射端载波频率为fTX=fcf_{TX}=f_c,接收端载波fRX=fcfcf_{RX}=f_c'\neq f_c,在这种情况下,相干解调的结果:

cos(2πfct+θ)cos(2πfct)=cos(2πfct)cos(2πfct)cos(θ)sin(2πfct)cos(2πfct)sin(θ)=cos(2πfct+[2π(fcfc)]t+θ)\begin{aligned} \cos(2\pi f_ct+\theta)\cos(2\pi f_c't)=&\cos(2\pi f_ct)\cos(2\pi f_c't)\cos(\theta)-\sin(2\pi f_ct)\cos(2\pi f_c't)\sin(\theta)\\[2ex] =&\cos(2\pi f_c't + [2\pi(f_c-f_c')]t+\theta) \end{aligned}

接收端得到的的相位为θ^=2π(fcfc)t+θ\hat{\theta}=2\pi(f_c-f_c')t+\theta,这会导致无法正确解调。

PSK 判断的是载波的相位,而相位的偏差会导致无法正确解调。如果我们使用差分编码的话,应该就可以避免这个问题 —— 差分编码使用相位变化而不是绝对相位来表示信息 —— 这个也就是所谓的差分 PSK(DPSK)。

考虑二进制传输的情况,我们可以直接使用经过了时延的输入信号作为本地载波参与解调:

经过差分编码的 BPSK 信号,共有两种情况,也就是±Accos(2πfct)\pm A_c\cos(2\pi f_ct)。在流图中,输入信号会经过一个T0T_0 的时延,而T0T_0 应该是载波周期的整倍数,因而不会影响实际的相位(当然如果不是整倍数的话,这个常数的时间带来的相位差也可以被处理掉)。这样,我们可以得到:

z(t)={Ac2cos2(2πfct)=12Ac2+12cos(4πfct)LPF12Ac2,y(t)=y(tT0)Ac2cos2(2πfct)=12Ac212cos(4πfct)LPF12Ac2,y(t)=y(tT0)z(t)=\left\{ \begin{aligned} A_c^2\cos^2(2\pi f_ct)&=\frac{1}{2}A_c^2+\frac{1}{2}\cos(4\pi f_ct)&\xrightarrow{LPF}&\frac{1}{2}A_c^2,&y(t)=y(t-T_0)\\[2ex] -A_c^2\cos^2(2\pi f_ct)&=-\frac{1}{2}A_c^2-\frac{1}{2}\cos(4\pi f_ct)&\xrightarrow{LPF}&-\frac{1}{2}A_c^2,&y(t)=-y(t-T_0)\\[2ex] \end{aligned} \right.

通过结果的符号也就可以判断当前的输入和上一个输入是否相同,进而可以实现差分编码的解码。这个过程不需要本地振荡器,能够避免振荡不准带来的问题,也降低了接收端实际实现的成本。当然,这么做的代价是增加了一定的理论错误率,但是在实践中,这个方法的效果还是往往更好的。

# 从 FSK 的缺陷到 CPFSK 和 CPM

在 FSK 中,我们通过不同的频率来表示传输的数据,然而,不同频率之间的切换难免会带来一些问题。

如果我们要实现一个 M-FSK,我们至少需要 M-1 个振荡器,并且通过某种电路根据输入信号在它们之间来回切换。如果我们需要足够理想的 FSK 的话,这个切换是该是非常迅速的 —— 然而这个迅速的切换会带来额外的高频信号。这些高频信号会导致额外的能量泄漏到不需要的部分,也会对其他的频谱产生不好的影响。

我们考虑一个情境,我们实现了一个很理想的 2-FSK,我们使用两个振荡器,频率分别是ffHz 和2f2fHz,如果传输信号是 {1,-1,-1,1},那么最后的信号就是:

可以看到在时域上存在明显的断点,这些信号的跳变会带来非常宽的频谱。

比较一般地,我们考虑一个理想的 FSK 信号sm(t)s_m(t) 和其等效低通信号sm1(t)s_{m1}(t)

sm(t)=Re[2ETej2π(mΔf)tej2πfct]sm1(t)=2ETej2π(mΔf)ts_m(t)={\rm Re}[\sqrt{\frac{2\mathcal{E}}{T}}e^{j2\pi(m\Delta f)t}e^{j2\pi f_ct}]\\[2ex] s_{m1}(t)=\sqrt{\frac{2\mathcal{E}}{T}}e^{j2\pi(m\Delta f)t}

如果记输入的消息为一个 PAM 符号序列InI_n,重新表示等效低通的信号为:

s1(t)=2ETej2π(InΔf)ts_{1}(t)=\sqrt{\frac{2\mathcal{E}}{T}}e^{j2\pi(I_n\Delta f)t}

计算相位的变化:

d(t)=I0[u1(t)u1(tT)]+1{I0I1}I11δ(tT)=I1[u1(tT)u1(t2T)]+1{I1I2}I22δ(t2T)=I2[u1(t2T)u1(t3T)]+1{I2I3}I33δ(t3T)+...\begin{aligned} d(t)&=I_0[u_{-1}(t)-u_{-1}(t-T)]+\textbf{1}\{I_0\neq I_1\}\cdot I_1\cdot 1\cdot \delta(t-T)\\[2ex] &=I_1[u_{-1}(t-T)-u_{-1}(t-2T)]+\textbf{1}\{I_1\neq I_2\}\cdot I_2\cdot 2\cdot \delta(t-2T)\\[2ex] &=I_2[u_{-1}(t-2T)-u_{-1}(t-3T)]+\textbf{1}\{I_2\neq I_3\}\cdot I_3\cdot 3\cdot \delta(t-3T)\\[2ex] &+... \end{aligned}

其中1{cond}value\textbf{1}\{cond\}value 表示valuevalue 仅在condcond 成立的条件下存在。这也就是说,输入的InI_n 发生改变时,会在相位的变化d(t)d(t) 中引入一个冲激函数δ()\delta(\cdot)。这个冲激函数的存在会使得积分的结果不连续,也就是相位会发生突变。这个突变会带来高频信号的产生。

利用相位的变化,我们可以重新表示等效低通信号:

s1(t)=2ETej4πTfdtd(τ)dτ+ϕ0s_1(t)=\sqrt{\frac{2\mathcal{E}}{T}}e^{j4\pi Tf_d\int^{t}_{-\infty}d(\tau){\rm d}\tau + \phi_0}

这里的fdf_d 是峰值频率的偏移,ϕ0\phi_0 是载波的初始相位。

考虑到上面d(t)d(t)δ()\delta(\cdot) 部分会引入冲激函数导致相位不连续,简单粗暴的,我们可以去掉其中冲激函数的部分:

d(t)=n=Ing(tnT)d(t)=\sum_{n=-\infty}^{\infty}I_ng(t-nT)

这里的g(t)g(t) 是 phase shaping function,注意和前面调制部分的脉冲整形函数区分,一种采用方波的形式的是

g(t)=12T[u1(t)u1(tT)]g(t)=\frac{1}{2T}[u_{-1}(t)-u_{-1}(t-T)]

如果我们使用一个关于时间的函数表示相位:

ϕ(t;I)=4πTfdtd(τ)dτ=4πTfdt[n=Ing(τnT)]dτ=4πTfd[n=n1Ik(T×12T)+IntnT2T], t[nT,(n+1)T)=2πfdTn=n1Ikmemory+2πfd(tnT)In, t[nT,(n+1)T)\begin{aligned} \phi(t;\boldsymbol{I})&=4\pi Tf_d\int_{-\infty}^{t}d(\tau){\rm d}\tau\\[2ex] &=4\pi Tf_d\int_{-\infty}^{t}[\sum_{n=-\infty}^{\infty}I_ng(\tau-nT)]{\rm d}\tau\\[2ex] &=4\pi Tf_d[\sum_{n=-\infty}^{n-1}I_k(T\times \frac{1}{2T})+I_n\cdot\frac{t-nT}{2T}],\ t\in[nT,(n+1)T)\\[2ex] &=\underbrace{2\pi f_d T\sum_{n=-\infty}^{n-1}I_k}_{memory}+2\pi f_d(t-nT)I_n,\ t\in [nT,(n+1)T) \end{aligned}

利用ϕ(t;I)\phi(t;\boldsymbol{I}),等效低通信号可以表示为:

s1(t)=2ETejϕ(t;I)+ϕ0s_1(t)=\sqrt{\frac{2\mathcal{E}}{T}}e^{j\phi(t;\boldsymbol{I})+\phi_0}

注意上面ϕ(t;I)\phi(t;\boldsymbol{I}) 中的 memory 部分,这个部分累积了先前的所有输入信息,这也使得这是一个有记忆调制方式。

如果我们继续化简和取代ϕ(t;I)\phi(t;\boldsymbol{I}) 的表达式,我们得到:

ϕ(t;I)=θn+2πhInq(tnT)\phi(t;\boldsymbol{I})=\theta_n+2\pi h\cdot I_n q(t-nT)

这里的h=2fdTh=2f_d T,叫做调制指数θn=πhk=n1Ik\theta_n=\pi h\sum_{k=-\infty}^{n-1}I_k,是先前所有的输入信息的累积,也就是这里调制的记忆部分;q(t)q(t) 是对g(t)g(t) 剩余部分的积分,对于t[nT,(n+1)T)t\in [nT,(n+1)T),前面的n1n-1 个码字都被累积在了θn\theta_n 中,而当前的第nn 码字还未结束,故需要特殊处理:

q(t)={0,t<0t2T,0t<T12,tTq(t)=\left\{ \begin{aligned} 0,&t<0\\[2ex] \frac{t}{2T},&0\leq t< T\\[2ex] \frac{1}{2},&t\ge T \end{aligned} \right.

这样,我们就得到了一个连续相位频移键控(CPFSK)的表示。考虑到相位应该是d(t)d(t) 的积分,对于不包含冲激函数的d(t)d(t),其积分应该是连续的,从而可以避免相位跳变的发生。

考虑更加一般的情况,也就是相续相位调制(CPM),载波相位:

ϕ(t;I)=2πk=nIkhkq(tkT), nTt(n+1)T\phi(t;\boldsymbol{I})=2\pi\sum_{k=-\infty}^{n}I_kh_kq(t-kT),\ nT\le t\le(n+1)T

这里{Ik}\{I_k\} 是一个 M 元 PAM 符号序列,{hk}\{h_k\} 是一个调制指数序列,q(t)q(t) 是一个归一化的波形,一般是某一个脉冲g(t)g(t) 的积分:

q(t)=0tg(τ)dτq(t)=\int_{0}^{t}g(\tau){\rm d}\tau

以下图为例,这里的g(t)g(t) 持续可能不仅仅是一个周期TT,也可能是LL 个周期TT,对于只持续一个周期TT 也就是t>T,g(t)=0\forall t>T, g(t)=0 的情况,我们称此时的调制信号为全响应 CPM(Full Response CPM),否则为部分响应 CPM(Partial Response CPM)。部分响应 CPM 增加了一个信息的持续时间,可以增加抗干扰能力,但是也增加了系统的复杂度。

这里的g(t)g(t) 不仅仅可以采用方波,常见的形式包括了方波 L-REC(Rectangle):

g(t)={12LT,0tLT0,otherwiseg(t)=\left\{ \begin{aligned} &\frac{1}{2LT},&0\leq t\leq LT\\[2ex] &0,& otherwise \end{aligned} \right.

升余弦脉冲 L-RC(Raised Cosine):

g(t)={12LT(1cos(2πtLT)),0tLT0,otherwiseg(t)=\left\{ \begin{aligned} &\frac{1}{2LT}(1-\cos(\frac{2\pi t}{LT})),&0\leq t\leq LT\\[2ex] &0,& otherwise \end{aligned} \right.

以及 Gaussian 最小频移键控(GMSK)脉冲:

g(t)=Q[2πB(tT2)]Q[2πB(t+T2)]ln2g(t)=\frac{Q[2\pi B(t-\frac{T}{2})] - Q[2\pi B(t+\frac{T}{2})]}{\sqrt{\ln 2}}

这里的QQ 函数是 Gaussian 分布的累积分布函数,BB 是 Gaussian 脉冲的 - 3dB 带宽。下面是一部分g(t)g(t) 的图像:

带宽 - 时间乘积BT=0.3BT=0.3 的 GMSK 脉冲被用于 GSM 通信中。

# 相位树和相位图

如果把所有可能的信息序列生成的相位轨迹绘制在一张图中,也就可以得到相位树。一个 1-REC 和 1-RC 的相位树如下图所示:

这个相对来说比较清晰,然而对于多元的情况,相位树会变得较为复杂,以一个使用了 1-REC 的 4 元 CPM 为例:

相位树会变得十分复杂。

一个更加方便的显示方式是相位图(Phase Trellis),考虑到相位周期为2π2\pi,实际只要显示(π,π)(-\pi,\pi) 之间的部分就可以,以前面的 1-RC 的二元 CPM 为例:

如果使用cosϕ(t;I)\cos\phi(t;\boldsymbol{I})sinϕ(t;I)\sin\phi(t;\boldsymbol{I}) 来表示相位,关于时间轴我们可以绘制一个相位圆柱的图像:

# 最小频移键控 MSK

最小频移键控是 CPFSK 的一个特例,如果我们设置hk=12h_k=\frac{1}{2}g(t)=12Tg(t)=\frac{1}{2T},输入的符号序列为二元 PAM 序列{1,1}\{-1,1\},我们就得到了最小频移键控(Minimum Shift Keying,MSK),我们观察相位:

ϕ(t;I)=π2k=n1Ik+πInq(tnT)=θn+12πIn(tnTT)=2π(In4T)tnπIn2+θn\begin{aligned} \phi(t;\boldsymbol{I})&=\frac{\pi}{2}\sum_{k=-\infty}^{n-1}I_k+\pi I_n q(t-nT)\\[2ex] &=\theta_n+\frac{1}{2}\pi I_n(\frac{t-nT}{T})\\[2ex] &=2\pi(\frac{I_n}{4T})t-\frac{n\pi I_n}{2}+\theta_n \end{aligned}

带入到射频形式的表示中:

sMSK(t)=Acos[2πfct+ϕ(t;I)]=Acos[2π(fc+In4T)tnπIn2+θn]\begin{aligned} s_{MSK}(t)&=A\cos[2\pi f_ct+\phi(t;\boldsymbol{I})]\\[2ex] &=A\cos[2\pi(f_c+\frac{I_n}{4T})t-\frac{n\pi I_n}{2}+\theta_n] \end{aligned}

前面一节学的 FSK 的表示是:

sm(t)=2ETcos[2πfct+2π(mΔf)t]s_m(t)=\sqrt{\frac{2\mathcal{E}}{T}}\cos[2\pi f_ct+2\pi(m\Delta f)t]

比较之后能够注意到,对于In=±1I_n=\pm 1Δf=14T(frac14T)=12T\Delta f=\frac{1}{4T}-(frac{-1}{4T})=\frac{1}{2T},满足正交条件,这是非常好的性质。这也就是为什么这个叫做最小频移键控。

# 偏移 QPSK OQPSK

前面一节也学了 QPSK,实际上 QPSK 也存在着相位跳变的问题 —— 观察 QPSK 的星座图,很明显如果两个 bit 数据同时改变,相位会跳变π\pi,这明显会造成较大的旁瓣。

一个较为巧妙的方法就是偏移 QPSK(Offset Quadrature Phase Shift Keying,OQPSK)。

对于原先的 QPSK:

sQPSK(t)=n=I2ng(t2nT)cos(2πfct)n=I2n+1g(t2nT)sin(2πfct)s_{QPSK}(t)=\sum_{n=-\infty}^{\infty}I_{2n}g(t-2nT)\cos(2\pi f_ct)-\sum_{n=-\infty}^{\infty}I_{2n+1}g(t-2nT)\sin(2\pi f_ct)

在 I 或 Q 轴上引入TT 的时延,使得:

sQPSK(t)=n=I2ng(t2nT)cos(2πfct)n=I2n+1g(t(2n+1)T)sin(2πfct)s_{QPSK}(t)=\sum_{n=-\infty}^{\infty}I_{2n}g(t-2nT)\cos(2\pi f_ct)-\sum_{n=-\infty}^{\infty}I_{2n+1}g(t-(2n+1)T)\sin(2\pi f_ct)

这样,两个数据 bit 不会同时发生跳变,这样相位只会出现 90 度而不是 180 度的跳变,因此可以减少旁瓣。

# MSK 其实是 OQPSK 的特例

实际上,MSK 是 OQPSK 的特例。

不失一般性地,我们假设θ0=π2k=1Ik=0\theta_0=\frac{\pi}{2}\sum_{k=-\infty}^{-1}I_k=0,将ϕ(t;I)\phi(t;\boldsymbol{I}) 带入 MSK 的等效低通信号:

sMSK,1(t)=ejϕ(t;I)=ejπ(In2T)tejnπ2Inejπ2k=0n1Ik=[cos(πt2T)+jInsin(πt2T)](Inj)nk=0n1(Ikj)=Inn(1)n(j2n)k=0n1(Ik)cos(πt2T)Inn+1(1)n+1(j2n+1)k=0n1(Ik)sin(πt2T)=Innk=0n1(Ik)Jnsin(πtT2T)jInn+1k=0n1(Ik)Knsin(πt2T)\begin{aligned} s_{MSK,1}(t)&=e^{j\phi(t;\boldsymbol{I})}\\ &={\color{blue}e^{j\pi(\frac{I_n}{2T})t}}{\color{red}e^{-j\frac{n\pi}{2}I_n}}{\color{green}e^{j\frac{\pi}{2}\sum_{k=0}^{n-1}I_k}}\\ &={\color{blue}[\cos(\pi\frac{t}{2T})+jI_n\sin(\pi\frac{t}{2T})]}{\color{red}(-I_nj)^n}{\color{green}\prod_{k=0}^{n-1}(I_kj)}\\ &=I_n^n(-1)^n(j^{2n})\prod_{k=0}^{n-1}(I_k)\cos(\pi\frac{t}{2T})-I_n^{n+1}(-1)^{n+1}(j^{2n+1})\prod_{k=0}^{n-1}(I_k)\sin(\pi\frac{t}{2T})\\ &=\underbrace{I_n^n\prod_{k=0}^{n-1}(I_k)}_{J_n}\sin(\pi\frac{t-T}{2T})-j\underbrace{I_n^{n+1}\prod_{k=0}^{n-1}(I_k)}_{K_{n}}\sin(\pi\frac{t}{2T}) \end{aligned}

我们回头看 OQPSK 的形式:

sQPSK(t)=n=I2ng(t2nT)cos(2πfct)n=I2n+1g(t(2n+1)T)sin(2πfct)s_{QPSK}(t)=\sum_{n=-\infty}^{\infty}I_{2n}g(t-2nT)\cos(2\pi f_ct)-\sum_{n=-\infty}^{\infty}I_{2n+1}g(t-(2n+1)T)\sin(2\pi f_ct)

转为等效低通信号:

sQPSK,1=n=I2ng(t2nT)jn=I2n+1g(t(2n+1)T)s_{QPSK,1}=\sum_{n=-\infty}^{\infty}I_{2n}g(t-2nT)-j\sum_{n=-\infty}^{\infty}I_{2n+1}g(t-(2n+1)T)

如果我们带入特殊的脉冲整形函数

g(t)={sin(πt2T),0t2T0,otherwiseg(t)=\left\{ \begin{aligned} &\sin(\frac{\pi t}{2T})&,0\le t\le 2T\\ &0&,otherwise \end{aligned} \right.

那么我们得到

sQPSK,1=n=I2ng(t2nT)jn=I2n+1g(t(2n+1)T)=n=I2nsin(πt2πnT2T)jn=I2n+1sin(πt(2n+1)πT2T)=n=I2nsin(πt2Tnπ)jn=I2n+1sin(π(tT)2Tnπ)=n=I2n(1)nsin(πt2T)jn=I2n+1(1)nsin(π(tT)2T)=n=I2n(1)nJnsin(πt2T)jn=I2n+1(1)n+1Knsin(π(t+T)2T)t[2nT,2(n+1)T]\begin{aligned} s_{QPSK,1}&=\sum_{n=-\infty}^{\infty}I_{2n}g(t-2nT)-j\sum_{n=-\infty}^{\infty}I_{2n+1}g(t-(2n+1)T)\\ &=\sum_{n=-\infty}^{\infty}I_{2n}\sin(\frac{\pi t-2\pi n T}{2T})-j\sum_{n=-\infty}^{\infty}I_{2n+1}\sin(\frac{\pi t-(2n+1)\pi T}{2T})\\ &=\sum_{n=-\infty}^{\infty}I_{2n}\sin(\frac{\pi t}{2T}-n\pi)-j\sum_{n=-\infty}^{\infty}I_{2n+1}\sin(\frac{\pi (t-T)}{2T}-n\pi)\\ &=\sum_{n=-\infty}^{\infty}I_{2n}(-1)^n\sin(\frac{\pi t}{2T})-j\sum_{n=-\infty}^{\infty}I_{2n+1}(-1)^{n}\sin(\frac{\pi (t-T)}{2T})\\ &=\sum_{n=-\infty}^{\infty}\underbrace{I_{2n}(-1)^n}_{J_{n}'}\sin(\frac{\pi t}{2T})-j\sum_{n=-\infty}^{\infty}\underbrace{I_{2n+1}(-1)^{n+1}}_{K_{n}'}\sin(\frac{\pi (t+T)}{2T})\\ &t\in[2nT,2(n+1)T] \end{aligned}

可以看到 MSK 和 OQPSK 有着类似的形式,下面我们只要说明JnJ_nJnJ'_n 的一个特例、KnK_nKnK_n' 的一个特例(或者交换顺序),就足以说明 MSK 是 OQPSK 的特例。

观察JnJ_n

Jn=Innk=0n1(Ik)J_{n} = I_{n}^{n}\prod_{k=0}^{n-1}(I_k)

带入一组取值,有

J2m=I2m2mk=02m1(Ik)=k=02m1(Ik)J2m+1=I2m+12m+1k=02m(Ik)=I2m+1k=02m(Ik)=I2m+1I2mk=02m1(Ik)J2m+2=I2m+22m+2k=02m+1(Ik)=I2m+1I2mk=02m1(Ik)J2m+3=I2m+32m+3k=02m+2(Ik)=I2m+3k=02m+2(Ik)=I2m+3I2m+2I2m+1I2mk=02m1(Ik)J2m+4=I2m+42m+4k=02m+3(Ik)=I2m+3I2m+2I2m+1I2mk=02m1(Ik)...\begin{aligned} J_{2m} &= I_{2m}^{2m}\prod_{k=0}^{2m-1}(I_k) =\prod_{k=0}^{2m-1}(I_k)\\ J_{2m+1} &= I_{2m+1}^{2m+1}\prod_{k=0}^{2m}(I_k) =I_{2m+1}\prod_{k=0}^{2m}(I_k) =I_{2m+1}I_{2m}\prod_{k=0}^{2m-1}(I_k)\\ J_{2m+2} &= I_{2m+2}^{2m+2}\prod_{k=0}^{2m+1}(I_k) =I_{2m+1}I_{2m}\prod_{k=0}^{2m-1}(I_k)\\ J_{2m+3} &= I_{2m+3}^{2m+3}\prod_{k=0}^{2m+2}(I_k) =I_{2m+3}\prod_{k=0}^{2m+2}(I_k) =I_{2m+3}I_{2m+2}I_{2m+1}I_{2m}\prod_{k=0}^{2m-1}(I_k)\\ J_{2m+4} &= I_{2m+4}^{2m+4}\prod_{k=0}^{2m+3}(I_k) =I_{2m+3}I_{2m+2}I_{2m+1}I_{2m}\prod_{k=0}^{2m-1}(I_k)\\ ... \end{aligned}

因为IkI_k 是双极性 PAM 信号,其偶数次方等于 1,因此能够消去。对于KnK_n,可以采用同样的方式进行处理。

从上面的式子可以看出,每一个取值都持续两个周期,这符合OQPSKOQPSK 的特点。因为Ik{I_k} 为双极性 PAM 序列,这里的连乘形式实际上等于差分编码,因此可以说明JnJ_nJnJ'_n 的一个特例,KnK_nKnK_n' 的一个特例。

这样,我们可以证明 MSK 是 OQPSK 的特例。

# CPM 与 ASK 信号

Laurent 证明了在 CPM 中,如果g(t)g(t) 是持续有限时间LTLT 的信号,那么二进制 CPM 可以使用有限数量的 AM 脉冲信号的线性组合来表示。这能够为 CPM 的收发提供一个更加低廉的实现方式。

# 一个重要的转换公式

在证明 2-CPM 能够用 ASK 信号表示之前,我们首先给一个转换公式:

ejAI=sin(BA)sinB+ejBIsinAsinBe^{jAI}=\frac{\sin(B-A)}{\sin B}+e^{jBI}\frac{\sin A}{\sin B}

这里的II 为双极性 PAM 信号,AABB 为两个不同的实常数。

这个公式允许我们改变指数上的参数,下面给出证明:

sinBejAI=sinB[cosA+jIsinA]=sinBcosA+jIsinBsinA=sin(BA)+cosBsinA+jIsinBsinA=sin(BA)+cosBsinA+jsin(BI)sinA=sin(BA)+sinA[cosB+jsin(BI)]=sin(BA)+sinAejBI\begin{aligned} &\sin{B}\cdot e^{jAI}\\ =&\sin{B}\cdot[\cos A+jI\sin A]\\ =&\sin B\cos A+jI\sin B\sin A\\ =&\sin(B-A)+\cos B\sin A+jI\sin B\sin A\\ =&\sin(B-A)+\cos B\sin A+j\sin(BI)\sin A\\ =&\sin(B-A)+\sin A[\cos B+j\sin (BI)]\\ =&\sin(B-A)+\sin A\cdot e^{jBI}\\ \end{aligned}

# 费劲的证明

我们下面来开始证明。

首先对 2-CPM 的等效低通信号进行分析:

sbCPM,1(t)=ejϕ(t;I)=ej(πhk=nLIk+2πhk=nL+1nIkq(tkT))=ejπhk=nLIkk=0L1ej2πhInkq(t(nk)T), (nk=k)\begin{aligned} s_{bCPM,1}(t)&=e^{j\phi(t;\boldsymbol{I})}\\ &=e^{j(\pi h\sum_{k=-\infty}^{n-L}I_k+2\pi h\sum_{k=n-L+1}^{n}I_kq(t-kT))}\\ &=e^{j\pi h\sum_{k=-\infty}^{n-L}I_k}\cdot\prod_{k'=0}^{L-1}e^{j2\pi h I_{n-k'}q(t-(n-k')T)},\ (n-k'=k) \end{aligned}

B=πhB=\pi h,利用上一节的转换公式,有:

ejπhk=nLIkk=0L1ej2πhInkq(t(nk)T), (nk=k)=ejπhk=nLIkk=0L1[sin(B2πhq(t(nk)T))sinB+ejBInksin(2πhq(t(nk)T))sinB]\begin{aligned} &e^{j\pi h\sum_{k=-\infty}^{n-L}I_k}\cdot\prod_{k'=0}^{L-1}e^{j2\pi h I_{n-k'}q(t-(n-k')T)},\ (n-k'=k)\\ =&e^{j\pi h\sum_{k=-\infty}^{n-L}I_k}\cdot\prod_{k'=0}^{L-1}[\frac{\sin(B-2\pi hq(t-(n-k')T))}{\sin B}+e^{jBI_{n-k'}}\frac{\sin(2\pi hq(t-(n-k')T))}{\sin B}] \end{aligned}

定义

s0(t)={sin(2πhq(t))sinB,0t<LT,sin(B2πhq(tLT))sinB,LTt<2LT,0,otherwises_0(t)=\begin{cases} \cfrac{\sin(2\pi hq(t))}{\sin B},&0\le t<LT,\\[2ex] \cfrac{\sin(B-2\pi hq(t-LT))}{\sin B},&LT\le t<2LT,\\[2ex] 0,& otherwise \end{cases}

这里有一个很有意思的地方,注意s0(t)s_0(t) 的两端是存在一定的对称性的,可以带入验证一下。

s0(t)s_0(t) 带入上面推到一半的等效低通形式的2CPM2-CPM 表示:

ejπhk=nLIkk=0L1[sin(B2πhq(t(nk)T))sinB+ejBInksin(2πhq(t(nk)T))sinB]=ejπhk=nLIkk=0L1[s0(t(nk)T+LT)the second half+ejBInks0(t(nk)T)the first half]\begin{aligned} &e^{j\pi h\sum_{k=-\infty}^{n-L}I_k}\cdot\prod_{k'=0}^{L-1}[\frac{\sin(B-2\pi hq(t-(n-k')T))}{\sin B}+e^{jBI_{n-k'}}\frac{\sin(2\pi hq(t-(n-k')T))}{\sin B}]\\ =&e^{j\pi h\sum_{k=-\infty}^{n-L}I_k}\prod_{k'=0}^{L-1}[\underbrace{s_0(t-(n-k')T+LT)}_{the\ second\ half} + e^{jBI_{n-k'}}\underbrace{s_0(t-(n-k')T)}_{the\ first\ half}] \end{aligned}

这里的0t(nk)T<LT,LTt(nk)+LT2LT0\le t-(n-k')T<LT,LT\le t-(n-k')+LT\le 2LT,上面标注的部分分别对应了s0(t)s_0(t) 的两个部分。

接下来需要处理这个累乘的部分,根据二项式定理,累乘部分展开共有2L2^L 项。

我们观察上面的等式,注意到s0(t(nk)T)s_0(t-(n-k')T)s0(t(nk)T+LT)s_0(t-(n-k')T+{\color{blue}LT}) 中相差一个LTLT,我们采用下面的标识来记录这个差值:

ai,k=1s0(t(nk)T+LT)=s0(t(nk)T+ai,kLT)ai,k=0s0(t(nk)T)=s0(t(nk)T+ai,kLT)a_{i,k'}=1\rightarrow s_0(t-(n-k')T+{\color{blue}LT})=s_0(t-(n-k')T+a_{i,k'}LT)\\[2ex] a_{i,k'}=0\rightarrow s_0(t-(n-k')T)=s_0(t-(n-k')T+a_{i,k'}LT)

通过一个序列ai,k,k=0,1,...,L1a_{i,k'},k'=0,1,...,L-1,我们就能够唯一标识累乘展开中的一项。

将上面的累乘展开,得到:

k=0L1[s0(t(nk)T+LT)+ejBInks0(t(nk)T)]=(s0(TnT+0t+LT)ai,0=1+ejBIn0s0(tnT+0T)ai,0=0)×(s0(TnT+1t+LT)ai,1=1+ejBIn1s0(tnT+1T)ai,1=0)×(s0(TnT+2t+LT)ai,2=1+ejBIn2s0(tnT+2T)ai,2=0)...×(s0(TnT+(L1)t+LT)ai,L1=1+ejBIn(L1)s0(tnT+(L1)T)ai,L1=0)=i=02L1ejBk=0L1(1ai,k)Inkk=0L1s0(tnT+kT+ai,kLT)\begin{aligned} &\prod_{k'=0}^{L-1}[s_0(t-(n-k')T+LT) + e^{jBI_{n-k'}}s_0(t-(n-k')T)]\\ =&(\underbrace{s_0(T-nT+0\cdot t+LT)}_{a_{i,0}=1}+e^{jBI_{n-0}}\underbrace{s_0(t-nT+0\cdot T)}_{a_{i,0}=0})\\ \times&(\underbrace{s_0(T-nT+1\cdot t+LT)}_{a_{i,1}=1}+e^{jBI_{n-1}}\underbrace{s_0(t-nT+1\cdot T)}_{a_{i,1}=0})\\ \times&(\underbrace{s_0(T-nT+2\cdot t+LT)}_{a_{i,2}=1}+e^{jBI_{n-2}}\underbrace{s_0(t-nT+2\cdot T)}_{a_{i,2}=0})\\ ...\\ \times&(\underbrace{s_0(T-nT+(L-1)\cdot t+LT)}_{a_{i,L-1}=1}+e^{jBI_{n-(L-1)}}\underbrace{s_0(t-nT+(L-1)\cdot T)}_{a_{i,L-1}=0})\\ =&\sum_{i=0}^{2^L-1}e^{jB\sum_{k'=0}^{L-1}(1-a_{i,k'})I_{n-k'}}\prod_{k'=0}^{L-1}s_0(t-nT+k'T+a_{i,k'}LT) \end{aligned}

将展开结果带入到前面低通信号的表示公式中:

sbCPM,1(t)=ejπhk=nLIki=02L1ejBk=0L1(1ai,k)Inkk=0L1s0(tnT+kT+ai,kLT)=i=02L1ejπh(k=nLIk+k=0L1Inkk=0L1ai,kInk)k=0L1s0(tnT+kT+ai,kLT)=i=02L1exp(jπh(k=nIkk=0L1ai,kInkAi,nComplex Amplitude))k=0L1s0(tnT+kT+ai,kLT)ci(t)Pulse Shaping Function=i=02L1ejπhAi,nci(tnT)\begin{aligned} &s_{bCPM,1}(t)\\ =&e^{j\pi h\sum_{k=-\infty}^{n-L}I_k}\sum_{i=0}^{2^L-1}e^{jB\sum_{k'=0}^{L-1}(1-a_{i,k'})I_{n-k'}}\prod_{k'=0}^{L-1}s_0(t-nT+k'T+a_{i,k'}LT)\\ =&\sum_{i=0}^{2^L-1}e^{j\pi h}(\sum_{k=-\infty}^{n-L}I_k+\sum_{k'=0}^{L-1}I_{n-k'}-\sum_{k'=0}^{L-1}a_{i,k'}I_{n-k'})\prod_{k'=0}^{L-1}s_0(t-nT+k'T+a_{i,k'}LT)\\ =&\sum_{i=0}^{2^L-1}\exp(j\pi h(\underbrace{\sum_{k=-\infty}^{n}I_k-\sum_{k'=0}^{L-1}a_{i,k'}I_{n-k'}}_{\substack{A_{i,n}\\ Complex\ Amplitude}}))\underbrace{\prod_{k'=0}^{L-1}s_0(t-nT+k'T+a_{i,k'}LT)}_{\substack{c_i(t)\\ Pulse\ Shaping\ Function}}\\ =&\sum_{i=0}^{2^L-1}e^{j\pi hA_{i,n}}c_{i}(t-nT) \end{aligned}

其中

{Ai,n=k=nIkk=0L1ai,kInkci(t)=k=0L1s0(tnT+kT+ai,kLT)\begin{cases} A_{i,n}=\sum_{k=-\infty}^{n}I_k-\sum_{k'=0}^{L-1}a_{i,k'}I_{n-k'}\\[2ex] c_i(t)=\prod_{k'=0}^{L-1}s_0(t-nT+k'T+a_{i,k'}LT) \end{cases}

可以看到上面的低通信号被转换为了一个类似 ASK 的形式,不过其中的载波幅度Ai,nA_{i,n} 为一个复数而非实数,这相当于一个广义的 ASK。这样子,要实现一个 LT 的 2-CPM,我们可以用2L2^L 条 ASK 线路来实现。这是一个比较有用的方法,因为调幅的成本要比其他调制方式低很多。不过缺憾还是挺明显的,按照现在的证明,我们需要2L2^L 条线路,这在LL 比较大的情况下是不可行的。

更加深入的证明指出,实际我们只需要2L12^{L-1} 条线路就可以实现这个 2-CPM,这个证明比较复杂,这里就不展开了。

此文章已被阅读次数:正在加载...更新于