注:更新于2015/08/02,增加了博文打赏,见文章结束后的二维码。如果您觉得此博文帮助了你,愿意打赏,请您阅读博文一个艰难的决定 ,了解为何添加博文打赏。
前面写了关于CP在OFDM中的应用,主要是记录一点零星的想法而已,今天突然想写点关于信道特性方面的东西。原因有以下几点:
1)信道在仿真中的地位不容置疑,不同信道的条件下的仿真是许多课题的重点,自己几乎还没入门。
2)正因为没入门,所以只能从最简单的信道估计说起,当然也会谈到CP的问题,毕竟是由于仿真CP对OFDM影响才激发了自己去看相关的材料。
3)另一个原因,写文章是整理思维的一个过程。
4)最后,Mark离我远去的智牙,疼ing!
先让我们回顾下一些小知识点:
1)信号经过多条小径到达,每条径幅度和相位随机,我们得知其幅度是服从瑞利分布,相位是均匀分布,有经典的Jakes模型以及各种改进算法来仿真(其中是考虑了多普勒频移)。
2)无线环境中的信道模型经常是多径(大径)的(直射径和反射、散射等),由于多径带来了频率选择性,所谓频率选择性,就是信道对不同频率的信号成分施加不同的影响。
3)另外,如果又外加移动的条件,那么我们的信道就是时变的了,时变就会带来频域弥散,也就是俗称的多普勒频移
4)所以,我们总会把无线信道建模为线性时变信道。
我们从最简单的多径信道开始,我们仿真有两条径,每条径并没有衰落,就是一个固定的加权值,我们先看一个例子:
接下来我们用程序来验证下:
<pre name="code" class="plain"><pre name="code" class="html">clear all close all tx_data = [1 0 0 0]; data_delay = [0 1 0 0]; rx_data = tx_data + data_delay; fft_tx = fft(tx_data) fft_rx = fft(rx_data)
其实我上面的程序验证是非常非常简单的一个,如果你把数据修改为[1 2 3 4]就肯定不是这样的结果了。问题出在哪呢?这就要从公式(2)说起了,什么样的DFT才能产生那样的结果呢?回顾DSP我们可以知道,循环移位也就是周期移位才能产生公式(2)的效果,那为什么上面的程序没有循环移位又出现了正确结果呢?那是因为上面数据[1 0 0 0]线性移位和周期移位效果等同,为了验证我们来修改一下上面的数据,不妨就拿无辜的[1 2 3 4]来看看
<pre name="code" class="plain"><pre name="code" class="html">clear all close all tx_data = [1 2 3 4]; data_delay_linear = [0 1 2 3]; data_delay_period = [4 1 2 3]; rx_data_linear = tx_data + data_delay_linear; rx_data_period = tx_data + data_delay_period; fft_tx = fft(tx_data) fft_rx_linear = fft(rx_data_linear) fft_rx_period = fft(rx_data_period)
很明显只有循环移位叠加后的结果才满足一般的信道特性,例如k=1,(-2+2i)*H(1)=(-2+2i)*(1-i)=4i。我们在接收端只要获得了H(k)的各个值,就很容易补偿信道带来的损失了。
好了,让我们回到OFDM上来,我们把经过星座映射后的符号放置在不同的IFFT_BIN上,也就是用不同的频率来发送,在 前面博文循环前缀在OFDM中应用(一)中我们已经说明,经过信道无非是每个频率经过H(k)的加权而已,这样的话我们就不需要用那么复杂的均衡技术了,只需要估计出H(k)的值,然后逆运算就可以恢复原来的符号了,我们是用了循环前缀这一技术才能达到上面所说的效果,在那篇博文中我们是从循环前缀变线性卷积为循环卷积来证明的,但是并没有说明为什么就变换成功了,今天希望直观的理解一下。现在有了上面简单的例子,我们可以看出一点端倪。还是拿无辜的[1 2 3 4 ]来说明(在此CP长度取3):
从上面这个图,我们可以看出来只要信道冲激响应长度小于CP的长度,我们都可以把线性移位变成区间[1:4]内的循环移位,所以加了CP后的信号,经过信道传输后,我们接受端是会去掉CP那段长度的,这里还不够直观,为什么发送端加CP,接收端去掉CP就能实现循环卷积呢?好了,为了解决这个问题,让我们看看到底什么是循环卷积和线性卷积,为了直观的理解,我不打算用DSP上的理论,我从一个更加直观的方面来说。
其实可以这么总结:从整体上宏观的看,我们的信号经过信道肯定是与信道的冲激响应作线性卷积的,就好比上面无辜的[1 2 3 4]例子一样,各个时延版本的加权和(这里都加权都是1而已),但是当我们从局部微观的看,我们不只关心区间[1:4],那么一个很显然的事实就摆正面前:在这个局部我们做的是循环卷积。
好了,我们现在的思绪差不多理清了,总结下:我们把星座映射后的符号X=[X1,X2...,Xn]经过IFFT运算后,得到了时域信号x=[x1,x2...,xn],我们加上CP后变成x',把它变成‘宏观’的信号经过信道,整体上是一个线性卷积没错!但是在原始时域信号x那个小区间内,却始终保持的是循环卷积(只要CP长度大于信道冲激响应长度),那么我们就可以利用手段来获取信道特征H(k),每个k就对于每个子载波上的符号Xk,所以一个频率选择性信道就变成了多个平坦的信道了。
后记:书上简单的一句:CP把线性卷积变成循环卷积,其实我认为更好的理解就是:宏观的线性卷积变成局部的循环卷积,毕竟我们接收端会去除CP,也就是说我们始终关心的还是那个局部,因为那个区间才是我们IFFT变换得来的,所以CP就是以信道带宽的代价来降低接收端的复杂度。
支付宝打赏任意金额
微信打赏5元