上一篇我们进行了x310母板和twinrx子板的硬件安装,开发环境配置,并实际采集了一段信号样本,x310给出的这些样本是正交信号(quadrature signal),也叫IQ信号。
正交信号在现代通信系统中广泛应用,要掌握现代通信系统和软件无线电,必须对正交信号有正确和充分的理解。正交信号的概念还是有一点抽象,但熟悉之后,就能体会到正交信号的应用给现代通信系统中的信号处理带来的方便之处。
我不太相信能够通过网上的文章或xx百科理解正交信号。以我的经验看,网上的文章大多不成系统,抄来抄去,有的以讹传讹,误人子弟。
有人说用正交信号能够传输两路信号,能提高数据传输速率,或者提高了带宽利用率。这完全是扯淡。正交信号可以单独在发送端使用(正交调制),也可以在单独在接收端使用(正交解调),还可以发送接收都使用。假设原来在接收端使用模拟电路,现在接收端改成正交信号处理,发送端完全可以不做任何改变,你自己换了个接收机就能提高了传输速率?!
还有的人一说到正交信号就拿QPSK说事,好像正交信号就只用在QPSK上一样。说这话的人可能就是看着QPSK的原理框图跟正交信号的框图看起来差不多,其实上恐怕既不理解正交信号,也不理解QPSK。正交信号只是为了便于数字信号处理,可以用于任何调制方式,不但数字调制可以用,模拟调制也能用正交信号实现。
使用正交信号最根本也是最重要的考虑就是降低采样率,这样对AD、DA和DSP的要求就能降低到可以实现的程度。
要认真学习,还是得看书。读懂下面几本书的相关章节,基本就能对正交信号理解到位了。
鉴于正交信号与频谱以及傅里叶变换具有极其密切的关系,不理解傅里叶变换也不太可能理解正交信号。《信号与系统》这本书看完前三章,应该可以掌握傅里叶变换了。在此基础上可以看《数字通信》的2.1节和《数字信号处理》第八章,这两本书对正交信号都给出了精彩的讲解,且各有侧重,都不难接受。尤其是Richard G.Lyons的这本书,我觉得是针对数字信号处理这一主题讲述的最清晰最易懂的一本书了。
我们用什么方式来表示一个信号?最直观也是最符合人的思维方式的方法是时域表示,说白了就是一个随时间变化的电压值。用公式写出来就是u(t),自变量是时间。把u(t)的图像画出来,就得到了信号的波形。时域表示最常见,也非常好理解,但也存在着其他表示信号的方式。
频域就是除了时域之外第二流行的信号表示方式。看电视的人在讲“频道”这个的时候,就是在使用信号的频域表示。在模拟电视时代,所有电视台的节目在同一条电缆上同时传输,而不同电视台的节目是在频域进行区分的。
频域的概念来源于傅里叶变换,下面直接给出傅里叶变换公式:
从傅里叶正变换公式可以看出,如果知道了信号的时域函数f(t),就能得到一个新的函数F(w)(当然f(t)要满足狄利克雷条件,否则该积分没有结果)。新函数F(w)就是同一个信号的频域函数。而利用傅里叶反变换公式,我们可以求出特定频谱的信号的时域波形。
关于傅里叶变换的具体推导(一般是由傅里叶级数引出的)和重要性质请自行查阅相关教材,下面是几个容易忽略的性质。
我们用指数形式的exp(-j*w*t)取代了三角形式的cos(w*t),因此引入了负频率。又为了求某些F(w)的傅里叶反变换,引入了复信号的概念。因为空中和电线里传播的都是实信号,负频率和复信号的概念初看起来有点难以理解。但只要熟悉之后,就能体会到这些概念给信号处理带来的好处。
掌握傅里叶变换之后,就可以讲清楚正交信号了。先把一些名词的含义明确一下,以免引起不必要的误解。
下图是某个已调信号的频谱示意图,其中实线表示幅度谱,虚线表示相位谱。由于已调信号是实信号,其频谱具有厄米特对称性,也就是幅度谱密度关于纵轴偶对称,相位谱密度关于纵轴奇对称。已调信号的频谱范围位于+f0和-f0附近,且只占据有限带宽,是一个实带通信号。
现在把已调信号的频谱乘上一个单位阶跃函数,也就是说把已调信号频谱位于纵轴左侧的那一半抹掉,得到的新信号的频谱如下图所示。很明显,这个信号是一个复信号,因为其频谱没有对称性。这个信号称为解析信号(analytic signal),也叫预包络(pre-envelope)。
再将解析信号乘上exp(-2*j*pi*f0),根据傅里叶变换的性质,这就是将解析信号的频谱左移f0。最终得到的信号频谱如下图所示。
这个信号与已调信号的正频率部分有着相同的频谱形状,区别是其频谱范围位于0频附近,我们把这个信号称为已调信号的等效低通信号。由于其频谱没有对称性,等效低通信号也是一个复信号。
等效低通(lowpass equivalent)就是通常所说的正交信号(qudrature signal),也叫基带信号(baseband signal),还有的叫复基带信号、IQ信号、IQ数据等等。以后我们说到这些词的时候,都表示同一个意思。
正交信号的广泛应用是因为数字信号处理器和软件无线电的快速发展。得益于数字信号处理技术的灵活性,我们可以把AD之前的射频部分标准化,无论什么信号都下变频到正交信号,而真正的数据处理在微处理器中以软件的形式完成。这也是一部手机可以支持2G、3G、4G、wifi、GPS等多种无线通信体制的原因。
usrp则更加极端。手机用的是专用嵌入式芯片,软件算法一般用各种硬件描述语言实现。usrp直接使用计算机的通用处理器,用c\c++语言完成算法。由于usrp看重通用性,那么射频前端就不会对某种应用进行优化,因此性能上可能不如专门的设备。另外由于通用处理器和操作系统一般不是实时处理系统,对于实时性要求很高的通信体制可能无法满足要求。usrp大多用于算法验证和原型设计,对于无线电监测的应用也是很合适。
usrp x310输出的也是正交信号。通信工程师通常把正交信号的实部称为同相部分(in-phase),虚部称为正交部分(qudrature)。我们上一章通过x310采集到的文件,在计算机中按照如下格式存储:I1-Q1-I2-Q2-I3-Q3......,其中I1指第一个样本的同相,Q1指第一个样本的正交,后面以此类推。I和Q都占用两字节,所以每个样本为4字节。以后我们进行的各种SDR信号处理,都是对等效低通进行操作。usrp存储的是纯样本数据,不包含射频频率和采样率等元数据信息。最好在文件名中把这些信息标注清楚,否则过一段时间自己都记不清当初采的是个啥信号。
上一节从频域对等效低通(复基带信号)的概念进行了说明。带通实信号和等效复信号含有同样的信息,而后者的采样率远远低于前者。从带通实信号得到复基带信号的过程就是所谓的正交解调,也叫下变频;从复基带信号得到带通信号(也叫中频信号)的过程就是所谓的正交调制,也叫上变频。在有的文献中正交解调和正交调制还有其他含义,本文中这两个术语只表示带通实信号和复基带信号之间的转换。
本节我们只讨论正交解调,关于正交调制可以查看文献1和2的相关章节。下面的两种方法分别在文献[2]的2.1节和文献[3]的第八章进行了讨论。这两种方法我们都给出了复数形式和实数形式的原理框图,复数形式在概念上更清晰(前提是对傅里叶变换有好的理解),但由于一般的程序设计语言不支持直接对复数进行运算(Matlab和Python都可以直接支持复数),所以还给出了实数形式的实现过程。
4.1 希尔伯特变换方法
文献[2]的方法与上一部分中等效低通的概念推导完全一致。文献[2]给出了这种方法的复数形式(左)和实数形式(右)的框图。
对已调信号进行希尔伯特变换,乘j后与原已调信号相加,得到解析信号。再进行混频,即得到正交信号。
4.2 低通滤波方法
希尔伯特变换方法是先去掉了负频率部分的频谱,在进行频谱平移。而低通滤波方法是先进行频谱平移,再滤出需要的部分(就是低通部分),两种方法得到的最终结果是一致的。下面先给出复数形式的框图和各个步骤的信号频谱。
接下来给出实数形式的框图。根据是在数字域还是模拟域实现,实数形式还可以再细分成两种。
下面先给出了用模拟器件进行实现的框图,需要两套乘法器,低通滤波器和AD。这种方法需要保持两路信号的参考信号同频且90度的相位差(高精度的相位差工程上比较难实现),还要保证低通滤波器和AD具有相同的工作参数,否则容易造成IQ不平衡。
这种方法的好处在于可以降低AD采样率的要求。对正交信号的采样率只需对带通实信号的采样率的一半。例如usrp子板ubx的接收带宽为160MHz,为了达到这个带宽,直接采样最少采样率要320MHz,为了好的接收效果,最好再有1.25倍的富余,所以直接采样需要400MHz的采样率。而x310的AD芯片(德州仪器ADS62P48,双通道,最高采样率210MHz,采样精度14bit)无法满足直接采样的要求,但是能够满足正交采样的要求。在保证接收效果的前提下,160MHz也是x310支持的最高接收带宽了。
来看看ubx的系统框图中接收通道的最后一段,可见ubx在子板上就使用模拟器件完成了正交信号的生成。
刚才讨论了模拟域实现。如果先对已调信号直接采样,则可以在数字域中完成正交解调过程。这种方法可以避免上述的IQ不平衡的问题,不过这样AD采样率减半的好处不再成立。框图如下。
twinrx就是使用了这种方法。twinrx是一个双接收通道的子板,每个通道带宽为80MHz。下面给出了twinrx的系统框图的部分。框图画出了一个接收通道的最后一段。
x310的AD芯片的两个采样通道分别对twinrx的两个接收通道进行采样,然后在x310中的fpga中经过数字混频、滤波、抽取插值等运算,产生正交信号。顺便说一下,我们可以看到twinrx的二段中频(IF2)中心频率为150MHz,带宽为80MHz,有效频带内最高频为190MHz。200MHz的采样率不能满足低通采样定理,但能够满足带通采样定理,详细请看文献[3]第二章。
至此我们已经讲清楚了复基带信号和正交解调,下面终于要探索现实世界的真实信号了,我们将从最简单的模拟调制信号入手。