文章目录
- 前言
- 正交频分复用(OFDM)
- 1.从FDM到OFDM
- 2.OFDM系统的调制与解调
- 3.ICI与ISI
- 参考
前言
最近在学OFDM,把相关公式看了一遍,明白了很多,但还有很多疑惑之处.为了方便复习,便把自己学习的理解记录下来.下面包含了很多自己的理解,很多地方也没有严谨的数学推导,如果有错误希望不吝赐教.
在某些应用场合,希望实现多信道信号传输,将携带相同信息的信号在几条信道上传输,这种传输模式最初用于一个或多个不可靠的概率比较高的情况。另外多信道信号传输有时用在军事通信系统中,作为克服传输信号阻塞影响的手段。在多信道上传输相同的信息时,可利用信号分集的方法使接收机恢复信息。
另一种形式的多信道通信是多载波传输,其中信道的频带被划分为若干条子信道,且信息在每条子信道传输。
OFDM是指正交频分复用,属于多载波传输。
正交频分复用(OFDM)

1.从FDM到OFDM
在通信系统中,信道所提供的带宽往往要比传送一路信号所需带宽宽得多,假如一个信道只传输一路信号会浪费很多带宽.为了提高带宽利用率,频分复用(FDM)通常常将可用的信道带宽划分成若干较窄宽度的子带.我们常用的调频广播就是使用的FDM,用收音机接收广播时,不同广播电台使用不同频率,经过带通滤波器的通带,把想要听的广播电台接收下来.

但是为什么频域是sinc函数呢?这是因为发送信号的持续时间有限,相当于时域加矩形窗,根据Fourier变换的性质,频域会卷积sinc函数.所以为了防止邻路信号混叠干扰,通常还会加上防护频带.

但是有没有可能在不使信号失真的情况下进一步减少使用的带宽呢?正交频分复用就可以做到

初看上图会发现,频域不是混叠了吗?这样信号也不会失真吗?其实奥秘就在于OFDM所使用的正交子载波.
那么,什么是正交?
之前写过一篇博客里面对比了向量和信号.向量正交就是内积为0,信号正交就是信号相关为0,其实本质形式都是一样的,都是随机过程的二阶矩为0,更一般的说法就是投影值为0。
R x y = E [ X ( t ) Y ( t ) ] = 0 R_{xy}=E[X(t)Y(t)]=0 Rxy=E[X(t)Y(t)]=0
具体到子载波正交就是指两个子载波的一个符号周期内的相关值为0
E [ X k ( t ) X j ( t ) ] = ∫ 0 T c o s ( 2 π f k t + ϕ k ) c o s ( 2 π f j t + ϕ j ) d t = 0 E[X_k(t)X_j(t)]=\int^T_0cos(2\pi f_kt+\phi_k)cos(2\pi f_jt+\phi_j)dt=0 E[Xk(t)Xj(t)]=∫0Tcos(2πfkt+ϕk)cos(2πfjt+ϕj)dt=0
我们可以将正交子载波类比正交基向量,正交子载波上表示的信号也可以类比成点坐标,正交基向量表示的无限维空间坐标系中的一个点,而我们要传输的码元序列可以当作这个正交坐标系的坐标 ( a , b , c . . . ) (a,b,c...) (a,b,c...),而解调过程就是和载波求相关,可以理解成点向量往正交坐标系的坐标轴上投影求坐标值.这种通信可靠性的本质在于能否可以将码元序列准确地描述成坐标系内的点坐标并传输,所以这里可靠通信的必要条件是承载符号信息的信号不相关,即它们的坐标轴不相关,坐标轴相关就会导致符号混叠在一起对相关符号产生码间干扰.
举个线性相关的例子,我们将码元序列 ( a , b , c ) (a,b,c) (a,b,c)表示为一个三维坐标系的点 a x ⃗ + b y ⃗ + c z ⃗ a\vec{x}+b\vec{y}+c\vec{z} ax+by+cz,如果第三个基向量 z ⃗ = x ⃗ + y ⃗ \vec{z}=\vec{x}+\vec{y} z=x+y,那么我们实际传输的信号为 ( a + z ) x ⃗ + ( b + z ) y ⃗ (a+z)\vec{x}+(b+z)\vec{y} (a+z)x+(b+z)y,符号之间产生了干扰.并且由于三维空间映射成了二维空间,接收者只能接收到两个坐标值,纵使知道基向量的线性关系,两个方程也解不出三个未知数,可以说接收者什么也没收到
而信号正交必然不相关(这里我也不会证明,看来以后有空还得学学随机过程分析).所以无论是FDM还是OFDM,其本质都是使用不相关的正交坐标系准确描述点坐标,这样才可以准确传输码元序列.而子载波频谱不混叠只是正交的充分条件而非必要条件
现在我们再从这个角度思考下为什么要引入OFDM?文章开头的解释是不浪费带宽,但是不浪费带宽还带来了什么好处吗?
假如把码元序列当作正交坐标系里的点坐标的话,那么使用TDM传输码元序列本质上也是使用一组正交基向量唯一确定这个点坐标.时域不混叠当然两个信号是正交的,但也只是充分条件,并且这个条件就会影响降低通信速率,因为传输多个符号的信号不能时域混叠就意味着不能同时发送,但是如果引入了FDM,我们就可以用频域的正交基向量表示这个点,这样就可以时域混叠传输,即多个码元符号可以同时传输;而引入OFDM就意味着正交基向量之间的距离更近了,在有限的空间(带宽)中可以表示更高维的信息,这不仅可以提高传输速率,还能提高通信的抗干扰能力,因为传输坐标点(信息)之间的距离变大了.
如果我们将码元序列放在频域上描述,我们可以在一个符号时长T内,用N个子载波各自发送一个信号F(k),即同时发送了N个符号;但是如果我们将码元序列放在时域上,我们需要使用NT时长发送N个时长为T的符号(降低传输速率),或者使用T时长发送N个时长为T/N的符号(加大码间干扰).在一个具有N个子信道的OFDM系统中,每个子载波上的符号速率 1 T \frac{1}{T} T1降低到 1 N T \frac{1}{NT} NT1,这是对于单载波系统而言的,该系统占用所有的带宽 W W W.只要选择的N足够大,符合间隔T就可以远远大于信道时间色散的持续时间,所以符号间干扰可以通过选择N变得任意小
言归正传,什么样的子载波才是正交的?
根据和差化积公式化简
KaTeX parse error: No such environment: align* at position 8: \begin{̲a̲l̲i̲g̲n̲*̲}̲ &\int_{0}^{T}\…
现在将 f k = k T f_k=\frac{k}{T} fk=Tk和 f j = j T f_j=\frac{j}{T} fj=Tj代入上式:
KaTeX parse error: No such environment: align* at position 8: \begin{̲a̲l̲i̲g̲n̲*̲}̲ &=\frac{1}{2}\…
发现通过控制符号周期等于$ f_k=\frac{k}{T}$,可以实现在符号间隔 1 / T 1/T 1/T上各个子载波都是相互正交的,并且这种正交性与子载波间的相对相位无关(从相位的角度也可以理解为与时间无关).
2.OFDM系统的调制与解调
假定每个子载波上的符号都采用M进制QAM,则第k个子载波上的信号可以表示为
KaTeX parse error: No such environment: align* at position 8: \begin{̲a̲l̲i̲g̲n̲*̲}̲ u_k(t)&=\sqrt{…
式中, X k = A k e j θ k X_k=A_{k}e^{j\theta_k} Xk=Akejθk是第k个子载波上传输的QAM信号星座上的点,幅度是 2 T \sqrt{\frac{2}{T}} T2是为了保证子载波上的信号能量归一化.每个调制符号的能量都被吸收到 X k {X_k} Xk.调制就是根据需要传输的符号乘以幅度和相位的载波(注意,载波一旦确定,传输符号就已经确定了)解调就是做投影之后归一化,求距离最近的星座点
N ~ \tilde{N} N~个子载波信号总和 u ( t ) u(t) u(t)的样值(这个连等式是成立的,可以这样理解,向量之和的横坐标等于向量横坐标之和)
KaTeX parse error: No such environment: align* at position 8: \begin{̲a̲l̲i̲g̲n̲*̲}̲ u(t) &= \sum_{…
这个实部看上去非常讨厌,不利于我们进一步处理,所以我们需要将序列 X k {X_k} Xk变为共轭信息序列,使括号内部的式子变成实数,就可以去掉Re符号了.同时原来的符号 X 0 X_0 X0分解成两部分,两者均为实数.于是我们可以改成将 X k X_k Xk如下定义生成
{ X N ~ − k ′ = X k ∗ , k = 1 , . . . , N − 1 且 N ~ = 2 N X 0 ′ = R e ( X 0 ) X N ′ = I m ( X 0 ) \left\{ \begin{aligned} X_{\tilde{N}-k}'&=X_k^*,k=1,...,N-1且\tilde{N}=2N\\ X_0'&=Re(X_0) \\ X'_{N}&=Im(X_0) \end{aligned} \right. ⎩⎪⎪⎨⎪⎪⎧XN~−k′X0′XN′=Xk∗,k=1,...,N−1且N~=2N=Re(X0)=Im(X0)
为什么 X 0 ′ X_0' X0′和 X N ′ X'_{N} XN′要单独处理?这和后面使用FFT实现OFDM有很大的关系,因为 X 0 ′ X_0' X0′是直流分量,而直流分量只能是实数,假如仍然让 X N ′ = X 0 ∗ X_N'=X_0^* XN′=X0∗,可以发现实数的共轭只能是实数本身,但QAM的码元符号一般都是复数,如果不单独处理,码元符号的虚部就丢掉了!
上式中,T是符号的持续时间,第k个子载波上的频率 f k = k T f_k=\frac{k}{T} fk=Tk,而OFDM信号通常在时域上进行采样,而根据Nyquist采样定理 f s = N ~ f f_s=\tilde{N}f fs=N~f,最低的采样率采样周期为 T s = T N ~ T_s=\frac{T}{\tilde{N}} Ts=N~T,则采样时刻 t = n T N ~ t=n\frac{T}{ \tilde{N}} t=nN~T的抽样值为
KaTeX parse error: No such environment: align* at position 8: \begin{̲a̲l̲i̲g̲n̲*̲}̲ u[n] &= u(n T)…
我们知道实数序列的DFT是共轭序列,反过来也可以说共轭序列的IDFT是实数序列所以我们可以得到
u [ n ] = I D F T ( X k ) u[n]= IDFT(X_k) u[n]=IDFT(Xk)
这也符合我们的理解:OFDM将传输的一段码元序列当作复频域序列,其调制过程就是在做IDFT,变换到时域,其解调过程就是DFT
并且由于DFT使用的基向量都是特征向量,所以根据卷积定理,时域码元序列通过LTI系统需要和LTI系统冲激响应卷积,而码元符号通过LTI系统只需要和频率响应做简单的数乘即可.
当子信道的数目很大,使得子信道的带宽足够窄时,每个子信道就可以由一个频率响应来表征
C ( f k ) = C k = ∣ C k ∣ e j ϕ k C(f_k)=C_k=|C_k|e^{j\phi_k} C(fk)=Ck=∣Ck∣ejϕk
所以第k个子信道上接收信号就是
r k ( t ) = R e [ 2 T C k X k e j 2 π f k t ] + n k ( t ) r_k(t)=Re[\sqrt{\frac{2}{T}}C_{k}X_{k}e^{j2\pi f_kt}]+n_k(t) rk(t)=Re[T2CkXkej2πfkt]+nk(t)
解调方法为:将 r k ( t ) r_k(t) rk(t)与两个基函数互相关,即作投影,得到的接收信号矢量为
y k = ( ∣ C k ∣ A k i + η k r , ∣ C k ∣ A k q + η k i ) y_k=(|C_k|A_ki+\eta_kr,|C_k|A_kq+\eta_ki) yk=(∣Ck∣Aki+ηkr,∣Ck∣Akq+ηki)
用复数表示则为
Y k = ∣ C k ∣ X k + η k Y_k=|C_k|X_k+\eta_k Yk=∣Ck∣Xk+ηk
归一化后
Y k ′ = Y k / ∣ C k ∣ = X k + η k ′ Y'_k=Y_k/|C_k|=X_k+\eta'_k Yk′=Yk/∣Ck∣=Xk+ηk′
计算出归一化变量 Y k ′ Y'_k Yk′与QAM信号星座图上各点之间的距离度量,并选中最小距离的信号点.
而估计和补偿信道因子 { C k } \{C_k\} {Ck}是一件简单的事.我们可以提前使用训练序列测量 { C k } \{C_k\} {Ck},该训练序列由已知的已调制序列组成.当然,信道参数是有可能随时间缓慢变化,我们可以通过采用面向判决方式在检测器或译码器输出端进行判决,这样就能跟踪该时间变化.因此,多载波系统可以设计成自适应的
对于每个子信道,我们需要用两个互相关器或者匹配滤波器理解调每个子信道上的接受信号,如果OFDM信号含有N个子信道,那么实现OFDM解调器就需要用2N个互相关器或匹配滤波器组成的并行阵列.可以看作用符号去激励2N个并行滤波器组.
3.ICI与ISI
OFDM中的ISI是由于信号在传输过程中经过多径传播而产生的。多径效应使得信号沿着不同的路径到达接收端,这些路径长度的差异导致信号到达时间不同。当这种延迟超过OFDM 符号的保护间隔,比如循环前缀长度时,就会出现一个符号的信号对相邻符号产生干扰的情况,这就是ISI。它对系统性能危害较大,会造成接收端信号解调出错。
而ICI主要源于多普勒频移和频率同步误差。而频移会破坏子载波间的正交性,进而导致子载波之间相互干扰,即 ICI。
可以通过把每个子信道的带宽 Δ f \Delta f Δf选择得很小,则符号的持续时间 T = 1 Δ f T=\frac{1}{\Delta f} T=Δf1相比于信道弥散时间就比较大了(这里的信道弥散时间指的是多径效应引起的弥散).具体地说,让我们假设信道弥散时间覆盖 v + 1 v+1 v+1个信号样值,其中 v < < v<< v<<N.避免ISI的一频率分量种方法实在连续分组传输中插入一个持续时间为 v T N \frac{vT}{N} NvT的时间保护带.这个保护间隔可以填充ZP(补零)或者CP(循环前缀)或者CS(循环后缀),但是想要消除ICI,只能往里面填充CP和CS
避免ISI的另一种方法是,给每个分组的N个信号样值 x 0 , x 1 , . . . , x N − 1 {x_0,x_1,...,x_{N-1}} x0,x1,...,xN−1添加一个循环前缀,该分组样值的循环前缀由分组末尾的 v v v个样值 x N − v , x N − v + 1 , . . . , x N − 1 {x_{N-v},x_{N-v+1},...,x_{N-1}} xN−v,xN−v+1,...,xN−1.将这些新的样值添加在每个分组的开端,注意,循环前缀加入数据分组,使得分组的长度增加到 N + v N+v N+v个样值,其编号为 n = − v , . . . , N − 1 n=-v,...,N-1 n=−v,...,N−1其中头v个样值构成前缀,如果 { c n , 0 ≤ h ≤ v } \{c_n,0\leq h\leq v\} {cn,0≤h≤v}表示信道冲激响应样值,则它与 { x n , − v ≤ n ≤ N − 1 } \{x_n,-v\leq n\leq N-1\} {xn,−v≤n≤N−1}的卷积产生接收序列 r n {r_n} rn.对于接收序列我们只关心 0 ≤ n ≤ N − 1 0 \leq n \leq N-1 0≤n≤N−1范围内的样值,此范围的样值采用N点DFT解调方法恢复发送序列,因此 r n {r_n} rn的循环前缀被舍弃
但为什么要填充循环前缀而不是其他呢?这样看如果只有保护带也能有效的避免多径造成的码间干扰.因为补零会造成ICI,而循环前缀可以避免多径造成的ICI

仔细观察上图,由于多径效应,第一条路径的时延和第二条路径不相同,到达接收机后第一子载波和第二子载波不再正交了,解调过程中分别与本地载波做内积,显然是不为0的,从时域上来看这是因为做内积的不是一个完整的周期信号,从频域上来看,这是因为第二子载波引入了非正交的频率分量(补零会使矩形窗变窄)

那么如何使载波保持正交呢?最好的方法就是保持不引入新的频率分量,这需要保持原有的载波连续.而引入循环前缀或者循环后缀就是在时域上为原有信号加入新的周期循环.
累了,剩下的下次再写吧
参考
数字通信第五版 John G. Proakis
LTE入门篇-4:OFDM
John Smith. (2023). The Basics of Orthogonal Frequency Division Multiplexing (OFDM).
8235

被折叠的 条评论
为什么被折叠?



