We first give a brief summary of the basic ECC principle. For comprehensive reviews on this topic, please refer to  [1]}, [2]}. Suppose the transmitter sends out a set of data bit-strings \(C = \lbrace \mathbf {c}\rbrace \) , noise and interference in the data transmission process lead to errors on the receiver side. If the noise is relatively small, such that the received bit-string \(\mathbf {r}\)  only slightly deviates from the original bit-string \(\mathbf {c_0}\) , the receiver is able to retrieve \(\mathbf {c_0}\)  by searching for the data string that is most similar to \(\mathbf {r}\)  in the codebook \(C\) , as shown in the green scenario in the right side of Fig. REF . This “decoding” (error self-correction) process is only valid when the original string \(\mathbf {c_0}\)  is closer to \(\mathbf {r}\)  than any other strings in the codebook. Otherwise, as shown in the red scenario on the rights side of Fig. REF , the decoding leads to an incorrect estimation \(\mathbf {c_2}\) .
