尧图网络科技YAOTU DIGITAL 获取报价
获取报价
首页 / 资讯中心 / 文章详情

AMI码全面解析:编码规则、波形频谱与HDB3码演进

发布时间:2026/9/29 18:26:06

资讯中心
01
ARTICLE

AMI码全面解析:编码规则、波形频谱与HDB3码演进

AMI码全面解析:编码规则、波形频谱与HDB3码演进
大学那会儿翻开樊昌信《通信原理》教材里讲数字基带传输那一章AMI码只是众多线路码型里的一小节。但我后来真正在实验室搭基带链路、在项目里调误码仪的时候才发现AMI码这个“中间态”设计得极其聪明——它把二进制信息从“有没有电平”升级成“正负交替的脉冲”用一个小改动同时换来了无直流分量、差错自检能力还顺手给后来更复杂的HDB3码铺好了路。这篇就以AMI码为主线把编码规则、波形画法、频谱特性、译码方法以及它和HDB3码之间的关系完整串一遍适合正在学通信原理、准备考研复试或者刚开始接触数字基带传输系统的人参考拿回去可以直接用。1. 码型设计思路为什么数字基带传输要折腾“电平花样”1.1 先理解基带码型的三个硬约束通信系统里数字基带信号通常是抽象成1和0的序列但真实信道不能直接传输“1”和“0”这两个抽象数字必须把它们映射成有物理意义的电信号波形。这个映射过程就叫线路编码或者码型变换。信道上最常遇到的三个约束决定了码型必须怎么设计。第一个约束是信道本身不爱传直流。实际的信道接口基本都带变压器耦合或者交流耦合比如电话线的PCM接口、E1设备的75欧姆同轴口里面都有脉冲变压器或者隔直电容。直流分量过不去会被变压器直接拦掉。所以如果一个码型含有直流分量信号经过信道后波形就会严重畸变接收端没法正确判决。这也是单极性不归零码NRZ在实际工程里很少直接上线使用的原因——单极性码有直流分量。第二个约束是接收端必须能提取位定时时钟。数字接收机要把连续波形切成一拍一拍的码元再在每个码元的中心时刻做抽样判决。这个“每拍”的节拍就是位定时时钟必须从收到的信号里自己提取出来。如果信号长时间稳定在一个电平上接收端就找不到跳变沿时钟恢复电路会失锁整个链路就崩了。所以信号里得尽量“有动静”让定时恢复电路有东西可以啃。第三个约束是差错检测能力。线路码型不需要像信道编码那样纠错但最好能在物理层就发现明显的错误给上层的误码统计提供一个快速指标。比如后文要讲的极性交替规则被破坏接收端就能立刻判断“这里有一拍错了”这在工程调试里面相当好用。这三个约束放在一起单极性NRZ码一处都满足不了有直流、连1连0时无跳变、没有自检能力。于是就有了双极性码、归零码、AMI码这一大类“带自检、去直流”的改进方案。1.2 AMI码在码型家族里的位置码型家族里常见的有单极性NRZ、双极性NRZ、单极性RZ、双极性RZ、AMI、HDB3、CMI、曼彻斯特码等等。单极性到双极性是第一步飞跃信号从只有0和电平A两种状态变成A、-A和0三种状态。AMI码Alternate Mark Inversion传号交替反转码也叫信号交替反转码就是一种典型的三电平双极性码。它的具体做法很直接消息码里的“0”编码成零电平“1”编码成交替出现的正负脉冲第一个1取正还是取负没有本质区别约定好就行。这里“Mark”指的就是传号也就是二进制1所谓“Alternate Mark Inversion”翻译过来就是“传号交替反转”——注意它只对1做文章0始终是零电平。从电平维度看AMI码比单极性码多了一个极性维度但比双极性NRZ码多了一个“零电平”状态。正因如此AMI码的频谱上没有直流分量而且低频分量也被压得很低非常适配带变压器隔离的物理信道。有意思的是AMI码本质上还可以看作“差分编码双极性归零码”的组合先把输入序列按“遇到1就翻转”的差分规则变成相对码再把相对码映射成正负脉冲。这个角度在后面理解HDB3码、理解相位模糊问题的时候特别有用。2. AMI码编码规则与逐位实操2.1 一句话规则与传号交替的直观理解AMI码的编码规则用一句话就能说清楚消息码中的0编为零电平消息码中的1编为交替的1和-1脉冲。更严谨一点说第n个传号1的极性由它在这个码流里的序号奇偶性决定序号为奇数时取1偶数时取-1跟它前面的信息码是0还是1没有关系遇到0就直接跳过、不参与极性计数。为什么叫“传号交替反转”而不叫“脉冲交替反转”因为这里交替翻转的对象是传号的极性不是全部码元的极性。0电平没有正负之分所以连0串不会引起极性变化只有连续出现1的时候你才能看到1、-1、1、-1那种来回翻转的规律。建议刚学的朋友不要死记规则直接拿笔在纸上画一波形先画一条水平的时间轴把每个码元等间隔标出来然后把1对应的位置画成正脉冲或负脉冲0对应的地方留空。画三五个序列就能发现AMI码的真正特征不是单个脉冲的取值而是相邻非零脉冲的极性关系——这个“关系感”是做译码和误码检测的关键。2.2 一个完整编码实例下面给一个完整的例子信息码序列取1 0 1 1 0 0 0 1 0 1 1。先明确首传号极性取正即第一个1编码为1然后依次推下去得到如下结果码元序号1234567891011信息码10110001011AMI码10-11000-101-1在纸上画成波形时1画在时间轴上方-1画在时间轴下方0就压在轴线上。注意第3、4、8、10、11位的极性变化没有受到中间0的影响第4位的1是因为它前面已经出现了两个1所以轮到它取第奇数个传号的位置取正第8位则是前面已经出现了四个1第1、3、4、8位之前共有3个1重新数第1位是第1个1第3位是第2个1第4位是第3个1第8位是第4个1。所以第8位取第偶数个传号负极性这就是“数传号序号不管中间有多少0”。如果信息码第一位就是连续多个1画起来会更直观比如1 1 1 1 0 0 1对应的AMI码就是1、-1、1、-1、0、0、1。这是最简单的速记序列考试时可以用它快速验证自己的编解码有没有算错。2.3 译码过程与极性交替校验的实际操作AMI码的译码逻辑也简单接收端在每个抽样时刻做三电平判决正脉冲判为1负脉冲判为1零电平判为0。所以实际上接收端只需要判断“这个码元零不零”——非零就是1零就是0正负号反而可以不用那么关心。但正负号不是白给的。接收端在做判决的同时可以额外检查相邻非零脉冲的极性是不是交替排列。如果发现一连串非零脉冲里出现了“”或者“--”那就说明中间某个码元被噪声干扰错了可能是正脉冲被冲成负脉冲也可能是误码导致极性翻转。这种检测不需要额外带宽也不增加冗余比特属于典型的“物理层白嫖”型检错手段。实际操作时有一个坑要特别注意如果你的接收端信噪比较差三电平判决容易出现“判决电平漂移”问题——正脉冲和负脉冲的幅度会由于基线漂移不对称导致阈值不好定。工程上一般会在接收端加一个自动门限控制电路用AGC自动增益控制或者自适应均衡来把正负脉冲的幅度拉回对称状态。课堂实验里用比较器搭三电平判决器的时候也一定要先做交流耦合后的零点恢复否则0电平判决点会飘。2.4 相对码视角AMI码隐藏的一条理解捷径前面提到AMI码可以理解成差分编码加双极性归零映射。具体来说如果先把信息码转换成相对码也叫差分码转换规则是“信息1使电平翻转信息0保持电平不变”然后再把这个相对码映射成正负脉冲——原信息0映射为零电平原信息1映射为对应的极性脉冲——你会发现最终的结果跟直接按AMI规则编出来的波形完全等价。这条捷径有什么实际用处最重要的一点是帮你理解“极性反转不敏感”的特性。真实信道里两根信号线接反是常有的事如果码型对绝对极性敏感接反以后所有码元都会判反。AMI码因为信息藏在“是否有脉冲”和“相邻脉冲是否交替”这两个关系里而不是藏在“绝对是正还是负”里所以即使整条链路的极性全局翻转接收端依然能正确译出信息码。这一点在工程布线上是个实打实的优势考试里也经常把它当作“为什么采用双极性码”的答案点。3. 频谱与性能分析AMI码好在哪、代价是什么3.1 无直流分量与低频分量被压制的本质AMI码最核心的频谱特性是理想情况下信号功率谱中不存在直流分量低频分量也被大幅抑制。这里说的“理想情况”是信息码中0和1等概率出现并且传号的极性严格交替。从功率谱公式看随机脉冲序列的功率谱由连续谱和离散谱两部分组成离散谱里那一项和传号概率、脉冲极性都有关系。AMI码让每个传号的极性交替取反正负脉冲在统计上完全对称于是直流处的离散谱线被抵消自然就没有直流分量了。这个特性放到工程里价值非常大。前面说过实际信道接口基本都用变压器隔离单极性码过不去AMI码却刚刚好。以PCM基群的E1接口为例2Mbps信号在75欧姆同轴链路上传输时信号要先经过脉冲变压器耦合进中继器和再生中继器如果线路码型带直流分量变压器耦合之后波形会丢掉低频包络判决根本没法做。AMI码低频少、无直流配合变压器耦合链路用起来非常舒服。但也要注意无直流不等于信号里没有低频成分只是集中在很低频附近的能量被压低了。真正完全无低频的码型需要更复杂的编码比如曼彻斯特码它在每个码元中间都保证有一次跳变低频分量更低但代价是带宽翻倍。所以AMI码是在“频谱干净程度”和“带宽效率”之间取了一个比较实用的中间值。3.2 定时分量与连0敏感问题接收端要提取位定时时钟在工程上通常靠的是锁相环配合鉴相器从信号的跳变沿里恢复时钟。信号跳变越频繁、跳变规律越确定时钟恢复越稳定。AMI码里每一个1都对应一个脉冲沿所以1密度高的码流定时信息非常丰富。但如果是长串0信号就一直压在零电平上没有沿、没有跳变锁相环等于哑了定时恢复就会失效。这也正是AMI码最著名的短板它解决不了长时间连0的问题。比如信息码是1 0 0 0 0 0 0 0 0 1中间有8个0编码后这8个码元全是零电平接收端的时钟提取电路在这段时间里完全拿不到参考沿锁相环的自由振荡频率稍有偏差采样点就会慢慢滑出码元中心最后的误码率会急剧上升。所以纯AMI码在实际低速传输里还能用一用在高速和长距离场景下基本不合适。怎么量化这个“长”字工程上常用“最大游程长度”来描述即连续0的最大个数。AMI码的最大游程长度没有限制取决于信源本身这是它最大的设计漏洞。后面讲的HDB3码正是针对这个漏洞打了补丁。3.3 噪声容限与误码率的定性判断AMI码是三电平判决接收端要区分三种状态正脉冲、负脉冲、零电平。从噪声容限角度看正负脉冲的抽样幅度如果是A判决阈值设在0附近那么单个脉冲距判决阈值仍然是A/2和双极性二电平NRZ码的噪声容限差不多。但因为多了一个“零”判决区实际上等于要在两个阈值之间摆荡判决电路对噪声和基线漂移都会更加敏感一点。定性结论是在同样的信道条件下AMI码的抗噪声性能和双极性NRZ接近优于单极性NRZ但略逊于纯粹的二进制双极性不归零码。所以AMI码本质上是用“多一个判决电平”的复杂度换取了无直流和自检错能力。考试里如果问为什么不用双极性NRZ而用AMI答案通常就是双极性NRZ没有零电平、没有自检功能、也没有办法在接收端用“极性交替”做误码监测。这里还有一个小小的性能细节AMI码因为极性交替相邻传号脉冲之间不存在相关性不对恰恰相反AMI码是一种有记忆的编码——当前码元的取值受前面传号极性影响。所以它的错误呈现也有记忆性如果一个传号被判错后续极性交替关系会被破坏直到下一个传号出现为止这就产生了误码扩散效应。工程上统计误码时不能简单地认为每个判决错误都是独立的这也是AMI码在实际应用中需要搭配更完善的误码监测机制的原因。4. 工程演进从AMI码到HDB3码一道真题背后的编码诉求4.1 为什么电信网里最终用的是HDB3而不是纯AMIAMI码在理论上很漂亮但工程应用上有一道迈不过去的坎长连0时定时提取失效。在PCM电话网里静音时段的编码会出现大量连续0如果直接拿AMI码上线交换机之间很快就会失去同步。所以面向实际线路的码型必须保证连0个数不超过某个上限。欧洲体系的PCM基群也就是我们常说的E1速率2.048Mbps采用HDB3码即三阶高密度双极性码。它的核心思想是在保持AMI码“无直流、极性交替”优点的前提下把码流里的连续0个数限制在不超过3个。北美体系没有用HDB3而是用B8ZS8零置换码原理类似只不过把限制放宽到连续8个0。无论是HDB3还是B8ZS本质上都是给AMI码打补丁——所以说学AMI码是为了理解这些真实商用码型的必经之路这个定位非常准确。可能你会觉得既然HDB3才是实际用的那AMI码是不是只配出现在课本里不是。HDB3的编码译码电路里第一级生成的就是AMI码后面只不过在特定位置额外插入一些脉冲去破坏连0。你把AMI码彻底理解透了再去读HDB3的规则就是一层窗户纸反过来直接硬记HDB3的V脉冲B脉冲规则学完就忘。所以复习这一章的时候务必把AMI当发动机把HDB3当改装配件来看。4.2 HDB3对AMI做了什么手术破坏脉冲V与补信脉冲BHDB3的编码规则可以拆成三步说。第一步先把输入信息码编成正常的AMI码这一步没有任何区别。第二步扫描码流发现连续4个0时把这4个0里的最后一个0替换成一个“破坏脉冲”记为V它的极性与紧挨着它前面的非零脉冲相同。这一步很有意思因为正常AMI规则下相邻非零脉冲应该交替而V偏偏“故意”违反这个规则所以叫破坏脉冲。接收端看到这种破坏点就知道这里曾经是被人为处理过的连0区。第三步处理两个相邻V之间的交替关系。V虽然故意破坏规则但V与V之间仍然要保持极性交替否则接收端就没法统一识别破坏点。如果两个相邻V之间的非零脉冲个数是偶数那就要在对应4个连0的第一个0位置再插入一个补信脉冲记为B。B的极性与前面最近的非零脉冲相反这样整个替换小组就变成了B00V的格式B和V的极性相反相邻V的交替关系也就保住了。如果两个相邻V之间非零脉冲个数是奇数则保持000V就够了不需要补B。口诀可以记成逢四零、末零变VV极性随前非零两V之间看奇偶偶数就要加个B。实际做题时最常出错的就是忘了检查“两V之间非零脉冲个数”漏加或者多加B。可以拿课后习题里那种多段连0的序列自己在纸上推一遍把每一步极性变化都标出来练完以后HDB3的基本功就扎实了。4.3 AMI码的工程遗留价值虽然在E1线路上你已经看不到纯AMI码了但AMI码的思想在工程里到处都是。第一块遗产是误码检测。HDB3码虽然插入了V和B但V是有限数量的破坏点其余非零脉冲仍然保持交替规则。接收端只要统计异常破坏点的位置和数量就能大概估算当前链路的误码率。很多E1误码仪里的“HDB3违例计数”就是这么来的追根溯源还是AMI那套极性交替规则。第二块遗产是极性反转不敏感。因为AMI及其衍生码的信息内容跟绝对极性无关工程布线时哪怕收发两根线接反通信依然正常。这一点在现代电路板设计里也很实用很多高速差分信号接口在设计时会故意利用类似思想降低对连接器引脚分配的敏感性。第三块遗产是教学价值。理解了AMI码就等于理解了“为什么要选择码型”的完整思维链条信道不传直流→要选无直流码型接收机要恢复定时→要控制连0链路要监测误码→要保留可用特征。后续学HDB3、B8ZS、CMI码甚至学以太网里的4B5B/8B10B编码本质上都是在这个链条上加条件、做取舍。这也是为什么通信原理教材始终把AMI码放在数字基带传输章节靠前的位置。5. 常见问题与知识点速查考试与调试最容易踩的坑5.1 编解码常见错误排查表下面这张表整理了我自己在做题和调试过程中反复遇到的坑按“容易错的现象、背后的原因、正确的做法”三列整理常见错误现象原因分析正确做法连续多个1编码时极性取成同一个方向全正或全负只记住“1取正负交替”但没记住交替只针对传号序列本身数传号序号奇数传号取正、偶数传号取负跳过所有0遇到连0后连0后面第一个1的极性算错意识不到连0不参加极性计数连0后再出现的第一个1极性跟连0前的最后一个非零脉冲交替即可画波形时分不清归零和不归零概念没理清AMI可以按归零画也可以按不归零画教材默认画成半占空比归零脉冲工程实现按三电平NRZ也没有问题关键是画出三电平误以为AMI码能纠正误码把自检错和纠错混为一谈AMI只能发现相邻非零极性不交替定位不了错误位置纠错要靠上层协议在题目里看到“额定传号密度”不知道什么意思对线路码型的实际约束不熟线路码型通常要求不出现过长0用HDB3等改进码保证游程长度有上限5.2 概念混淆区AMI与差分编码的区别考试里非常爱考一组对比AMI码和差分码相对码到底什么关系。很多人会搞混因为AMI码从编码视角看确实可以理解成“差分编码的产物”。这里我按用途把它们切开看。差分码是一种二电平编码核心思路是用“电平是否翻转”来表达信息信息0时不翻转、信息1时翻转或者反过来。它解决的核心问题是收端对绝对电平的依赖也就是极性反转时信息不丢。AMI码是另一种用途的三电平编码核心思路是用“有没有脉冲”区分0和1用“相邻非零脉冲的极性关系”提供自检能力。它解决的核心问题是直流分量的消除和差错检测。简单记忆法差分码在“不带直流”这一点上比不过AMI但AMI在“带极性交替自检”这一点上比普通差分码强。两者不是替代关系而是“AMI在实现细节上可以借用差分编码思想”的关系。如果题目让你把绝对码转成相对码再做双极性变换你最终得到的波形其实和AMI码一致这一点可以作为验证编解码正确性的手段。5.3 小技巧用AMI码的思路快速理解其他码型最后分享一个我自己的学习方法。碰到新的线路码型时先不要急着背规则先问三个问题这个码型有没有直流分量它怎么保证定时信息它有没有提供差错检测能力拿这三个问题去套AMI码会得到“无直流、靠1脉冲保证定时但长连0不行、靠极性交替自检”的答案。然后再去套HDB3、B8ZS、曼彻斯特码你会发现所有码型都是在给这三个答案做加减法。比如曼彻斯特码每个码元中间必然有一次跳变定时信息极丰富但代价是带宽变成原来的两倍可以理解为“用带宽买定时”。比如CMI码它是欧洲标准里的另一种线路码型靠两个电平的组合表示0和1本质上也是把定时信息强制塞进每个码元里。理解了AMI的三电平思想后再看CMI的“跳变规则”明显会顺畅很多。顺便提一句樊昌信《通信原理》教材第七版关于数字基带传输这章课后题里有不少AMI和HDB3的经典题目“请画出下列二进制序列的AMI码波形”“已知HDB3码流恢复原信息码”这类题一定要亲手做几遍。做题的时候你可能会觉得规则繁琐但到了工程现场当你看到误码仪上跳动的HDB3违例计数能第一时间反应过来“这是极性交替被破坏了”的时候就会感谢当初那个在草稿纸上认真画波形、反复数传号序号的自己。我自己在实际操作中的体会是AMI码这类线路编码千万不要当成“记忆题”来学而是要当成“画波形题”来学。先动手画再动手推把每个码元的极性都标清楚自然就能理解编码规则背后的物理约束和工程取舍。最后再分享一个小技巧如果你手边有Python写一个十行以内的函数就能把信息码转换成AMI码序列验证自己手算的结果也方便后续模拟HDB3的替换过程。学习通信原理最忌讳的就是只看公式不动手AMI码恰恰是最好的动手切入点。
02
RELATED NEWS

相关资讯

更多网站建设与数字化升级内容

03
WHY YAOTU

想打造同款高转化官网?

懂行业、懂生意,从建站到增长一站式陪跑

◈

场景化定制

不做模板站,围绕你的业务场景量身设计,小众不撞款。

◐

营销型架构

以转化目标组织内容与路径,让官网真正带来询盘。

▲

全周期服务

设计、开发、运营、运维一体,上线只是开始。

免费获取你的建站方案

留下需求,专属顾问 24 小时内为你输出方案建议。