zoukankan      html  css  js  c++  java
  • 从简单的信道预计说起

         前面写了关于CP在OFDM中的应用,主要是记录一点零星的想法而已,今天突然想写点关于信道特性方面的东西。原因有下面几点:

           1)信道在仿真中的地位不容置疑,不同信道的条件下的仿真是很多课题的重点,自己差点儿还没入门。

           2)正由于没入门,所以仅仅能从最简单的信道预计说起,当然也会谈到CP的问题,毕竟是由于仿真CP对OFDM影响才激发了自己去看相关的材料。

           3)还有一个原因,写文章是整理思维的一个过程。

           4)最后,Mark离我远去的智牙,疼ing!

          先让我们回想下一些小知识点:

           1)信号经过多条小径到达,每条径幅度和相位随机,我们得知其幅度是服从瑞利分布,相位是均匀分布,有经典的Jakes模型以及各种改进算法来仿真(当中是考虑了多普勒频移)。 

           2)无线环境中的信道模型常常是多径(大径)的(直射径和反射、散射等),因为多径带来了频率选择性,所谓频率选择性,就是信道对不同频率的信号成分施加不同的影响。

           3)另外,假设又外加移动的条件,那么我们的信道就是时变的了,时变就会带来频域弥散,也就是俗称的多普勒频移  

           4)所以,我们总会把无线信道建模为线性时变信道。

        

         我们从最简单的多径信道開始,我们仿真有两条径,每条径并没有衰落,就是一个固定的加权值,我们先看一个样例


    接下来我们用程序来验证下:

    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)

    
    
    
    结果例如以下:
    

    事实上我上面的程序验证是很很easy的一个,假设你把数据改动为[1 2 3 4]就肯定不是这种结果了。问题出在哪呢?这就要从公式(2)说起了,什么样的DFT才干产生那样的结果呢?回想DSP我们能够知道,循环移位也就是周期移位才干产生公式(2)的效果,那为什么上面的程序没有循环移位又出现了正确结果呢?那是由于上面数据[1 0 0 0]线性移位和周期移位效果等同,为了验证我们来改动一下上面的数据,最好还是就拿无辜的[1 2 3 4]来看看

    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)的各个值,就非常easy补偿信道带来的损失了。

      

        好了,让我们回到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就是以信道带宽的代价来减少接收端的复杂度。

                    

    
    
    
    
    
  • 相关阅读:
    SharePoint 2010 User Profile Sync Service自动停止
    如何区别多个svchost.exe?
    Log Parser分析IIS log的一个简单例子
    Timeout expired. The timeout period elapsed prior to obtaining a connection from the pool. This may have occurred because all pooled connections were in use and max pool size was reached.
    Windows中右键点击文件夹, 结果找不到共享选项卡, 怎么办?
    介绍SOS中的SaveModule命令
    SharePoint中Draft版本的文档不会收到document added的Alert Email
    和我一起学Windows Workflow Foundation(1)创建和调试一个WF实例
    门户网站
    C#基础—— check、lock、using语句归纳
  • 原文地址:https://www.cnblogs.com/zfyouxi/p/3875405.html
Copyright © 2011-2022 走看看