Ein perfekter Code, oder auch dicht gepackter Code, bezeichnet in der Codierungstheorie einen Blockcode
C
⊂
Σ
n
{\displaystyle {\mathcal {C}}\subset \Sigma ^{n}}
, in dem jedes Wort
w
∈
Σ
n
{\displaystyle w\in \Sigma ^{n}}
nur zu genau einem Codewort
c
∈
C
{\displaystyle c\in {\mathcal {C}}}
(und nicht zu mehreren) einen geringsten Hamming-Abstand
d
w
{\displaystyle d_{w}}
hat, wobei
d
w
≤
Δ
(
C
)
{\displaystyle d_{w}\leq \Delta ({\mathcal {C}})}
ist.
Bei der meist verwendeten Maximum-Likelihood-Decodierung bedeutet dies, dass jedes empfangene Wort
w
{\displaystyle w}
genau ein Codewort
c
{\displaystyle c}
hat, zu dem es den geringsten Hamming-Abstand hat und zu dem es eindeutig zugeordnet werden kann. Daraus leitet sich die Bezeichnung perfekt ab, denn es gibt keine mehrdeutigen Decodiermöglichkeiten.