第3章 CHAPTER 3 调制与解调 3.1本章目标 学习完本章,读者应该: (1) 能够准确地解释多种常见调制方式及其变体; (2) 能够解释调制的谱分布,并说明为什么不同调制会用于不同的领域; (3) 能够画出模拟/数字调制器/解调器的结构图,并推导出它们适用的数学表达式; (4) 能够利用数学方式解释调制器/解调器的工作原理。 3.2内容介绍 如果一个模拟信号(如声信号)或数字信号要传输一段距离,那么它一定会经历某种形式的变换或调制,才能满足传输媒质的要求。这里的传输媒质可以是一个有线连接,或是一个无线链路,甚至是一个光传输系统。实际上,传输媒质是信息的承载者,为了传输信息,必须对波形的特征参数进行调制或变换。调制的逆变换是解调,它必定位于接收端。对于接收信号,必须对其进行变换以恢复出原始信号。事实上,由于系统的非线性效应和外部噪声的影响,精确的逆变换是不可能实现的。 没有任何一种单一的调制方法可以适用于所有的应用场景,主要原因在于载波的工作频率不同。例如,某射频(RF)载波工作于160MHz,而要传输的信号是一个理论上最高频率为16kHz的语音信号,两者频率相差10000倍。将16kHz语音信号叠加到160MHz无线载波上的方法有很多种,但每种方法各有自己的优缺点。对于存在信道共享的场合,如带宽受限的无线系统,用户之间的干扰是必须考虑的。在数字传输系统中,数据传输速率通常(尽管不总是)是一个非常重要的参数指标。本章不仅讲述各种传输系统的调制,还讲述它的逆操作——解调。 为了建立调制的基本概念,用正弦函数方程表示希望传输的无线波形。 m(t)=Amsin(ωmt+φm)(3.1) 这是一个单音信号,像语音和音乐这样的实信号是由许多个单音信号复合而成的。接收端通常希望恢复出频率为ωm的正弦波,其幅度随时间变化。这种期望不局限于单个正弦波,而是信号中的所有正弦波都需要满足这种要求。对于一个频率为1000Hz的典型音频信号,角频率ωm=2π×1000≈6280rad/s。如果无线载波频率为100MHz,角频率ωc=2π×100×106rad/s,与上述音频信号的角频率相差巨大。所以这里的问题在于: 如何将低频信号叠加到高频信号,以及如何从高频信号中恢复低频信号?由于无线载波可以表示为 xc(t)=Acsin(ωct+φc)(3.2) 所以对于载波信号的处理,主要有3种方式: 根据输入信号m(t)改变载波的幅度Ac、频率ωc和相位φc。调制将待传输的信号m(t)叠加到载波信号xc(t)上,构成一个新信号xm(t)。解调是调制的逆过程,它将信号m(t)或近似m(t)的信号从接收信号中恢复出来。 3.3预备知识 对调制系统的理解,在很大程度上依赖于各种信号的表达式。这些信号的构成形式多种多样,主要利用三角函数将信号分解为正弦函数和余弦函数。本节将回顾在调制/解调功能中用到的一些数学概念。 3.3.1三角函数 图3.1三角函数的长度和角度 注: 图中θ<90°,但实际中的θ不受限制,可以是任意大小。 图3.1描述的是著名的三角函数: 正弦函数、余弦函数和正切函数。在ΔOAH中,角度和长度之间的关系是固定的。对于角度θ,已知X轴长度x,Y轴长度y,以及到圆心的距离r,可以定义正弦函数和余弦函数为 sinθ=yr cosθ=xr 由定义式可得 y=rsinθ x=rcosθ 由三角函数的毕达哥拉斯定理可知x2+y2=r2,结合上面的x和y可得 x2+y2=r2 r2cosθ+r2sin2θ=r2 cos2θ+sin2θ=1 现在假设角θ不是由一个角而是由两个角组成。角θ的复合形式为θ=α+β。则对于复合角有下列常用公式。 sin(α+β)=sinαcosβ+cosαsinβ(3.3) sin(α-β)=sinαcosβ-cosαsinβ(3.4) cos(α+β)=cosαcosβ-sinαsinβ(3.5) cos(α-β)=cosαcosβ+sinαsinβ(3.6) 式(3.3)中的sin(α+β)可以通过几何关系推导,这里不给出具体过程。可以用-β代替β代入式(3.3),得到式(3.4)的sin(α-β),其中sin(-β)=-sinβ,cos(-β)=cosβ。用α+π/2代替α代入式(3.3),并利用sin(π/2+α+β)=cos(α+β),sin(π/2+α)=cosα,得到式(3.5)。 如果将式(3.3)和式(3.4)相加,可得 sin(α+β)+sin(α-β)=2sinαcosβ(3.7) sinαcosβ=12[sin(α+β)+sin(α-β)](3.8) 将式(3.3)和式(3.4)相减,可得 cosαsinβ=12[sin(α+β)-sin(α-β)](3.9) 对式(3.5)和式(3.6)进行类似处理,依次可得 cosαcosβ=12[cos(α+β)+cos(α-β)](3.10) sinαsinβ=12[cos(α-β)-cos(α+β)](3.11) 将α=β=θ依次代入上述公式,则可以得到以下几个常用关系式。 cos2θ=cos2θ-sin2θ(3.12) sin2θ=12(1-cos2θ)(3.13) cos2θ=12(1+cos2θ)(3.14) 在分析和设计调制/解调器时,三角函数公式非常有用。一个频率为ωrad/s(或fHz,ω=2πf)的波形信号,表达式为sinωt或cosωt。用参数ωt替代θ、α和β这样的常数角度非常必要。由于乘积项ωt的结果为ωrad/s×ts=ωtrad,这是一个正确的角度单位,所以这种替代是合理的。表3.1汇总了上述三角函数公式。 表3.1常用三角函数公式的汇总 三角函数公式三角函数公式 sin(α+β)=sinαcosβ+cosαsinβsinαcosβ=[sin(α+β)+sin(α-β)]/2 sin(α-β)=sinαcosβ-cosαsinβcosαsinβ=[sin(α+β)-sin(α-β)]/2cos(α+β)=cosαcosβ-sinαsinβsin2θ=2sinθcosθ cos(α-β)=cosαcosβ+sinαsinβcos2θ=cos2θ-sin2θ sinαsinβ=[cos(α-β)-cos(α+β)]/2sin2θ=(1-cos2θ)/2 cosαcosβ=[cos(α-β)+cos(α+β)]/2cos2θ=(1+cos2θ)/2 3.3.2复数 为了后续的理论学习,本节引入复数(Complex Number)的概念 如果不学习傅里叶变换的理论部分,本节可以忽略。,特别是傅里叶变换(详见3.9.7节)。由一个实部加虚部构成的复数是对三角函数的一种有益扩展。复数概念具有很多优点,如能够简洁地表示相移,在进行三角函数的乘法运算时计算复杂度更低。 尽管在其他领域使用的复数运算符是i,但是本书使用的是j。复数运算符j=-1,用于分隔一个复数的实部和虚部。看起来j似乎是一个随意的、毫无必要的定义,但是,考虑到最开始学习整数(1,2,3,…)的计数时,然后就有了符号0; 随后,为了解决像4-6这样的问题,引入了负数; 紧接着,定义了像1/2和2/3这样的整分数,以及它们的加法和乘法规则; 最后,引入位值(Place Value)的概念,定义了像2.63和-3.98这样的实数。 为了获得某些数学解,需要学习和使用一些特定构造,如一个负数乘以一个正数,结果为负数; 但是一个负数乘以另外一个负数,结果为正数。在日常生活中不会用到复数,但如果希望解决像z2=-1这样的问题,那么复数是必要的,某些规则的应用也是如此。这种标记符号自然地遵循既定的代数规则,对其进行扩展得到j2=-1,或等价的j=-1。 图3.2复数的定义 注: 复平面中的一个点定义了余弦量(实部)和正弦量(虚部),所以x+jy=rejθ。 为了介绍基本概念,从几何表示开始。如图3.2所示,复平面中的一个点可以表示为 j可以写在值的后面(如5j或πj),也可以在前面(如j5或jπ)。 P=x+jy(3.15) 直角坐标下的x+jy也可以通过模和幅角的极坐标表示。使用几何学和三角函数,图3.2中的r和θ分别与长度和角度有关。 r=x2+y2(3.16) θ=arctanyx(3.17) 更进一步,复数欧拉表示法可以写成 rejθ=r(cosθ+jsinθ)(3.18) 可以看到,使用指数表示法书写时,式(3.18)包含了实部(rcosθ)和虚部(rsinθ)。 综合上述概念,考虑到1j=1ejπ/2,将θ=π/2代入式(3.18)即可证明如下关系: 1ejπ/2=cos(π/2)+jsin(π/2)=1j。此外,欧拉表示法被认为与几何表示法是一致的。当rejθ乘以j时,其结果为 rejθ×1ejπ/2=rej(θ+π/2)(3.19) 这表明一个数乘以j,使幅角发生逆时针旋转。 图3.3展示了一些具体的例子。设P=1+j1,依次展开计算,可得 (1+j1)×(2+j0)=2(1+j1)+j0(1+j1) =(2+j2) (1+j1)×(0+j1)=0(1+j1)+j1(1+j1) =j1+j2 =-1+j1 (1+j1)×(1+j1)=1(1+j1)+j1(1+j1) =(1+j1)+(j1+j2) =(1+j1)+(j1-1) =0+j2 图3.3复数P=1+j1与另一个复数相乘的几何表示法 图3.3(a)中,复数P乘以一个常数,结果只改变了模的长度,而幅角不变。图3.3(b)中,复数P乘以j,结果是模的长度不变,而幅角逆时针旋转了90°。图3.3(c)中,复数P乘以(1+j1),结果是前面两个例子的综合,不仅模的长度改变了,而且幅角也改变了,模的长度为2×2=2,幅角为π/4+π/4=π/2。 注意到P=(1+j1)=2ejπ/4,可以使用极坐标重新计算前面3个例子。 2ejπ/4×2ej0=22ejπ/4 =22cosπ4+jsinπ4 =2212+j12 =2(1+j1) =2+j2 2ejπ/4×1ejπ/2=2ej3π/4 =2cos3π4+jsin3π4 =2-12+j12 =-1+j1 2ejπ/4×2ejπ/4=(2)2ej2π/4 =2ejπ/2 =0+j2 3.4调制的必要性 第2章介绍和分析了上变频/下变频的概念,其中上变频是将一个信号从低频转换为更高频率,下变频则相反。已发送的信号不但完成了频率转换,还需要在载波信号上叠加原始调制信号。这种处理过程被称为调制(Modulation),在接收机中对应的是解调(Demodulation)。理想情况下,两者应该是完美的互逆操作: 一个是正操作,另一个则是逆操作。调制和上/下变频是两种不同的操作,各自用于不同的目的,但两者共享了一个重要的概念: 两个信号相乘以产生另一个信号,且乘积信号在频率上发生了变化。 上变频用于将一个较低频率的信号,通常是中频(IF)信号转移到射频(RF)频率上。而下变频则相反,用于接收机中。上/下变频的目的是让信号的大部分处理都集中在中频上,尤其是调制的过程。原因是在较低频率上构建电路和处理系统更容易,且成本更低。因此,就性能和成本而言,将高频信号尽可能地转化为较低频率信号是非常有益的。 图3.4描述了一个调制信号m(t)和一个载波信号xc(t)。假设调制信号是一个余弦波 m(t)=Amcosωmt(3.20) 载波信号(其频率更高)为 xc(t)=Accosωct(3.21) 两者相乘得 m(t)xc(t)=AmAccosωctcosωmt 利用cosαcosβ的三角函数展开式,乘积式可化简为 m(t)xc(t)=12AmAc[cos(ωc+ωm)t+cos(ωc-ωm)t] =12AmAccos(ωc±ωm)t(3.22) 需要注意的是,余弦函数的乘积现在变成了余弦频率的和与差,产生了新频率(ωc+ωm)和(ωc-ωm),称为和频率与差频率。 图3.4调制信号m(t)的频率搬移示意图 通过与高频信号xc(t)相乘,使一个较低频率信号m(t)实现频率上移; 再次相乘,可以实现信号频率的下移。图3.4(d)所示的信号通过滤波去除高频分量,可以有效地保留信号包络,此包络就是原始信号m(t)的波形。 图3.4描述了调制信号m(t)、载波信号xc(t)以及两者的乘积信号。可以看到,低频信号有效地改变了高频信号的包络,这与信号间的相乘操作一致。已调信号(Modulated Signal)就是要发送的信号。 在接收机中,对于这类已调信号的解调,可以通过与载波相乘来实现。该载波由本地振荡器产生,其频率与发射载波相同,这里假设已知载波的频率,但是载波幅度未知。一个更加微妙的问题是,事实上并不知道载波的准确频率,并且也不知道载波的相对相位(即接收信号相对于本地振荡器载波信号的相位)。这几个问题将在后续章节解决。 图3.4(d)中的信号时域波形显示信号中含有高频分量。可以发现,如果移除高频分量,剩下的就是原始调制信号m(t)。因此,频域信号可以用图3.5所示的谱线表示。图3.5中包含的信号分别是: 频率为ωm的调制信号、频率为ωc的高频载波信号以及频率为(ωc±ωm)的两个信号,这两个信号称为边带(Sidebands)。上变频的过程为首先以零频率为中心创建一个负频率信号,然后将正、负频率信号向上进行频移,频率移动的距离等于载波频率。 图3.5信号转换的频域表示法 注: 想象频率ωm存在一个对应的负频率-ωm,则信号转换就是对+ωm和-ωm平移ωc。 在理解后续章节讨论的复杂调制方式时,这种可视化方法非常有帮助。现在出现了几个问题。这种简单的相乘处理是用于所有场景的最佳方案吗?在这里使用的“最佳”是什么意思?还有哪些关于本地载波产生的未解问题? 3.5幅度调制 假设在传输中使用相乘处理方案,则需要采用某种方式以获得本地载波。获取本地载波的难度还是相当高的,在早期的方案中,载波本身是伴随边带(ωc±ωm)一起传输的,这种简单的调制方式称为幅度调制(AM)。设载波为余弦函数 xc(t)=Accosωct(3.23) 可以通过改变载波的幅度大小实现信号调制。AM是历史上研究的第一种调制方式,直到今天仍然被广泛使用。AM也可以和其他先进调制方式联合使用,后续章节将谈到这些。老式电报信号中的开/关键控可以看作是最简单的AM,因为调制开关打开时Ac=Am,调制开关关闭时Ac=0。请注意,可以很容易地将正弦函数用于开/关键控方式,虽然调制结果在数学上略有不同,但结论是一样的。 图3.6给出了一种AM的具体实现方案及其波形图。待传输的调制信号m(t)理论上可以是任意信号,但为了便于分析,通常使用单音正弦信号作为调制信号。 调制后的已调信号数学表达式为 xAM(t)=m(t)cosωct+Accosωct(3.24) 载波的频率通常远高于调制信号的频率。事实上,载波的频率在图3.6所示的标度上无法显示。然而,为了便于说明,一般会“降低”载波频率以看清载波周期。如图3.6(b)所示,载波和调制信号相乘后,再加上一部分载波构成已调信号。实际上,这种操作只是简单地通过调制信号的幅度来控制载波信号的幅度。幅度调制波形可以利用调制指数(Modulation Index)μ进行分析。 μ=AmAc(3.25) 图3.6使用乘法和加法生成的AM信号波形示意图 当调制信号的频率固定时,有 m(t)=Amcosωmt(3.26) AM信号可以重新表示为 xAM(t)=Accosωct+Amcosωmtcosωct =Ac(1+μcosωmt)cosωct(3.27) 注意,式(3.27)与使用的载波是正弦还是余弦信号无关,因为正弦和余弦信号之间只是相位的差别。调制信号通常是一个更复杂的信号(如语音、音乐或数字信号),不过这些信号都可以分解为不同的正弦信号和余弦信号之和。 图3.7展示了叠加包络后的AM波形,包络清晰地反映出调制信号的形状。解调时,希望恢复(解调)的是上包络(或下包络)。标记为Vmax和Vmin的幅度提供了调制波形的有用信息,它与调制指数有关。 图3.7叠加包络后的AM波形(用于AM调制参数计算) 当cosωmt取最大值+1时,将xAM(t)的值记为Vmax,则有 Vmax=Ac(1+μ)cosωct(3.28) 当cosωmt取最小值-1时,由于对称性,将xAM(t)的值记为Vmin,则有 Vmin=Ac(1-μ)cosωct(3.29) 在载波的顶点处(当cosωct=1时),将上述两个方程相除,可以解出调制系数μ为 μ=Vmax-VminVmax+Vmin(3.30) 由此可见,通过波形测量来确定调制指数是可行的。对图3.7继续分析,可以发现,载波的幅度实际上就是包络最大值和最小值的平均值,即 Ac=Vmax+Vmin2(3.31) 调制信号的幅度是包络最大值和最小值差值的平均值,即 Am=Vmax-Vmin2(3.32) 3.5.1频率分量 AM的调制过程改变的是载波的幅度,而载波本身是一个单音信号。那么调制后的信号包含哪些频率分量呢? 将一个单音调制信号m(t)=Amcosωmt代入AM的生成表达式,可得 xAM(t)=Amcosωmtcosωct+Accosωct(3.33) 其中,第一项是两个余弦函数的乘积。显然,无法马上看出它产生了哪些频率分量。使用cosαcosβ的三角函数展开式,最终可以得到 考虑cos(-θ)=cosθ。 cosωctcosωmt=12[cos(ωmt+ωct)+cos(ωmt-ωct)] 和/差的余弦函数就是所要求的,所以AM已调波形可以表示为 xAM(t)=Accosωct+Am2cos(ωc±ωm)t(3.34) 显然,一个频率为ωm且幅度固定的调制信号m(t),在经过AM调制后,不仅会产生一个频率为ωc且幅度为Ac的分量,而且会产生频率为(ωc±ωm)且幅度为Am/2的两个分量。其中,前者是加入载波的结果,后两者则是载波与调制信号相乘而间接导致的结果。由于μ=Am/Ac,所以幅度Am/2可以写成μAc/2,它与调制指数μ成正比。 使用下面的MATLAB代码可以产生一个AM波形。 % 时间 N = 2*1024; Tmax = 10; dt = Tmax/(N-1); t = 0:dt:Tmax; % 载波 Ac = 2; fc = 4; wc = 2*pi*fc; xc = cos(wc*t); % 调制 Am = 0.5; fm = 0.5; wm = 2*pi*fm; xm = cos(wm*t); % 产生AM mu = Am/Ac; xam = Am*xm.*xc + Ac*xc; plot(t, xam); xlabel('time s'); ylabel('amplitude'); 这种代码布局对于说明本章的许多原理非常有用,因此,值得花费一些时间来了解它。在一个最大时间Tmax(设Tmax=10)内,为一条“平滑”曲线产生N个点(设N=2×1024)。实际取值与时间刻度有关,例如,它可能是微秒级。同样地,载波的频率fc(设fc=4Hz)也可以随着刻度进行相应的缩放。如果将时间轴缩放为单位时间的1/106,则频率放大106倍,fc=4Hz对应的频率为4MHz。 上、下边带分别位于载波频率两边,边带到载波的频率间隔等于调制频率。图3.8描绘了AM已调信号及其频谱。基于数学分析的结果,知道已调信号的频率分量包括幅度为Ac的载波分量和载波两侧的边带分量,边带分量的幅度为Am/2=μAc/2,频率为ωc±ωm。边带分量具有cos(ωc±ωm)t的余弦函数形式。频谱图展示的是幅度(Amplitude),因此即使频谱为负值,幅度值也为正值。 图3.8AM调制的时域波形和对应频谱图 图3.8(续) 上、下边带的存在意味着AM调制使用的带宽是调制频率的两倍。这暗示当用多个RF信道传输不同的AM信号时,所需信道带宽大于信号的实际带宽。图3.9从频域的角度解释了这种现象。如图3.9所示,每个无线信道必须严格地限制在自己的信道带宽范围内,因而也限定了调制到每个信道中的最高信号频率。 图3.9AM信号的带宽和它对相邻信道的影响 下面的代码可以计算并画出各频率分量。其中,快速傅里叶变换(Fast Fourier Transform,FFT)运算将时域波形转换到对应频谱。这里使用这段代码来理解AM的相关概念,FFT的细节和理论留到3.9.7节进行讨论。 % 频率 df = (1/dt); fam = abs(fft(xam)); fam = fam/N*2; f = [0:N-1]/N*df; K = 100; k = 1:K; maxfreq = (K/N)*df; % 用柱状图绘制各频率分量 bar(f(k), fam(k)); axis([0 maxfreq 0 4]); grid('on'); xlabel('frequency Hz'); ylabel('amplitude'); 3.5.2功率分析 除了频率和带宽外,功率问题也非常重要。功率越大,意味着需要体积更大的子系统,如功率输出电子器件和天线。对于便携式发射机,更大的功率消耗意味着成本更高,电池续航时间更短。即使要使用更大的功率,也要确认功率消耗在了实处。前面对AM频谱的讨论表明,有相当多的功率只是用在了载波的发射上,这实际上对调制信号本身的传输并没有什么帮助。 为了分析AM的功率和效率,假定信号的幅度峰值为A,则波形的RMS值为VRMS=A/2。前面已经指出,AM中的载波幅度为Ac,每个边带分量的幅度为Am/2=μAc/2。所以,AM信号的总功率为 Ptotal=Pcarrier+2Psideband =Ac22+2×μAc222 =Pcarrier1+μ22(3.35) 效率定义为边带功率(实际用于传输信息的功率)与总功率的比值。于是,效率的计算式为 η=PsidebandPtotal =μ22+μ2(3.36) 由此可知,当调制指数μ=0时,效率为0。此时,功率完全用于载波(AM信号中没有调制信号,这种情况没有意义)。但是,当μ=1时,效率为1/3。可见,AM的效率并不高,正如前面所述,大量的功率用在了载波的传输上。因此,可以得出结论: 从功率的使用效率角度来看,AM不是一种高效的调制方式,因为大量的功率浪费在载波的传输上。 3.5.3AM解调 一旦收到已调信号,则需要解决接收问题,即解调。简而言之,就是需要提取调制信号m(t),或者至少是m(t)的近似,而且只能从接收信号xAM(t)中获取。本质上,AM解调可以看作是对已调信号上包络(或下包络)的恢复过程,这些可以从前面显示的波形中观察到。一个简单的波形整流,再加上一个低通滤波器就足够了,如图3.10所示。实际上,二极管只保留了接收信号波形的正半周期,同时将负半周期钳制为0。图3.11展示了一种解调方法,其中对接收信号的采样值进行了平方处理。信号的平方处理可以使用非线性器件完成,因此,它是一种低成本的替代方法。当然,在一个数字采样系统中,计算采样数据的平方值是非常容易的。 图3.10二极管检波器 图3.11使用平方操作和一阶滤波器的AM解调 经过平方和滤波处理后的信号波形如图3.12所示。事实上,高频(RF或射频)分量被滤掉,留下的是音频(AF)分量,即原始调制信号的近似波形。 图3.12AM解调 注: 对输入信号进行平方,平方信号的峰值包络也标记出来了。 为了分析上述解调方法,对接收信号进行平方得 x2AM(t)=A2ccos2ωct(1+μsinωmt)2(3.37) 展开后,可得 x2AM(t)=A2c21+μ22+1+μ22cos2ωct+μ24cos(2ωc±2ωm)t+ μcos(2ωc±ωm)t+2μcosωmt+μ22cos2ωmt(3.38) 显然,平方结果中包含了常数项、多个高频分量和其他分量。其中,调制频率附近的频带内分量只有ωm分量(原始信号频率)和2ωm分量(原始信号二倍频)。cosωmt分量正是期望的信号,而其他分量则不是。经过低通滤波器消除高频分量,再经过隔直消除直流分量,剩下的解调信号为 x2AM(t)=AmAccosωmt+μAc22cos2ωmt(3.39) 由于μ<1,则μ21,所以cos2ωmt分量引发的畸变很小。剩下的一项就是与原始信号Amcosωmt成正比的分量。 另外一种解调方法是同步解调,也称为相干解调。在同步解调中,需要获得一个与载波同频率的信号,用于解调接收信号。同步解调(和异步解调相对,异步解调不需要载波)的主要优点是解调性能更好,即畸变分量减少且对接收噪声不敏感。同步解调需要一个本地振荡器,这会提高系统的复杂度,3.8节将对此进行深入讨论。研究表明,不只是AM,对于其他调制方式,同步解调也是非常有用的。 3.5.4AM的变体 在AM调制中,相当一部分功率用于传输载波。而且因为有上、下两个边带,所以已调信号的带宽是调制信号(输入信号)带宽的两倍。 如果忽略已调信号中的载波分量,得到双边带AM(Double Sideband AM,DSBAM),通常称为DSB。双边带调制只是将调制信号和载波相乘,正如在射频中引入上变频和下变频。双边带已调信号为 xDSB(t)=Acm(t)cosωct(3.40) 图3.13双边带调制 如图3.13所示,以调制信号m(t)=Amcosωmt为例,已调信号为 xDSB(t)=AcAmcosωmtcosωct(3.41) 使用cosαcosβ的三角函数展开式,结果为 xDSB(t)=AcAmcosωmtcosωct(3.42) =AcAm2cos(ωc±ωm)t(3.43) 式(3.43)包含频率为ωc±ωm的两个分量,没有载波分量。这就产生了一个非常有趣的问题: 既然从数学角度没有看到载波的存在,为什么在已调信号中仍然可以看到载波呢?答案是存在载波相位的变化。图3.14给出了已调信号的波形,请特别注意波形中画圈的部分。在这些时间点,对应调制信号的过零点,已调信号的相位发生了翻转。因此,在任意一段时间内,对各频率分量进行计算或测量时,其均值都为0,因为载波的交替翻转导致相互抵消。 图3.14DSB已调信号的相位翻转造成载波抵消的原理 如果能够获得本地载波,则DSB可以使用同步解调,如图3.15所示。本地载波与接收信号的精确相位匹配非常重要,若相位不匹配,则会导致解调出错。 图3.15DSB的同步解调(本地载波和接收信号的相位匹配是关键) DSB不需要传输载波,所以节省了功率,但是它需要的带宽与传统AM一样。下一步要做的是去掉一个边带,只保留一个边带。如果可行,则所需带宽将与原始基带信号的带宽一样,而不是基带带宽的两倍。单边带(Single Sideband,SSB)调制可以达到这个目标,SSB实际上就是去掉一个边带的DSB。产生SSB信号的方法有简单的带通滤波法、哈特利调制器(Hartley Modulator)和韦弗调制器(Weaver Modulator)。 从概念上讲,带通滤波法最容易理解,但实践中最难实现。它包括一个双边带调制器,后接一个带通滤波器,用于选择保留上边带(Upper Sideband,USB)或下边带(Lower Sideband,LSB),如图3.16所示。带通滤波法的主要缺点是需要设计一个运行于很高频率且很精确的带通滤波器。 图3.16SSB调制的带通滤波法 由于带通滤波器设计困难,可以考虑其他的替代方案。这些方案包括哈特利调制器(即相移法)和韦弗调制器,它们都依赖对信号的相移操作来实现期望的调制结果。这两种方法非常适合基于采样值的数字实现。由于这些方法大量地使用相移操作,所以在学习本节内容时,非常有必要重温一下1.3节的内容,或者至少将其作为学习参考。 首先介绍相移法,即哈特利调制器法(Hartley,1923)。信号的处理流程如图3.17所示,上、下两个调制器支路都需要载波信号,其中下支路载波是由上支路载波相移90°得到的。输入的调制信号也必须完成90°相移。输出阶段的加/减操作取决于要输出哪一个边带信号,输出USB则采用减法,输出LSB则采用加法。因为该方案对信号进行了相移而不是滤波,所以这种方法也称为SSB调制的相移法。 图3.17哈特利调制器 当调制信号为余弦波时,设 m(t)=Amcosωmt(3.44) 图3.17中上支路载波为余弦信号xc(t)=Accosωct,下支路载波则是用正弦信号代替余弦信号。所以上支路输出信号为 xu(t)=m(t)Accosωct =AmAccosωctcosωmt(3.45) 下支路中调制信号cosωmt经过-90°相移后变为sinωmt。类似地,余弦载波cosωct经过-90°相移后变为sinωct。所以下支路输出信号为 xl(t)=AmAcsinωctsinωmt(3.46) 上、下支路输出信号经过求和或相减后,最终的输出信号为 xSSB(t)=AmAc(cosωctcosωmt±sinωctsinωmt) =AmAccos(ωcωm)t(3.47) 式(3.47)中,选择“+”时,输出为上边带调制; 选择“-”时,输出为下边带调制。需要注意的是,相移法需要乘法、低通滤波和相移等操作。前两种操作实现起来相对简单,但是相移操作的难度比较大。由于载波信号的频带非常窄(理想情况下一个定频载波信号的带宽为0),所以载波的相移难度不大。实际上,对单频信号进行相移就是时延。但是,哈特利调制器需要对输入的调制信号进行-90°相移,输入信号的带宽是有限的。虽然利用希尔伯特变换数字滤波技术可以在一段频率范围内实现稳定的相移,但是要想使用模拟器件实现精确的相位延迟非常困难。 哈特利调制器需要在每个频点都进行相移操作。而在一段频率范围内,要实现稳定的相移非常困难,特别是在高频段。一种替代方案是韦弗调制器(Weaver,1956),至少对于宽带调制信号,该方案去掉了相移的要求。当然,两路正交(或相移为90°)的载波信号还是必需的,这与宽带信号的相移比起来要简单得多。韦弗调制器的调制过程如图3.18所示。 图3.18韦弗调制器 如图3.18所示,需要两个产生正交载波(分别为Acsinωct和Accosωct)的振荡器,以及两个产生正交信号Aosinωot和Aocosωot的振荡器。考虑上支路,有 AmAocosωmtsinωot=AoAm2[sin(ωm+ωo)t-sin(ωm-ωo)t](3.48) 经过低通滤波后,剩下频率为(ωm-ωo)的低频分量,再与载波相乘,得到 -AmAoAc2sin(ωm-ωo)tsinωct=-AmAoAc4[cos(ωm-ωo-ωc)t-cos(ωm-ωo+ωc)t] 下支路的分析与之类似,即 AmAocosωmtcosωot=AmAo2[cos(ωm+ωo)t+cos(ωm-ωo)t](3.49) 经过低通滤波后,剩下频率为(ωm-ωo)的低频分量,再与载波相乘,得到 AmAoAc2cos(ωm-ωo)tcosωct=AmAoAc4[cos(ωm-ωo-ωc)t+cos(ωm-ωo+ωc)t] 将上、下支路的输出相加,去掉cos(ωm-ωo-ωc)t分量,剩下的信号为 xSSB(t)=AmAoAc2cos(ωm-ωo+ωc)t(3.50) 注意: 与传统的频率为(ωc+ωm)的SSB信号相比,式(3.50)中的信号有一个频移。对式(3.50)进行整理,写成 xSSB(t)=AmAoAc2cos[(ωc-ωo)+ωm]t(3.51) 观察式(3.51)可以发现,载波的频率实际上是(ωc-ωo),而不是通常的ωc。一种有效的解决方法是,将振荡器的频率值ωo设为带宽的一半(即ωb/2),这样只是将实际的载波频率下移ωb/2。 现在讨论SSB信号的解调,再次使用一个频率为ωc的本地振荡器进行混频。单音信号调制的USB已调信号为 xUSB(t)=AmAccos[(ωc+ωm)t](3.52) 解调信号为 x^(t)=AmAccos[(ωc+ωm)t]cosωct =AmAc2[cos(2ωc+ωm)t+cosωmt](3.53) 因为2ωc频率分量可以通过滤波去掉,顺理成章只剩下音频信号。然而在实际应用中,接收端无法知道准确的载波频率。为了说明这个问题,设载波的频率偏移量为δωc,此时解调信号变为 x^(t)=AmAccos[(ωc+ωm)t]cos(ωc+δωc)t =AmAc2[cos(2ωc+ωm+δωc)t+cos(ωm-δωc)t](3.54) 所以恢复后的信号频率偏移了δωc,并且恢复后的语音信号频偏与载波的频偏成正比。显然,这不是期望的结果。 图3.19描述了一种效果很好的相移解调法,类似于调制中采用的方案。设输入信号为上边带USB,即 xUSB(t)=AmAccos[(ωc+ωm)t](3.55) 图3.19SSB解调的哈特利相移法 解调器的上支路为 xu(t)=AmAccos(ωc+ωm)tcosωct =AmAc2[cos(2ωc+ωm)t+cos(ωmt)](3.56) 低通滤波后的结果为 xu(t)=AmAc2cosωmt(3.57) 解调器的下支路为 x1(t)=AmAccos(ωc+ωm)tsinωct =AmAc2[sinωmt+sin(2ωc+ωm)t](3.58) 低通滤波后的结果为 x1(t)=AmAc2sinωmt(3.59) 最后相移-90°,得到 x~1(t)=-AmAc2cosωmt(3.60) 如果xu(t)与x~1(t)相加,则结果为0; 如果两者相减,则结果为cosωmt,即原始的调制信号。所以能够得出结论: USB信号可以解调。如果接收端输入的是下边带信号,使用类似的解调方法,xu(t)与x~1(t)相减,结果为0; 而两者相加,所得结果为初始的音频信号。所以,图3.19中描述的解调结构不仅适用于USB,也适用于LSB,差别仅在于最后一步是选择加法还是减法运算。 在上述讨论中,需要记住的是: 在沿着信号传输的路径中,存在多个增益常量。RF放大器会产生增益,提高传输信号的幅度,而传输信道则会造成信号幅度的衰减。所以在传输路径中,从发射端到接收端,混有多个增益常数。 图3.20描述了迄今为止所有讨论过的幅度调制的波形和频谱,还包含残留边带(Vestigial Sideband,VSB)。VSB是一种折中的方案,它只包含一个边带和另一个边带的少量成分。在传统AM调制中,调制指数的影响是显而易见的; 而在DSB调制中,信号包络过零点出现的速率是调制信号频率的两倍; 单独观察SSB的已调波形,无法确定信号的调制类型。从频谱来看,AM的频谱包括载波和一些边带信息; 而DSB的载波则被抑制了; 至于SSB,只有一个边带; VSB的绝大部分功率位于一个边带,但另一个边带残留了一小部分。需要注意的是,为了展现VSB的第二边带的存在,其垂直功率轴与其他几种幅度调制方式不同。 图3.20幅度调制及其变体的波形和频谱(AM、DSB、SSB和VSB) 3.6频率和相位调制 AM通过改变载波信号的幅度来传送调制信号。在发射端、接收端或传输路径中的任何噪声都将影响已调信号的幅度。对于AM解调器,这种幅度的变化将与原始调制信号无法区分。换句话说,就是噪声看起来像是期望的信号。所以AM比较容易受到噪声的影响。 在频率调制(Frequency Modulation, FM)频率调制,简称调频。中,已调信号的幅度是不变的。调频信号的解调不依赖于所收到的已调信号的幅度,这就是调频固有的优势所在。本节不但会讲述调频,而且会讲述与之紧密相关的相位调制(Phase Modulation,PM)相位调制,简称调相。。在Armstrong(1936)的早期研究工作中,与更简单的AM系统(AM是当时唯一可用的系统)相比,调频能否降低噪声敏感性存在一定的争议。 3.6.1调频和调相的概念 AM对噪声敏感,且功率效率不高。为了替代AM,需要回到调制的最初目的,也就是说,希望利用载波信号xc(t)的变化来传送信号m(t)。 xc(t)=Accos(ωct+φc)(3.61) 到目前为止,AM信号中只有载波的幅度Ac发生了改变,并且这种改变是随着调制信号m(t)变化的。但是,从式(3.61)可以清晰地发现,还可以操纵其他信号参数,即频率ωc和相位φc。由于频率和相位是相互关联的,所以频率或相位的调制方式之间也是相互关联的。 图3.21展示了如何由相位角度产生一个时域波形。在相位角逐步递进时,由正弦波的查找表可以给出相应的幅度值。到达正弦波查找表的末尾时,又可以返回到起点,因为正弦波波形是重复的。波的频率决定于相位角的步进速度,所以相位角的变化速率实际上就是频率。反过来,给定波的频率(rad/s)和时间δt,就可以计算出在δt时间段内相位角的增加量。所以,由一段时间内的累积频率或频率积分(求和)可以计算出相位。 图3.21相位角步进产生时域波形 需要注意的是,表达式中的(ωct+φc),即余弦函数的幅角,从理论上来说就是相位角。虽然相位角的准确定义已经被讨论过一段时间(van Der P,1946),但是电信行业的传统做法是将φ称为相位角,并依据所讨论的问题将相位角赋为正值或负值。有时候,还会涉及瞬时频率(Instantaneous Frequency),因为如果持续改变相位φc,则实际频率是在ωc两侧变化。 从概念上说,改变载波的频率可能更容易理解。图3.22展示了一个余弦调制信号。比较已调信号的频率和载波的频率,可以清楚地发现: 当调制信号的幅度最大时,已调信号的频率最高; 当调制信号的幅度最小时,已调信号的频率最低; 当调制信号的幅度为0时,已调信号的频率等于载波的频率。这是显而易见的,因为调制信号推动了载波振荡器的频率增大或减小。另一个例子如图3.23所示,对于一个上升的锯齿波调制信号,已调信号的频率也相应递增。当调制信号突然下降到起始值时,已调信号的频率返回到最低点。 图3.22余弦波的调频和调相对比 注: 余弦调制信号的幅度范围是从正到负的,注意对比FM和PM的相位差异。 图3.23锯齿波的调频和调相对比 注: 锯齿波调制信号从零值开始,逐渐上升到最大值,然后降低到零。注意FM中的频率递增以及PM中的相位突变。 相比较而言,PM更微妙一点。第一个例子中,对于余弦调制信号,除了时移, PM看起来和FM一样。当调制信号的电压下降,加入幅角ωt中的相位角也减小。这表明已调信号的频率发生了明显的下降。同样地,当调制信号的电压升高,不断增加的相位(ωt+φ)显示频率也在增加。观察锯齿波的调制过程,当调制电压上升,相位角慢慢增大,直至最大值; 当调制电压突然跳变到最小时,已调信号的相位会出现一个突变。 3.6.2调频和调相的分析 频率(rad/s)是相位(rad)的变化率,这可以从数学上解释。 ω(t)=dφ(t)dt(3.62) 实际应用中,相位是随时间变化的。所以,调频和调相是紧密相连的,可以归为角度调制(Angle Modulation)。角度调制生成的信号可以表示为 xangle(t)=Acosθ(t)(3.63) 其中,θ(t)是随时间变化的相位角,由特定的频率乘以时间再加上相位构成,即 xangle(t)=Acos[ωct+φ(t)]θ(t)(3.64) 对于PM,输入信号m(t)调制后的结果为 xPM(t)=Acos[ωct+kpm(t)](3.65) 其中,kp是一个常数乘因子,当它与某一时刻t的调制信号m(t)相乘时,可以确定相位角。因此,PM根据调制信号的电压来改变载波的相位大小。瞬时频率是相位角的变化率,即 ωi(t)=dθ(t)dt(3.66) 一般而言,角度调制信号就是相位偏移后的载波信号,即 xangle(t)=Acosωct+φ(t)θ(t)(3.67) 所以瞬时频率就是相位θ(t)关于时间t的导数,即 ωi(t)=ωc+dφ(t)dt(3.68) 可以把它写成载频频偏的形式,即 ωi(t)-ωc=dφ(t)dt(3.69) 式(3.69)表明PM信号中频率的变化与相位角变化率成正比,而相位角随调制信号电压而变化。因此,随着调制电压变化率的增大,调相信号的频率也增大,反之亦然。 FM的瞬时频率随着调制信号变化。瞬时频率包含一个固定频率和一个与调制电压m(t)成正比的频率量,即 ωi(t)=ωc+kfm(t)(3.70) 需要注意的是,在任何时刻,调制信号电压可能为正或负。相位角θ(t)是瞬时频率的累积和或积分,可得 θ(t)=∫ωi(t)dt =∫[ωc+kfm(t)]dt =ωct+kf∫m(t)dt(3.71) 因此,对于调制信号m(t),调频信号的最终表达式为 xFM(t)=Acosωct+kf∫t0xm(τ)dτ(3.72) 其中,τ是积分变量 注意: 有的作者使用2πkf取代kf这个常数乘因子。。在0~t内积分计算完成后,变量τ就会消失,积分结果为时间t的函数。换句话说,调频信号的相位角取决于调制信号电压的时间积分。 3.6.3调频和调相信号的产生 PM信号的产生如图3.24(a)所示。载波频率乘以时间,以载波相位的形式到达求和符号处,然后与乘以kp的调制信号相加,产生的相位角作为正弦函数的相位输入。输入的相位角用于查找正弦波函数表中的幅度瞬时值,由波形图中的点表示。当然,这可以用数学函数sinθ描述,θ(t)实际上是一个时间函数。 FM信号的产生如图3.24(b)所示。载波频率乘以时间,以载波相位的形式到达求和符号处,然后调制信号通过积分框来累积求和,以得到相位角的偏移。相位角偏移量的持续增大,看作是产生了特定的频率。相位角偏移量与载波相位相加,再使用正弦波函数表确定当前时刻的幅度。 图3.24相位调制和频率调制信号的产生 注: 具体的相位值为当前的载波相位值加上缩放后的调制信号值。频率调制类似于相位调制,但它的相位角不是由输入信号的瞬时值决定,而是由输入信号的积分值决定。 因此,对于FM,调制信号电压的累积产生了一个频率,该频率相对于载波是一个频偏。如果调制电压为正,则累积的相位就是一个连续递增函数,在载波频率之上造成频率的增加。如果调制电压保持不变但为负值,则累积的相位就是一个递减函数。由于超前相位与载波相位(ωt项)相加,所以最终的效果就是相位偏移量持续递减,表现为ω的减小,也就是一个减小的频率值。需要注意的是,累积函数值并不总是增加,因为调制信号m(t)的波形通常是上下波动的,其长时间的均值为0。 因此,FM和PM之间的联系就是对FM调制信号的积分和对PM调制信号的微分。如图3.25所示,首先对调制信号进行积分,然后可以使用PM调制器产生调频信号。反过来,首先对调制信号进行微分,然后就可以使用FM调制器产生调相信号。当然,输入的调制电压可以是任意值。图3.25使用的是一个三角波,因为它可以对各种情况下的结果进行比较。图3.26给出了两种调制输入信号(三角波和方波)的输出波形。选择这两种调制波形是非常有意义的。从三角波到方波(从图3.26(a)到图3.26(b)),是对调制信号的微分处理。反过来,从方波到三角波是对调制信号的积分处理。值得注意的是,三角波的调相结果和方波的调频结果完全一致。 图3.25相位调制器产生调频信号和频率调制器产生调相信号 图3.26FM和PM的关系 3.6.4频率调制的频谱 FM有效地改变了载波的频率,且没有像AM那样保留载波。正如所期望的那样,调频信号含有频率变化的各种分量。直观上看,调频信号的频谱分量应该与调制频率ωm呈谐波关系,并且以载波频率ωc为中心分布。事实也是如此,但是这些频率分量是否全部存在取决于已调信号的频偏。在某些情况下,载波分量有可能完全消失,只保留边带分量。 调频的表达式为 xFM(t)=Acosωct+kf∫t0xm(τ)dτ(3.73) 相位角θ(t)可以表示为 θ(t)=ωct+kf∫t0xm(τ)dτ(3.74) 既然瞬时频率ωi(t)是相位的变化率,即 ωi(t)=dθ(t)dt(3.75) 则瞬时频率可以展开为 ωi(t)=dθ(t)dt =ddtωct+kf∫t0xm(τ)dτ =ddt(ωct)+ddtkf∫t0xm(τ)dτ =ωc+kfddt∫t0xm(τ)dτ =ωc+kfm(t)(3.76) 这说明瞬时频率就是载波频率加上(或减去)频率偏移量,即 xFM(t)=Acos[ωc+kfm(τ)]ωi(t)t(3.77) 对于测试信号m(t)=Amcosωmt,依据上面的定义,调频信号为 xFM(t)=Acosωct+kf∫t0xm(τ)dτ =Acosωct+kfAmωmsinωmt(3.78) 频率的最大变化量为Δω=kfAm。也就是说,频偏取决于常数kf和调制信号的幅度Am。需要注意的是,这里假定调制信号的频率ωm是常数。这是因为到目前为止,只考虑了单频信号。定义β为FM的调制指数,即 β=kfAmωm(3.79) 对于纯正弦调制信号,它的调频信号可简化为 xFM(t)=Acos(ωct+βsinωmt)(3.80) 所以调制指数也可以写成频率的相对变化率,即 β=Δωωm(3.81) 用这种方式定义的调频系数与AM调制指数μ是类似的。需要注意的是,如果分析相位调制PM,则调制指数公式中会使用kpAm。同样地,这个调制指数只对单音调制输入信号有效。而且,FM调制指数还可以表示为 β=Δωωm=2πΔf2πfm=Δffm(3.82) 所以对于单音调制信号,无论频率单位是Hz还是rad/s,β都是频率偏移比(Deviation Ratio,DR)。 调制指数也称为偏移比(DR),然而偏移比的应用范围更广,不局限于某一种特定类型的输入。对于商用的调频广播,如果调制信号的最大频率fmax=15kHz,频偏Δf=75kHz,则偏移比DR=75/15=5。偏移比DR≥1时称为宽带调频; DR<1时称为窄带调频。 对于一个单音调制信号,现在可以用更简洁的表达式来描述调频信号,即 xFM(t)=Acos(ωct+βsinωmt)(3.83) 当第一次提出FM时,围绕着它相对于AM的优点,存在相当多的争议。Carson(1922)将一个调制指数为β的单音调频信号写成了级数形式 xFM(t)=A∑n=+∞n=-∞Jn(β)cos(ωc+nωm)t(3.84) 其中,Jn(β)是贝塞尔函数。可以将前几项展开成级数形式。注意,n值可为正,也可为负,即n=0,±1,±2,…。于是,级数表达式为 xFM(t)=J0(β)Acosωct+J1(β)Acos(ωc+ωm)t+ J-1(β)Acos(ωc-ωm)t+J2(β)Acos(ωc+2ωm)t+ J-2(β)Acos(ωc-2ωm)t+J3(β)Acos(ωc+3ωm)t+ J-3(β)Acos(ωc-3ωm)t+…(3.85) 每个ωm都乘以n,所以当n=0时,则只剩下载波频率ωc,因为实际的信号频率为(ωc+nωm)。当n=1时,有频率为(ωc+ωm)的分量; 当n=-1时,有频率为(ωc-ωm)的分量。因此,每一项代表一个频率为(ωc+nωm)的正弦波,其幅度则由对应阶的贝塞尔系数来加权。当给定调制信号时,下标n是分量编号,β是调制指数,所以每个余弦项的权值就是Jn(β)。 图3.27展示了调频信号的波形和频谱。图3.27(a)是调频信号在给定的调制参数下的时域波形。需要注意的是,这些都是单音正弦调制信号的调制结果。每个时域波形的右边是对应的频谱图,如图3.27(b)所示。这些频谱图以Hz为单位,所以必须利用公式ω=2πf进行计算,转换为弧度频率。图3.27(b)的第一个例子,载波频率fc=4Hz,可以发现,各频率分量在fc两侧依次展开,对应频率为fc+nfm,其中fm=0.2Hz。每个频率分量的幅度由对应的贝塞尔系数Jn(β)确定。 图3.27调频信号的时域波形和对应频谱 频率分量与贝塞尔系数的最终结果如表3.2所示,将在3.6.5节给出具体推导。表3.2中只给出了n为正值的情况,因为幅度谱是对称的。通常,只对每个谐波的数值大小感兴趣,不论它是正弦波还是负的正弦波(或余弦波)。J0(0)描述的情况正如所料: 当调制指数β=0时,实际上没有调制,唯一存在的频率分量只有载波。载波就是n=0时的频率分量,没有任何其他分量。表3.2中,过小的系数J(< 0.01)用“—”表示,表示可以被忽略。 表3.2贝塞尔函数表(用于确定调频信号中的边带幅度) β J0 J1 J2 J3 J4 J5 J6 J7 J8 J9 J10 0 1.00 — — — — — — — — — — 0.25 0.98 0.12 — — — — — — — — — 0.5 0.94 0.24 0.03 — — — — — — — — 1 0.77 0.44 0.12 0.02 — — — — — — — 1.5 0.51 0.56 0.23 0.06 0.01 — — — — — — 2 0.22 0.58 0.35 0.13 0.03 — — — — — — 2.4 0.00 0.52 0.43 0.20 0.06 0.02 — — — — — 2.5 -0.05 0.50 0.45 0.22 0.07 0.02 — — — — — 3 -0.26 0.34 0.49 0.31 0.13 0.04 0.01 — — — — 4 -0.40 -0.07 0.36 0.43 0.28 0.13 0.05 0.01 — — — 5 -0.18 -0.33 0.05 0.36 0.39 0.26 0.13 0.05 0.02 — — 6 0.15 -0.28 -0.24 0.11 0.36 0.36 0.25 0.13 0.06 0.02 — 7 0.30 0.0 -0.30 -0.17 0.16 0.35 0.34 0.23 0.13 0.06 0.02 8 0.17 0.23 -0.11 -0.29 -0.10 0.19 0.34 0.32 0.22 0.13 0.06 9 -0.09 0.24 0.15 -0.18 -0.26 -0.06 0.20 0.33 0.31 0.21 0.13 10 -0.25 0.14 0.26 0.06 -0.22 -0.23 -0.01 0.22 0.32 0.29 0.21 12 0.05 -0.22 -0.08 0.19 0.18 -0.07 -0.24 -0.17 0.05 0.23 0.30 15 -0.01 0.20 0.04 -0.19 -0.12 0.13 0.21 0.03 -0.17 -0.22 -0.09 贝塞尔系数的计算方法有很多种,其中一种是通过积分计算,计算式如下。 Jn(β)=1π∫π0cos(βsint-nt)dt(3.86) MATLAB使用besselj()函数计算这些系数。可以直接使用这个函数计算n=3,β=5时的系数Jn(β)。 n = 3; beta = 5; besselj(n, beta) ans = 0.3648 可以使用MATLAB或表3.2验证前面的频谱图。例如,图3.27(b)中的第3幅图中β=0.5,可以对照表3.2中β=0.5这一行,读取系数J对应于谐波的幅度值为(0.94,0.24,0.03)。当β=2.4时,奇怪的现象出现了: 频率分量中没有载波分量,这是因为J0(2.4)=0。这与AM不一样,AM中载波分量永远存在。 在使用这些系数值时,要重点留意的是,边带分量是在载波位置两边对称分布的。上面提到的贝塞尔函数还有另外一个重要性质,那就是 ∑∞n=-∞J2n(β)=1(3.87) 这意味着可以将功率和归一化。所以,相对功率增大或减小,只是对应的贝塞尔系数值的变化。可以验证贝塞尔系数的对称性和J2求和,代码如下。 n = -6:6; beta = 2.5; bc = besselj(n, beta) 0.0042-0.01950.0738-0.21660.4461-0.4971 -0.0484 0.49710.44610.21660.07380.01950.0042 sum(bc.^2) ans = 1.0000 图3.28展示了一个调频信号的功率谱分析结果,信号的参数如表3.3所示。 图3.28调频信号的功率谱测量结果(β=1) 表3.3信号参数(1) 参 数 名 称 符号 数值 载波频率 fc 600kHz 载波幅度 Ac 200mVpp 调制频率 fm 20kHz 频率偏移 Δf 20kHz 根据上述参数值,计算调制指数为 Δffm=1 未调制载波的有效幅度值为 Vrms=Vpp/22 未调制载波的功率为 10lgV2rms/501×10-3=-10dBm 根据贝塞尔系数值,可以计算边带幅度。当β=1时,可得 J0(β)=0.77 J1(β)=0.44 J2(β)=0.12 J3(β)=0.02 因此,观测到的相对功率应该为 P0(β)=20lg0.77=-2.3dB P1(β)=20lg0.44=-7.1dB P2(β)=20lg0.12=-18.8dB P3(β)=20lg0.02=-34dB 这些功率计算值是相对于未调制载波的功率(功率为-10dBm)而言的。图3.28中的功率测量值分别为-11.9,-17.9,-30.5和-47dBm。前面几个频率分量的功率计算值与测量值吻合良好,但是随着分量功率的下降,精确测量功率值的难度也急剧增大,毕竟-47dBm是一个相当小的功率值(大约为20nW)。 图3.29展示了另一个调频信号的功率谱分析结果,信号的参数如表3.4所示。 图3.29调频信号的功率谱测量结果(β=2.4) 表3.4信号参数(2) 参 数 名 称 符号 数值 载波频率 fc 600kHz 载波幅度 Ac 200mVpp 调制频率 fm 20kHz 频率偏移 Δf 48kHz 与前者相比,唯一的变化是Δf,此时Δf /fm=2.4,于是β=2.4,相应的贝塞尔系数值为 J0(β)=0 J1(β)=0.52 J2(β)=0.43 J3(β)=0.20 因此,观测到的相对功率应该为 P0(β)=20lg0.0=undefined P1(β)=20lg0.52=-5.7dB P2(β)=20lg0.43=-7.3dB P3(β)=20lg0.20=-14dB 这些功率计算值也是相对于未调制载波的功率(功率为-10dBm)而言的。图3.29中的功率测量值分别为-27,-15,-18和-26dBm。同样地,前面几个频率分量的功率计算值与测量值吻合良好,但是随着功率的减小,吻合度也在降低。 3.6.5贝塞尔系数与FM信号功率谱的关系 如3.6.4节所述,贝塞尔系数给定了调频功率谱的强度,它揭示了一个关于波形相乘的通用原理,学习该原理的推导和应用具有指导意义。 回顾一下调频信号的频谱,它包含一个载波频率分量(有可能为0)和间隔为调制频率整数倍的其他分量。这类似于(但不完全等同于)傅里叶级数(见2.3.1节),傅里叶级数中包含基频分量和基频倍数的谐波分量。设幅度A=1(因为它只是一个缩放常数),可以重写单音调频信号的公式如下。 xFM(t)=cos(ωct+βsinωmt)(3.88) 为了确定谱分量的强度,该调频信号可以写成如下形式。 xFM(t)=J0(β)cosωct+J1(β)cos(ωc+ωm)t+J-1(β)cos(ωc-ωm)t+ J2(β)cos(ωc+2ωm)t+J-2(β)cos(ωc-2ωm)t+…(3.89) 每个J值都对应一个频率为(ωc±kωm)的分量,其中k为整数。假设需要分析的分量是J2(β),它对应的频率是(ωc+2ωm)。这是一个具体的例子,但是它揭示了一种可以用于所有分量的方法。用余弦项乘以这个表达式,以提取想要的分量,本例中是cos(ωc+2ωm)t,然后在一个调制波形周期τm内积分,可得 ∫τm0xFM(t)cos(ωo+2ωm)tdt=∫τm0cos(ωct+βsinωmt)cos(ωc+2ωm)tdt =J0(β)∫τm0cosωctcos(ωc+2ωm)tdt+ J1(β)∫τm0cos(ωc+ωm)tcos(ωc+2ωm)tdt+ J-1(β)∫τm0cos(ωc-ωm)tcos(ωc+2ωm)tdt+ J2(β)∫τm0cos(ωc+2ωm)tcos(ωc+2ωm)tdt不为0+ J-2(β)∫τm0cos(ωc-2ωm)tcos(ωc+2ωm)tdt+…(3.90) 由积分的结果可以提取想要的频率分量,因为除了一个积分外,其他积分结果都为0。下面的代码展示了这个过程的数值结果,对应的谐波分量n=2,调制指数β=10。 %确定FM频谱的积分 N = 1000; beta = 10; n = 2; taum = 1; wm = 2*pi/taum; wc = 10*wm; t = linspace(0, taum, N); dt = t(2) - t(1); %--------------------------------------------------------------- % FM信号 xfm = cos(wc*t + beta*sin(wm*t)); % 调制信号 xm = cos(wm*t); % 载波信号 % 载波加调制频率 % 载波加2倍调制频率 xc = cos(wc*t); xh1 = cos(wc*t + wm*t); xh2 = cos(wc*t + 2*wm*t); Integral11 = dt*sum(xh1.*xh1); Integral12 = dt*sum(xh1.*xh2); Integral21 = dt*sum(xh2.*xh1); Integral22 = dt*sum(xh2.*xh2); fprintf(1, 'Product-Integral terms:\n'); fprintf(1, 'Int 11 = %f Int 12 = %f Int 21 = %f Int 21 = %f\n', ... Integral11, Integral12, Integral21, Integral22); 这表明一个分量和其他分量相乘再积分,结果为0; 唯一不为0的情况是该分量与自身相乘。 Product-Integral terms: Int 11 = 0.5010Int 12 = 0.0001Int 21 = 0.0010Int 22 = 0.5010 图3.30(a)所示函数(两个不同频率分量)均值为0,而图3.30(b)所示函数(两个同频分量)均值不为0。 图3.30不同频和同频的谐波乘法结果对比 接着,使用cosαcosβ的三角函数展开式将式(3.88)展开,可得 ∫τm0cos(ωct+βsinωmt)×cos(ωc+2ωm)tdt =12∫τm0cos(2ωct+βsinωmt+2ωmt)dt第一项为0+12∫τm0cos(βsinωmt-2ωmt)dt第二项构成二阶贝塞尔函数积分(3.91) 展开后的两项如图3.31所示。第一项的积分为0,第二项的积分则明显类似于贝塞尔函数J2(β)。在前面代码的基础上,加入如下代码。 fprintf(1, 'FM Expansion terms:\n'); term1 = cos(2*wc*t + beta*sin(wm*t) + wm*t); term2 = cos(beta*sin(wm*t) - n*wm*t); IntegralTerm1 = dt*sum(term1); IntegralTerm2 = dt*sum(term2); fprintf(1, 'Term 1 = %f Term 2 = %f\n', IntegralTerm1, IntegralTerm2); 可以得到 FM Expansion terms: Term 1 = 0.000998Term 2 = 0.255631 图 3.31调频信号展开示意图 第一项的均值工程上认为是0(实际值由于舍入误差的存在,是一个特别小的值)。而第二项的均值则是一个有限但无法忽略的值。关于这一点,可以再次参考图3.31。 第二项中,贝塞尔函数J2(β)开始起作用。最后,令式(3.91)的化简结果与式(3.90)相等,就可以得到一种利用贝塞尔积分计算频率分量强度的方法。一般情况下,有 Jn(β)=1π∫π0cos(βsint-nt)dt(3.92) 将这个结果推广到所有的谐波,可以发现,只需要计算贝塞尔函数Jn(β)的值就能得到每个谐波的幅度。利用式(3.92)进行贝塞尔函数的数值计算,与MATLAB自带函数的结果对比,验证了这个结论的正确性。 t = linspace(0, pi, N); dt = t(2) - t(1); Jarg = cos(beta*sin(t) - n*t); Jcalc = (1/pi)*sum(Jarg*dt); JMatlab = besselj(n, beta); disp('Compare Bessel evaluations'); fprintf(1, 'Calculated %f, MATLAB built-in %f\n', Jcalc, JMatlab) 于是,n=2,β=10对应的计算结果为 Compare Bessel evaluations Calculated 0.255631, MATLAB built-in0.254630 当然,上面的代码也可以修改后用于计算其他谐波,如改变n和β的值。虽然涉及推导过程,但是它提供了一个非常有用的结论: 当调制指数β给定时,仅需要计算贝塞尔函数Jn(β)的值,就可以确定第n个谐波的幅度。 3.6.6FM的解调 对于调频信号xFM(t),FM的解调是要恢复出原始的调制信号m(t)。PM是类似的,所以如果能够解决其中一个,就能解决另一个。FM的解调方法有很多,包括数字法(Farrell,et al.,2005)。 FM依据调制信号的幅度来改变载波信号的瞬时频率,所以从概念上来说,解调需要跟踪接收信号的频率。虽然这种频率跟踪的具体实现有点困难,但是可以使用3.7节中讲述的方法来实现。 为了解决这个问题,可以设计一个滤波器,它对高频率产生较高的平均输出,而对低频率产生较低的平均输出。换句话说,更高的频率被转化成更高的电压(反之,频率越低,转化成的电压越低)。为了寻找解决问题的路径,从一个单音信号的调频表达式开始,即 xFM(t)=Acos(ωct+βsinωmt)(3.93) 需要解决的问题是恢复出原始的调制信号m(t)。在这个简化的单音调制例子中,应该能够恢复出调制信号m(t)=Amcosωmt。 如果对式(3.93)描述的调频信号求导,会发生什么?也许这不是明显的一步,但它指引了一条通往频率选择性鉴别器的路。设u=ωct+βsinωmt,并使用微积分的链式规则dx/dt=(dx/du)(du/dt),可得 dxFM(t)dt=-Asin(ωct+βsinωmt)(ωc+βωmcosωmt)(3.94) =-Aωcsin(ωct+βsinωmt)ωc载频附近- (Aβωmcosωmt)常数×m(t)sin(ωct+βsinωmt)ωc载频附近(3.95) 式(3.95)看起来很复杂,但是其中每一项与AM信号没有什么不同,本质上就是载波与调制信号的乘积再加上载波。本例中的载波理论上应该是sinωct,但式(3.95)中显示的是sin(ωct+βsinωmt) 译者注: 此处原文为sin(ωct+βωmsinωmt)。。由于ωcωm,所以可以放心地说,与ωc一起出现的额外频率ωm是可以忽略的。而且,使用β=kfAm/ωm,则Aβωmcosωmt可以简化为AkfAmcosωmt。所以式(3.95)可以近似为 dxFM(t)dt≈-Aωcsinωctωc载频项-(Akfsinωct)ωc载频项(Amcosωmt)m(t)(3.96) 实际上,这个结果就是一个AM信号。换句话说,FM信号已经转化成了一个AM信号,这样就可以解调了。但是这个方法有一个明显的缺点,对信号进行微分(实际上就是求它的变化率)并不是一个好主意。因为实际的系统中存在着噪声,噪声的变化率放大后将伴随着期望信号一起出现,因而引入的噪声也更多。 为了加深理解,下面这段MATLAB代码展示了如何产生一个FM信号,以及找到它的变化率。其中用差分取代了连续波形计算中的微分。图3.32给出了代码的运行结果。 % 波形参数 N = 2000; Tmax = 20; dt = Tmax/(N-1); t = 0:dt:Tmax; fs = 1/dt; % 载波xc fc = 3; wc = 2*pi*fc; xc = cos(wc*t); % 调制信号xm fm = 0.2; wm = 2*pi*fm; Am = 1; xm = Am*cos(wm*t); % FM调制参数 A = 2; kf = 10; % xm积分 xmi = cumsum(xm)*dt; % 与载波结合产生已调信号xfm xfm = A*cos(wc*t + kf*xmi); % FM解调第一步——差分产生AM dxfm = diff(xfm)/dt; %画出信号 subplot(4,1,1); plot(xm); subplot(4,1,2); plot(xc); subplot(4,1,3); plot(xfm); subplot(4,1,4); plot(dxfm); 图3.32FM解调的微分法波形示意图 频率变化量的积分可以得到相位的变化量。所以,如果信号是一个调相信号,而不是调频信号,则可以给调频解调器的输出加一个积分器。这种解调方法如图3.33所示。 解调时,如果可以得到载波信号,会发生什么?AM将载波合并到发送信号中,所以载波的恢复并不是太难。FM没有明确地将载波合并到发送信号中。实际上,就像前面使用贝塞尔函数分析的那样,有时候FM信号中的载波可能为0。当β=2.4时,J0(β)=0,表明载波分量不存在。这使得FM的解调更困难,并且简单的载波提取不可行,必须以某种方式对载波进行跟踪。 图3.33FM的非同步解调 注: 虚线框内实际上是一个AM解调器。解调前(图中未显示)应该对输入信号进行限幅,目的是减小杂散噪声的幅度尖峰。 频率跟踪设备通常称为锁相环(PhaseLocked Loop,PLL),它衍生出另一类FM解调器,这类解调器在思路上类似于前面描述的调频解调方式: 需要跟踪输入信号的瞬时频率。其主要差别是,需要产生一个本地信号,系统对这个本地振荡器的频率(或者更准确地说,是相位)实时调整,目的是与输入的信号相匹配。这个调整量实际上就是解调信号本身。那么如何调整本地振荡器呢?这需要一个反馈环路,用它来比较本地振荡器信号与输入信号的接近程度。接近程度告诉我们需要调整的大小和调整的方向(向上或向下)。 在模拟信号的调制中,与载波频率相比,调制信号的变化相对较慢。因此,对瞬时频率的跟踪是可行的。对于数字序列的调制,信号的频率变化更快,但是使用相同的技术,对接收信号进行解调仍然是可行的。需要注意的是,PLL没有提取载波频率,而是跟踪瞬时频率。正如所见,相位是一个与频率紧密相连的概念,是相位(也就是PLL中的P)跟踪来实现解调,而不是频率跟踪。 综上所述,有两种主要类型的FM解调器: (1)鉴相器,将频率的变化转换为幅度的变化; (2)相干法或同步法,它需要一个与载波同步的信号。载波跟踪需要一个反馈环来跟踪瞬时频率。 利用反馈环来跟踪载波频率非常重要,下一节将专注于阐述这一概念。锁相环非常重要,因为它不只是局限于调频信号的解调。当需要解调一个传输二进制或数字信号时,必须知道载波信号的频率和相位。这使得接收机能够确定正确的判决时刻,来判决一个特定的幅度代表1还是0。 3.7相位的跟踪和同步 对于接收机,有一大类解调方法依赖于载波恢复,这些方法称为同步解调(Synchronous Demodulation),除非载波明确被传输过(如AM),否则接收端需要用某种方式重新产生载波。当调制信号是模拟信号(如声音或音乐)时,这些同步解调方法通常可以获得更高质量的再生信号。 更重要的是,当调制信号是数字(二进制比特流)信号时,接收机为了恢复正确的比特值,必须获得精确的定时信息。也就是说,如果在错误的时间进行比特0/1的判决,接收机可能会认定一个错误的比特值,如图3.34所示。图中,高于门限值认为是二进制1,低于门限值认为是二进制0,错误的采样时刻可能导致错误的判决,进而得到错误的二进制数值。从接收信号中获取同步信息的主要方法称为锁相环(PLL)。从PLL的基本概念衍生出很多变体,其实现方式也有多种。本节旨在解释PLL的基本概念,以及一种称为科斯塔斯环(Costas Loop)的方法,它广泛应用于数字或二进制解调。 下面讨论本地振荡器如何同步到发射信号的振荡器。在接收端,只有已调信号的波形可用,目前考虑一个简单的情况,即接收信号是一个纯正弦信号。此外,即使本地振荡器近似地(不是精确地)工作在正确的频率上,由于载波频率分量的偏差(可能是发射端或接收端的频率移动),可能导致无法获得精确的定时或相位。事实证明,载波幅度相对不是那么重要。我们的目标是将本地振荡器的相位调整到接收信号的相位。如果可以做到相位连续调整,则频率得到了隐式跟踪,因为频率是相位的时间变化率。也就是说,为了获得一个相对于接收信号更早或更晚的信号,必须对相位的增量进行调整。 图3.34采样时刻对判决结果的影响 获得正确的同步,可以采用一个由输入信号推动的本地振荡器。想象一下孩子们在操场上荡秋千。如果秋千来回摆动,可以在正确的时间通过“推”来增加秋千的摆动。如果想要秋千摆动得更快或更慢(相当于改变振荡频率),则可以通过在当前摆动的顶点之前或之后“推”来实现。虽然无法瞬间地改变振荡器的频率,但是经过几个周期后,可以将振荡频率移向特定的频率(更快或更慢)。如果秋千是本地振荡器,则想要同步的输入波形相当于施加给秋千的“推”力。“推”的时机必须恰到好处,因为秋千的自然共振频率取决于孩子的质量和连接秋千的绳子的长度。 图3.35(a)描述了如何通过一个反馈环路实现同步。可变频率振荡器工作在一个特定的频率,输出信号与输入信号的差值作为误差信号,用于指示振荡器的频率需要调高还是调低。许多工程系统中都使用了这种反馈控制系统,图3.35(b)描述了反馈控制系统的通用框图。可以想象,相位误差由简单的减法操作产生,即期望相位减去实际相位。图3.35(b)中的“系统”实际上就是振荡器,控制器的工作是快速调节振荡器,驱动信号频率向高或向低变化。这种调整需要尽可能快地完成,但是当输入信号稳定时,从长期来看,是没有误差信号的。也就是说,当系统处于稳定状态工作时,误差信号e(t)应该为0。 图3.35作为一种控制系统的锁相环原理框图 注: 相位比较器确定波形之间的接近程度,并通过控制器引导振荡器增大或降低频率,从而使本地载波更接近输入波形的定时(或相位)频率。 锁相环中有3个主要组件: 相位比较器、可变振荡器和控制调节系统。相位比较器根据两个信号的平均相位差产生误差信号,控制调节系统响应误差信号,以影响期望频率(或相位增量)的变化。振荡器可以由模拟器件构成,也可以是一个像直接数字合成器(见1.6节)那样的数字振荡器。 设输入信号为sinωt,振荡器参考信号为cosωt。需要注意的是,这意味着参考信号总是超前输入信号90°。正弦与余弦乘积的均值为0,为了获得稳态时的零误差环境,需要这个均值为0。如果同步定时完成后需要进一步解调,则可以对余弦信号延迟以产生正弦信号。如果两个信号都是正弦信号,那么乘积均值不为0。像正弦余弦对这样,乘积均值为0的信号称为正交信号(Orthogonal Signals),将在3.9.3节中进一步讨论。 想象一下,初始时正弦信号和余弦信号之间精确地相位锁定。由于信号乘积的均值为0,所以相位误差为0。如果现在输入相位改变φ,则乘积的均值为sin(ωt+φ)cosωt,展开后为[sin(2ωt+φ)+sinφ]/2。经过理想低通滤波后,滤掉2ω高频分量,留下低频分量(1/2)sinφ。如果相位φ为正值,则(1/2)sinφ为正值,这表明参考信号需要超前一点; 如果(1/2)sinφ为负,则需要将参考信号延迟或推后一点。两种情况如图3.36(a)所示。 需要注意的是,误差信号与相位的变化有关,这种关系不是线性比例关系Kφ,而是Ksinφ。但是对于小角度,sinφ≈φ,这正是大多数的情形,此时处于接近同步或“锁定”状态。图3.36(b)描述了这种近似线性关系,其中横轴不是时间而是相位角,纵轴指示信号乘积的均值。 图3.36相位控制原理示意图 注: 图(a)展示了存在着相位差的波形,图(b)中通过计算多个周期内输入信号与本地载波信号乘积的均值来确定相位差。 可以转换一下思路,设想输入信号的相位是固定的,但是本地振荡器有点不稳定,毕竟不知道精确的初始相位角。此时,输入为sinωt,本地振荡器正在产生的信号波形为cos(ωt+φ),则信号乘积为sinωtcos(ωt+φ),通过三角函数展开后为[sin(2ωt+φ)-sinφ]/2。再进行低通滤波(或者说平滑),得到均值为-(1/2)sinφ。此时,如果相位φ是一个小的正数,则乘积均值信号(实际上就是误差信号)为负数。这是合理的,因为现在需要将振荡器的频率降低或减慢一点。如果相位φ是负值,则误差信号为正值,表明需要调高振荡器的频率。上述讨论基本解释了反馈系统的原理,它可以通过连续地调整本地振荡器的频率以适配输入信号。 那么如何控制振荡器的频率呢?在数字系统中,可以对信号波形进行采样,以一个小的固定时间增量和所需要的振幅(相对于起始时间的振幅而言)为例,可以更好地理解这种采样处理。图3.37(a)展示了参考波形和起始时间点。在产生图3.37(a)中的3个波形时,关键步骤就是确定需要的振幅。选择虚线框内的中间点实际上意味着保持参考波形不变,而选择较大的振幅则可以产生更高频率的波形; 反过来,选择较低的振幅可以产生较低频率的波形。 图3.37振荡器频率控制原理示意图 注: 先求出下一步的振幅,进而求出整个波形。振幅必须按照固定的步长φ加上或减去一个小差值δ来选择,从而产生一个较快或较慢的波形。 振幅本身可以从正弦波与角度的图中读出,如图3.37(b)所示。参考点(φ)指示了下一个标准相位处的相应振幅。相位小一点,即φ-δ,在曲线上产生的振幅较低; 反之,相位大一点,即φ+δ,则在曲线上产生的振幅会高一点。所以,对于固定的时间增量,可以通过不同相位读出下一个所需的振幅。在每个时间步长处重复这个过程,就可以创建一个连续的波形。数控振荡器(NCO)正是根据这个原理,在每一个采样时刻,通过调节每一个步长的变化率实现频率对齐。 最后,需要环路的控制部分,这是为了确保误差实际上趋近为零。在最简单的情况下,乘数可能只是一个常数。于是,相位误差越大,曲线上每个点所需的相位步长就越大。但是,步长太大可能造成频率快速升高。同样地,步长太小,意味着本地振荡器的波形变化太慢而无法赶上输入信号的变化。 既然必须确保误差信号趋近于零,那么最好是合并误差信号的积分项或累积求和项,这样就能够跟踪实时变化的输入频率。误差信号的时间求和(或积分)必须为零,并且由于它位于负反馈环路内,所以在系统稳定的情况下,误差信号最终必定会进入趋近于零的稳定状态。 完整的环路如图3.38所示。常数α只是一个乘性因子,简单地说,它控制着环路到达稳定同步状态的速度。参数β控制着需要计算的累积误差信号的大小。当控制信号r(t)不为零时,积分器的输出会上下波动,因而增大或降低振荡器的驱动信号。为了方便起见,控制器还包含一个常数乘性因子K。通过调节K、α和β,就可以控制锁相环对输入频率或相位变化的响应。 图3.38PLL的原理框图 注: PPL包括鉴相器(相乘器和平滑低通滤波器)、可调控制器和数控振荡器,构成一个反馈环路。 虽然这种环路结构可以工作,但是还可以使用两个相位相差90°(或者说正交)的振荡器进行改进,如图3.39所示。这种改进后的环路结构称为科斯塔斯环(Costas,1956),尽管它最初是用于模拟信号的解调,但是现在已广泛用于数字解调。图3.39中增加了第二支路,该支路与传统PLL包含的鉴相器和振荡器对称。需要注意的是,上、下两个支路之间存在相位差。同相或I支路采用正弦信号,而正交或Q支路采用余弦信号(与基本PLL一致)。NCO根据之前讲述的原理进行调整。图3.39中最后使用了反正切函数,因为利用正弦和余弦分量可以获得正切值(tanθ=sinθ/cosθ)。 图3.39科斯塔斯环的原理框图 注: 科斯塔斯环是基本锁相环法的扩展,它在两个独立的支路上采用正交信号,利用两个支路的混合相位误差来驱动振荡器。 下面的代码描述了简单科斯塔斯环的实现步骤。低通滤波器采用了简单采样平滑处理,并且对基本的科斯塔斯环做了多项改进。在特定的应用中,环路滤波器的设计和相关参数的选取通常需要大量的测试,因为它们会极大地影响系统的整体性能。而且参数选择得不合适可能会让环路变得不稳定,显然这是不可取的。 N = 22000;% 总阶数 M = 400; % 用于低通滤波器的采样点数 % 仿真的相角步长(弧度每采样点) w = 2*pi/100; % NCO 频率(相位步长)恰好匹配输入 wosc = w; % PLL 参数 K = 0.001; calpha = 1; cbeta = 0.001; %到达目标的速度更快,但会越过目标 %cbeta = 0.0001; % 速度更慢,但不会越过目标 nw = 0; nwsave = []; nwosc = 0; nwoscsave = []; xMsave = []; ph = 0; ca = 0; cb = 0; cbprev = 0; % 选择相位或频率改变 %TestChangePhase = false; TestChangePhase = true; TestChangeFreq = false; %TestChangeFreq = true; for n = 1:N if TestChangePhase %相位改变测试 if( n == 8000 ) ph = 2; end end if TestChangeFreq % 频率改变测试 if( n == 8000 ) delw = w*0.02; % 频率改变的影响 w = w + delw; end end xin(n) = sin(nw + ph); % 振荡器波形(用计算出的相移构造正弦和余弦波形) xsin(n) = sin(nwosc); xcos(n) = cos(nwosc); %波形乘积的低通滤波,平均M个采样点 m = n:-1:n-M+1; m = m( m > 0 ); yI = mean(xin(m).*xsin(m)); yQ = mean(xin(m).*xcos(m)); if( n < M ) dw(n) = 0; else % 相位估计器 xM = atan2(yQ, yI); xMsave = [xMsave xM]; %控制算法 ca = calpha*xM; cb = cbeta*xM + cbprev; yM = ca + cb; cbprev = cb; % 最后的常数乘法器K dw(n) = K*yM; end nw = nw + w; nwosc = nwosc + wosc + dw(n); end figure(1); plot(dw); title('phase step'); figure(2); plot(xMsave); title('control signal'); 为了分析科斯塔斯环,将输入信号与正弦函数相乘的支路定义为同相支路,因为假定输入是一个正弦信号。同样地,正交支路是指与余弦函数相乘的支路。在相位锁定的科斯塔斯环中,正弦和余弦振荡器的相位是由每次迭代时的数值dw来调整的,它由滤波后的I路和Q路乘积(yI和yQ)来计算。相位估计使用反正切函数来完成,后面跟随的是带可调参数α和β的控制环。 实际应用中有两种可能情况: 一种是输入信号相位发生变化(频率保持不变); 另一种是输入信号的频率发生变化。图3.40描述了输入波形相位发生变化导致步长变化的情形。图3.40(a)展示了相位误差和由相位误差导致的控制信号,其中给出的相位步长是叠加到振荡器默认步长上的数值。在图3.40(b)中,仔细观察输入信号(上)和振荡器产生的正弦信号(下),特别是起始时刻和结束时刻,分别揭示了什么是相同相位(A)、相位完全不同(B)和相位恢复(C)。由于控制环路的作用,使得误差信号趋向于零,从而导致了同相状态的恢复。 图3.40相位变化时锁相环的响应示意图 注: 图(a)展示了相位误差和相应的控制信号,图(b)展示了特定时刻的输入正弦波和PLL振荡器正弦波(A相位调整前; B相位调整中; C相位调整后)。 图3.41描述了输入信号频率发生变化导致步长变化的情形。此时,相位误差再次趋近于零,但是相位的步长增大,对应输入信号频率的增大。换句话说,振荡器必须不断地增加相位值,以跟上较高的输入频率。当然,输入频率较低的信号也可以用同样的方式进行跟踪,将振荡器的相位增量减少一个合适的数值。 图3.41频率变化时锁相环的响应示意图 注: 与图3.40比较观察。需要注意的是,为了跟踪增大的输入信号频率,相位步长是保持增加的。在时刻B,输入波形的频率大于下面的振荡器频率; 然而,在时刻C,锁相环恢复了频率(相位)匹配。 3.8IQ解调法 前面几节讨论了AM、FM和PM信号的各种解调方式。当然,解调方案受限于实现条件,过去某些类型的操作要优于其他类型的操作。例如,在某一频带范围内的相位时延,可能难以使用模拟电子器件来实现。数字采样和数字处理的使用在这方面提供了许多可能性。特别是,在数字或采样领域,相移和正交信号的产生比较容易。对于同相/正交信号,这类称为IQ解调的方法更适合用数字信号处理器(Digital Signal Processor,DSP)来实现。 如果将同相信号I定义为余弦信号,将正交信号Q(或90°相移信号)定义为正弦信号,则有如图3.42所示的情况。在图3.42(a)中不但可以看到正弦信号和它的延时信号,而且可以看到余弦信号和它的延时信号。显然,将余弦信号作为参考信号(同相信号),则正弦信号就是正交信号或延时信号。如图3.42(b)所示,波形可以表示为平面上的一个点,水平方向(X轴)是“余弦轴”,垂直方向(Y轴)是“正弦轴”。 图3.42正交信号示意图 回顾3.3.1节中正弦和余弦乘积的三角函数展开式,有助于理解IQ信号如何在解调中应用,其中表3.1非常有用。图3.43概括地介绍了如何使用IQ解调。它简单地将输入的已调信号分别乘以正弦信号和余弦信号,随后进行低通滤波。对信号I(t)和Q(t)继续处理,可以得到解调信号,后续处理中使用的算法可以根据调制的类型来选择。 图3.43正交信号的解调法(I(t)是余弦分量,Q(t)是正弦分量) 3.8.1使用IQ信号的AM解调 一个载波为余弦波,调制信号为Amsinωmt的AM信号为 xAM(t)=Amsinωmtcosωct+Accosωct(3.97) 定义同相乘子xi(t)和正交乘子xq(t)如下。 xi(t)=cos(ωct+θ)(3.98) xq(t)=sin(ωct+θ)(3.99) 为了处理通用情况,在式(3.98)和式(3.99)中包含了相位偏移θ。当然,也可能出现本地信号xi(t)与载波xc(t)完全同相的情况,即θ=0。但是在定义式中包含θ,提供了一个完整的通用解决方案。 调制信号乘以同相分量或余弦分量,得到I支路信号 xAM(t)xi(t)=xAM(t)cos(ωct+θ) =Accosωctcos(ωct+θ)+Amsinωmtcosωctcos(ωct+θ)(3.100) 展开I支路信号并使用各种三角函数恒等式,虽然产生了许多信号分量,但是可以将结果表示为 xAM(t)xi(t)=[DC]+[2ωc分量]+Am2sinωmtcosθ(3.101) 其中, DC(或者说常数项)代表固定偏移量,在后续处理中可以去掉。由于ωcωm,所以频率为2ωc和(2ωc±ωm)的高频分量可以通过低通滤波去掉。剩下的是 I(t)=Am2sinωmtcosθ(3.102) 如果本地的同相振荡器与输入载波完全同相,则θ=0,解调完成。但是如果情况并非如此,则可以通过计算正交分量来进一步处理。 xAM(t)xq(t)=xAM(t)sin(ωct+θ) 采用类似I(t)的展开和化简处理,结果为 Q(t)=Am2sinωmtsinθ(3.103) 因此,解调信号可以表示为 m(t)=I2(t)+Q2(t)(3.104) 为了加深理解,下面的MATLAB代码展示了如何创建AM波形以及如何使用IQ信号法解调AM信号。 N = 2000; Tmax = 20; dt = Tmax/(N-1); t = 0:dt:Tmax; fs = 1/dt; % 载波信号xc fc = 3; wc = 2*pi*fc; xc = cos(wc*t); % 调制信号xm fm = 0.2; wm = 2*pi*fm; xm = cos(wm*t); Ac = 2; mu = 0.2; Am = mu*Ac; % 幅度调制公式,已调信号xam xam = Am*xm.*xc + Ac*xc; % AM 解调,theta是任意值,输出信号xd theta = pi/3; xc = cos(wc*t + theta); xs = sin(wc*t + theta); I = xam.*xc; Q = xam.*xs; xd = sqrt(I.^2 + Q.^2); 图3.44展示了最终的调制信号、载波信号、已调信号和最后的输出信号。因为I2(t)+Q2(t)为正,所以输出信号为正值。二倍载波频率(2ωc)处的高频分量清晰可见。就像数学推导中发现的那样,解调后的波形需要低通滤波,并去除固定偏移分量。 图3.44AM的IQ解调波形示意图 3.8.2使用IQ信号的PM解调 为了研究调相(PM)信号的解调,考虑PM信号的载波为余弦波,调制信号为正弦信号。于是,载波为cosωct,同时再次定义 xi(t)=cos(ωct+θ)(3.105) xq(t)=sin(ωct+θ)(3.106) 则调制信号为m(t)时,PM信号为 xPM(t)=Acos[ωct+kpm(t)](3.107) 对于单音测试信号,可以使用如下的正弦调制信号。 m(t)=Amsinωmt(3.108) 则单音调制的PM信号为 xPM(t)=Acos(ωct+kpAmsinωmt)(3.109) PM信号乘以同相载波,则可以得到I支路分量为 xPM(t)xi(t)=xPM(t)cos(ωct+θ) =Acos(ωct+kpAmsinωmt)cos(ωct+θ) =A2[cos(2ωct+kpAmsinωmt+θ)+cos(kpAmsinωmt-θ)] =A2cos(kpAmsinωmt-θ)+[2ωc分量](3.110) 低通滤波后 I(t)=A2cos(kpAmsinωmt-θ)(3.111) 同样地,Q支路分量为 xPM(t)xq(t)=xPM(t)sin(ωct+θ) =Acos(ωct+kpAmsinωmt)sin(ωct+θ) =A2[sin(2ωct+kpAmsinωmt+θ)+sin(θ-kpAmsinωmt)] =A2[sin(2ωct+kpAmsinωmt+θ)-sin(kpAmsinωmt-θ)] =-A2sin(kpAmsinωmt-θ)+[2ωc分量](3.112) 低通滤波后 Q(t)=-A2sin(kpAmsinωmt-θ)(3.113) 类似地,需要一个算法从I支路和Q支路信号中获得原始调制信号。(Q/I)的反正切函数性质表明,可以使用式(3.114)来完成PM信号的解调。 arctanQ(t)I(t)=arctan-(A/2)sin(kpAmsinωmt-θ)(A/2)cos(kpAmsinωmt-θ) =-arctan[tan(kpAmsinωmt-θ)] =-kpAmsinωmt+θ(3.114) 这就是缩放后的原始调制信号加偏移分量。为了加深理解,下面的MATLAB代码展示了如何创建PM波形以及如何使用IQ信号法解调PM信号。图3.45展示了最终的调制信号、载波信号、已调信号和最后的输出信号。 N = 2000; Tmax = 20; dt = Tmax/(N-1); t = 0:dt:Tmax; fs = 1/dt; % 载波信号xc fc = 3; wc = 2*pi*fc; xc = cos(wc*t); % PM调制信号xm fm = 0.2; wm = 2*pi*fm; Am = 1; xm = Am*sin(wm*t); kp = 10; A = 2; % 相位调制公式,已调信号xpm xpm = A*cos(wc*t + kp*xm); % PM 解调,输出信号xd theta = pi/3; xc = cos(wc*t + theta); xs = sin(wc*t + theta); I = xpm.*xc; Q = xpm.*xs; d = -1*atan2(Q, I); xd = unwrap(d); 图3.45PM的IQ解调波形示意图 注: 对输出信号的进一步低通滤波可以平滑解调信号,注意它与输入调制信号的对应关系。 注意代码中atan2()阶段之后的代码,atan2()计算的是Q/I的反正切函数值,必须使用MATLAB中的unwrap()函数展开相位角。这是因为反正切函数的计算结果位于-π~π,这个取值范围与平滑的调制信号并不相符。考虑一个角度的例子: 假定输出点的角度计算为175°,下一个点的角度高8°,为(175+8)=+183°。atan2()函数返回的等效角度在±180°之间,为-17°。显然,+183°的等效角度是要求的角度,这正是unwrap()函数所做的。需要注意的是,为了补偿角度值的跳变,相位展开不但需要当前的采样点,而且需要前一个采样点。使用这种方法的解调用到的是相位差,由于假定θ为常数,所以它不影响解调结果,这就是本地载波相偏移θ不重要的原因。最后,就像数学推导中发现的那样,输出波形需要低通滤波,并去掉偏移分量。 由于反正切函数广泛地用于IQ解调,需要指出的是,反正切函数有两种常见的类型。标准的反正切函数是计算arctan(y/x),但是在某些情况下,它产生的是一个错误的结果(或至少是一个非预期的结果)。如果x和y都为正,则计算结果没有问题; 如果x和y中的任何一个为负,则不可能知道哪一个为正,哪一个为负; 如果两个都为负,则它们会抵消,产生一个正的结果。只有当x>0且y>0时,前者才能稳定工作。表3.5给出了一些代表性的例子。 表3.5atan()和atan2()函数的比较(后者给出了真正的四象限结果) x y atan atan2结果是否正确 +1 +1 +45 +45 √ +1 -1 -45 -45 √ -1 +1 -45 +135 × -1 -1 +45 -135 × 下面的代码演示了如何使用这些函数进行实验。 x = 1; y = 1; at = atan(y/x)*180/pi; at2 = atan2(y,x)*180/pi; fprintf(1, 'x=%d y=%d atan=%d, atan2=%d degrees\n', x, y, at, at2); 3.8.3使用IQ信号的FM解调 对于FM解调,再次从已调信号的定义开始。FM信号为 xFM(t)=Acosωct+kf∫t0m(τ)dτ(3.115) 对于一个单音余弦调制信号 m(t)=Amcosωmt(3.116) FM信号为 xFM(t)=Asin(ωct+βsinωmt)(3.117) 其中 β=kfAmωm(3.118) 和以前一样,假定本地载波cosωct有一个未知的相位偏移θ,所以 xi(t)=cos(ωct+θ)(3.119) xq(t)=sin(ωct+θ)(3.120) I支路分量为输入的FM已调信号乘以本地信号xi(t),即 xFM(t)xi(t)=xFM(t)cos(ωct+θ) =Acos(ωct+βsinωmt)cos(ωct+θ) =A2[sin(2ωct+βsinωmt+θ)+cos(βsinωmt-θ)] =A2cos(βsinωmt-θ)+[2ωc分量](3.121) 低通滤波后 I(t)=A2cos(βsinωmt-θ)(3.122) Q支路分量为 xFM(t)xq(t)=xFM(t)sin(ωct+θ) =Acos(ωct+βsinωmt)sin(ωct+θ) =A2[sin(2ωct+βsinωmt+θ)-sin(βsinωmt-θ)] =-A2sin(βsinωmt-θ)+[2ωc分量](3.123) 低通滤波后 Q(t)=-A2sin(βsinωmt-θ)(3.124) 类似于PM,计算(Q/I)的反正切函数值。 arctanQ(t)I(t)=arctan-(A/2)sin(βsinωmt-θ)(A/2)cos(βsinωmt-θ) =-arctan[tan(βsinωmt-θ)] =-βsinωmt+θ(3.125) 这不是原始的调制信号(本例中的原始调制信号是余弦波)。 回顾一下调频信号,FM定义中包含了积分,所以求导得 ddtarctanQ(t)I(t)=-ddt(βsinωmt+θ) =-kfAmcosωmt(3.126) 这正是原始调制信号经过反相、缩放后的结果。 为了加深理解,下面的MATLAB代码展示了如何创建FM波形,以及如何使用IQ信号法解调FM信号。 N = 2000; Tmax = 20; dt = Tmax/(N-1); t = 0:dt:Tmax; fs = 1/dt; % 载波信号xc fc = 3; wc = 2*pi*fc; xc = cos(wc*t); % FM调制信号xm fm = 0.2; wm = 2*pi*fm; Am = 1; xm = Am*cos(wm*t); A = 2; kf = 10; % xm积分 xmi = cumsum(xm)*dt; % 频率调制公式,已调信号xfm xfm = A*cos(wc*t + kf*xmi); % FM解调,输出信号xd theta = pi/3; xc = cos(wc*t + theta); xs = sin(wc*t + theta); I = xfm.*xc; Q = xfm.*xs; d = -1*atan2(Q, I); xd = unwrap(d); 图3.46展示了最终的调制信号、载波信号、已调信号和最后的输出信号。 图3.46FM的IQ解调波形示意图 类似于PM,FM的解调需要展开相位。最后的低通滤波在图3.46中没有展示。在FM解调中,根据推导,低通滤波后面必须跟随微分。可以看到,输出信号的微分可以得到与原始调制信号相对应的波形。 上述PM和FM解调方法中需要使用反正切函数。如果对信号进行采样,反正切函数值是可以计算出来的; 但如果信号保持原来的模拟形式,则计算就不那么容易了。因此,IQ解调法更适用于数字采样系统。反正切函数的计算显然是很重要的,一些研究人员已经研究了快速而有效地计算该函数的方法(Frerking,2003; Lyons,2011)。 3.9数字信号传输的调制方案 所有上述调制方案都是用于模拟信号的调制,一个模拟调制信号通常是语音、音乐或图像强度。 但是,像音频和视频这样的模拟信号可以编码或量化成二进制的形式,然后依次传送(也就是一个比特接一个比特)。在接收端,二进制比特被转化成模拟形式。虽然这样做更复杂,但是模拟信息的数字化传输拥有很多优点。这种方法允许数字化信号与原有数据相结合,从而实现了传输系统的统一。 本节将介绍用于带通调制的数字调制方案,采用二进制流(0/1比特流),并将其转化为适合于带通信道传输的形式(如无线系统中的载波)。 3.9.1数字调制 采用一个相对直接的方式将AM和FM模拟调制方案进行扩展,可以用于发送数字信号。在AM的情况下,可以通过使用两个特定的调制电平(二进制0和1)来实现。类似地,FM可以采用两个特定的频率,而PM可以采用载波的两个特定相移来实现。这些方案通常称为键控法,因为模拟信号是基于数字信号进行键控的。因而有幅移键控(AmplitudeShift Keying,ASK)、频移键控(FrequencyShift Keying,FSK)和相移键控(PhaseShift Keying,PSK)。 数字传输系统的一个重要要求是: 对于给定的带宽,比特率要最大化。所以通过简单地改变带通调制的自由度,可以将基本的ASK、FSK和PSK方案扩展到一次传输多个比特。例如,使用ASK一次传输两个比特,一共需要4个幅度电平。一般而言,一次传输B个比特,需要2B个不同电平。这种方法可以扩展到更高的速率,但是问题在于,在易受噪声和其他干扰影响的信道中,系统区分每一种电平的能力也降低了。考虑一次发送8个比特的情况,总共需要256个幅度电平。如果噪声电平超过不同幅度电平间距的一半,则距离最近的幅度电平可能解码成错误的比特模式。类似的问题也会出现在PSK和FSK中。 对于数字信号传输,结合多个基本参数(幅度、频率和相位)以实现更高的比特率,至少从直觉上来看是可行的。这种组合(通常编码成多个比特)称为符号(Symbol),每个符号表示符号周期内发送的多个比特。最常见的是,可以使用幅度和相位的组合来增加能够表示的不同符号的数量,这是因为锁定到固定的载波频率上更简单。此外,同时使用几个频率,每个频率拥有自己的幅度和相位变化,也可以产生并行的信道,这些频带称为子信道(Subchannels)。 图3.47描述了ASK的示例,其中简单地使用了具有两个幅度的定频载波。一种特殊的情况是两个幅度电平中有一个为0,称为开关键控(OnOff Keying,OOK)。OOK的优点是功率较低,但是它也存在不足之处,即一半的传输时间可能丢失同步。图3.47(b)描述了一个伪随机二进制序列(PRBS)的频谱,表示一个真实的传输场景,可以观察到,它是AM的一个特例。对于任意比特流的情况,载波仍然存在,但是功率扩展到了边带上。 图3.47ASK的波形和频谱示意图 改变载波的频率,而不是幅度,就可以得到频移键控FSK。图3.48描述了FSK的示例,其中传送了两个不同频率的信号。不出所料,频率中包含了那两个频率,但是除此之外,还存在各种边带,类似于连续的FM调制。边带宽度由比特率来决定。 图3.48FSK的波形和频谱示意图 最后一种是PSK,如图3.49所示。可以预料的是,由于频率和相位调制的相似性,PSK和FSK的频谱没有什么不同,主要的区别是PSK只使用了一个载波频率。由于相位的转换,输出频谱中产生了多个频率分量。在一个真实的PSK系统中,减少传输的带宽是可能的,这意味着需要对相位中的不连续点进行平滑处理。 图3.49BPSK的波形和频谱示意图 图3.50描述了这些已调信号的测量频谱。需要注意的是,测量的信号和理论预测在中心频率、谐波以及噪声层次等方面是一致的。调节频谱分析仪(见2.3.3节)的RBW和VBW可以获得必要的分辨率。通常在频谱分析仪中,垂直坐标轴是按照dBm(见1.7.2节)来标识的,指示的是功率,而不是电压。 图3.50ASK、FSK和PSK的测量频谱 3.9.2恢复数字信号 接收机处理数据流的一个关键步骤是从被噪声破坏的接收信号中提取原始信号,可以通过两种常见的方式来实现: 匹配滤波器(Matched Filter)和相关积分(CorrelateIntegrate)器。本节介绍这两种方法的工作原理,并对其工作原理进行比较。它们的概念大致相似,但表达方式并不相同。理解两者之间的区别至关重要,因此本节将同时介绍这两种方法。 图3.51说明了噪声对接收信号的干扰情况。图3.51(a)中显示了“干净”的接收波形,它是发射机发出的成型脉冲经过信道传输(无噪声干扰)的结果。在这种情况下,波形可以用“+1,-1,-1,+1,-1”的二进制比特流来表示。注意,在本例中,脉冲间隔为200个采样点,并且最大值不是出现在每个采样间隔的开始处,而是在稍后的某个时刻。 图3.51从发送端到接收端的波形示意图 假设了解发射机脉冲成型和信道探测的先验知识,可以知道预期的脉冲形状。波形中通常会伴随着噪声,图3.51(b)显示了高斯白噪声,图3.51(c)显示了信号和噪声的叠加。显然,简单地检测幅度的最大值(正或负)并不是一个好方法,因为噪声通常会产生虚假峰值。因此,应该尽可能多地消除噪声。 如图3.52所示,一种使用乘法器和积分器依次处理的结构可以实现此目的。假设能够产生一个与预期脉冲形状相对应的连续、重复、无噪声(干净)的波形,并可以选择发射的是正脉冲还是负脉冲。将输入波形与本地生成的脉冲序列相乘,产生一系列乘积,然后在一个符号周期Ts上对这些乘积求和(积分)。在符号周期结束时,得到的时间平均值很好地反映了发射的原始符号的幅度,随后积分器复位。当然,幅度在信道上传输后会发生变化, 图3.52相关处理法框图 因此,比较绝对阈值是不合适的。这也是为什么不能将接收波形和本地干净波形逐点相减的原因,因为(即使排除了噪声)信号幅度不太可能相等。 这种方法称为相关(Correlation)法,要求乘法累加器能够将信号相乘并相加,并能够产生重复的脉冲波形。在本例中,假设只有两个电平,因此每个符号周期Ts中包含一个比特,对应K=200个波形采样点。通过扩展这种思想,可以在每个符号周期中传输更多的比特。 图3.53展示了相关法中出现的波形。脉冲发生器充当预期波形的模板,在积分或求和阶段,对一个符号周期内的采样点进行逐点乘积并累加。如果噪声是高斯的,其长期平均值应为零。 图3.53乘法积分结构得到的波形 注: ×表示每个符号周期结束时的采样点,在此之后,将重新启动乘法积分操作。 在讨论解决方案时,需要定义系统的冲激响应(Impulse Response),即输入信号为单个脉冲(所有后续输入值等于零)时,系统模块产生的输出。乘法求和阶段所需的计算为 y(n)=∑K-1k=0x(n-k)s(n-k)(3.127) 其中,接收信号x(n)可以写成 x(n)=αs(n)+g(n)(3.128) 根据传输比特的定义,α=±1。序列s(n)为信道冲激响应,g(n)为加性高斯白噪声(Additive White Gaussian Noise, AWGN),输出可以简化为 y(n)=∑K-1k=0x(n-k)s(n-k)(3.129) =∑K-1k=0[αs(n-k)+g(n-k)]接收信号s(n-k)(3.130) 假设噪声与冲激响应不相关,∑g(n-k)s(n-k)项可以去掉,因此有 y(n)=α∑K-1k=0s2(n-k)+∑K-1k=0g(n-k)s(n-k) (3.131) 最后,如果在每个符号的末尾取一个采样点,并代入n=K-1(每个符号有K个采样点),可得 y(K-1)=α∑K-1k=0s2(K-1-k) =α∑K-1k=0s2(k)(3.132) 最后一行可以从对称性推导得出。或者,可以令m=K-1-k,并改变求和的范围,从而得到 k=0→m=K-1 k=K-1→m=K-1-k=K-1-(K-1)=0 于是总和为 y(K-1)=α∑0m=K-1s2(m) =α∑K-1m=0s2(m)(3.133) 式(3.133)表明,在最后一个采样时刻K-1,信号出现峰值,按α=±1缩放。回到图3.53,在每个指定采样点做出的判决基于y(K-1)的大小。 虽然这似乎是一种合理的方法,而且在实践中也得到了应用,但也存在一些不足之处。尤其是定时至关重要,在正确的时刻复位积分器引入了额外的复杂度。 考虑另一种方法,图3.54(a)显示了存在的相关积分波形,输入(噪声)信号乘以信道冲激响应并进行积分(求和)。考虑图3.54(b)的波形,输入波形显示在顶部,时间轴是从左到右的。如果将时间轴从右往左看,可以想象时间波形是左右翻转的。从这个角度来看的输入波形显示在图3.54(b)下方。为了匹配信道脉冲波形,还需要在时间轴上翻转脉冲波形。向左或向右滑动经过翻转的波形,并计算逐点乘积的和(就像相关一样),得到一组输出值。 图3.54相关积分法和匹配滤波法的波形对比示意图 注: 相关积分法是在一个符号周期内的逐点乘法和求和。匹配滤波器是按照“看到”的波形顺序反转时间波形,然后乘以冲激响应。 这种方法的优势是去掉了在每个符号周期后重置求和输出的操作。新的替代方案如图3.55所示。本质上,相关法使用的是当前到达的采样点,而匹配滤波器法使用了当前和过去的采样点,查看已“到达”的波形,直到当前输出点。 图3.55使用时间反转信道冲激响应的匹配滤波 匹配滤波运算可以用数学公式写为 y(n)=∑K-1k=0hkx(n-k)(3.134) 该函数实际上是一种数字滤波运算,称为卷积(Convolution),输入信号和冲激响应卷积在一起。 卷积常用于数字通信系统。虽然看起来很复杂,但可以通过以下方法来实现。对于两个输入集,使用MATLAB的conv()函数的结果如下所示。第一个输入x(n)(较长的)是时间序列,第二个输入(较短的)是冲激响应h(n)。每个阶段的输出是通过从左向右“翻转”一个序列(即翻转其时间顺序),并相乘和相加来计算得到的。如下面的数字示例所示,无论哪个序列被翻转,结果都是相同的。 x = [1 2 3 4 5 6 7 8]; h = [10 11 12]; conv(x, h) ans = 1031649713016319622917296 conv(h, x) ans = 10316497130 16319622917296 翻转序列h,第一个输出是10×1=10,下一个输出是(2×10)+(1×11)=31,接着是(3×10)+(2×11)+(1×12)=64,以此类推。 与相关法一样,接收信号可表示为 x(n)=αs(n)+g(n)(3.135) 其中,α是取值为±1的常数(由传输的比特决定),s(n)是信道冲激响应,g(n)是AWGN,所以匹配滤波器的输出为 y(n)=∑K-1k=0hn-kx(k) =∑K-1k=0hn-k[αs(k)+g(k)]接收信号 =∑K-1k=0αhn-ks(k)+∑K-1k=0hn-kg(k)(3.136) 由于噪声g(n)与信道冲激响应不相关,右边的项得以抵消,于是剩下 y(n)=α∑K-1k=0hn-ks(k)(3.137) 前面说过冲激响应hk应该是时间翻转的信道冲激响应s(k),所以在数学上,采样间隔为K个采样点时,有 hk=s(K-1-k)(3.138) 用n-k代替k,可得 hn-k=s[K-1-(n-k)] =s(K-1-n+k)(3.139) 所以输出y(n)为 y(n)=α∑K-1k=0s(k)s(K-1-n+k)(3.140) 考虑一个符号周期结束时的采样点,即n=K-1,得到 y(K-1)=α∑K-1k=0s(k)s[K-1-(K-1)+k] =α∑K-1k=0s(k)s(k)(3.141) 由此可以推断(忽略缩放常数α)结果总是正的,因为是将采样点本身相乘。此外,当采样值取y(K-1)时,在每个比特的末尾,结果取到最大幅度(根据α缩放)。 采用前面相同类型的冲激响应,匹配滤波器的波形如图3.56所示。可以看出,每个符号周期结束时的最大值可用于决定原始传输幅度的大小。实际上,不需要在特定的时刻进行精确采样,在大致区域附近即可。 图3.56匹配滤波器得到的波形示意图 注: ×表示每个符号的采样点,每个符号采样后使用卷积连续计算,无须重置输出。 这就引出了以下问题: 为什么有两种方法可供选择?究竟哪种方法更好?乘法累加法(或者说相关法)要求接收机产生类似于冲激响应的波形,并且必须精确地在每个符号开始处重新开始求和。可以使用模拟电路或数字查找表方法产生信道脉冲波形。然而,匹配滤波器需要产生时间翻转的冲激响应,这对于模拟电路可能是个问题。对于数字采样方法,产生时间翻转的波形仅意味着存储采样点,然后以相反的顺序读出它们,这很容易实现。因此,如果可以数字实现,那么匹配滤波是可行的,其缺点是每个符号周期需要大量波形采样点,因此需要更快的存储和处理速度。 3.9.3正交信号 同一频率的正弦和余弦信号可以共存于一个信道上,这一事实允许信道容量(单位为每秒比特数,用bps表示)的增加。图3.57说明了正交和非正交信号之间的差异。每种情况下都显示了两个输入信号,以及它们逐点的乘积。从图3.57(a)中可以看出,零轴以上的总面积等于零轴以下的总面积。换句话说,正交信号的总面积为零。将此与非正交情况进行对比,如图3.57(b)所示,输入信号乘积的总面积不为零。 图3.57正交和非正交信号(正交信号乘积下的总面积为零) 有了正交的定义,现在需要知道如何利用它来分离正弦和余弦分量。首先,回想一下,余弦波在一个周期内的积分为零。定义一个周期为τ=2π/ω,频率为ω整数倍的波形为x(t)=coskωt,它的一个周期的面积为x(t)在0~τ上的积分。对于任何整数k≠0,其结果为(1/kω)sin2kπ=0,与k值无关。如果将其扩展到多个周期,结果仍然是零。 不同整数倍频率kω和mω的两个余弦信号的乘积可表示为 coskωtcosmωt=12[cos(kωt+mωt)+cos(kωt-mωt)] =12{cos[(k+m)ωt]+cos[(k-m)ωt]}(3.142) 下面要找到所得乘积曲线下的面积。注意到,如果k和m都是整数,那么(k±m)也是一组整数。因此,两个余弦的乘积计算如下。 ∫t=τt=0coskωtcosmωtdt=12∫t=τt=0[cos(kωt+mωt)+cos(kωt-mωt)]dt =12∫t=τt=0{cos[(k+m)ωt]+cos[(k-m)ωt]}dt =12∫t=τt=0cos[(k+m)ωt]dt+12∫t=τt=0cos[(k-m)ωt]dt =0,k≠m τ2,k=m(3.143) 这个结果表明,整数倍的不同频率的两个正弦曲线(此例中是余弦)的乘积为零。在两条正弦曲线频率相同的特殊情况下(数学上k=m),该结果是常数。这意味着相同相位的多个频率可以共存,而且可以区分。当k=m时,右边的项为常数,即可以区分开来。下一节将采用这一原理,其中一个正弦波作为接收信号,另一个作为本地生成的载波。 接下来,假设有两个频率相同但相位不同的波形。利用表3.1中sinωtcosωt展开式,在数学上等同于(sin2ωt)/2,它在一个周期内取积分会为零。换句话说,正弦和余弦也可以在接收机进行区分。如果相同频率的波形彼此存在90°相位差,那么它们的乘积将为零,因此根据上述定义,它们是正交的。90°相位差的特殊情况是非常重要的,称为相位正交或简称为正交(Quadrature),通常将余弦作为同相相位,正弦作为正交相位。 3.9.4正交振幅调制 如果使用单个正弦波作为载波,可以在接收机中进行检测和解调。如果发送的是余弦波,同样也可以在接收机中检测,并解调它所携带的信号。如3.9.3节所示,正弦和余弦信号能够共存于同一信道空间或频带中。如果发送幅度为As的正弦信号和幅度为Ac的余弦信号,只要知道两者的相位(以便跟踪两个信号),就可以在接收机上确定As和Ac。正弦和余弦在矢量意义上是正交的,在时间意义上是90°相移的。 数字序列由串行的二进制数据流组成(连续的1/0),通常被转换成幅度为±1的双极性序列。可以仅用两个振幅电平或两个相位值依次串行调制每个比特。图3.58(a)显示了一个数据点及其相应的振幅和相位,振幅和相位的组合对应于正弦振幅和余弦振幅的特定选择。 图3.58(b)显示了正弦余弦(IQ平面)上的4个点,这4个点可以表示两个二进制数字(00,01,10,11)。那么这种方法能扩展吗?如果仔细调整合适的I和Q的幅度,就可以在平面上放置8个点,如图3.58(c)所示。因为每个点的相位都在变化(但幅度没有变化),所以将其称为正交相移键控(Quadrature Phase Shift Keying,QPSK)。最后,图3.58(d)中显示了16个点,每个点具有不同的振幅与相位,即振幅和相位(或等效的正弦和余弦)的特定组合唯一地选择一个点。因为有16个点,所以一次可以表示4个比特。当然,这种方法还可以进一步扩展,使用不同的幅度与相位组合。这通常称为正交幅度调制(Quadrature Amplitude Modulation,QAM),因为采用了不同幅度且相位正交的信号。IQ平面上的点构成了特定调制方案的星座图(Constellation)。 图3.58IQ平面上正交调制的示意图 为了用一种统一的方法来分析,先考虑图3.58(a),其中只显示了平面上的一个点。图3.58(a)表明,这种组合实际上是一种正弦波,幅度是从原点到指定点的长度R,相位为φ(与余弦轴的角度)。该点定义为Icosωt+Qsinωt,可以使用三角公式改写为 Icosωt+Qsinωt=Rcos(ωt+φ)(3.144) 将cos(x+y)的展开式运用到右侧的Rcos(ωt+φ),并依次与左侧的sinωt和cosωt项对比,可得到 R=I2+Q2(3.145) φ=-arctanQI(3.146) 请注意,一些学者更倾向于强调相位角是一个延迟 相角和频率的不同定义可以追溯到很久以前,如(van der Pol,1946)。,于是定义了Rcos(ωt-φ),最后得到结果φ=arctan(Q/I)。 图3.59显示了QAM系统的框图。要调制的两个信号m1(t)和m2(t)表示I支路和Q支路的振幅,并分别乘以余弦和正弦载波。产生的信号是正交的,将它们相加不会破坏任何信息。图3.60所示的解调器实际上是调制的逆过程,为每个符号增加了积分器(累加器),如3.9.2节所述。但是请注意,解调器必须知道载波的频率和相位。 图3.59QAM调制框图 注: 输入比特组合(此处为4位)将从星座图中的16个正弦余弦幅度对中选出一个。 图3.60QAM解调框图 注: 接收信号分别乘以正弦和余弦载波,然后在一个或多个周期内积分,确定幅度,进而确定星座中的位置,最后查找发送的比特模式。 为了说明这种方式的工作原理,先假设QAM系统输入的调制信号为m1(t)和m2(t)。输出结果为 xQAM(t)=m1(t)cosωct+m2(t)sinωct(3.147) 解调该复合信号,就要将输入调制信号乘以余弦和正弦波,其中余弦和正弦波要与接收信号的相位锁定。在解调器的上分支中 xQAM(t)cosωct=[m1(t)cosωct+m2(t)sinωct]cosωct =m1(t)cosωctcosωct+m2(t)sinωctcosωct =m1(t)2(cos2ωct+cos0)+m2(t)2(sin2ωct+sin0)(3.148) 低通滤波器去除较高频率的分量,留下 y1(t)=12m1(t)(3.149) 类似地,在解调器的下分支中 xQAM(t)sinωct=[m1(t)cosωct+m2(t)sinωct]sinωct =m1(t)cosωctsinωct+m2(t)sinωctsinωct =m1(t)2(sin2ωct+sin0)+m2(t)2(cos0-cos2ωct)(3.150) 低通滤波器去除高频成分后,留下 y2(t)=12m2(t)(3.151) 因此,输出是经过简单的常数缩放的原始调制信号。 3.9.5频分复用 前面讨论的调制方法(AM、FM和PM)主要是将一个信号调制到更高频率的载波上。这对于模拟传输来说是完全合理的,因为只存在一个信号,如声音、音乐或电视信号。下面一个问题是,如何在同一个RF信号或电缆上发送几个模拟信号,如主要大城市之间的一条链路。这就产生了频分复用(Frequency Division Multiplexing,FDM)的概念,即每个单独的信号由发射机调制到自己的载波上,在接收机使用本地载波进行解调。 前面讨论的QAM和QPSK方法非常适合数字调制,因为它们一次可以编码多位数据。最近,这两种思想的结合(使用多频率和多通道)已经成为数字传输中最重要的方法之一。这种方法称为正交频分复用(Orthogonal Frequency Division Multiplexing,OFDM),因为它使用多个正弦和余弦载波。 OFDM用于许多类型的无线网络,以及双绞线电话网络上的宽带通信,其中使用了离散多音(Discrete Multitone,DMT)方案。采用这种方式,数据比特流可以分成多个“子信道”用于并行传输,从而促进高速或“宽带”数据传输。 FDM的概念最早是在19世纪随着电报提出来的(Weinstein, 2009)。图3.61描述了今天人们对FDM的理解。这里可以看出混频的早期概念,但是使用了不同的载波频率,以便将每个信号源移动到它自己的独立频带或信道中。假设每个信号的带宽不与相邻频带重叠,则可以在接收机处解调各个信号。最终结果是一个公共信道或载体(如微波、同轴或其他介质)可以同时用于多个信道传输。因此,就有了子信道的概念。 图3.61频分复用实现原理框图 图3.62描述了公共信道上FDM的信号域表示,每个单独的信道占据一个频带,实际应用中这是一个小且有限的带宽,取决于所采用的调制方案。对于带宽为B的M个子信道,理论带宽要求大于B×M,因为频带边缘不是完全陡峭的,因此每个子信道之间还需要一个小空间,称为保护间隔。 图3.62频分复用的时频图 注: FDM可以想象为多个信号在时间上叠加,但在频率上分离。 3.9.6正交频分复用 通过使用正交的正弦和余弦载波,可以扩展基础的FDM方案,有效地将每个子信道的容量加倍。正如前面所讨论的,至少在理论上,接收机分离这些信号确实是可行的。由于实际信道的弥散特性,通常需要放宽信道带宽的限制。 正交频分复用(OFDM)的方法已经存在了一段时间(Weinstein,et al., 1971) 也可参考Weinstein(2009)和LaSorte等(2008)的历史总结。,然而,基于模拟信号处理实现的困难限制了它的应用。使用数字或离散时间信号处理实现为OFDM开辟了广阔的应用领域,尤其是在数字无线传输中。 图3.63使用FDM复用比特流的原理图 注: 幅度A0|1表示当比特b为0或1时A的不同取值。通常情况下,它们大小相等,但符号相反。 FDM中采用的典型波形如图3.63所示,其中待编码的比特流被转换为具有确定振幅的正弦波。不同的频率定义了不同的子载波,而幅度由比特的二进制取值来决定采用两个值中的哪一个。图3.64显示了每个子载波同时使用正弦和余弦波形的情况,将FDM扩展到了OFDM。在图3.64所示的例子中,使用2b来定义正弦和余弦的幅度,将在星座图上产生22=4个点。当然,该方案可以扩展到任意数量的幅度电平,并且每增加1b都会导致可能的电平数量加倍。 图3.64使用OFDM复用比特流的原理图 注: 除了使用多个子载波频率外,每个子信道上还使用了正交信号。 现在考虑一个特定的频率,因为有两个分量(正弦和余弦),所以可以用特定的振幅R和相位φ来表示,如图3.65(a)所示。此外,前面已经证明过,从数学上来说,正弦和余弦两个分量可以共存,并可在接收机中分离,所以可以同时存在许多可能的R和φ的组合。因此,图3.65(b)所示的16个点可以通过使用余弦的4种组合和正弦的4种组合来生成。从数学上来说,正弦和余弦中幅度和相位的16种可能组合可用4b表示,因为24=16。 图3.65正弦和余弦幅度的正弦波等价表示法 将这些正弦与余弦的组合表示为具有幅度和相位变化的单个正弦波将有助于理解。于是,正弦与余弦的和表示如下。 Icosωt+Qsinωt=Rcos(ωt+φ)(3.152) 将式(3.152)右边展开,可得 Rcos(ωt+φ)=Rcosωtcosφ-Rsinωtsinφ(3.153) 接着,令cosωt和sinωt的系数相等,可得 I=Rcosφ(3.154) Q=Rsinφ(3.155) 最后得到 R=A2+B2(3.156) φ=-arctanQI(3.157) 正弦与余弦的加权和实际上是一个具有幅度和相位变化的正弦波。反过来,具有一定振幅和相位的正弦信号,同样可以视为正弦和余弦以适当振幅加权得到的加权和,这样就可以从一种表示法转换到另一种表示法。 图3.66幅度估计的原理框图 注: 将输入信号乘以正弦(或余弦)并积分,得到该特定分量幅度的估计值。这里假设积分(或累加)在一个符号周期内执行,随后积分器复位为零。 最后的问题就是解调OFDM信号。也就是说,当给定一个通过R和φ组合产生的接收波形时,可以确定接收信号是对应于正弦和余弦的哪种特定组合。使用正弦和余弦分量的幅度可以唯一确定平面上的点。因此,在当前示例中可以确定特定4位比特。 每个分量幅度的恢复由一个周期内的乘法和积分组成,如图3.66所示。接着,分量的最终幅度确定平面上的一个位置,然后对余弦分量重复该过程。最终,这两个值确定了星座平面上的唯一点。 3.9.7OFDM的实现——FFT 前面已经证明,在载波频率范围内对多个正弦和余弦波进行编码是可行的,称为子信道。然而,这会得到一个非常复杂的系统,发射机和接收机都需要大量的波形乘法运算。因此,信号的数字处理是释放OFDM潜力的关键。 实现从源信号到已调信号转换的重大突破,是通过离散傅里叶变换(Discrete Fourier Transform,DFT)来完成的,解调可以通过对应的离散傅里叶逆变换(Inverse Discrete Fourier Transform,IDFT)来完成,参见文献(Weinstein,et al.,1971)。此外,还有一种快速地实现DFT的方法,即后来发现的快速傅里叶变换(FFT)(Cooley,et al.,1965)。这两个想法构成了如今使用的OFDM的基础。 DFT用于计算给定波形在相应频率上的正弦和余弦函数簇系数,这些函数簇用于构成该波形。与之相反,IDFT计算时域上正弦和余弦的幅度,并确定相应的波形。 图3.67说明了傅里叶分析的概念。顶部的输入波形依次乘以正弦和余弦波形,并将结果相加,形成加权系数A和B。对于更高频率的波形,重复这一过程。产生的A、B系数组确定了原始波形。这个过程有时被称为分析,因为它分析输入波形并产生了结果。 反过来,在适当的频率范围内取一组正弦和余弦波形,并用相应的A、B系数对其加权,将再现原始波形。一个关键问题是,在什么频率范围内,需要多少波形来重构原始波形?这个过程有时被称为合成(Synthesis),因为它使用原型正弦和余弦波形的加权和来重新合成原始波形。 DFT用复指数形式表示更加方便。要记住的是,这只是一个表示方法的问题,这些复指数本质上仍是正弦和余弦函数,只是二者需要保持分离,因此需要一种方法来进行区分。 复数运算符j=-1用于分离实部与虚部。复平面上的一个点可表示为 Rejφ=R(cosφ+jsinφ)(3.158) 用这种表示法,将N个时间样本x(n)转换成N个频率样本X(k)的DFT可以被定义为 X(k)=∑N-1n=0x(n)e-jnωk ωk=2πkN DFT和IDFT使用了以下变量: N: 输入样本的总数; n: 样本索引,用于表示每个输入样本; k: 用于表示每个输出样本的索引; x(n): 每个输入样本的值; X(k): 输出频点的计算值; ωk: 2πkN,第k个正弦波的频率。 根据惯例,分别用n和N表示时间索引和时域数据长度,用k和K表示频率索引和频域数据长度。此外,x用于表示时间分量(实值),X用于表示频率分量(可能是实值或复数值)。角频率ωk可认为是第k个正弦波的频率。虽然DFT产生N个输出样本,但其中只有N/2个是独立的,其他的是前半部分的复共轭。图3.68说明了复平面上正弦波一个特定点的位置。右边的横轴表示余弦分量的相对量,而向下的竖轴表示负的正弦分量的相对量。这可从如下关系得到: 正弦和余弦的指数关系是e-jωk=cosωk-jsinωk。 图3.67傅里叶分析的概念示意图 注: 输入波形的傅里叶分析决定了正弦和余弦分量对应不同频率下的幅度。 图3.68复平面上的点与余弦值(实部)和正弦值(负虚部)的关系 为了理解DFT公式的应用,参考图3.69。图3.69说明了样本为x(n)的单个余弦波形如何转换为复平面上相应的频率点X(k)。虚部(即正弦部分)为零,但余弦部分在k=4时非零请记住,MATLAB的索引是从1开始,而不是从0开始。。可以用两种方式来理解这个问题: 第一种,采样数据记录中正好有4个完整的周期; 第二种,每个周期由16个样本组成,每个样本点对应2π/16rad。变换后的频率样本(此处为64个)映射了0~2πrad,第一个点位于4/64×2πrad。 请注意,在X(k)样本中还有第二个非零点,在这种情况下,它的大小与第一个点相同。这个对称点总是存在的,但是不提供任何更多的有用信息。 接下来,考虑图3.70,它显示了一个正弦波。相反,它没有余弦分量(实值),但是在虚部有两个点,一个值为-j32,另一个值为+j32。这两个点是对称的,事实上是互为复共轭。k=4处的点是X(k)=-j32,这一事实表明,它实际是正的正弦分量(根据图3.68中描述的惯例)。 最后,考虑这些点的幅度。在频域中,幅度值32是由时域中峰值幅度1产生的。要从频点幅度转换为时间幅度,必须按比例除以N/2=64/2。 图3.69余弦波的DFT示意图 注: 余弦波的DFT对应于单个实值X(k)=32+j0(此处k=4)和它的对称部分,处于(N-1)-k(此处63-3=60)。 图3.70正弦波的DFT示意图 注: 正弦波的DFT对应于单个虚值X(k)=-j32(此处k=4)和它的对称部分,处于(N-1)-k(此处63-3=60)。 IDFT的目的是将频域点映射成相应的时域波形。正如前面的例子所示,必须根据采样点的数量来正确设置X(k)的大小,此外,还必须确保在余弦轴或负正弦轴上的正确位置。最后,还必须遵守复共轭对称性。 IDFT的公式可写为 x(n)=1N∑N-1k=0X(k)ejnωk ωk=2πkN 请注意,除了指数中的正号和系数1/N,它实际上与DFT相同。IDFT的过程最好用波形生成的例子来说明,这也正是OFDM的需要。下面的MATLAB代码说明了从频域X(k)值获得时域样本x(n)的过程。变量k定义了所需的特定频率,每个频率分量需要有正确的复共轭。一些代表性结果如图3.71所示。 N = 64; X = zeros(N, 1); % 子载波编号,从1开始,直到 N/2 k = 3; % 该子载波的幅度 A = 1; % 从分量索引1开始(MATLAB中为2) % 用N/2缩放幅度 % 互补分量必须是复共轭 % -1j 作为正弦, +1 作为余弦 X(k+1) = -1j*N/2*A;% 选择为正弦 (Q) X(k+1) = N/2*A; % 选择为余弦 (I) X(N-k+1) = conj(X(k+1)); x = ifft(X); % xr应为0,但是由于计算的舍入,可能会有很小的虚部 xr = real(x); stem(x); 图3.71OFDM 的IQ信号示例(使用DFT) 在这个例子中,使用了FFT,对于给定的一组输入,它产生与DFT相同的结果。FFT的优点是它需要相当少的计算。例如,对于N=1024,DFT需要大约N2≈106次运算,而FFT需要Nlog2N≈1000×10=10000次运算,这是一个相当大的简化。这对于实时的实现尤为重要,也是通信系统所需要的。使用FFT的一个要求是采样数必须是2的幂。因此,1024个样本是可接受的(因为1024=210),而1000个样本是不可接受的。 最后,来看FFT在OFDM的调制和解调中是如何应用的。只须指定一组频率及其相对应的正弦/余弦分量,就像前面的例子一样。在发射机处执行IFFT,以创建时域波形,实际发送的是星座图中的正弦/余弦点。处理模块如图3.72所示。 图3.72OFDM调制过程(使用IFFT) 在接收机处,采用逆运算,即FFT从接收的时间波形中恢复最初指定的星座点,如图3.73所示。 图3.73OFDM解调过程(使用FFT) 3.9.8扩频 传统的调制方法力求将信号保持在非常窄的带宽内,如AM、FM和标准PSK等方法。OFDM将这一思想扩展到多个并行信道中,其中每个信道可以或多或少地被利用,这取决于传输信道条件。 另外一种经常使用的方法是扩频(Spread Spectrum,SS),它与使用窄带信道的想法背道而驰,事实上它将传输信号“扩展”到了一个很宽的带宽上。扩频的起源可以追溯到20世纪30年代(Scholtz,1982; Price,1983),在第二次世界大战期间,人们对这个问题很感兴趣,扩频的信道保密优势得以利用(Kahn,1984)。如果信号功率分布在很宽的范围内,就很难被截获(因为载波频率连续变化),也很难被高功率干扰信号干扰。 这种系统的军事优势是显而易见的,事实上,许多基本思想多年来都被列为军事机密。但是,随着共享信道的出现,如在移动通信(Cooper,et al.,1978; Magill,et al.,1994)和非限制频带的短程无线通信中,这个系统慢慢体现出一些新的优势。 在多用户移动通信的情况下,最初只有两种分离通信信道的方法: (1)为每个用户对分配单独的频率; (2)使用相同的频率,但是只允许每个用户在很短时间或时隙内接入信道。前者称为频分多址(Frequency Division Multiple Access,FDMA); 后者称为时分多址(Time Division Multiple Access,TDMA)。二者都需要接入无线带宽的所有用户之间的完全合作,还需要分配频带或传输时隙的方法。此外,一旦允许的频道(FDMA)或时隙(TDMA)用完,本地网络的容量就会受到严格限制。 第三种方法,码分多址(Code Division Multiple Access,CDMA)采用了稍微不同的方法。CDMA采用了扩频的思想,允许多个用户接入相同的信道带宽,而信道相互之间的干扰是有限的。随着用户的增加,干扰最小化的性能逐渐下降,而不是突然下降。重要的是,在频道设置或时隙分配方面几乎不需要或根本不需要配置。这对于支持移动通信网络的低开销配置至关重要,因为在通信网络中不同的小区具有重叠的地理覆盖区域。 除了允许多个用户共享相同的信道空间,扩频还增强了抗射频信号功率衰落和抗射频频带干扰的能力。扩频通信的一个重要特征是有效地利用稀缺的无线带宽。在第5章将会论证,数字信道的容量C(单位为bps)与信道带宽B(单位为Hz)和信噪比S/N有关,具体取决于信道容量公式,即 C=Blb1+SN(3.159) 对于固定的信噪比S/N,增加信道容量C的唯一方法是增加带宽B。将窄频谱扩展到更宽的信道可以做到这一点,如果用于多用户环境,更宽的带宽并不是问题,因为无论如何都需要很宽的带宽。 SS系统主要有两大类方法,每一类都有优缺点。一种是跳频(Frequency Hopping,FH),如图3.74所示。像以前一样,每个终端都使用约定的调制解调方法,通常是FSK或PSK,或一些更高容量的变体。本质区别在于,中心频率不是使用固定的频率,而是以一种已知模式“跳跃”(通常是每秒多次)。实际上,待传输的信息被调制到载波频率上,载波频率用很短时间从一个频率跳跃到另一个频率,并且在每个信道上停留很短时间。 图3.74跳频扩频原理框图 注: 每个传输时间的中心频率是伪随机的,但在发射机和接收机之间是同步的。通常每一跳都要传输若干比特,这使得跳速小于比特率。 跳频图案给出了传输带宽上的频率分布。显然,接收机必须调整其信道频率,才能找到每个新的发射机频率。这是使用伪噪声(PN)发生器来完成的,该发生器在任意时刻从一组已知值中产生一个值,每个值都用于调谐频率合成器,并且在已知时间之后,产生新的值(从而产生新的频率)。重要的是要认识到这些值不是真正随机的,而是伪随机的,这意味着跳频图案在一定数量的跳跃之后会重复。但是,如果用户从伪随机序列中的不同点开始,则不会互相干扰。 SS的第二种方法称为直接序列(Direct Sequence,DS),信号在调制和解调时,载波被扩展到很宽的频率范围。与FH相比,FH通常使用一个特定频率传输几比特,而DS的每比特会有几次跳变,但是仍然处于相同的频率信道。DS要传输的每比特与值为0或1的PRBS进行XOR运算,PRBS周期非常短(比每个比特间隔短得多),被称为码片(Chip),同样需要解决同步问题。 图3.75显示了一个直接序列扩频(DirectSequence SpreadSpectrum,DSSS)系统的框图,其典型波形如图3.76所示。首先,输入比特流通过高速码片调制,决定了载波的相位角。接下来调制码片流,可以采用多种方法,如PSK或QPSK。最终结果是,DSSS方法将信号分散到一个宽的带宽上,而不像跳频扩频(FrequencyHopping SpreadSpectrum,FHSS)那样在不同的频率 图3.75直接序列扩频原理框图 注: 每比特用伪随机二进制序列分割成几个码片后传输,伪随机序列需要在发射机和接收机之间同步。因此,每一位由几个码片组成。 图3.76直接序列扩频中的波形示意图 注: 载波根据输入比特流和码片流进行相位调制。此例中,比特流和码片流一起用于确定载波相位,为了便于观察,每个码片中仅包含了一个载波周期。 间跳跃。这在移动通信中具有相当大的优势,在移动通信中,未知数量的用户可以使用相同的带宽。如果干扰确实发生了,那只是在相对较短的时间内,这样干扰的可能性大大降低。此外,还有错误校验码可以用于恢复正确的比特序列。 码片模式显然很重要,在实际系统中使用的一种简单方法是11位巴克码。巴克码是一组预定义的整数位的正负序列,具有特殊的数学性质(Weisstein,2004),对接收机同步很有用。巴克码定义为正电平和负电平的模式,长度为11的码为 b=[+++---+--+-] 接收机的任务是在给定的传输数据中,找到这个模式。考虑到从发送到接收可能存在着任意长度的延迟,接收机需要与发射机适当同步。接收机必须搜寻给定的模式,并且必须能够可靠地找到该模式。 然后,该问题变成模式匹配问题,使用相关算法来完成。在接收到的序列中搜索已知模式,这在数学上是相关性最大化问题。图3.77显示了接收机需要考虑的波形。顶部是参考波形。没有移位时,乘积和为11(十进制),计算如下。 c(k)=∑L-kn=0b(n)b(n+k)(3.160) 其中,k是相对位移,可以是正的,也可以是负的。 图3.77巴克码及其延迟波形 注: 参考码从1开始,到12结束,之后显示为零。延迟波形向右移动,左边移入零值。 无论以哪种方式移动一个间隔,结果都是零。以任意方式移动两个间隔,结果为-1。图3.78(a)显示了所有延迟情况下的乘积和,表明对于所有可能的移位,巴克码都无相关性或相关性很小。如果没有使用适当的码,如假设码片流是全1,将这种情况与巴克码进行对比。全1码片序列的相关性如图3.78(b)所示。一个时间单位(正或负)偏移的相关性看起来非常类似于完全没有偏移的情况,因此如果存在噪声,接收机很可能会错误地解调接收信号。 对于11位巴克码,峰值和为11,但其他延迟的乘积和为0或-1。这意味着最差情况下的相似性为1/11,因此,零延迟以外的相似性比零延迟的相似性小得多(大约20dB)。 图3.78全1码相关与巴克码相关对比示意图 巴克码是一个简单而有效的扩频函数,但不是唯一可用的。每种SS方法都需要产生伪随机序列,它是一个看似随机但在一定时间后重复的序列。要么需要一组二进制值,其中每个比特的1/0值是随机的,要么需要一组从预定范围内提取的值。前者称为PRBS,即伪随机二进制序列,而后者是伪噪声,即PN序列。两者都可以使用图3.79的系统生成。这里有一个移位寄存器,包含许多位数据(图中是8位),但通常会更多。当接收到时钟脉冲时,比特从每个存储单元移动到其紧邻的右侧。最左边的比特通过反馈获得输入。一些(不是全部)寄存器的值在一起进行异或运算形成反馈比特。该反馈比特本身可以构成PRBS,而移位寄存器本身可构成PN序列。存储单元的数量以及反馈抽头的数量决定了序列重复的时间周期,具体模式由反馈抽头的存在与否来决定。最后,初始起点(种子)决定了起点在模式空间中的位置。 图3.79伪随机序列产生的原理框图 注: 可生成由1和0组成的伪随机二进制序列(PRBS),也可生成伪随机噪声(PN)序列(从一组可能的离散值中选择)。 PN和PRBS信号可用如下MATLAB代码产生。使用randi( )函数生成一个随机样本,它是从PRBS的[0,1]或PN序列的[0,S-1]集合中抽取的。下面的代码产生了最大值为S-1的PN序列。 % 总采样数 N = 4096; % 8b无符号整数的范围 S = 2^8 - 1; % 每位采样数 M = 256; %比特数 B = round(N/M); % 选择PRBS 或 PN x = S*randi([0 1], [B, 1]);% PRBS取值为0或1 x = randi([0 S], [B, 1]); % PN取值范围为0~S-1 x = repmat(x', [M, 1]); x = x(:); xi = uint16(x); plot(xi); axis([0 N 0 S+1]); title('Sampled Pseudo-Random Binary Sequence'); 3.10本章小结 下面是本章的要点: 模拟调制的概念,包括AM、SSB、FM和PM; 模拟调制的几种解调方法; 锁相的概念以及PLL和科斯塔斯环; 使用QAM和QPSK的多比特数字调制; 使用先进的调制技术(如OFDM)以提高数字比特率; 扩频技术: 直接序列(DSSS)和跳频(FHSS)。 习题3 3.1调制是以某种方式将调制信号m(t)添加到载波xc(t)上的过程,典型的方式是以某种方式控制载波的振幅、频率或相位。 (1) 解释图3.80(a)所示的每种调制类型是如何产生的。 (2) 说明图3.80(b)所示的每种调制类型,并解释理由。 图3.80调制信号的产生和识别 3.2使用式(3.28)和式(3.29),从数学上证明,对于给定的AM波形,可以从波形图中确定Ac和Am。 3.3从sinxsiny的展开式出发,证明幅度调制会得到一个幅度为Ac的载波和两个频率为(ωc±ωm)的边带,每个边带的幅度均为Am/2。 3.4AM中的边带携带很大的功率,且该功率取决于调制指数。 (1) 根据载波幅度Ac,写出载波的功率方程。 (2) 根据边带幅度Am,写出每个边带的功率方程。 (3) 使用上述结果,证明AM波形中存在的总功率为载波功率乘以[1+(μ2/2)]。 (4) 定义效率η为边带功率除以总功率,证明η=μ2/(μ2+2)。当调制指数为0和1时,分别计算该效率。 3.5根据图3.81所示的频谱图计算波形参数。 图3.81AM示例频谱 图3.81(续) 3.6图3.82所示为频谱分析仪显示的调幅信号频谱。在600kHz处,功率为-9.99dBm; 而在620kHz处,功率为-24.93dBm。假设调制指数μ=0.4,测量的相对功率差是否符合理论预期? 图3.82频谱分析仪上显示的AM信号频谱图 3.7图3.83显示了FM信号的频谱分析图,具体参数如下。 参数名 符号 值 载波频率 fc 600kHz 载波幅度 Ac 200mVpp 调制频率 fm 20kHz 频率偏差 Δf 80kHz 确定β值,以及载波和载波右边的3个谐波的功率电平。 图3.83FM调制的频谱图 3.8从数学上证明,图3.84所示的框图可以产生上边带和下边带,并解释相关步骤。 图3.84单边带(SSB)调制框图 3.9AM的平方律解调器简单地对输入信号进行平方,然后对结果进行滤波。以单音调制为例,用数学方法说明平方律解调器如何对AM信号进行处理。确定在调制信号带宽范围内平方信号频率分量的大小,并说明哪个是期望的(解调的)信号,哪个是不想要的失真? 3.10说明贝塞尔函数表(见表3.2)如何用于确定FM波形的谐波。 3.11使用图3.85中所给参数并结合贝塞尔函数表(见表3.2),确定图中所示波形的频谱成分大小。 图3.85FM示例频谱 3.12一个单音调频信号可写为 xFM(t)=2sin(2000πt+2sin4πt) 具有相应的频率分量为 xFM(t)=A∑n=∞n=-∞Jn(β)sin(ωc+nωm)t (1) 以rad/s和Hz为单位分别计算载波频率和调制信号频率。 (2) β值是多少?确定相应的频率偏差。 (3) 绘制载波频率周围的幅度谱,给出所有的幅度和频率值。 (4) 如果频率单位是MHz而不是Hz,频谱会是什么样子? 3.13假设载波能够在接收机中重建,IQ解调可以应用于各种调制方案。 (1) 3.8.1节显示了采用调幅时如何解调一个正弦波。将其扩展,说明如何解调任意输入m(t)的幅度调制。 (2) 3.8.2节显示了采用调相时如何解调一个正弦波。将其扩展,说明如何解调任意输入m(t)的相位调制。 (3) 3.8.3节显示了采用调频时如何解调一个正弦波。将其扩展,说明如何解调任意输入m(t)的频率调制。 3.14为了证明正交信号也能解调,假设同相信号为I(t),正交信号为Q(t)。那么接收信号为 r(t)=Qcosωt+Isinωt (1) 将接收到的r(t)乘以正弦载波sinωt,然后在一个周期τ=2π/ω内积分并求平均值,即 ∫τ02τ(Qcosωt+Isinωt)sinωtdt=I 证明通过这种方式,可以恢复I分量。 (2) 同样,证明乘以cosωt,积分并平均,可以恢复Q分量。 ∫τ02τ(Qcosωt+Isinωt)cosωtdt=Q