新闻中心

EEPW首页 > 手机与无线通信 > 牛人业话 > 给"小白"图示讲解OFDM的原理

给"小白"图示讲解OFDM的原理

作者:时间:2015-07-07来源:网络收藏

  起因是这样的。时间回到07年底,4G方兴之时,同桌隔壁的隔壁"小白"同学说看不太明白A的原理,让我讲解一下。我一向对自己的技术水平、逻辑思考能力和表达技巧还是蛮有自信的,因此轻笑一声就答应了。半小时后,在尝试了从时域、频域以及物理意义等各方面讲解,但均无法从“小白”的眼神中抹除那份迷茫之后,我竖起了白旗,让“小白”自生自灭去了。

本文引用地址:http://www.eepw.com.cn/article/276911.htm

  对知识能力的掌握,我自己粗旷的分为两层:一层是“会了,能应用”;二层是“懂了,能衍生”。而能讲解出来,并让人懂,大抵就是区分一层和二层的分水岭。打一个屌丝男喜闻乐见的比方:第一层就是人界的修炼,即使是“会了”,也是有筑基、金丹、元婴等境界之分的,而高考研考就是天劫,不到大乘之境,终究要化为劫灰;第二层是天界,也自有天仙、金仙之分,而能修至道祖的大牛,终究只是寥寥。我一向觉得自己在专业上还算是个“小仙”,可惜就被“小白”打脸了。

  这事儿对我的负面影响挺大的,一是怀疑自己技术宅做久了,表达能力方面严重退化【比如我偶尔会在搜索一个精准的动词或者形容词时,需要尝试2-3次,甚至更多】;二是在涉及到方面的内容时,仿佛就会看到一张白纸上逡巡着一只挥之不去的黑苍蝇。

  时隔多年,近期又回顾了一下,不经意又记起这桩公案,犹豫再三,还是决定花时间写下这篇文章,把这只盘旋于脑中的“黑苍蝇”拍死。因此虽然现在网络资源极大丰富,各种文章都可以搜到,其实我是没必要专门写这篇未必比别人写得好的文章的。不过毕竟是自己遗留的缺失,需要自己来补上。

  下面试图以图示为主讲解OFDM,以"易懂"为第一要义。"小白",你准备好了吗?

  注:下面的讨论如果不做说明,均假设为理想信道。

  章节一:时域上的OFDM

  OFDM的"O"代表着"正交",那么就先说说正交吧。

  首先说说最简单的情况,sin(t)和sin(2t)是正交的【证明:sin(t)·sin(2t)在区间[0,2π]上的积分为0】,而正弦函数又是波的最直观描述,因此我们就以此作为介入点。既然本文说的是图示,那么我们就用图形的方式来先理解一下正交性。【你如果能从向量空间的角度,高屋建瓴的看待这个问题的话,你也就不是"小白"了,RU?】

  在下面的图示中,在[0,2π]的时长内,采用最易懂的幅度调制方式传送信号:sin(t)传送信号a,因此发送a·sin(t),sin(2t)传送信号b,因此发送b·sin(2t)。其中,sin(t)和sin(2t)的用处是用来承载信号,是收发端预先规定好的信息,在本文中一律称为子载波;调制在子载波上的幅度信号a和b,才是需要发送的信息。因此在信道中传送的信号为a·sin(t)+b·sin(2t)。在接收端,分别对接收到的信号作关于sin(t)和sin(2t)的积分检测,就可以得到a和b了。(以下图形采用google绘制)

  

 

  图一:发送a信号的sin(t)

  

 

  图二:发送b信号的sin(2t)【注意:在区间[0,2π]内发送了两个完整波形】

  

 

  图三:发送在无线空间的叠加信号a·sin(t)+b·sin(2t)

  

 

  图四:接收信号乘sin(t),积分解码出a信号。【如前文所述,传送b信号的sin(2t)项,在积分后为0】

  

 

  图五:接收信号乘sin(2t),积分解码出b信号。【如前文所述,传送a信号的sin(t)项,在积分后为0】

  

 

  图六:流程图

  到了这里,也许你会出现两种状态:

  一种是:啊,原来是这样,我懂了。

  一种是:啊,怎么会这样,我完全无法想象。这里要说的是,你根本用不着去想象(visualize)。数学中是如此定义正交的,数学证明了它们的正交性,那么他们就是正交的,【他们就可以互不干扰的承载各自的信息】。选取sin(t)和sin(2t)作为例子,正是因为它们是介于直观和抽象的过渡地带,趟过去吧。

  上面的图示虽然简单,但是却是所有复杂的基础。

  1.1

  下一步,将sin(t)和sin(2t)扩展到更多的子载波序列{sin(2π·Δf·t),sin(2π·Δf·2t),sin(2π·Δf·3t),...,sin(2π·Δf·kt)}

  (例如k=16,256,1024等),应该是很好理解的事情。其中,2π是常量;Δf是事先选好的载频间隔,也是常量。1t,2t,3t,...,kt保证了正弦波序列的正交性。

  1.2 再下一步,将cos(t)也引入。容易证明,cos(t)与sin(t)是正交的,也与整个sin(kt)的正交族相正交。同样,cos(kt)也与整个sin(kt)的正交族相正交。因此发射序列扩展到{sin(2π·Δf·t),sin(2π·Δf·2t),sin(2π·Δf·3t),...,sin(2π·Δf·kt),cos(2π·Δf·t),cos(2π·Δf·2t),cos(2π·Δf·3t),...,cos(2π·Δf·kt)}也就顺理成章了。

  1.3

  经过前两步的扩充,选好了2组正交序列sin(kt)和cos(kt),这只是传输的"介质"。真正要传输的信息还需要调制在这些载波上,即sin(t),sin(2t),...,sin(kt)分别幅度调制a1,a2,...,ak信号,cos(t),cos(2t),...,cos(kt)分别幅度调制b1,b2,...,bk信号。这2n组互相正交的信号同时发送出去,在空间上会叠加出怎样的波形呢?做简单的加法如下:

  f(t) = a1·sin(2π·Δf·t) +

  a2·sin(2π·Δf·2t) +

  a3·sin(2π·Δf·3t) +

  ...

  ak·sin(2π·Δf·kt) +

  b1·cos(2π·Δf·t) +

  b2·cos(2π·Δf·2t) +

  b3·cos(2π·Δf·3t)

  +

  ...

  bk·cos(2π·Δf·kt) +

  = ∑ak·sin(2π·Δf·kt) +

  ∑bk·cos(2π·Δf·kt) 【公式1-1:实数的表达】

  为了方便进行数学处理,上式有复数表达形式如下:

  f(t) = ∑Fk·e(j·2π·Δf·kt) 【公式1-2:复数的表达,这编辑器找不到上角标...不过,你应该看得懂的】

  上面的公式可以这样看:每个子载波序列都在发送自己的信号,互相交叠在空中,最终在接收端看到的信号就是f(t)。接收端收到杂糅信号f(t)后,再在每个子载波上分别作相乘后积分的操作,就可以取出每个子载波分别承载的信号了。

  然后,多看看公式1-1和公式1-2!!!发现咯?这就是傅里叶级数嘛。如果将t离散化,那么就是离散傅立叶变换。所以才有OFDM以FFT来实现的故事。将在下面的章节进行更多的描述。

c语言相关文章:c语言教程



上一页 1 2 下一页

关键词: OFDM

评论


相关推荐

技术专区

关闭