OFDM中保护间隔与循环前缀抵抗ISI与ICI(转)-程序员宅基地

主要参考文档:OFDM移动通信技术原理与应用
 
目录
一、符号间干扰ISI 与 信道间干扰ICI 的概念
二、保护间隔 减少 ISI
三、循环前缀 减少 ICI
四、保护间隔与循环前缀 加入后的OFDM系统框图
五、选择 保护间隔 的方法
 
======================================
符号间干扰ISI 与 信道间干扰ICI 的概念
         多径时延扩展指由于多径引起的接收信号脉冲的宽度扩展的现象,扩展的时间Δ是最大传输时延和最小传输时延的差值。时延扩展 随环境、地形和地物的状况而不同,一般与频率无关。
        由于多径效应的影响,符号通过多径传输到达接收侧时可能存在碰撞,即引起脉冲信号的时延扩展,产生符号间干扰ISI(ISI,Inter-Symbol Interference ,有时又称为码间串扰,因为 在CDMA中一个码片(chip)是一个符号(symbol),而OFDM中没有Chip的概念。)严重影响数字信号的传输质量。 
          OFDM符号的传输对于正交性要求很高,如子载波的正交性被破坏,则会影响接收侧的解调,此即信道间干扰(ICI,Inter-Channel Interference,也称 载波间干扰,频率干扰 
        OFDM有两种办法消除多径干扰:
       1,OFDM 通过把高速率数据流进行串并转换,使得每个子载波上的数据符号持续长度相对增加,从而有效地减少由于无线信道的时间弥散所带来的符号间干扰ISI,进而减小了接收机内均衡器的复杂度,有时甚至可以不采用均衡器,而仅仅通过插入循环前缀的方法消除ISI的不利影响。
       2,OFDM通过 保护间隔 解决多径干扰。    OFDM系统在发射端加入保护间隔(guard interval,GI),主要是为了消除多径所造成的ISI与ICI。其方法是在OFDM符号保护间隔内填入循环前缀(cyclic prefix,CP),以保证在FFT周期内OFDM符号的时延副本内包含的波形周期个数也是整数。这样,时延小于保护间隔的信号就不会在解调过程中产生ISI。
解释:
   OFDM符号内干扰(由OFDM符号内信道的频率选择性所产生),通过信道均衡\信道估计 来消除。
   OFDM符号间干扰(在时间k和k+1两个连续的OFDM符号块间),由保护间隔来消除。接收机丢弃接收信号的前G个采样点(指保护间隔内的循环前缀)
    
 
保护间隔 减少 ISI
           OFDM通过把输入的高速率数据流串并变换到N个并行的子信道中,降低了信号速率,增大符号周期,使得每个用于调制子载波的数据符号周期可以扩大为原始数据符号周期的N倍,因此时延扩展与符号周期的比值也同样降低N倍(解释:因为作为分母的符号周期增大了N倍,而时延是时域波形与信道的特点,时延不会变)。使得时间选择性衰落较小。但多径仍会造成符号间干扰ISI,如下图。
 
       OFDM中保护间隔与循环前缀抵抗ISI与ICI
       如果没有保护间隔,接收侧收到多径信号,因为各径传输路径不同,到达接收机的时间也不同。各径信号在交叉信号处产生符号间干扰。在解调时会产生困难。
解释:两个 多径信号 叠加后的信号 在时域时间轴上向右发生了偏移(初相位也有变化)。收端定时后,一个符号的尾巴扫到了下一个符号的头,即 符号间干扰。
        保护间隔长度大于信道的最大多径时延,这样一个OFDM的多径分量就不会对下一个OFDM符号构成干扰。
                 即:下一个符号因为是以保护间隔开头,之后才是真实数据,它不会受到上一个符号的影响,因为上一个符号的一部分都会落在保护间隔内。
       所以:积分区间选择从真实数据开始到结束(落在下一个符号的保护间隔内)
 
      为了最大限度地消除 符号间干扰,可以在 每个OFDM符号(不是指 子载波 的符号,而是各子载波叠加后的OFDM符号,即此处是指时域的波形 )之间插入 保护间隔,而且该保护间隔的时间长度Tg一般要大于无线信道的最大时延扩展,这样一个符号的多径分量就不会对下一个符号造成干扰。  
        OFDM中保护间隔与循环前缀抵抗ISI与ICI
        见上图,在这段保护间隔内,可以不插入任何信号(即不采样),即是一段空闲的传输时段
 
循环前缀 减少 ICI
       然而在 加入 保护间隔 后,由于多径传播的影响,则会产生信道间干扰(ICI),即子载波之间的正交性遭到破坏,不同的子载波之间产生干扰,如下图所示。
           OFDM中保护间隔与循环前缀抵抗ISI与ICI      
          因多径延时的存在, 空闲的保护间隔进入到FFT的积分时间内,导致 积分时间内不能包含整数个波形,破坏了子载波间的正交性,带来载波间干扰ICI。实际效果就是子载波发生了频率偏移。
解释:多径、时延 造成了多普勒效应,接收到信号中子载波不再正交了。
 
          由于每个OFDM符号中都包括所有的非零子载波信号,而且也同时会出现该OFDM符号的时延信号,因此上图中给出了第一个子载波和第二个子载波的延时信号,从图中可以看出,由于在FFT运算时间长度内,第一子载波与带有延时的第二子载波之间的 周期个数之差不再是整数(解释:因为频率发生了偏移,子载波间隔有变化,子载波不再正交了),所以当接收机 试图对第一子载波进行解调时,第二子载波会对此造成干扰(即 OFDM符号周期内各子载波积分 不为0,解释:因为它们不再正交了 )。同样,当接收机对第二子载波进行解调时,有时会存在来自第一子载波的干扰。
          为了避免空闲保护间隔由于多径传播造成子载波间的正交性破坏,OFDM符号需要在其保护间隔内填入 循环前缀 信号(即:将每个OFDM符号的后时间中的样点复制到OFDM符号的前面  ),见下图。这样就可以保证在FFT周期内,OFDM符号的延时副本内包含的波形的周期个数也是整数。这样,时延小于保护间隔Tg的时延信号就不会再解调过程中产生ICI。
       只要各径的延迟不超过Tg,都能保证在FFT的积分区间内包含各径各子载波的整数个波形。
         OFDM中保护间隔与循环前缀抵抗ISI与ICI
       当然,加入保护间隔也付出了带宽的代价,并带来了 能量损失: CP越长,能量损失就越大。一般认为CP必须小于OFDM symbol长度的1/4。如:一个OFDM symbol共有256个符号,则其循环字长度为64个比特,总的符号长度是 256+64 bits.
 
解释:CP主要用来满足不同载波在同一采样间隔内的周期差为整数以克服载波间干扰,并抗拒多径时延(所以CP的长度主要取决于两个因素,一是信道的相干时间长度,二是OFDM符号的持续时间
    CP,要从2个层面来看:
                     1、CP在时域上占用一段时长,这段时长肯定大于最大的时延扩展,所以可以起到抑制ISI(符号间干扰)的作用,从这一点上说CP可以理解为是一个GP(保护间隔);
                     2、CP的内容:对于GP,我们知道是空白的,即这段时间里发射机是静默的;而CP不是,这就是CP的另外一个特点:CP的内容使得循环卷积可以实施,从而可以有效抑制ICI(载波间干扰),也就是说CP的内容在某种程度上有效保证了频偏带来的正交性损失。
 
保护间隔与循环前缀 加入后的OFDM系统框图
      通常,当保护间隔占到20%时,功率损失也不到1dB。但是带来的信息速率损失达20%,而在传统的单载波系统中存在信息速率(带宽)的损失。但是插入保护间隔可以消除ISI和多径所造成的ICI的影响,因此这个代价是值得的。
       已经证明, 通过适当选择子载波个数和保护间隔,可以完全消除ISI与ICI。
      简单总结:在符号间隔加入 保护时间间隔 保证无码间串扰,保护间隔内填 循环前缀CP 保证子载波相互正交。
OFDM中保护间隔与循环前缀抵抗ISI与ICI
 
 
选择 保护间隔 的方法
     一个好的系统设计必须可以避免ISI和ICI,或者至少将他们抑制到可接受的程度。也就是说,要选择一个 足够的CP以防止由频率选择性衰落而引起的ISI和ICI,同时要选择适当的OFDM符号长度,使信道冲激响应(CIR)至少在一个OFDM符号期间是不变的。 
  由于OFDM系统对频偏和相位噪声敏感,因此 OFDM子载波宽度必须仔细选定,既不能太大也不能太小。因为 OFDM符号周期和子载波带宽成反比,所以在一定的CP(Cycle Prefix 循环前缀)长度下, 子载波宽度越小,则符号周期越大,频谱效率也越高(因为 每个OFDM符号前都要插入一个CP,CP是系统开销,不传输有效数据)。但如果 子载波宽度过小,则对频偏过于敏感,难以支持高速移动的终端。 
  CP长度的选择与无线信道的时延扩展和小区的半径大小息息相关 ,时延扩展和小区半径越大,需要的CP也越长。另外,在宏分集(Macrodiversity)广播系统中,由于终端收到各基站同时发出的信号,为了避免由于传输延迟差造成的干扰,需要额外加长CP。 
  优化设计对OFDM系统来说是非常重要的,实际系统需要处理各种不同的环境(信道参数很不同)。一个解决问题的办法是根据最差的情况(宏小区高速移动用户)优化参数,另一个可选的方法是根据各种不同的环境(室内、室外、宏小区、微小区、微微小区等)优化参数,但这就需要设计高度灵活的收发信机。
 
=============================

 

http://blog.sina.com.cn/s/blog_90b4c7ff010158zp.html

转载于:https://www.cnblogs.com/Telecom-Latecomer/p/3815078.html

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_30732487/article/details/95495345

智能推荐

while循环&CPU占用率高问题深入分析与解决方案_main函数使用while(1)循环cpu占用99-程序员宅基地

文章浏览阅读3.8k次,点赞9次,收藏28次。直接上一个工作中碰到的问题,另外一个系统开启多线程调用我这边的接口,然后我这边会开启多线程批量查询第三方接口并且返回给调用方。使用的是两三年前别人遗留下来的方法,放到线上后发现确实是可以正常取到结果,但是一旦调用,CPU占用就直接100%(部署环境是win server服务器)。因此查看了下相关的老代码并使用JProfiler查看发现是在某个while循环的时候有问题。具体项目代码就不贴了,类似于下面这段代码。​​​​​​while(flag) {//your code;}这里的flag._main函数使用while(1)循环cpu占用99

【无标题】jetbrains idea shift f6不生效_idea shift +f6快捷键不生效-程序员宅基地

文章浏览阅读347次。idea shift f6 快捷键无效_idea shift +f6快捷键不生效

node.js学习笔记之Node中的核心模块_node模块中有很多核心模块,以下不属于核心模块,使用时需下载的是-程序员宅基地

文章浏览阅读135次。Ecmacript 中没有DOM 和 BOM核心模块Node为JavaScript提供了很多服务器级别,这些API绝大多数都被包装到了一个具名和核心模块中了,例如文件操作的 fs 核心模块 ,http服务构建的http 模块 path 路径操作模块 os 操作系统信息模块// 用来获取机器信息的var os = require('os')// 用来操作路径的var path = require('path')// 获取当前机器的 CPU 信息console.log(os.cpus._node模块中有很多核心模块,以下不属于核心模块,使用时需下载的是

数学建模【SPSS 下载-安装、方差分析与回归分析的SPSS实现(软件概述、方差分析、回归分析)】_化工数学模型数据回归软件-程序员宅基地

文章浏览阅读10w+次,点赞435次,收藏3.4k次。SPSS 22 下载安装过程7.6 方差分析与回归分析的SPSS实现7.6.1 SPSS软件概述1 SPSS版本与安装2 SPSS界面3 SPSS特点4 SPSS数据7.6.2 SPSS与方差分析1 单因素方差分析2 双因素方差分析7.6.3 SPSS与回归分析SPSS回归分析过程牙膏价格问题的回归分析_化工数学模型数据回归软件

利用hutool实现邮件发送功能_hutool发送邮件-程序员宅基地

文章浏览阅读7.5k次。如何利用hutool工具包实现邮件发送功能呢?1、首先引入hutool依赖<dependency> <groupId>cn.hutool</groupId> <artifactId>hutool-all</artifactId> <version>5.7.19</version></dependency>2、编写邮件发送工具类package com.pc.c..._hutool发送邮件

docker安装elasticsearch,elasticsearch-head,kibana,ik分词器_docker安装kibana连接elasticsearch并且elasticsearch有密码-程序员宅基地

文章浏览阅读867次,点赞2次,收藏2次。docker安装elasticsearch,elasticsearch-head,kibana,ik分词器安装方式基本有两种,一种是pull的方式,一种是Dockerfile的方式,由于pull的方式pull下来后还需配置许多东西且不便于复用,个人比较喜欢使用Dockerfile的方式所有docker支持的镜像基本都在https://hub.docker.com/docker的官网上能找到合..._docker安装kibana连接elasticsearch并且elasticsearch有密码

随便推点

Python 攻克移动开发失败!_beeware-程序员宅基地

文章浏览阅读1.3w次,点赞57次,收藏92次。整理 | 郑丽媛出品 | CSDN(ID:CSDNnews)近年来,随着机器学习的兴起,有一门编程语言逐渐变得火热——Python。得益于其针对机器学习提供了大量开源框架和第三方模块,内置..._beeware

Swift4.0_Timer 的基本使用_swift timer 暂停-程序员宅基地

文章浏览阅读7.9k次。//// ViewController.swift// Day_10_Timer//// Created by dongqiangfei on 2018/10/15.// Copyright 2018年 飞飞. All rights reserved.//import UIKitclass ViewController: UIViewController { ..._swift timer 暂停

元素三大等待-程序员宅基地

文章浏览阅读986次,点赞2次,收藏2次。1.硬性等待让当前线程暂停执行,应用场景:代码执行速度太快了,但是UI元素没有立马加载出来,造成两者不同步,这时候就可以让代码等待一下,再去执行找元素的动作线程休眠,强制等待 Thread.sleep(long mills)package com.example.demo;import org.junit.jupiter.api.Test;import org.openqa.selenium.By;import org.openqa.selenium.firefox.Firefox.._元素三大等待

Java软件工程师职位分析_java岗位分析-程序员宅基地

文章浏览阅读3k次,点赞4次,收藏14次。Java软件工程师职位分析_java岗位分析

Java:Unreachable code的解决方法_java unreachable code-程序员宅基地

文章浏览阅读2k次。Java:Unreachable code的解决方法_java unreachable code

标签data-*自定义属性值和根据data属性值查找对应标签_如何根据data-*属性获取对应的标签对象-程序员宅基地

文章浏览阅读1w次。1、html中设置标签data-*的值 标题 11111 222222、点击获取当前标签的data-url的值$('dd').on('click', function() { var urlVal = $(this).data('ur_如何根据data-*属性获取对应的标签对象

推荐文章

热门文章

相关标签