线性均衡可以做在接收端,也可以做在发送端,而DFE只能做在接收端。对于DFE的讨论都是建立在判决器能够判决正确的情况下,但是如果每一个发送的符号含有多比特信息,比如PAM16,由于发送信号的最大能量是一定的,所以星座图之间的距离很小,这会导致判决器很容易产生错误的判决,在DFE中造成误差传播(error propagation)。每个符号含有的比特数越多,DFE判决时就越容易出错。更重要的是,DFE需要即时判决来消除ISI, 这与信道编码存在根本性的矛盾。根据香农定理,我们知道,应该把一长串符号作为一个整体来进行判决,才能达到信道的最高传输速率,即信道容量。已经有一些方法来解决DFE与信道编码不兼容的问题,但是其物理实现的复杂度增加不少,也引入了很长的延迟。

  这里我们介绍一种做在发送端的预编码(precoding)技术——Tomlinson-Harashima Precoding(THP)。THP是一种非线性均衡技术,它可以与信道编码相兼容,并且不会产生误差传播现象。在10G base-T Ethernet中就使用了这种技术。

  图1(a)是接收端迫零均衡,图1(b)是DFE。这里把整个通信系统离散化了,并且忽略了发送端滤波器。迫零均衡的缺点是只考虑了信道传输函数,而没有考虑信道噪声的影响。经过迫零均衡器后,信道噪声被放大了。DFE把判决器放进了环路内部,只要判决器判断正确,不仅可以消除ISI,还可以消除噪声。

图1  (a) 接收端迫零均衡  (b) DFE

  既然在接收端可以将判决器放进环路内部,在发送端是否可以做类似的操作呢?

  先看图2(a)的发送端迫零均衡。发送端迫零均衡不会放大信道噪声,但是却要将发送信号能量中的一部分用于补偿信道pre-cusor和post-cursor的影响。一般情况下,发送端的总能量是一定的,这导致我们需要相应地减小main-cursor的能量,最终的结果就是y(k)的SNR降低。发送端迫零均衡会减小信号能量,而接收端迫零均衡则会放大信道噪声,这两者造成的后果其实是一样的,即都是y(k)的SNR降低。如图3所示,假设m(k)是M点PAM信号,那么经过发送端迫零均衡后,我们需要加一个小于1的增益g以保证s(k)的信号幅度不会超过[-M,+M)。

  图3(b)是THP,通过在反馈环路中增加一个模2M的运算,把信号s(k)限制在[-M,+M)内,因此也就不再需要减小main-cursor能量。但是,使用THP后,需要在RX做相应的解码运算,这可以通过另外一个模2M运算来实现。可以证明,THP的输出信号s(k)相互独立并且在[-M,+M)上是均匀分布的。

图2  (a) 发送端迫零均衡  (b) THP

图3  PAM信号

  

  THP可以采用图4的方法来建模,可以推导得到,经过信道后

    

  再经过THP解码和判决,就能恢复出m(k),其中THP解码可以用另外一个模2M运算来实现。这里有一个需要注意的地方:n(k)是白噪声,但是经过THP解码后还是白噪声吗?THP解码会不会放大噪声?一般来说,如果信道噪声不是非常大,n(k)经过THP解码后仍然可以当作是白噪声,且不会被放大。

  

图4 THP建模

  TX端的预编码技术还有一种叫Flexible Precoding, 感兴趣的可以参考Robert F. H. Fiscber的“Precoding and Signal Shaping for Digital Transmission",这本书里面将信道均衡讲得非常清楚,而且有详细的数学推导过程,想进一步深入了解信道均衡的话这本书非常适合 。本文以及之前关于信道均衡的文章中的大部分观点都来自于这本书。

  

以上仅为个人的一些见解,如有错误的地方,欢迎大家指正。

作者:波波葡

出处:波波葡 - 博客园 (cnblogs.com)

信道均衡之非线性均衡——Tomlinson-Harashima Precoding(THP)的更多相关文章

  1. Windows平台下利用APM来做负载均衡方案 - 负载均衡(下)

    概述 我们在上一篇Windows平台分布式架构实践 - 负载均衡中讨论了Windows平台下通过NLB(Network Load Balancer) 来实现网站的负载均衡,并且通过压力测试演示了它的效 ...

  2. 服务注册发现Eureka之三:Spring Cloud Ribbon实现客户端负载均衡(客户端负载均衡Ribbon之三:使用Ribbon实现客户端的均衡负载)

    在使用RestTemplate来消费spring boot的Restful服务示例中,我们提到,调用spring boot服务的时候,需要将服务的URL写死或者是写在配置文件中,但这两种方式,无论哪一 ...

  3. DNS负载均衡 Nginx 负载均衡的种类

    DNS负载均衡 当一个网站有足够多的用户的时候,假如每次请求的资源都位于同一台机器上面,那么这台机器随时可能会蹦掉.处理办法就是用DNS负载均衡技术,它的原理是在DNS服务器中为同一个主机名配置多个I ...

  4. Devstack配置负载均衡,负载均衡版本V2

    本文为minxihou的翻译文章,转载请注明出处Bob Hou: http://blog.csdn.net/minxihou JmilkFan:minxihou的技术博文方向是 算法&Open ...

  5. 【转载】Windows平台下利用APM来做负载均衡方案 - 负载均衡(下)

    概述 我们在上一篇Windows平台分布式架构实践 - 负载均衡中讨论了Windows平台下通过NLB(Network Load Balancer) 来实现网站的负载均衡,并且通过压力测试演示了它的效 ...

  6. Hadoop HDFS负载均衡

    Hadoop HDFS负载均衡 转载请注明出处:http://www.cnblogs.com/BYRans/ Hadoop HDFS Hadoop 分布式文件系统(Hadoop Distributed ...

  7. Web负载均衡的几种实现方式

    Web负载均衡的几种实现方式摘要:负载均衡(Load Balance)是集群技术(Cluster)的一种应用.负载均衡可以将工作任务分摊到多个处理单元,从而提高并发处理能力.目前最常见的负载均衡应用是 ...

  8. nginx入门篇----负载均衡策略

    负载均衡策略 负载均衡策略:内置策略和扩展策略. 内置策略包括:轮询.加权轮询.IP hash:扩展策略包括:url hash.fair等 策略详细介绍 轮询:对前端的访问逐一分流到后端网络节点,类似 ...

  9. linux负载均衡总结性说明(四层负载/七层负载)

    在常规运维工作中,经常会运用到负载均衡服务.负载均衡分为四层负载和七层负载,那么这两者之间有什么不同?废话不多说,详解如下: 一,什么是负载均衡1)负载均衡(Load Balance)建立在现有网络结 ...

随机推荐

  1. Win64 驱动内核编程-8.内核里的其他常用

    内核里的其他常用 1.遍历链表.内核里有很多数据结构,但它们并不是孤立的,内核使用双向链表把它们像糖 葫芦一样给串了起来.所以遍历双向链表能获得很多重要的内核数据.举个简单的例子,驱 动对象 Driv ...

  2. c/c++ 指针数组 和 数组指针

    看这个标题都要晕了,我们不妨把他拆开来理解,比较容易 指针数组:对象是一个数组,数组元素的类型是指针 指针数组的定义方式: 类型名 *数组名[数组长度]; 如: int *p[8]; 数组指针:对象是 ...

  3. 在 GitHub 学习,成长为自己想要的样子|HelloGitHub 访谈

    万事开头难,我们经过长期的策划和筹备,终于推出了 HelloGitHub 采访系列「开源项目作者的访谈」.这是一个采访个人开源项目作者的栏目,内容侧重于开源项目作者与开源的故事. 我们深知想要做好一个 ...

  4. android之Tween Animation

    android Tween Animation有四种,AlphaAnimation(透明度动画).ScaleAnimation(尺寸伸缩动画).TranslateAnimation(位移动画).Rot ...

  5. h5实现电子签名

    前端需要引入:jSignature.min.js ,jquery-1.9.1.min.js前端 部分写法:body内加 <div id="signature">< ...

  6. IDEA 新建 Java 项目 (图文讲解, 良心教程)

    IDEA 新建 Java 项目 (图文讲解, 良心教程) 欢迎关注博主公众号「Java大师」, 专注于分享Java领域干货文章, 关注回复「资源」, 免费领取全网最热的Java架构师学习PDF, 转载 ...

  7. Charles的证书下载(web)

    1.charles的证书下载(web) 1.为什么下载charles的ssl证书? 默认情况下,charles不能解析https协议的接口,里面的请求和响应数据都是乱码格式,所以我们需要下载ssl证书 ...

  8. 《Ray Tracing in One Weekend》阅读笔记 - 9、Metal(金属)

    如果我们希望不同的物体使用不同的材料,则需要进行设计决策.我们可以使用具有许多参数的通用材料,而将不同的材料类型仅将其中一些参数归零.这不是一个坏方法.或者我们可以有一个抽象的材料类来封装行为.我是后 ...

  9. 『动善时』JMeter基础 — 20、JMeter配置元件【HTTP Cookie管理器】详细介绍

    目录 1.HTTP Cookie管理器介绍 2.HTTP Cookie管理器界面详解 3.JMeter中对Cookie的管理 (1)Cookie的存储 (2)Cookie的管理策略 4.补充:Cook ...

  10. Spring AOP获取不了增强类(额外方法)或无法通过getBean()获取对象

    Spring AOP获取不了增强类(额外方法)和无法通过getBean()获取对象 今天在学习AOP发现一个小问题 Spring AOP获取不了额外方法,左思右想发现是接口上出了问题 先上代码 获取不 ...