Varicode

Last updated

Varicode is a self-synchronizing code for use in PSK31. It supports all ASCII characters, but the characters used most frequently in English have shorter codes. The space between characters is indicated by a 00 sequence, an implementation of Fibonacci coding. Originally created for speeding up real-time keyboard-to-keyboard exchanges over low bandwidth links, Varicode is freely available. [1] [2] [3]

Contents

Limitations

Varicode table

Control characters

VaricodeOctDecHexAbbrDescription
1010101011000000NUL Null character
1011011011001101SOHStart of Header
1011101101002202STXStart of Text
1101110111003303ETXEnd of Text
1011101011004404EOT End of Transmission
1101011111005505ENQEnquiry
1011101111006606ACK Acknowledgment
1011111101007707BEL Bell
1011111111010808BS Backspace
11101111011909HT Horizontal Tab
11101012100ALF Line feed
1101101111013110BVTVertical Tab
1011011101014120CFF Form feed
11111015130DCR Carriage return
1101110101016140ESO Shift Out
1110101011017150FSI Shift In
10111101110201610DLEData Link Escape
10111101010211711DC1Device Control 1 (XON)
11101011010221812DC2Device Control 2
11101011110231913DC3Device Control 3 (XOFF)
11010110110242014DC4Device Control 4
11011010110252115NAK Negative Acknowledgement
11011011010262216SYNSynchronous Idle
11010101110272317ETBEnd of Trans. Block
11011110110302418CAN Cancel
11011111010312519EMEnd of Medium
1110110111032261ASUB Substitute
1101010101033271BESC Escape
1101011101034281CFSFile Separator
1110111011035291DGSGroup Separator
1011111011036301ERSRecord Separator
1101111111037311FUSUnit Separator
11101101011771277FDELDelete

Printable characters

Varicode Oct Dec Hex Glyph
10403220 SP
1111111110413321 !
1010111110423422 "
1111101010433523 #
1110110110443624 $
10110101010453725 %
10101110110463826 &
1011111110473927 '
111110110504028 (
111101110514129 )
101101111052422A *
111011111053432B +
1110101054442C ,
110101055452D -
1010111056462E .
110101111057472F /
101101110604830 0
101111010614931 1
111011010625032 2
111111110635133 3
1011101110645234 4
1010110110655335 5
1011010110665436 6
1101011010675537 7
1101010110705638 8
1101101110715739 9
11110101072583A :
110111101073593B ;
111101101074603C <
1010101075613D =
111010111076623E >
1010101111077633F ?
 
Varicode Oct Dec Hex Glyph
10101111011006440 @
11111011016541 A
111010111026642 B
101011011036743 C
101101011046844 D
11101111056945 E
110110111067046 F
111111011077147 G
1010101011107248 H
11111111117349 I
111111101112744A J
101111101113754B K
11010111114764C L
10111011115774D M
11011101116784E N
10101011117794F O
110101011208050 P
1110111011218151 Q
101011111228252 R
11011111238353 S
11011011248454 T
1010101111258555 U
1101101011268656 V
1010111011278757 W
1011101011308858 X
1011110111318959 Y
1010101101132905A Z
111110111133915B [
111101111134925C \
111111011135935D ]
1010111111136945E ^
101101101137955F _
 
Varicode Oct Dec Hex Glyph
10110111111409660 '
10111419761 a
10111111429862 b
1011111439963 c
10110114410064 d
1114510165 e
11110114610266 f
101101114710367 g
10101115010468 h
110115110569 i
1111010111521066A j
101111111531076B k
110111541086C l
1110111551096D m
11111561106E n
1111571116F o
11111116011270 p
11011111116111371 q
1010116211472 r
1011116311573 s
10116411674 t
11011116511775 u
111101116611876 v
110101116711977 w
1101111117012078 x
101110117112179 y
1110101011721227A z
10101101111731237B {
1101110111741247C |
10101101011751257D }
10110101111761267E ~

Character lengths

Beginning with the single-bit code "1", valid varicode values may be formed by prefixing a "1" or "10" to a shorter code. Thus, the number of codes of length n is equal to the Fibonacci number Fn. Varicode uses the 88 values of lengths up to 9 bits, and 40 of the 55 codes of length 10.

As transmitted, the codes are two bits longer due to the trailing delimiter 00.

ASCII characters by varicode length
BitsCodesCharacters
11SP
21e
32o t
43a i n
55LF CR l r s
68- c d f h m p u
713, . = A E I S T b g v w y
821HT ( ) 0 1 2 3 : B C D F G L M N O P R k x
934 ! " # $ ' * + / 4 5 6 7 8 9 ; <> H J K Q U V W X Y [ \ ] _ j q z |
1040NUL SOH STX ETX EOT ENQ ACK BEL BS VT FF SO SI DLE DC1 DC2 DC3 DC4 NAK SYN ETB CAN EOM SUB ESC FS GS RS US % & ? @ Z ^ ` { } ~ DEL

Related Research Articles

<span class="mw-page-title-main">Baudot code</span> Pioneering five-bit character encodings

The Baudot code[boˈdo] is an early character encoding for telegraphy invented by Émile Baudot in the 1870s. It was the predecessor to the International Telegraph Alphabet No. 2 (ITA2), the most common teleprinter code in use until the advent of ASCII. Each character in the alphabet is represented by a series of five bits, sent over a communication channel such as a telegraph wire or a radio signal by asynchronous serial communication. The symbol rate measurement is known as baud, and is derived from the same name.

<span class="mw-page-title-main">Enhanced Data rates for GSM Evolution</span> Digital mobile phone technology

Enhanced Data rates for GSM Evolution (EDGE) also known as Enhanced GPRS (EGPRS), IMT Single Carrier (IMT-SC), or Enhanced Data rates for Global Evolution) is a digital mobile phone technology that allows improved data transmission rates as a backward-compatible extension of GSM. EDGE is considered a pre-3G radio technology and is part of ITU's 3G definition. EDGE was deployed on GSM networks beginning in 2003 – initially by Cingular in the United States.

<span class="mw-page-title-main">Hash function</span> Mapping arbitrary data to fixed-size values

A hash function is any function that can be used to map data of arbitrary size to fixed-size values, though there are some hash functions that support variable length output. The values returned by a hash function are called hash values, hash codes, digests, or simply hashes. The values are usually used to index a fixed-size table called a hash table. Use of a hash function to index a hash table is called hashing or scatter storage addressing.

<span class="mw-page-title-main">Morse code</span> Transmission of language with brief pulses

Morse code is a method used in telecommunication to encode text characters as standardized sequences of two different signal durations, called dots and dashes, or dits and dahs. Morse code is named after Samuel Morse, one of the inventors of the telegraph.

<span class="mw-page-title-main">Radioteletype</span> Radio linked electromechanical communications system

Radioteletype (RTTY) is a telecommunications system consisting originally of two or more electromechanical teleprinters in different locations connected by radio rather than a wired link. Radioteletype evolved from earlier landline teleprinter operations that began in the mid-1800s. The US Navy Department successfully tested printing telegraphy between an airplane and ground radio station in 1922. Later that year, the Radio Corporation of America successfully tested printing telegraphy via their Chatham, Massachusetts, radio station to the R.M.S. Majestic. Commercial RTTY systems were in active service between San Francisco and Honolulu as early as April 1932 and between San Francisco and New York City by 1934. The US military used radioteletype in the 1930s and expanded this usage during World War II. From the 1980s, teleprinters were replaced by personal computers (PCs) running software to emulate teleprinters.

<span class="mw-page-title-main">String (computer science)</span> Sequence of characters, data type

In computer programming, a string is traditionally a sequence of characters, either as a literal constant or as some kind of variable. The latter may allow its elements to be mutated and the length changed, or it may be fixed. A string is generally considered as a data type and is often implemented as an array data structure of bytes that stores a sequence of elements, typically characters, using some character encoding. String may also denote more general arrays or other sequence data types and structures.

In mathematics and computing, Fibonacci coding is a universal code which encodes positive integers into binary code words. It is one example of representations of integers based on Fibonacci numbers. Each code word ends with "11" and contains no other instances of "11" before the end.

In computing, a linear-feedback shift register (LFSR) is a shift register whose input bit is a linear function of its previous state.

<span class="mw-page-title-main">ANSI escape code</span> Method used for display options on video text terminals

ANSI escape sequences are a standard for in-band signaling to control cursor location, color, font styling, and other options on video text terminals and terminal emulators. Certain sequences of bytes, most starting with an ASCII escape character and a bracket character, are embedded into text. The terminal interprets these sequences as commands, rather than text to display verbatim.

<span class="mw-page-title-main">G.711</span> ITU-T recommendation

G.711 is a narrowband audio codec originally designed for use in telephony that provides toll-quality audio at 64 kbit/s. G.711 passes audio signals in the range of 300–3400 Hz and samples them at the rate of 8,000 samples per second, with the tolerance on that rate of 50 parts per million (ppm). Non-uniform (logarithmic) quantization with 8 bits is used to represent each sample, resulting in a 64 kbit/s bit rate. There are two slightly different versions: μ-law, which is used primarily in North America and Japan, and A-law, which is in use in most other countries outside North America.

<span class="mw-page-title-main">R-S-T system</span> Brevity code for Ham radio signal reports

The R-S-T system is used by amateur radio operators, shortwave listeners, and other radio hobbyists to exchange information about the quality of a radio signal being received. The code is a three digit number, with one digit each for conveying an assessment of the signal's readability, strength, and tone. The code was developed in 1934 by Amateur radio operator Arthur W. Braaten, W2BSR, and was similar to that codified in the ITU Radio Regulations, Cairo, 1938.

<span class="mw-page-title-main">PSK31</span>

PSK31 or "Phase Shift Keying, 31 Baud", also BPSK31 and QPSK31, is a popular computer-sound card-generated radioteletype mode, used primarily by amateur radio operators to conduct real-time keyboard-to-keyboard chat, most often using frequencies in the high frequency amateur radio bands (near-shortwave). PSK31 is distinguished from other digital modes in that it is specifically tuned to have a data rate close to typing speed, and has an extremely narrow bandwidth, allowing many conversations in the same bandwidth as a single voice channel. This narrow bandwidth makes better use of the RF energy in a very narrow space thus allowing relatively low-power equipment to communicate globally using the same skywave propagation used by shortwave radio stations.

The Lempel–Ziv–Markov chain algorithm (LZMA) is an algorithm used to perform lossless data compression. It has been under development since either 1996 or 1998 by Igor Pavlov and was first used in the 7z format of the 7-Zip archiver. This algorithm uses a dictionary compression scheme somewhat similar to the LZ77 algorithm published by Abraham Lempel and Jacob Ziv in 1977 and features a high compression ratio and a variable compression-dictionary size, while still maintaining decompression speed similar to other commonly used compression algorithms.

The 10-meter band is a portion of the shortwave radio spectrum internationally allocated to amateur radio and amateur satellite use on a primary basis. The band consists of frequencies stretching from 28.000 to 29.700 MHz.

AMTOR is a type of telecommunications system that consists of two or more electromechanical teleprinters in different locations that send and receive messages to one another. AMTOR is a specialized form of RTTY protocol. The term is an acronym for Amateur Teleprinting Over Radio and is derived from ITU-R recommendation 476-1 and is known commercially as SITOR developed primarily for maritime use in the 1970s. AMTOR was developed in 1978 by Peter Martinez, G3PLX, with the first contact taking place in September 1978 with G3YYD on the 2m Amateur band. It was developed on homemade Motorola 6800-based microcomputers in assembler code. It was used extensively by amateur radio operators in the 1980s and 1990s but has now fallen out of use as improved PC-based data modes are now used and teleprinters became out of fashion.

<span class="mw-page-title-main">MT63</span>

MT63 is a digital radio modulation mode for transmission in high-noise situations developed by Pawel Jalocha SP9VRC. MT63 is designed for keyboard-to-keyboard conversation modes, on HF amateur radio bands.

<span class="mw-page-title-main">PSK63</span>

PSK63 is a digital radio modulation mode used primarily in the amateur radio field to conduct real-time keyboard-to-keyboard informal text chat between amateur radio operators.

In mathematics, a sequence of natural numbers is called a complete sequence if every positive integer can be expressed as a sum of values in the sequence, using each value at most once.

A comma code is a type of prefix-free code in which a comma, a particular symbol or sequence of symbols, occurs at the end of a code word and never occurs otherwise. This is an intuitive way to express arrays.

References

  1. Steven L Karty, N5SK. "PSK31 Spec". ARRL Website. Retrieved 18 Dec 2010.
  2. Peter Martinez, G3PLX. "PSK31: A New Radio-Teletype Mode" (PDF). Retrieved 28 Sep 2017.
  3. ITU Working Party 5A. "ITU-R M.2034: Telegraphic Alphabet for Data Communication by Phase Shift Keying at 31 Baud in the Amateur and Amateur-Satellite Services". International Telecommunication Union (approved Feb, 2013). Retrieved 21 Feb 2013.