IQ调制、成型滤波及星座映射

http://www.cnblogs.com/touchblue/archive/2013/01/15/2861952.html

现代通信中,IQ调制基本上属于是标准配置,因为利用IQ调制可以做出所有的调制方式。

但是IQ调制到底是怎么工作的,为什么需要星座映射,成型滤波又是用来干嘛的。这个呢,讲通信原理的时候倒是都会泛泛的提到一下,但由于这部分不好出题,所以通常不会作为重点。但换句话说即使目前国内的大部分讲通信原理的老师,恐怕自己也就是从数学公式上理解了一下。真正的物理上的通信过程是怎么样的,恐怕他们也不理解。所以说到底国内的通信课程,大多都停留在“黑板通信”的程度,稍微好一点的呢,做到的“仿真通信”的程度。离实际的通信工程差距很大。这一方面是由于通信系统确实比较庞大,做真实的实验确实难以实施。另外一方面嘛,呵呵……

所以我决定还是要专门开贴来讲一下这个问题,因为我理解这个问题大概用了两年多的时间,到现在为止恐怕也不能算是完全搞明白了。每思至此,我总是会感慨通信博大精深,要做一名合格的通信工程师是非常不容易的。相反,想成为“专家”仿佛还要简单一点,因为只需要抓住一点穷追猛打,至于其它的么……谁愿意研究谁研究,反正老子不管……

首先从IQ调制讲起吧。所谓的IQ调制,冠冕堂皇的说法无法是什么正交信号如何如何……其实对于IQ调制可以从两个方面来直观的理解,一个是向量,一个是三角函数。首先说一说向量,对于通信的传输过程而言,其本质是完成了信息的传递。信息如何传递?信息本身是无法传递的,必须要以信号为载体,以物理世界中的信号某个特征来表示这个信息。那么有哪些特征可以表示呢,对于一个物理世界中存在的信号而已,无非就三个特征:相位、幅度、频率。其中频率和相位可以通过一定的关系等价出来。那么主要就是相位和幅度了。

好了,我们回到向量上面来。在一个二维平面里面,一个向量的信息同样可以转换为幅度(模)和相位(夹角)来表示。反过来时候,一个给定的向量,由于其模和夹角不同,可以通过该给定的向量表示一定的信息。如下图所示的QPSK调制:

四个向量由于和X轴正半轴的夹角不同,可以分别表示出4个值。

再来看另外一个问题,如何生成这样一个夹角不同的向量呢?这其实有时一个很简单的数学问题:正交分解。任何一个向量都可以投影到X轴和Y轴上面做出两个向量来。这样我们就只需要改变X轴和Y轴上面的分量大小,就可以生成任意的向量。如X=1,y=-1时,就可以生成和X轴夹角315°模为根号2的这个向量。这条性质有什么用呢?后面我会解释。

好了,到目前为止,这都是数学分析,所谓的正交分解,那首先是要找到两个正交向量。在我们真实的物理世界里面去哪里找这两个正交的向量呢。呵呵,还真有,而且是现成的。就是sin和cos。有性质cos(α+π/2)=sinα,二者正好相差九十度。至于这二者的正交性如何证明,我想这是数学老师的事情。反正现在已知有了这么两个正交的东西了。有这两个东西就太好了……为什么这么说呢,因为有了整个东西之后,抽象的正交分解就变成了高中都学过的三角函数了。

对于cos(wt+α)=cos(α)cos(wt)+sin(α)sin(wt),其中cos(α)和sin(α)都是常数,其实就变成了cos(wt)和sin(wt)的幅度了。换言之,改变cos(wt)和sin(wt)幅度,就可以得到任意的相位α。如果再狠一点,加一个系数Acos(wt+α)=Acos(α)cos(wt)+Asin(α)sin(wt),这其实还是改变的cos(wt)和sin(wt)幅度。就可以得到任意幅度、任意相位的cos函数,并可以利用这些函数去表示不同的信息。对此,通信原理上通常会用一种抽象的说法来约定表示方式,就是所谓的星座图。

一个常见的16点QAM星座图如下:

以I轴代表cos,而Q轴代表sin。从图上可以看出,如果现在Acos(wt)+Asin(wt)可以求得一个向量(由于QQ空间没有很好的数学编辑器支持,就不写表达式了)。那么此时这个向量表示的是0101。而如果I轴上的值变为3A,换言之就是cos(wt)的幅度由A变为3A。就求得另外一个向量,该向量表示的是0100。 

在真实的电路中,我们是怎样做到这一点的呢。这就和正交调制器有关了。下图就是一个正交调制器的实例

其核心是两个乘法器。从VCO中出来的高频余弦信号分别做0°和90°的相移,因此产生了cos(wt)和sin(wt),两路正交信号。基带信号通过I/Q两路基带信号进来,分别和cos(wt)和sin(wt)相乘,等效于调整了cos(wt)和sin(wt)的幅度值。最终等效成什么呢?就是控制I-DAC和Q-DAC的输入从而产生不同幅度的电平信号。

所以,最终从基带信号上面如何去控制产生已调信号,就变成了控制DA输出的不同幅度值的信号。因此,要让一个已调信号去表示某个信息,实际上就是把这个信息映射成I/Q两个DAC输出的幅度值。比如前面提到的那个星座图,对于0100这样一个数据实际上就是把它映射成I路的DAC输出3A而Q路上的DAC输出A。那么如何让I-DAC输出为3A而Q-DAC输出为A,这就是和DAC的输入输出特性有关了。比如,这是一个双极性4位的DAC,输入为00时输出为-3A,输入为01时输出为-A,输入为10时输出为A,输入为11时输出为3A。那么就如下图所示

说到这里大家最终发现了,所谓的星座映射,其实就译码器而已……

但是上面那个图,是不对的。原因是什么呢?就是这样直接映射得到的都是方波信号。如果我们把中间的包括IQ调制解调、射频收发的整个过程都等效成一个信道的话,那么可以抽象出这样一个模型:

整个这个图又让我们回到了通信原理一开始就讲的最基本的内容——基带传输。对于基带信号而言,通过信道以后会产生诸多畸变。其中最重要的畸变之一是由于通过一个带限的信道,在频域上可近似等价于和一个门信号相乘,而时域上则等价于和一个Sa信号卷积。如下图所示左边为时域Sa函数,右边为等效低通的门信号:

其结果就是本来应该是脉冲的信号在时域上产生了延拓,也就是拖尾……这样相邻的信号的幅度值就会和这个信号的拖尾叠加发生改变。改变的后果就是原本我们可能在发端映射的是I路3A,Q路A,但在收端却变成了3A-x,和A+y。等效于引入了很大的噪声。好在我们在通信原理中引入了乃奎斯特准则,给出了如果要无码间串扰需要在发端加入成型滤波器,让DA出来的值不是直挺挺的脉冲而是变成了某个形状的波形。而这一过程是在星座映射之后,DA之前。

基带成型滤波器基本流程如下

这样DA出来的波形就是一个类似于余弦样子的波形了。至于为什么这样就没有码间串扰了,公式太多,QQ也写不出来。

最后来说一下接收的问题。从上面的所谓发射的过程就是产生一个有特定幅度和相位的余弦信号的过程。而所谓的接收呢,其实本质就是反过来,是识别这个余弦信号的幅度和相位的过程。这个过程可以有很多办法,我这里还是介绍最常见的IQ正交解调过程。

这个过程本质上来说还是一个三角函数的变换过程。上面说了,有三角函数:

Acos(wt+α)=Acos(α)cos(wt)+Asin(α)sin(wt)

如果要识别A和α,其本质其实上是识别Acos(α)和Asin(α)即可。

而这如何识别呢,考虑Acos(wt+α)*cos(wt)=Acos(α)cos(wt)*cos(wt)+Asin(α)sin(wt)*cos(wt)=1/2*Acos(α)(cos(2wt)+1)+1/2*Asin(α)sin(2wt)。对于这样一个结果,我们很高兴的发现,有一个常数项1*1/2*Acos(α),而另外两个属于是高频项。对于此,任何学过信号与系统的同学都应该明白,只需要用一个低通滤波器就可以把1/2*Acos(α)提取出来。1/2*Asin(α)的提取方法类似。

当然这只是理想的过程,实际中接收机远比这个复杂,信号的识别过程也是有很多花样的。今天也写了很多了,就不再详细的说了。希望今天写的这些,对各位同学有所帮助

时间: 2025-01-25 04:46:41

IQ调制、成型滤波及星座映射的相关文章

MATLAB脉冲成型

Fd=1; Fs=8; Delay=3; R=0.5; [yf,tf]=rcosine(Fd,Fs,'fir/sqrt',R,Delay); figure(1); plot(yf); grid;title('根升余弦滤波器时域波形') x=randint(100,1)*2-1;%原始输入信号为+1,-1码 xt=zeros(1,800); xt(1:8:end)=x; %%插值后信号 y1=filter(yf,tf,xt); %%成型滤波 y2=filter(yf,tf,y1); %%用与发送端

GNU  Radio 中OFDM  Tunnel 详解

(在gnuradio3.4中确实有文中的例子,而且也在相应的目录下,在gnuradio3.7.1中,基于GMSK的是在/usr/local/share/gnuradio/examples/digital/narrowband目录下,基于OFDM的是在/usr/local/share/gnuradio/examples/digital/ofdm目录下,本文讲的应该是在3.4下的,但看了3.7的感觉大同小异) OFDM Tunnel是GNU Radio中很经典的例子.Tunnel有两个,一个是基于G

315晚会报道的无人机是怎么被劫持的?

0x00 背景 在2015年GeekPwn的开场项目中,笔者利用一系列漏洞成功演示劫持了一架正在飞行的大疆精灵3代无人机,夺取了这台无人机的控制权,完成了可能是全球首次对大疆无人机的劫持和完整控制.GeekPwn结束后,组委会立即将漏洞通知给官方,而大疆也很快完成了漏洞的修复.今年的3月15号,大疆发布了全新一代的精灵4代无人机,精灵3代从此退居二线:同时央视315晚会也对去年GeekPwn的这个劫持项目进行了详细的报道. 考虑到这些漏洞的修复已经过了足够长的时间,我们决定公开漏洞的完整细节和利

[复变函数]第04堂课 1. 3 复变函数

1. 概念 (1) 单值函数.多值函数 $w=f(z)$ a. 例: $w=|z|,\bar z, z^2, \cfrac{z+1}{z-1}\ (z\neq 1), \sqrt[n]{z}\ (z\neq 0,\ n\geq 2),\ \Arg z\ (z\neq 0).$ b. 不特别声明, 以后均指单值函数. c. 函数的表示: $$\beex \bea &\quad w=f(z),\ w=u+iv,\ z=x+iy=re^{i\tt}\\ &\ra w=u(x,y)+iv(x,y)

gnuradio中接收端的信道滤波

在benchmark_rx中在接收端使用了FFT低通滤波器来得到感兴趣的频段,以滤除带外噪声,然而机器运行benchmark_rx时总是出现"段错误",究其原因就是使用了信道滤波,当把信道滤波去掉之后运行起来就没有什么问题了.然而滤除带外噪声也是有必要的,所以对信道滤波部分进行了研究. 在软件无线电中,信道滤波实际就是低通滤波器,在benchmark_rx中是这样使用的:在filter.firdes.low_pass()中设定了滤波器的抽头系数,然后使用fft_filter()实现滤波

qpsk-Matlab下的QPSK+成形滤波的仿真问题

问题描述 Matlab下的QPSK+成形滤波的仿真问题 各位大侠好,我是通信工程毕业的,不过对通信原理理解的不太升入,参考别人的代码用matlab做了一个QPSK仿真.存在以下几点问题,希望大侠能解答: 1,已知fs,fc,数据码率下如何确定接收端带通滤波器的带宽. 2,已知fs,fc,数据码率下如何确定相干解调后低通滤波器的带宽. 3,我根据自己的理解对滤波器参数进行了设定,但是发现误码率反而比没有滤波器的时候增大了,简而言之就是无论怎么设置,接收端增加滤波器后,误码率就会变大. 附代码,已测

ADSL调制与业务承载

目前,宽带接入技术已经成为IT界日益关注的热点.在各种宽带接入技术中,具有代表意义的一种技术就是ADSL(非对称数字用户线).这种技术可以通过现有普通电话用户双绞线,实现远距离的高速非对称数据传输,同时还可以维持原有的电话业务及其质量,是一种集话音与数据一起的.新的铜线接入技术.它的最大特点是能够提供高达8Mbit/s的下行速率.例如,可以使用ADSL技术来提供1.5M MPEG-1或4M MPEG-2的VOD业务. ADSL更为吸引人的地方是:它在同一铜线上分别传送数据和语音信号,数据信号并不

QPSK信号调制与解调

1 %%  ----------------QPSK----------------------------------2 clc;3 clear all;4 %假定接收端已经实现载波同步,位同步(盲信号解调重点要解决的问题:载波同步(costas环(未见到相关代码)),位同步(Gardner算法(未见相关代码)),帧同步)5 % carrier frequency  for modulation and demodulation 6 fc=5e6;7 %QPSK transmitter8 da

课程设计——数字通信计算机仿真:2PSK调制仿真

三周课设要用MFC完成2PSK仿真,从信号形成,低通滤波,调制解调,加入高斯白噪声,带通滤波等等,很多人没有充分利用起这次机会来充实自己,其实我认为这三周让我对MFC有了一次全新的认识.以前没有触及绘图方面的知识,这次的波形图完全用程序实现,坐标和曲线全都是从头计算!有了绘图的经历,我不再惧怕未知领域,这些早晚是要学的,如果你想以后再去研究,那到时候可能真的没有那么多时间了.