FPGA实现OFDM(1)-OFDM原理
FPGA实现OFDM(1)-OFDM原理失 踪 人 口 回 归OFDM定义fromwiki:调制是将传送资料对应于载波变化的动作,可以是载波的相位、频率、幅度、或是其组合。正交频分复用之基本观念为将一高速资料流程,分割成数个低速资料流程,并将这数个低速资料流程同时调制在数个彼此相互正交载波上传送。由于每个子载波带宽较小,更接近于相干带宽,故可以有效对抗频率选择性衰弱,因此现今以大量采用于无线通信。
FPGA实现OFDM(1)-OFDM原理
失 踪 人 口 回 归
文章目录
OFDM定义
fromwiki:调制是将传送资料对应于载波变化的动作,可以是载波的相位、频率、幅度、或是其组合。正交频分复用之基本观念为将一高速资料流程,分割成数个低速资料流程,并将这数个低速资料流程同时调制在数个彼此相互正交载波上传送。由于每个子载波带宽较小,更接近于相干带宽,故可以有效对抗频率选择性衰弱,因此现今以大量采用于无线通信。
正交频分复用属于多载波(multi-carrier)传输技术,所谓多载波传输技术指的是将可用的频谱分割成多个子载波,每个子载波可以载送一低速资料流程。
直观感受
在频域上,不妨考虑常规FDM(frequency division multiplexing):
可以看出,在两路的信号中存在着保护频段(Guard bands)来保证不发生频谱泄露.显然,这样会带来额外的开销和较低的吞吐量.
那我们可不可以把他在不发生干扰(或者尽量小)的情况下靠近一点,甚至发生一定的重叠呢?
考虑两个正弦信号sin(t)和sin(2t)作为中心频率,假设理想门函数在[0-2 π \pi π],则频域上为分别对sinc信号的搬移:
此时不妨将两个信号进行叠加:
可见,此时信号主要部分在[ 1 π \frac1\pi π1- 2 π \frac2\pi π2]间发生了重叠,但不妨对其进行内积计算(不过我看正常人都知道这两玩意正交吧…):
< s i n ( t ) R e c t ( 2 π ) , s i n ( 2 t ) R e c t ( 2 π ) > = ∫ 0 2 π s i n ( t ) s i n ( 2 t ) d t <sin(t)Rect(2\pi),sin(2t)Rect(2\pi)> = \int^{2\pi}_0sin(t)sin(2t)dt <sin(t)Rect(2π),sin(2t)Rect(2π)>=∫02πsin(t)sin(2t)dt
= − 1 2 ∫ 0 2 π s i n ( t ) + s i n ( 3 t ) d t = 0 =-\frac12\int^{2\pi}_0 sin(t) +sin(3t)dt = 0 =−21∫02πsin(t)+sin(3t)dt=0
所以事实证明我们可以将他按一个最小的频率间隔进行重叠,但此时由于考虑到实际的升余弦滤波器,实际的频谱图应该是长这样的:
需要注意的是,由于后续的频谱搬移,原信号的负频率部分也会被移出来.而对理想带通信道,奈奎斯特带宽W=1/T.此时可以理解为此信号在传输一个复数信号,而一个复数实际上传输了两个数据,分别承载在sin和cos载波上。
所以加上中心导频后,整个频谱图就可以看成:
但由于虽然我们只说了两个子载波之间可以重叠,但是其实并没有说明他们每一路信号应该怎么调制,所以OFDM中就会有很多变种,比如说ASK-OFDM等(见于直观图解OFDM原理).
OFDM信号模型
从上面的直观感受中,能大概看出OFDM的信号产生流程应该是这样:
从频域的角度,结合傅里叶变换公式:
f ^ ( t ) = ∫ − ∞ ∞ f ( x ) e 2 π j f t d x \hat{f}(t)=\int_{-\infty}^{\infty} f(x) e^{2 \pi j f t} d x f^(t)=∫−∞∞f(x)e2πjftdx
易得在 t s t_s ts时刻下的OFDM信号模型:
s ( t ) = Re { ∑ k = 0 N − 1 X k g ( t − t s − T 2 ) exp [ j 2 π ( f c + ( k − N − 1 2 ) Δ f ) ( t − t s ) ] } s(t)=\operatorname{Re}\left\{\sum_{k=0}^{N-1} X_{k} g\left(t-t_{s}-\frac{T}{2}\right) \exp \left[j 2 \pi\left(f_{c}+\left(k-\frac{N-1}{2}\right) \Delta f\right)\left(t-t_{s}\right)\right]\right\} s(t)=Re{k=0∑N−1Xkg(t−ts−2T)exp[j2π(fc+(k−2N−1)Δf)(t−ts)]}
其中,s(t)为时域OFDM信号,累加为N个子载波.T为每一信号维持时间.
X k X_k Xk为第k个子载波的发送信号, g ( t − t s − T 2 ) g\left(t-t_{s}-\frac{T}{2}\right) g(t−ts−2T)为脉冲成型函数
此时第k个子载波的频率为: f c + ( k − N − 1 2 ) Δ f f_{c}+\left(k-\frac{N-1}{2}\right) \Delta f fc+(k−2N−1)Δf, f c f_c fc为中心频率.
此时不妨假设g(t)为矩阵脉冲,还没开始频谱搬移,则可得上式等效低通形式为:
s l ( t ) = ∑ k = 0 N − 1 X k exp [ j 2 π k Δ f ( t − t s ) ] s_{l}(t)=\sum_{k=0}^{N-1} X_{k} \exp \left[j 2 \pi k \Delta f\left(t-t_{s}\right)\right] sl(t)=k=0∑N−1Xkexp[j2πkΔf(t−ts)]
由于在OFDM中,任意两个子载波都要求正交,那不妨对任意两个子载波进行内积,即:
1 T ∫ t s t s + T X k X l ∗ exp [ j 2 π k Δ f ( t − t s ) ] exp [ − j 2 π l Δ f ( t − t s ) ] d t = 0 \frac{1}{T} \int_{t_{s}}^{t_{s}+T} X_{k} X_{l}^{*} \exp \left[j 2 \pi k \Delta f\left(t-t_{s}\right)\right] \exp \left[-j 2 \pi l \Delta f\left(t-t_{s}\right)\right] d t=0 T1∫tsts+TXkXl∗exp[j2πkΔf(t−ts)]exp[−j2πlΔf(t−ts)]dt=0
合并得:
1 T ∫ 0 T exp [ j 2 π ( k − l ) Δ f t ] d t = 0 \frac{1}{T} \int_{0}^{T} \exp [j 2 \pi(k-l) \Delta f t] d t=0 T1∫0Texp[j2π(k−l)Δft]dt=0
可以回想一下上文中sin(t)和sin(2t)正交证明时的积分过程,易得此时正交成立的条件为:
Δ f = m T ( m 为正整数 ) \Delta f=\frac{m}{T}(m \text { 为正整数 }) Δf=Tm(m 为正整数 )
那不妨取最小值,即:
Δ f = 1 / T \Delta f=1 / T Δf=1/T
此时回代等效低通形式,得:
s l ( t ) = ∑ k = 0 N − 1 X k exp [ j 2 k π T ( t − t s ) ] s_{l}(t)=\sum_{k=0}^{N-1} X_{k} \exp \left[\frac{j 2 k \pi}{T}\left(t-t_{s}\right)\right] sl(t)=k=0∑N−1Xkexp[Tj2kπ(t−ts)]
正交条件表明:任意两个子载波的间隔为1/T的整数倍时,各个子载波相互重叠正交;理想情况下不存在子载波间干扰.
解调
解调的思路也很简单,由于各个载频间互相正交,所以只要对上变频后的信号下变频,再进行fft就可以得到源信号了,对第l路信号解调具体证明如下:
X ^ l = 1 T ∫ t s t s + T { exp [ − j 2 l π T ( t − t s ) ] ∑ k = 0 N − 1 X k exp [ j 2 k π T ( t − t s ) ] } d t = ∑ k = 0 N − 1 X k 1 T ∫ t s t s + T exp [ j 2 ( k − l ) π T ( t − t s ) ] d t = X l \begin{aligned} \hat{X}_{l} &=\frac{1}{T} \int_{t_{s}}^{t_{s}+T}\left\{\exp \left[-\frac{j 2 l \pi}{T}\left(t-t_{s}\right)\right] \sum_{k=0}^{N-1} X_{k} \exp \left[\frac{j 2 k \pi}{T}\left(t-t_{s}\right)\right]\right\} d t \\ &=\sum_{k=0}^{N-1} X_{k} \frac{1}{T} \int_{t_{s}}^{t_{s}+T} \exp \left[\frac{j 2(k-l) \pi}{T}\left(t-t_{s}\right)\right] d t=X_{l} \end{aligned} X^l=T1∫tsts+T{exp[−Tj2lπ(t−ts)]k=0∑N−1Xkexp[Tj2kπ(t−ts)]}dt=k=0∑N−1XkT1∫tsts+Texp[Tj2(k−l)π(t−ts)]dt=Xl
对OFDM信号进行抽样
显然,上面的讨论都是模拟的,对我们OFDM的实现没有什么帮助.此时我们需要对OFDM信号模型进行抽样.,注意此时跟平时讨论的情况不一样,负频率也是作为子载波的一部分,所以抽样间隔应为T/N.
所以假设一个OFDM符号维持时间为T,共有N个子载波,开始时间为 t s t_s ts则根据奈奎斯特抽样定理
t n = t s + n T N t_{n}=t_{s}+\frac{n T}{N} tn=ts+NnT
利用DFT/IDFT实现OFDM
此时将 t n t_n tn回代到信号模型的低频等效形式中可得:
s n = s ( t s + n T ) = ∑ k = 0 N − 1 X k e j 2 k n π N s_{n}=s\left(t_{s}+n T\right)=\sum_{k=0}^{N-1} X_{k} e^{\frac{j 2 k n \pi}{N}} sn=s(ts+nT)=k=0∑N−1XkeNj2knπ
噢,这该死的形式,那不就是 IDFT吗!同样的,我们对信号进行解调过程中也进行抽样,可得:
X ^ k = 1 N ∑ n = 0 N − 1 s n e − j 2 k n π N \hat{X}_{k}=\frac{1}{N} \sum_{n=0}^{N-1} s_{n} e^{-\frac{j 2 k n \pi}{N}} X^k=N1n=0∑N−1sne−Nj2knπ
噢,这该死的形式,那不就是 DFT吗!这究竟是人性的丧失还是道德的沦丧呢?
这里的DFT啊说是天意也好,说是巧合也好,他不仅大大简化了实现的方式(现在大概就是调个ip那样的难度吧),而且还由于DFT的一些特性,在后面他还带来了一些好东西.
框图更新
在这里,得知这个消息之后我们可以进一步更新实现框图:
OFDM保护间隔
信道介绍
由于在OFDM中,频带能重叠的根本保障是各子载波频率间是互相正交的,所以我们需要减低有关对频率正交性的干扰,对通信信道中的衰落和干扰大致分为以下几类:
此处我们主要考虑多径对OFDM所引入的符元间干扰(Inter-symbol Interference),即ISI,指过去的信号对现在所得信号的干扰.用公式来说就是,对输入x[n],经过传输后的信号可能就变成了这样:
y [ n ] = ∑ j = 0 L − 1 h l x [ n − l ] + z [ n ] = h 0 x [ n ] + ∑ j = 1 L − 1 h l x [ n − l ] + z [ n ] y[n]=\sum_{j=0}^{L-1} h_{l} x[n-l]+z[n]=h_{0} x[n]+\sum_{j=1}^{L-1} h_{l} x[n-l]+z[n] y[n]=j=0∑L−1hlx[n−l]+z[n]=h0x[n]+j=1∑L−1hlx[n−l]+z[n]
其中, h 0 x [ n ] h_0x[n] h0x[n]为我们想要的信号,而 ∑ j = 1 L − 1 h l x [ n − l ] \sum_{j=1}^{L-1} h_{l} x[n-l] ∑j=1L−1hlx[n−l]即为过去的信号对现在的信号的干扰,z[n]为信道噪声.用图来说,现在是这个样子:
加特定字段UW/ZP
那在这个时候,我们能不能在信号前后加点特别的字段,当他一看见这个字段就揪出这多径干扰了呢?
这是第一种方法,在每一个符号的后面加一个特殊的字段(例如补零,即ZP-OFDM),那便是数00000都能数出多径干扰来.
循环前缀CP(后缀CS)
但实际上有一种更巧妙的方式来填充这一个字段,在上一节中我们讨论过,OFDM的调制解调可以通过IDFT/DFT来实现.
而从DSP原理上,我们可以说DFT是DFS取主值周期的一种方式,不同于DTFT采用的是线性卷积,在DFS/DFT中采用的是循环卷积,则DFT具有循环移位性,就是时域序列上的移位可以对应频域序列的相移:
F ( { x n − m } ) k = X k e − 2 π i N k m \mathcal{F}\left(\left\{x_{n-m}\right\}\right)_{k}=X_{k} e^{-\frac{2 \pi i}{N} k m} F({xn−m})k=Xke−N2πikm
所以我们可以将这个OFDM符号的后一段搬到前面去,即为循环前缀(CP).又或是将符号的前一段搬到后面去,即为循环后缀(CS).下文以CP举例,即为:
可见引入了CP后,不仅消除了多径所引起的ISI,而且这对FFT的积分窗位置也有了一定的宽容,即能增强OFDM信号对符号定时误差的容忍度.这里放国防科技大学一页ppt来作为好处和抗多径能力总结:
其中,ICI为信道间干扰,多径时延是造成OFDM系统ISI和ICI的根本原因。
通过加入保护间隔,可以有效避免ISI。这个保护间隔可以填充ZP(补零)或者CP(循环前缀)或者CS(循环后缀)。
但是想要消除ICI,之能是往保护间隔里面填充CP和CS。 一个一石二鸟的同时消除ISI和ICI的方法就是加入保护间隔,并且给给保护间隔填充CP或者CS。
所以在这里,我们要进一步拓展实现框图:
多载波调制
我们说OFDM系统采用的是多载波方式,应用方式讲一大堆了,却还没好好讲讲多载波调制是啥.
还是从多径效应入手,多径在时域上是不同时延的信号产生混叠,从而导致码间串扰(ISI).所以在符号的持续时间太短(远小于多径时延拓展)的时候,ISI会严重影响传输性能.而且传统的单载波系统中均衡方法比较复杂,对ISI严重时补偿还未必跟得上.
另外,多径信道是频率选择性信道,即频率选择性衰落(Frequency Selective Fading):
结合上述情况,多载波调制即将带宽内划分为多个信道,则每个信道所分到的带宽为BW/N.由香农公式可知,此时总的信道容量不变,则每一子信道中的符号维持时间能到原来的N倍.图示即为:
可见此时我们便有了更多的时间去处理ISI,而且由于在多载波调制中,如果信道足够窄,则可以认为信道特性接近理想信道特性.
又由于在OFDM中,仅规定了每一子载波的频率,但并没有规定该子载波的幅度和相位,所以不同信道中可以分别使用如PSK,ASK,QAM等调制方式.在这个前提下,我们可以选择在频率衰落严重的信道中采用更抗干扰,低数据率的调制方式,在频率响应号的信道采用更高数据率的调制方式等策略来是适应频率选择性衰落.
OFDM缺点
主要参考wiki,这里主要考虑首尾呼应(doge.主要是不想写了…
传送与接收端需要精确的同步
此項缺點是指取樣頻率產生偏移時,會造成所收到的星座圖產生旋轉的現象,若無法取出正確的訊號時,則會造成ICI的產生,使性能下降。此外,都卜勒效應所造成的頻率偏移,或是傳送端和接收端的振盪器產生的頻率有所誤差,也皆會造成系統同步上有偏差。
对于多普勒效应频率漂移敏感
當符元時間的取樣點不準確時,會造成ISI與ICI,ISI現象是因為取樣點的偏移量,超過防護區間長度時,會去取到下一個符元的訊號。ICI現象是因為取樣點取錯時,會使得OFDM子載波彼此之間失去正交性。
峰均比高
由定性的角度思考,OFDM系統架構中,所傳送的訊號是所有子載波訊號的線性加總,因此OFDM訊號的振幅會產生一個極大範圍的動態變化,即振幅的大小範圍很廣。PAPR高的缺點在於對於能量使用率並不是非常好。
循环前缀(Cyclic Prefix)造成的负荷
對於傳輸而言,需要多傳輸循環前綴,而使單位時間內能傳輸的內容較沒有傳輸循環前綴時來的少。
结语
整个项目是想做一个符合802.11a的基带,所以原理部分其实还没写完,除开了OFDM的核心部分之外,还有信道编码,交织/解交织,数字调制,插入导频等没有讲.下一篇会结合802.11a讲一下上述的内容跟协议规定的子载波和系统实现的一些计算.而且接收机的同步,均衡,解调,解码也是些大问题,不过应该会先放一下。
当然,这么大工程肯定不会是单干的,这里主要参考书目是《XILINX FPGA的OFDM通信系统基带设计》
这应该是做完毕设,除了毕业答辩外,回校前最后想做的一个东西了.
参考资料
开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!
更多推荐
所有评论(0)