Varicode
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]
Limitations
- Varicode provides somewhat weaker compression in languages other than English that use same characters as in English.
Varicode table
Control characters
Varicode | Oct | Dec | Hex | Abbr | Description |
---|---|---|---|---|---|
1010101011 | 000 | 0 | 00 | NUL | Null character |
1011011011 | 001 | 1 | 01 | SOH | Start of Header |
1011101101 | 002 | 2 | 02 | STX | Start of Text |
1101110111 | 003 | 3 | 03 | ETX | End of Text |
1011101011 | 004 | 4 | 04 | EOT | End of Transmission |
1101011111 | 005 | 5 | 05 | ENQ | Enquiry |
1011101111 | 006 | 6 | 06 | ACK | Acknowledgment |
1011111101 | 007 | 7 | 07 | BEL | Bell |
1011111111 | 010 | 8 | 08 | BS | Backspace |
11101111 | 011 | 9 | 09 | HT | Horizontal Tab |
11101 | 012 | 10 | 0A | LF | Line feed |
1101101111 | 013 | 11 | 0B | VT | Vertical Tab |
1011011101 | 014 | 12 | 0C | FF | Form feed |
11111 | 015 | 13 | 0D | CR | Carriage return |
1101110101 | 016 | 14 | 0E | SO | Shift Out |
1110101011 | 017 | 15 | 0F | SI | Shift In |
1011110111 | 020 | 16 | 10 | DLE | Data Link Escape |
1011110101 | 021 | 17 | 11 | DC1 | Device Control 1 (XON) |
1110101101 | 022 | 18 | 12 | DC2 | Device Control 2 |
1110101111 | 023 | 19 | 13 | DC3 | Device Control 3 (XOFF) |
1101011011 | 024 | 20 | 14 | DC4 | Device Control 4 |
1101101011 | 025 | 21 | 15 | NAK | Negative Acknowledgement |
1101101101 | 026 | 22 | 16 | SYN | Synchronous Idle |
1101010111 | 027 | 23 | 17 | ETB | End of Trans. Block |
1101111011 | 030 | 24 | 18 | CAN | Cancel |
1101111101 | 031 | 25 | 19 | EM | End of Medium |
1110110111 | 032 | 26 | 1A | SUB | Substitute |
1101010101 | 033 | 27 | 1B | ESC | Escape |
1101011101 | 034 | 28 | 1C | FS | File Separator |
1110111011 | 035 | 29 | 1D | GS | Group Separator |
1011111011 | 036 | 30 | 1E | RS | Record Separator |
1101111111 | 037 | 31 | 1F | US | Unit Separator |
1110110101 | 177 | 127 | 7F | DEL | Delete |
Printable characters
|
|
|
Character lengths
Beginning with the single-bit code "1", valid varicode values may be formed by prepending 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.
Bits | Codes | Characters |
---|---|---|
1 | 1 | SP |
2 | 1 | e |
3 | 2 | o t |
4 | 3 | a i n |
5 | 5 | LF CR l r s |
6 | 8 | - c d f h m p u |
7 | 13 | , . = A E I S T b g v w y |
8 | 21 | HT ( ) 0 1 2 3 : B C D F G L M N O P R k x |
9 | 34 | |
10 | 40 | NUL 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 |
References
- Steven L Karty, N5SK. "PSK31 Spec". ARRL Website. Retrieved 18 Dec 2010.
- Peter Martinez, G3PLX. "PSK31: A New Radio-Teletype Mode" (PDF). Retrieved 28 Sep 2017.
- 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.