Nguyờn lý của mó Hamming bắt nguồn từ việc khai triển và mở rộng quan điểm chẵn lẻ. Việc khai triển này bắt đầu bằng việc nhõn cỏc ma trận, được gọi là Ma trận Hamming (Hamming matrices), với nhau. Đối với mó Hamming (7,4), chỳng ta sử dụng hai mó trận cú liờn quan gần gũi, và đặt tờn cho chỳng là:
và
Cỏc cột vectơ trong He là nờn tảng hạchcủa Hd và phần trờn của He (4 hàng đầu) là một ma trận đơn vị (identity matrix). Ma trận đơn vị cho phộp vectơ dữ liệu đi qua trong khi làm tớnh nhõn, và như vậy, cỏc bit dữ liệu sẽ nằm ở 4 vị trớ trờn cựng (sau khi nhõn). Sau khi phộp nhõn hoàn thành, khỏc với cỏch giải thớch ở phần trước (cỏc bit chẵn lẻ nằm ở vị trớ 2k), trật tự của cỏc bit trong từ mó (codewords) ở đõy khỏc với cỏch bố trớ đó núi (cỏc bit dữ liệu nằm ở trờn, cỏc bit kiểm chẵn lẻ nằm ở dưới).
Chỳng ta dựng một nhúm 4 bit dữ liệu (số 4 trong cỏi tờn của mó là vỡ vậy) chủ chốt, và cộng thờm vào đú 3 bit dữ liệu thừa (vỡ 4+3=7 nờn mới cú số 7 trong cỏi tờn
của mó). Để truyền gửi dữ liệu, chỳng ta hóy nhúm cỏc bit dữ liệu mà mỡnh muốn gửi thành một vectơ. Lấy vớ dụ, nếu dữ liệu là "1011" thỡ vectơ của nú là:
Giả sử, chỳng ta muốn truyền gửi dữ liệu trờn. Chỳng ta tỡm tớch của He và p, với cỏc giỏ trị mụđulụ 2 [3]:
Mỏy thu sẽ nhõn Hd với r, để kiểm tra xem cú lỗi xảy ra hay khụng. Thi hành tớnh nhõn này, mỏy thu được (một lần nữa, cỏc giỏ trị đồng dư mụđulụ 2):
Vỡ chỳng ta được một vectơ toàn số khụng cho nờn mỏy thu cú thể kết luận là khụng cú lỗi xảy ra
Sở dĩ một vectơ toàn số khụng cú nghĩa là khụng cú lỗi, bởi vỡ khi He được nhõn với vectơ dữ liệu, một sự thay đổi trong nền tảng xảy ra đối với khụng gian bờn trong vectơ (vector subspace), tức là hạch của Hd. Nếu khụng cú vấn đề gỡ xảy ra trong khi
truyền thụng, r sẽ nằm nguyờn trong hạch của Hd và phộp nhõn sẽ cho kết quả một
Trong một trường hợp khỏc, nếu chỳng ta giả sử là lỗi một bit đó xảy ra. Trong toỏn học, chỳng ta cú thể viết:
mụđulụ 2, trong đú ei là vectơ đơn vịđứng thứ i (ith unit vector), cú nghĩa là, một vectơ số 0 cú một giỏ trị 1 trong vị trớ i (tớnh từ 1 tớnh đi). Biểu thức trờn núi cho chỳng ta biết rằng cú một bit bị lỗi tại vị trớ i.
Nếu bõy giờ chỳng ta nhõn Hd với cả hai vectơ này:
Vỡ r là dữ liệu thu nhận được khụng cú lỗi, cho nờn tớch của Hd và r bằng 0. Do đú
Vậy, tớch của Hd với vectơ nền chuẩn tại cột thứ i (the ith standard basis vector) làm lộ ra cột ở trong Hd, vỡ thế mà chỳng ta biết rằng lỗi đó xảy ra tại vị trớ cột này trong Hd. Vỡ chỳng ta đó kiến tạo Hd dưới một hỡnh thức nhất định, cho nờn chỳng ta cú thể hiểu giỏ trị của cột này như một số nhị phõn - vớ dụ, (1,0,1) là một cột trong Hd, tương đồng giỏ trị với cột thứ 5, do đú chỳng ta biết lỗi xảy ra ở đõu và cú thể sửa được nú.
Lấy vớ dụ, giả sử chỳng ta cú:
Tớch của phộp nhõn cho chỳng ta một kết quả tương đương với cột thứ 2 ("010" tương đương với giỏ trị 2 trong số thập phõn), và do đú, chỳng ta biết rằng lỗi đó xảy ra ở vị trớ thứ 2 trong hàng dữ liệu, và vỡ vậy cú thể sửa được lỗi.
Chỳng ta cú thể dễ dàng thấy rằng, việc sửa lỗi do 1 bit bị đảo lộn gõy ra, dựng phương phỏp trờn là một việc thực hiện được. Bờn cạnh đú, mó Hamming cũn cú thể phỏt hiện lỗi do 1 bit hoặc 2 bit bị đảo lộn gõy ra, dựng tớch của Hd khi tớch này khụng cho một vectơ số khụng. Tuy thế, song mó Hamming khụng thể hoàn thành cả hai việc.