前段时间做了信号处理的一系列过程,从编码、生成载波、调制、加噪到解调滤波解码等等一系列从matlab转c++的操作,这里记点当时学的东西。
首先摘抄一下[维基百科的官方释义]
维基百科
在電信領域中,漢明碼(英語:hamming code),也称为海明码,是(7,4)汉明码推广得到的一種线性纠错码,由理查德·衛斯里·漢明于1950年發明。相比而言,簡單的奇偶檢驗碼除了不能糾正錯誤之外,也只能偵測出奇數個的錯誤。汉明码是完备码,它在于它分组长度相同、最小距离为3的码中能达到最高的码率。
下面以1010作为信息码来举例说明
首先记住一个公式,即 2 r 2^r 2r≥ r + k + 1 r+k+1 r+k+1,其中 k k k为信息码长度, r r r为校验码长度,最后编码的长度记为 n n n,则有 n = r + k n=r+k n=r+k,即编码后的长度为校验码位数加上原信息码长度(废话吗这不是
以1010来作为信息码举例的话:首先1010是4位数字,因此 k = 4 k=4 k=4,我们需要根据k来求的 r r r的长度,根据上面的公式,取 k = 4 k=4 k=4,则有 2 r ≥ 5 + r 2^r≥5+r 2r≥5+r,当 r = 3 r=3 r=3