Coded mark inversion

In telecommunication, coded mark inversion (CMI) is a non-return-to-zero (NRZ) line code. It encodes zero bits as a half bit time of zero followed by a half bit time of one, and while one bits are encoded as a full bit time of a constant level. The level used for one bits alternates each time one is coded.

CMI line coding

In telecommunication, coded mark inversion (CMI) is a non-return-to-zero (NRZ) line code. It encodes zero bits as a half bit time of zero followed by a half bit time of one, and while one bits are encoded as a full bit time of a constant level. The level used for one bits alternates each time one is coded.

This is vaguely reminiscent of, but quite different from, Miller encoding, which also uses half-bit and full-bit pulses, but additionally uses the half-one/half-zero combination and arranges them so that the signal always spends at least a full bit time at a particular level before transitioning again.

CMI doubles the bitstream frequency, when compared to its simple NRZ equivalent, but allows easy and reliable clock recovery.

  • Manchester code

  • ITU-T G.703 (11/2001), Annex A, A.3. Definition of CMI.

  • .mw-parser-output .citation{word-wrap:break-word}.mw-parser-output .citation:target{background-color:rgba(0,127,255,0.133)}US 4325053, Pierre Le Brozec; Francois Ferret & Pierre Doussoux, "Method and a circuit for decoding a C.M.I. encoded binary signal", issued 1982-04-13

  • @media screen{html.skin-theme-clientpref-night .mw-parser-output .sister-inline-image img[src*="Wiktionary-logo-en-v2.svg"]{filter:invert(1)brightness(55%)contrast(250%)hue-rotate(180deg)}}@media screen and (prefers-color-scheme:dark){html.skin-theme-clientpref-os .mw-parser-output .sister-inline-image img[src*="Wiktionary-logo-en-v2.svg"]{filter:invert(1)brightness(55%)contrast(250%)hue-rotate(180deg)}} Media related to Coded mark inversion at Wikimedia Commons

.mw-parser-output .asbox{position:relative;overflow:hidden}.mw-parser-output .asbox table{background:transparent}.mw-parser-output .asbox p{margin:0}.mw-parser-output .asbox p+p{margin-top:0.25em}.mw-parser-output .asbox-body{font-style:italic}.mw-parser-output .asbox-note{font-size:smaller}.mw-parser-output .asbox .navbar{position:absolute;top:-0.75em;right:1em;display:none}.mw-parser-output :not(p):not(.asbox)+style+.asbox,.mw-parser-output :not(p):not(.asbox)+link+.asbox{margin-top:3em}