John Carlos Baez on Nostr: The Voyager 1 and 2 spacecraft sent back hundreds of color pictures as they flew by ...
The Voyager 1 and 2 spacecraft sent back hundreds of color pictures as they flew by Jupiter and Saturn. But they could only transmit 14 kilobytes per second! So they used a highly efficient error-correcting code: the Golay code.
This is a 24-bit code. The first 12 bits convey the message, and the rest are computed from those. Up to 3 of the 24 bits can be wrong and you can still figure out what was intended! Up to 7 can be wrong and you can still know there was an error!
This image by npub1t76as6gjr7pzg0taz40e55smjjegmj89ud7g056aqed90hs7cynspe4l63 (npub1t76…4l63) shows how it works. This shape, an icosahedron, has 12 vertices. There are also 12 pentagons inside this shape. Your first 12 bits say which pentagons to light up. 0 means "leave it dark" and 1 means "light it up". Your second 12 bits say which vertices to light up!
The second 12 bits are computed from the first 12 using this trick:
If you light up a single pentagon, then you only light up the vertices that don't contain that pentagon! What if you light up a bunch of pentagons? Then you use addition mod 2. You work out which vertices get lit up for each pentagon you light up. You think of those results as 12-bit strings. Then you add them up mod 2.
The last part may sound complicated, but it's a common trick, called a "linear code". What's special about the Golay code is its connection to the icosahedron. This gives it remarkable features, which I explain here:
https://blogs.ams.org/visualinsight/2015/12/01/golay-code/
I need to learn more about the other codes used by the Voyagers!
This is a 24-bit code. The first 12 bits convey the message, and the rest are computed from those. Up to 3 of the 24 bits can be wrong and you can still figure out what was intended! Up to 7 can be wrong and you can still know there was an error!
This image by npub1t76as6gjr7pzg0taz40e55smjjegmj89ud7g056aqed90hs7cynspe4l63 (npub1t76…4l63) shows how it works. This shape, an icosahedron, has 12 vertices. There are also 12 pentagons inside this shape. Your first 12 bits say which pentagons to light up. 0 means "leave it dark" and 1 means "light it up". Your second 12 bits say which vertices to light up!
The second 12 bits are computed from the first 12 using this trick:
If you light up a single pentagon, then you only light up the vertices that don't contain that pentagon! What if you light up a bunch of pentagons? Then you use addition mod 2. You work out which vertices get lit up for each pentagon you light up. You think of those results as 12-bit strings. Then you add them up mod 2.
The last part may sound complicated, but it's a common trick, called a "linear code". What's special about the Golay code is its connection to the icosahedron. This gives it remarkable features, which I explain here:
https://blogs.ams.org/visualinsight/2015/12/01/golay-code/
I need to learn more about the other codes used by the Voyagers!