文章背景与核心概要
在1971年,NASA的水手9号(Mariner 9)探测器面临着一项巨大的技术挑战:如何将火星的高清图像跨越茫茫太空稳定地传输回地球。为了对抗传输过程中的信号畸变与噪声干扰,工程师们巧妙地运用了一种复杂的 (32, 6, 16) 阿达马(Hadamard)纠错码。
该核心技术允许探测器将6位的像素数据扩展为具备极强鲁棒性的32位码字。即便在漫长的传输过程中有部分比特发生翻转,地球上的接收系统依然能够准确无误地重建出原始图像。本文简要介绍了这一经典空间通信技术的矩阵构造原理、解码纠错机制以及类似于快速傅里叶变换(FFT)的高效计算方法。
How NASA’s Mariner 9 Probe Encoded Images
Summary
In 1971, NASA’s Mariner 9 mission faced the challenge of transmitting high-fidelity images of Mars across the vast distance of space. To combat signal corruption, engineers employed a sophisticated (32, 6, 16) Hadamard error-correcting code. This method allowed the probe to transmit 6-bit pixel data as robust 32-bit codewords, ensuring that even if bits were flipped during transmission, the original image could be accurately reconstructed on Earth.
In 1971, NASA’s Mariner 9 mission faced the challenge of transmitting high-fidelity images of Mars across the vast distance of space. To combat signal corruption, engineers employed a sophisticated (32, 6, 16) Hadamard error-correcting code. This method allowed the probe to transmit 6-bit pixel data as robust 32-bit codewords, ensuring that even if bits were flipped during transmission, the original image could be accurately reconstructed on Earth.
The Challenge of Deep-Space Transmission
When Mariner 9 began photographing Mars in 1971, the data faced significant risks of corruption during its long journey back to Earth. To ensure the integrity of the images, NASA utilized an error-correcting code based on Hadamard matrices.
The Challenge of Deep-Space Transmission
When Mariner 9 began photographing Mars in 1971, the data faced significant risks of corruption during its long journey back to Earth. To ensure the integrity of the images, NASA utilized an error-correcting code based on Hadamard matrices.
Constructing the Hadamard Code
The encoding process relies on a (32, 6, 16) Hadamard code, where each 6-bit pixel value is expanded into a 32-bit codeword. These codewords are designed such that any two differ in at least 16 positions, providing a high degree of redundancy.
- Matrix Construction: Using a Hadamard matrix \(H\) of order \(2^n\), a \(64 \times 32\) matrix \(M\) is created by stacking \(H\) over \(-H\).
- Transformation: By converting all \(-1\) entries to \(0\), we form a matrix \(M'\) where the rows serve as the set of valid codewords.
- Encoding: A 6-bit pixel value determines the selection: one bit chooses between the top or bottom half of \(M'\), while the remaining five bits select the specific row.
Constructing the Hadamard Code
The encoding process relies on a (32, 6, 16) Hadamard code, where each 6-bit pixel value is expanded into a 32-bit codeword. These codewords are designed such that any two differ in at least 16 positions, providing a high degree of redundancy.
- Matrix Construction: Using a Hadamard matrix \(H\) of order \(2^n\), a \(64 \times 32\) matrix \(M\) is created by stacking \(H\) over \(-H\).
- Transformation: By converting all \(-1\) entries to \(0\), we form a matrix \(M'\) where the rows serve as the set of valid codewords.
- Encoding: A 6-bit pixel value determines the selection: one bit chooses between the top or bottom half of \(M'\), while the remaining five bits select the specific row.
Decoding and Error Correction
When a corrupted codeword \(c'\) is received, the system must determine the original intended signal.
- Conversion: All \(0\)s in the received \(c'\) are replaced with \(-1\) to create \(c''\).
- Correlation: By multiplying the original matrix \(M\) by the vector \(c''\), we produce a 64-element vector. The index of the largest component in this vector identifies the most likely transmitted row.
- Robustness: This method remains effective even if up to 7 bits within the 32-bit codeword are flipped.
Decoding and Error Correction
When a corrupted codeword \(c'\) is received, the system must determine the original intended signal.
- Conversion: All \(0\)s in the received \(c'\) are replaced with \(-1\) to create \(c''\).
- Correlation: By multiplying the original matrix \(M\) by the vector \(c''\), we produce a 64-element vector. The index of the largest component in this vector identifies the most likely transmitted row.
- Robustness: This method remains effective even if up to 7 bits within the 32-bit codeword are flipped.
Computational Efficiency
While matrix multiplication can be resource-intensive, the structure of the Hadamard matrix allows for an algorithm analogous to the Fast Fourier Transform (FFT). This significantly reduces the number of operations required to decode the signal, making it computationally feasible for the hardware of the era.
Computational Efficiency
While matrix multiplication can be resource-intensive, the structure of the Hadamard matrix allows for an algorithm analogous to the Fast Fourier Transform (FFT). This significantly reduces the number of operations required to decode the signal, making it computationally feasible for the hardware of the era.
Source: How NASA’s Mariner 9 probe encoded images by John D. Cook.
Source: How NASA’s Mariner 9 probe encoded images by John D. Cook.