Jump to content
Main menu
Main menu
move to sidebar
hide
Navigation
Main page
Recent changes
Random page
Help about MediaWiki
Special pages
Niidae Wiki
Search
Search
Appearance
Create account
Log in
Personal tools
Create account
Log in
Pages for logged out editors
learn more
Contributions
Talk
Editing
Modified AMI code
Page
Discussion
English
Read
Edit
View history
Tools
Tools
move to sidebar
hide
Actions
Read
Edit
View history
General
What links here
Related changes
Page information
Appearance
move to sidebar
hide
Warning:
You are not logged in. Your IP address will be publicly visible if you make any edits. If you
log in
or
create an account
, your edits will be attributed to your username, along with other benefits.
Anti-spam check. Do
not
fill this in!
{{Short description|Digital telecommunications technique}} {{Unreferenced|date=April 2021}} '''Modified AMI codes''' are a digital telecommunications technique to maintain [[system]] [[synchronization]]. [[Alternate mark inversion]] (AMI) [[line code]]s are modified by deliberate insertion of [[bipolar violation]]s. There are several types of modified AMI codes, used in various [[T-carrier]] and [[E-carrier]] systems. ==Overview== The [[clock rate]] of an incoming T-carrier is extracted from its bipolar line code. Each signal transition provides an opportunity for the receiver to see the transmitter's clock. The AMI code guarantees that transitions are always present before and after each mark (1 bit), but are missing between adjacent spaces (0 bits). To prevent loss of [[synchronization]] when a long [[string (computer science)|string]] of zeros is present in the [[payload (computing)|payload]], deliberate bipolar violations are inserted into the line code, to create a sufficient number of transitions to maintain synchronization; this is a form of [[run length limited]] coding. The receive [[terminal equipment]] recognizes the bipolar violations and removes from the user data the marks attributable to the bipolar violations. T-carrier was originally developed for voice applications. When voice signals are digitized for [[transmission (telecommunications)|transmission]] via T-carrier, the [[data stream]] always includes ample 1 bits to maintain synchronization. (To help this, the [[ΞΌ-law algorithm]] for digitizing voice signals encodes silence as a continuous stream of 1 bits.) However, when used for the transmission of [[digital data]], the conventional AMI line code may fail to have sufficient marks to permit recovery of the incoming clock, and synchronization is lost. This happens when there are too many consecutive zeros in the [[User (telecommunications)|user]] [[data]] being transported. The exact pattern of bipolar violations that is transmitted in any given case depends on the line rate (''i.e.'', the level of the line code in the [[T-carrier]] hierarchy) and the polarity of the last valid [[mark frequency|mark]] in the user data prior to the unacceptably long string of zeros. It would not be useful to have a violation immediately following a mark, as that would not produce a transition. For this reason, all modified AMI codes include a space (0 bit) before each violation mark. In the descriptions below, "{{mono|B}}" denotes a balancing mark with the opposite polarity to that of the preceding mark, while "{{mono|V}}" denotes a bipolar violation mark, which has the same polarity as the preceding mark. In order to preserve AMI coding's desirable absence of [[DC bias]], the number of positive marks must equal the number of negative marks. This happens automatically for balancing ({{mono|B}}) marks, but the line code must ensure that positive and negative violation marks balance each other. ==Zero length code suppression <span class="anchor" id="Suppression"></span>== The first technique used to ensure a minimum density of marks was '''zero code suppression''' a form of [[bit stuffing]], which set the least significant bit of each 8-bit byte transmitted to a 1. (This bit was already unavailable due to [[robbed-bit signaling]].) This avoided the need to modify the AMI code in any way, but limited available data rates to 56,000 bits per second per [[Digital Signal 0|DS0]] voice channel. Also, the low minimum density of ones (12.5%) sometimes led to increased clock [[slip (telecommunication)|slip]]page on the span. Increased demand for bandwidth, and compatibility with the [[G.703]] and [[ISDN]] [[Primary Rate Interface|PRI]] standards which called for 64,000 bits per second, led to this system being superseded by B8ZS. ==B8ZS (North American T1) <span class="anchor" id="B8ZS"></span>== Commonly used in the North American T1 ([[Digital Signal 1]]) 1.544 Mbit/s line code, '''bipolar with eight-zero substitution (B8ZS)''' replaces each string of 8 consecutive zeros with the special pattern "{{mono|000VB0VB}}". Depending on the polarity of the preceding mark, that could be {{mono|000+β0β+}} or {{mono|000β+0+β}}. ==B6ZS (North American T2) <span class="anchor" id="B6ZS"></span>== At the North American T2 rate (6.312 Mbit/s), bipolar violations are inserted if 6 or more consecutive zeros occur. This line code is called '''bipolar with six-zero substitution (B6ZS)''', and replaces 6 consecutive zeros with the pattern "{{mono|0VB0VB}}". Depending on the polarity of the preceding mark, that could be {{mono|0+β0β+}} or {{mono|0β+0+β}}. ==HDB3 (European E-carrier) <span class="anchor" id="HDB3"></span>== Used in all levels of the European [[E-carrier]] system, the '''high density bipolar of order 3 (HDB3)''' code replaces any instance of 4 consecutive 0 bits with one of the patterns "{{mono|000V}}" or "{{mono|B00V}}". The choice is made to ensure that consecutive violations are of differing polarity; i.e., separated by an odd number of normal {{mono|+ or β}} marks. {|class=wikitable style="text-align:center;" |+ HDB 3 coding of 0000{{sub|2}} ! Parity of +/β bits<br/>since previous V !! Pattern !! Previous pulse !! Coded |- |rowspan=2| Even || rowspan="2" | B00V | + || β00β |- | β || +00+ |- |rowspan=2| Odd || rowspan="2" | 000V | + || 000+ |- | β || 000- |} These rules are applied on the code as it is being built from the original string. Every time there are 4 consecutive zeros in the code they will be replaced by either 000β, 000+, +00+ or β00β. To determine which pattern to use, one must count the number of pluses (+) and the number of minuses (β) since the last violation bit V, then subtract one from the other. If the result is an odd number then 000β or 000+ is used. If the result is an even number then +00+ or β00β is used. To determine which polarity to use, one must look at the pulse preceding the four zeros. If 000V form must be used then V simply copies the polarity of last pulse, if B00V form must be used then B and V chosen will have the opposite polarity of the last pulse. ===Examples=== Here are some examples of bit streams codes with AMI and HDB3. All assume the same starting conditions: the previous 1 bit was β, and the previous violation was an even number of 1 bits ago. (E.g. the preceding bits could have been ++β.) {| | '''Input''' || {{mono|10000110}}{{sub|2}} |- | '''AMI''' || {{mono|+0000β+0}} |- | '''HDB3''' || {{mono|+B00Vβ+0}} |- | || {{mono|+β00β+β0}} |} {| | '''Input''' || {{mono|101000001100001100000001}}{{sub|2}} |- | '''AMI''' || {{mono|+0β00000+β0000+β0000000+}} |- | '''HDB3''' || {{mono|+0β000V0+βB00Vβ+B00V000+}} |- | || {{mono|+0β000β0+β+00+β+β00β000+}} |} {| | '''Input''' || {{mono|1010000100001100001110000111100001010000}}{{sub|2}} |- | '''AMI''' || {{mono|+0β0000+0000β+0000β+β0000+β+β0000+0β0000}} |- | '''HDB3''' || {{mono|+0-000V+000V-+B00V-+-000V+-+-B00V+0-B00V}} |- | || {{mono|+0-000-+000+-+-00-+-+000+-+-+-00-+0-+00+}} |} {| | '''Input''' || {{mono| 10000000000}}{{sub|2}} |- | '''AMI''' || {{mono|+000000000}} |- | '''HDB3''' || {{mono|+B00VB00V00}} |- | || {{mono|+-00-+00+00}} |} ==B3ZS (North American T3) <span class="anchor" id="B3ZS"></span>== At the [[DS-3|North American T3]] rate (44.736 Mbit/s), bipolar violations are inserted if 3 or more consecutive zeros occur. This line code is called '''bipolar with three-zero substitution (B3ZS)''', and is very similar to HDB3. Each run of 3 consecutive zeros is replaced by "{{mono|00V}}" or "{{mono|B0V}}". The choice is made to ensure that consecutive violations are of differing polarity, i.e. separated by an odd number of normal {{mono|B}} marks. {|class=wikitable style="text-align:center;" |+ B3ZS coding of "000" ! Number of B bits<br/>since last V !! Pattern !! Polarity<br/>of last B !! Coded |- |rowspan=2| Odd ||rowspan=2 | 00V | + || 00+ |- | β || 00β |- |rowspan=2| Even ||rowspan=2 | B0V | + || β0β |- | β || +0+ |} ==See also== Other line codes that have 3 states: * [[Bipolar encoding]] or alternate mark inversion * [[Hybrid ternary code]] * [[MLT-3 encoding]] * [[4B3T]] {{Bit-encoding}} {{FS1037C}} [[Category:Encodings]] [[Category:Line codes]] [[Category:Multiplexing]]
Summary:
Please note that all contributions to Niidae Wiki may be edited, altered, or removed by other contributors. If you do not want your writing to be edited mercilessly, then do not submit it here.
You are also promising us that you wrote this yourself, or copied it from a public domain or similar free resource (see
Encyclopedia:Copyrights
for details).
Do not submit copyrighted work without permission!
Cancel
Editing help
(opens in new window)
Templates used on this page:
Template:Bit-encoding
(
edit
)
Template:FS1037C
(
edit
)
Template:Mono
(
edit
)
Template:Short description
(
edit
)
Template:Sub
(
edit
)
Template:Unreferenced
(
edit
)
Search
Search
Editing
Modified AMI code
Add topic