2

The now-famous answer to How is stacking oranges in 24 dimensions related to receiving and decoding signals from the Voyagers? is worth stopping now here and going back and reading first.

Okay welcome back! @NgPh's comment under the question links to Channel Coding: The Road to Channel Capacity which is also very much worth reading. It says:

E. Reed-Solomon code implementations

The first major application of RS codes was as outer codes in concatenated coding systems for deep-space communications. For the 1977 Voyager mission, the Jet Propulsion Laboratory (JPL) used a (255, 223, 33), 16-error-correcting RS code over $\mathbb{F}_{256}$ as an outer code, with a rate-1/2, 64-state convolutional inner code (see also Section IV-D). The RS decoder used special-purpose hardware for decoding, and was capable of running up to about 1 Mb/s [27]. This concatenated convolutional/RS coding system became a NASA standard.

1980 saw the first major commercial application of RS codes in the compact disc (CD) standard. This system used two short RS codes over $\mathbb{F}_{256}$, namely (32, 28, 5) and (28, 24, 5) RS codes, and operated at bit rates of the order of 4 Mb/s [28]. All subsequent audio and video magnetic storage systems have used RS codes for error correction, nowadays at much higher rates.

[...] Linkabit Corp. was founded by Irwin Jacobs, Len Kleinrock, and Andy Viterbi in 1968 as a consulting company. In 1969, Jerry Heller was hired as Linkabit’s first full-time employee. Shortly thereafter, Linkabit built a prototype 64-state Viterbi algorithm decoder (“a big monster filling a rack” [60]), capable of running at 2 Mb/s [61].

  • [27]:R. W. McEliece and L. Swanson, “Reed-Solomon codes and the exploration of the solar system,” in Reed-Solomon Codes and Their Applications (S. B. Wicker and V. K. Bhargava, eds.), pp. 25–40. Piscataway, NJ: IEEE Press, 1994.
  • [28]:K. A. S. Immink, “Reed-Solomon codes and the compact disc,” in Reed-Solomon Codes and Their Applications (S. B. Wicker and V. K. Bhargava, eds.), pp. 41–59. Piscataway, NJ: IEEE Press, 1994.
  • [60]:D. Morton, “Andrew Viterbi, electrical engineer: An oral history,” IEEE History Center, Rutgers U., New Brunswick, NJ, Oct. 1999
  • [61]:J. A. Heller and I. M. Jacobs, “Viterbi decoding for satellite and space communication,” IEEE Trans. Commun. Tech., vol. COM–19, pp. 835–848, Oct. 1971.

But sources quoted in How is stacking oranges in 24 dimensions related to receiving and decoding signals from the Voyagers? and in comments below the question and the answer suggest Voyager used a Golay code, and the term Hamming is thrown around a lot as well.

So let's nail this down:

Question: Did the Voyager spacecraft use a Golay, a Reed-Solomon and/or a Hamming code for data transmission encoding for error correction?

uhoh
  • 148,791
  • 53
  • 476
  • 1,473

1 Answers1

4

Question: Did the Voyager spacecraft use a Golay, a Reed-Solomon and/or a Hamming code for data transmission encoding for error correction?

Yes!

And there's a convolutional coder in there as well.


From DESCANSO Design and Performance Summary Series, Voyager Telecommunications, (2002):

The TMU [telemetry modulation unit] encodes the high rate data stream with a convolutional code having constraint length of 7 and a symbol rate equal to twice the bit rate (k=7, r=1/2)

[emphasis added]

The question only mentions block codes but the Voyagers used convolutional encoding. I'm certainly no expert but Brown, C. D. (2002). Elements of Spacecraft Design. United States: American Institute of Aeronautics & Astronautics. suggests that:

Convolutional coding is a newer type of coding that gives better bit error rate reduction than block coding for a given symbol-to-bit ratio. In addition, the encoder is simpler to implement in hardware than a block encoder.

Edit:

Found this table from DESCANSO that suggests Golay or Reed-Solomon encoding is used (w/ convolutional): Voyager Link Configurations

Brown, Elements of Spacecraft Design calls this concatenation:

When even greater error correction is needed it it possible to combine coding schemes, called concatenation. [...] the Reed-Solomon code being the outer layer and convolutional code being the inner layer. The data bits are first convolutionally coded. The output symbol stream from the convolutional coder is Reed-Solomon coded. This scheme provides significant increase in error protection and a significant increase in symbol rate.

Edit 2.0, Should have read the whole thing first, from DESCANSO:

The Golay encoding algorithm used at Jupiter and Saturn required the transmission of one overhead bit for every information bit transmitted (100% overhead). Voyager carried an experimental Reed-Solomon data encoder, expressly for the greater communication range of the Uranus and Neptune phase of the mission. The new Reed-Solomon encoding scheme reduced the overhead to about one bit in five (20% overhead) and reduced the bit-error rate in the output information from 5 × $10^{-3}$ to $10^{-6}$

Not only were Golay and Reed-Solomon ("a special subset of [Bose-Chadhuri-Hocquehem] codes" which are "a powerful class of Hamming code", Brown, Elements of Spacecraft Design) used, convolutional coding was also used.

uhoh
  • 148,791
  • 53
  • 476
  • 1,473
BrendanLuke15
  • 9,755
  • 2
  • 26
  • 80