信道均衡之非线性均衡——Tomlinson-Harashima Precoding(THP)
线性均衡可以做在接收端,也可以做在发送端,而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",这本书里面将信道均衡讲得非常清楚,而且有详细的数学推导过程,想进一步深入了解信道均衡的话这本书非常适合 。本文以及之前关于信道均衡的文章中的大部分观点都来自于这本书。
以上仅为个人的一些见解,如有错误的地方,欢迎大家指正。
作者:波波葡
信道均衡之非线性均衡——Tomlinson-Harashima Precoding(THP)的更多相关文章
- Windows平台下利用APM来做负载均衡方案 - 负载均衡(下)
概述 我们在上一篇Windows平台分布式架构实践 - 负载均衡中讨论了Windows平台下通过NLB(Network Load Balancer) 来实现网站的负载均衡,并且通过压力测试演示了它的效 ...
- 服务注册发现Eureka之三:Spring Cloud Ribbon实现客户端负载均衡(客户端负载均衡Ribbon之三:使用Ribbon实现客户端的均衡负载)
在使用RestTemplate来消费spring boot的Restful服务示例中,我们提到,调用spring boot服务的时候,需要将服务的URL写死或者是写在配置文件中,但这两种方式,无论哪一 ...
- DNS负载均衡 Nginx 负载均衡的种类
DNS负载均衡 当一个网站有足够多的用户的时候,假如每次请求的资源都位于同一台机器上面,那么这台机器随时可能会蹦掉.处理办法就是用DNS负载均衡技术,它的原理是在DNS服务器中为同一个主机名配置多个I ...
- Devstack配置负载均衡,负载均衡版本V2
本文为minxihou的翻译文章,转载请注明出处Bob Hou: http://blog.csdn.net/minxihou JmilkFan:minxihou的技术博文方向是 算法&Open ...
- 【转载】Windows平台下利用APM来做负载均衡方案 - 负载均衡(下)
概述 我们在上一篇Windows平台分布式架构实践 - 负载均衡中讨论了Windows平台下通过NLB(Network Load Balancer) 来实现网站的负载均衡,并且通过压力测试演示了它的效 ...
- Hadoop HDFS负载均衡
Hadoop HDFS负载均衡 转载请注明出处:http://www.cnblogs.com/BYRans/ Hadoop HDFS Hadoop 分布式文件系统(Hadoop Distributed ...
- Web负载均衡的几种实现方式
Web负载均衡的几种实现方式摘要:负载均衡(Load Balance)是集群技术(Cluster)的一种应用.负载均衡可以将工作任务分摊到多个处理单元,从而提高并发处理能力.目前最常见的负载均衡应用是 ...
- nginx入门篇----负载均衡策略
负载均衡策略 负载均衡策略:内置策略和扩展策略. 内置策略包括:轮询.加权轮询.IP hash:扩展策略包括:url hash.fair等 策略详细介绍 轮询:对前端的访问逐一分流到后端网络节点,类似 ...
- linux负载均衡总结性说明(四层负载/七层负载)
在常规运维工作中,经常会运用到负载均衡服务.负载均衡分为四层负载和七层负载,那么这两者之间有什么不同?废话不多说,详解如下: 一,什么是负载均衡1)负载均衡(Load Balance)建立在现有网络结 ...
随机推荐
- 4.PHP正则表达式与数组
PHP正则表达式相关 行定位符 开头 ^tm 结尾 tm$ 不限制 tm 单词定界符 \btm\b 单词tm,如果想取反的话就是大写的 \Btm\B 或的关系,[Tt][Mm] 可以表达 tm T ...
- Andrew Ng机器学习算法入门(二):机器学习分类
机器学习的定义 Arthur Samuel给出的定义,Field of Study that gives computers the ability to learn without being ex ...
- JAVA的安装
1.从JAVA官网 下载 注意选择自己需要的版本 2.百度云盘 链接:https://pan.baidu.com/s/1deOFGN1xB0mgz6s2mTRXdA 提取码:ke97 安装JAVA J ...
- MongonDb在thinkphp中常用的功能整理
1.以某字段开头的数据查询条件 $title = input('param.title'); $where['title'] = new \MongoDB\BSON\Regex("^{$ti ...
- Python爬虫基础讲解(七):xpath的语法
xpath语法 XPath使用路径表达式来选取XML文档中的节点或者节点集.这些路径表达式和我们在常规的电脑文件系统中看到的表达式非常相似. 下面列出了最有用的表达式: 在下面的表格中,我们已列出了一 ...
- 分布式锁为什么要选择Zookeeper而不是Redis?
在分布式的应用中,为了防止单点故障,保障高可用,通常会采用主从结构,当主节点挂掉后,从节点可以代替主节点提供服务. Redis通过复制 + sentinel哨兵来实现主从模式. Zookeeper通过 ...
- mybatis-plus批量插入saveBatch太慢?我愿意称rewriteBatchedStatements为神
最近在做项目优化,代码优化之后,测试接口,好家伙.一个定时任务接口执行要10秒左右. 一点点追踪,给每个方法打上执行时间,一点点缩小范围.好家伙,终于让我锁定了目标. 这是mybatis-plus的批 ...
- 解决nohup: 忽略输入并把输出追加到"nohup.out"或者nohup: 忽略输入重定向错误到标准输出端
nohup启动脚本的时候,没有指定输出路径,默认使用当前目录的nohup.out 例如下面这句就是默认使用nohup.out作为输出文件: nohup script.sh & 改成下面的,则/ ...
- 强哥PHP学习笔记
1.php的代码,必须放在.php的文件中,php代码必须写在<?php ?>之间. 2.//单行注释 /* 多行注释 */ 3.默认首页index.php index.html inde ...
- jolokia配置Java监控
wget http://search.maven.org/remotecontent?filepath=org/jolokia/jolokia-jvm/1.3.6/jolokia-jvm-1.3.6- ...