當前位置:首頁 » 編程軟體 » 漢明碼編解碼指導書

漢明碼編解碼指導書

發布時間: 2022-11-28 11:16:32

㈠ 漢明碼的編碼原理

以數據碼1101為例講講漢明碼的編碼原理,此時D8=1、D4=1、D2=0、D1=1,在P1編碼時,先將D8、D4、D1的二進制碼相加,結果為奇數3,漢明碼對奇數結果編碼為1,偶數結果為0,因此P1值為1,D8+D2+D1=2,為偶數,那麼P2值為0,D4+D2+D1=2,為偶數,P3值為0。這樣,參照上文的位置表,漢明碼處理的結果就是1010101。在這個4位數據碼的例子中,我們可以發現每個漢明碼都是以三個數據碼為基準進行編碼的。下面就是它們的對應表:
漢明碼
編碼用的數據碼
P1
D8、D4、D1
P2
D8、D2、D1
P3
D4、D2、D1
從編碼形式上,我們可以發現漢明碼是一個校驗很嚴謹的編碼方式。在這個例子中,通過對4個數據位的3個位的3次組合檢測來達到具體碼位的校驗與修正目的(不過只允許一個位出錯,兩個出錯就無法檢查出來了,這從下面的糾錯例子中就能體現出來)。在校驗時則把每個漢明碼與各自對應的數據位值相加,如果結果為偶數(糾錯代碼為0)就是正確,如果為奇數(糾錯代碼為1)則說明當前漢明碼所對應的三個數據位中有錯誤,此時再通過其他兩個漢明碼各自的運算來確定具體是哪個位出了問題。

㈡ (7,4)漢明碼 matlab編程

程序改為如下:

S=ones(7,3);%要加的部分
A=[1101100];
[r,l]=size(A);
E=[0000000;0000001;0000010;0000100;0001000;0010000;0100000;1000000];%%%%%求校正子,然後將其轉化成十進制數
fori=1:r
Sx=S(i,1)*4+S(i,2)*2+S(i,3);
end%%%%下面是(7,4)碼檢錯
fori=1:r
switch(Sx)
case0
disp('此接收碼字沒錯')
case1
disp('注意:此接收碼字的第一位有錯,請糾正')
case2
disp('注意:此接收碼字的第二位有錯,請糾正')
case4
disp('注意:此接收碼字的第三位有錯,請糾正')
case3
disp('注意:此接收碼字的第四位有錯,請糾正')
case5
disp('注意:此接收碼字的第五位有錯,請糾正')
case6
disp('注意:此接收碼字的第六位有錯,請糾正')
case7
disp('注意:此接收碼字的第七位有錯,請糾正')
end
end
%%%下面為在知道哪位出錯的情況下,進行糾正
fori=1:r
switch(Sx)
case0
B(i,:)=A(i,:)+E(1,:);
case1
B(i,:)=A(i,:)+E(2,:);
case2
B(i,:)=A(i,:)+E(3,:);
case4
B(i,:)=A(i,:)+E(4,:);
case3
B(i,:)=A(i,:)+E(5,:);
case5
B(i,:)=A(i,:)+E(6,:);
case6
B(i,:)=A(i,:)+E(7,:);
case7
B(i,:)=A(i,:)+E(8,:);
end
end
B=rem(B,2);
disp('糾錯後的碼字');
disp(B);

結果:

注意:此接收碼字的第七位有錯,請糾正
糾錯後的碼字
0 1 0 1 1 0 0

㈢ 數據校驗碼--漢明碼(Hamming code)

漢明碼是Richard Hamming於1950年提出的。是目前廣泛採用的一種有效的校驗碼,其中,主存的ECC(Error Correcting Code)採用的就是類似的校驗碼。

----摘自網路
這個分組的思想有點不是很理解。

以下使用P代表校驗位,H代表漢明碼,D代表原始信息位,N位信息位的位數,K位校驗位的位數。
則N與K的關系為 2^(K-1) >=N+K+1 ,如下表:

假設原始數據信息位的位數為8,那麼他需要的K值位5,即需要有5個校驗位,組成的漢明碼的位數為13.再根據校驗位的分配原則,組成的漢明碼如下:

|位|13| 12| 11 |10| 9| 8| 7 |6| 5| 4| 3| 2| 1|
|-|-|-|-|-|-|-|-|-|-|-|-|-|
|漢明碼|P5| D8| D7| D6 | D5| P4| D4| D3| D2| P3| D1| P2| P1|

P5本來應該是放在第16位的,但是由於生成的漢明碼位數為13所以它就被挪到的第13位了。
那麼怎麼確定校驗呢?最初也困擾我許久。
先看一個表格:
其中H的下標代表在漢明碼中的位置,也是P4P3P2P1組成的-十進制數

校驗位Pi的偶校驗結果就是:
P1 = D1 ^ D2 ^ D4 ^ D5 ^ D7
P2 = D1 ^ D3 ^ D4 ^ D6 ^ D7
P3 = D2 ^ D3 ^ D4 ^ D8
P4 = D5 ^ D6 ^ D7 ^D8
如果是奇校驗的話上面的結果取反就是了。
那麼還有P5呢?上面的結果中,D4,D7出現了3次,而D1,D2,D3,D5,D6,D8僅出現了2次,為了使其各個信息位在校驗中均勻的出現校驗,從而定義 P5 = D1 ^ D2 ^ D3 ^ D5 ^ D6 ^D8 ,這樣,每一位信息位都均勻的出現在3個Pi值得形成關系中,當任意一位信息位變化的時候都會引起3個P值得變化, 即合法漢明碼的碼距為4 (前面都懂,這個碼距為4有點想不明白)
這就是編碼了。

現在再來看看這句話

P1,P2,P3,P4,P5的位數分別為1,2,4,8,13
D1的漢明碼位數為3,3 = 2 + 1所以D1會被P1,P2兩個校驗位所校驗。

根據偶校驗結果以及上應該就清楚了。

將收到的漢明碼進行偶校驗(當然也可以進行奇校驗,前提是前面編碼的時候使用的是奇校驗)

S1 = P1 ^ D1 ^ D2 ^ D4 ^ D5 ^ D7
S2 = P2 ^ D1 ^ D3 ^ D4 ^ D6 ^ D7
S3 = P3 ^ D2 ^ D3 ^ D4 ^ D8
S4 = P4 ^ D5 ^ D6 ^ D7 ^D8
S5 = P5 ^ D1 ^ D2 ^ D3 ^ D5 ^ D6 ^D8

漢明碼出錯情況:
記錄 S = S5 S4 S3 S2 S1

以上結果分析基於偶校驗。

|漢明碼||P5| D8| D7| D6 | D5| P4| D4| D3| D2| P3| D1| P2| P1|
|:-:|:-:|:-:|:-:|:-:|:-:|:-:|:-:|:-:|:-:|:-:|:-:|:-:|:-:|:-:|:-:|
|出錯位號||H13| H12| H11 |H10|H9| H8| H7 |H6| H5| H4| H3| H2|H1|
||S5|1|1|0|1|1|0|0|1|1|0|1|0|0|
||S4|0|1|1|1|1|1|0|0|0|0|0|0|0|
||S3|0|1|0|0|0|0|1|1|1|1|0|0|0|
||S2|0|0|1|1|0|0|1|1|0|0|1|1|0|
||S1|0|0|1|0|1|0|1|0|1|0|1|0|1|

㈣ 海明碼(漢明碼)的配置問題

不知道你理解了海明碼的原理沒有,這個 1357 2367 4567 其實後面都還有一長串的 碼長不同的話相應的要延長 現在這個取4位是因為碼長只有7位

這個位置是固定的 事先計算出來 設計好的 只有這樣安排才能達到用最小的校驗碼來達到最高的檢錯功能

至於具體是怎麼計算和設計的 我一下子說不清楚 你照著書 多看 多想 多試 主要是要從根本上理解 "校驗"這個過程和原理 就容易理解了

㈤ 漢明碼的介紹

漢明碼(Hamming Code),是在電信領域的一種線性調試碼,以發明者理查德·衛斯里·漢明的名字命名。漢明碼在傳輸的消息流中插入驗證碼,當計算機存儲或移動數據時,可能會產生數據位錯誤,以偵測並更正單一比特錯誤。由於漢明編碼簡單,它們被廣泛應用於內存(RAM)。

㈥ 7,用漢明碼的編碼方程,及校驗矩陣H,設發送的信號是0110,實際發送的信號是什麼,假設發送的第三個比特由0

解釋交織過程:解決突發的成串的誤碼,改造信道,將信道中的突發的成串差錯變為隨機的獨立差錯。即將一條消息的比特以非相繼的方式發送,使突發差錯信道變為離散信道。交織技術的實現可以通過存儲器來完成,在信道的輸入端將信息按列寫入交織存儲器,按行讀出;在信道的輸入端,按行寫入去交織存儲器,按列讀出。

㈦ (6,3) 漢明碼 如何編碼

參考答案 在沒有看見你之前,我從未以貌取人。

㈧ 漢明碼求解步驟

漢明碼的目的是能夠糾正一位誤碼,假設信息碼共有n位。
漢明碼共有r位,那麼總共的碼長為n+r位.為能檢測出n+r位編碼中其中一位的錯誤。
漢明碼必須能夠表示至少n+r+1種狀態,其中n+r種表示n+r位編碼中有一位錯誤,另外還需要一種來表示整個編碼正確無誤。則漢明碼的長度需要滿足下列關系。
2r>=n+r+1k個校驗位是通過對m+k位復合碼字進行奇偶校而確定的。其中,P1位負責校驗海明碼的第1、3、5、7、?(P1、D1、D2、D4、?)位,(包括P1自己)。
P2負責校驗海明碼的第2、3、6、7、?(P2、D1、D3、D4、?)位,(包括P2自己)。P3負責校驗海明碼的第4、5、6、7、?(P3、D2、D3、D4、?)位,(包括P3自己)。

㈨ 漢明碼編譯碼原理實驗指導書怎麼寫

標題:萬用表的的使用
一、實驗目的
二、實驗原理
三、實驗步驟
四、實驗數據及分析
五、實驗心得體會

基本上一二照抄實驗指導書,三指導書沒有就按實驗操作過程寫,四按指導書填入實驗數據,自己分析一下誤差的原因,五自己吹吹。

㈩ 漢明碼 問題 求教..

網路了一下
好像你的題目的解是錯的
以下ke的
漢明碼的編碼原理
現以數據碼1101為例講講漢明碼的編碼原理,此時D8=1、D4=1、D2=0、D1=1,在P1編碼時,先將D8、D4、D1的二進制碼相加,結果為奇數3,漢明碼對奇數結果編碼為1,偶數結果為0,因此P1值為1,D8+D2+D1=2,為偶數,那麼P2值為0,D4+D2+D1=2,為偶數,P3值為0。這樣,參照上文的位置表,漢明碼處理的結果就是1010101。在這個4位數據碼的例子中,我們可以發現每個漢明碼都是以三個數據碼為基準進行編碼的。下面就是它們的對應表:
--------------
ke的1101是1010101,你的是0011101.
⊕應該是將三個數相加奇數為1,偶數為零,應該有個術語的吧,異或? 是異或
網址上就是用異或

熱點內容
湖人雙核配置哪個最好 發布:2025-05-15 10:09:48 瀏覽:979
手機熱點密碼怎麼查看 發布:2025-05-15 09:54:47 瀏覽:108
生意發力雲存儲 發布:2025-05-15 09:54:45 瀏覽:616
編寫一個shell腳本添加用戶 發布:2025-05-15 09:54:43 瀏覽:505
資料庫查看錶命令 發布:2025-05-15 09:52:27 瀏覽:914
p30是不是自帶方舟編譯器 發布:2025-05-15 09:51:48 瀏覽:599
追擊世界房間密碼是多少 發布:2025-05-15 09:51:46 瀏覽:995
cjavabyte 發布:2025-05-15 09:51:36 瀏覽:463
visa存儲卡 發布:2025-05-15 09:35:07 瀏覽:619
js調用php的方法 發布:2025-05-15 09:29:13 瀏覽:496