Рассмотрим систематический линейный код
, задаваемый
порождающей матрицей
, и построим
матрицу вида
, (6.5)
где надстрочный символ
означает транспонирование матрицы
. Роль подобной матрицы становится наиболее очевидной, если учесть, что для любого кодового вектора 
. (6.6)
Из (6.6) следует, умножение любого кодового вектора
на транспонированную матрицу
дает нуль, в связи с этим матрицу (6.5) называют проверочной матрицей. Кроме того, говорят, что линейный код является нуль–пространством проверочной матрицы, либо что код ортогонален проверочной матрице.
На основании соотношений (6.4) и (6.6) имеем

откуда не составляет труда получить, что проверочные символы кодового слова
определены, как
. (6.7)
Таким образом, линейный код может быть задан как порождающей (6.3) и проверочной (6.5) матрицами, так и соотношениями (6.7), устанавливающими связь между проверочными и информационными символами кодовых слов.
Теорема 6.4.1. Линейный код
имеет минимальное расстояние, равное
, тогда и только тогда, когда проверочная матрица
содержит множество из
линейно зависимых столбцов, а любое множество из
столбцов матрицы
линейно независимо.
Доказательство: Рассмотрим
линейный код, задаваемый проверочной матрицей
размерности
в виде
,
где
–
–компонентный вектор-столбец проверочной матрицы. Тогда, на основании теоремы 6.3.1, найдется хотя бы один кодовый вектор, имеющий
ненулевых компонент, для которого
,
где
– позиции ненулевых компонент вектора
. Таким образом, среди столбцов матрицы
всегда найдутся
таких, которые при ненулевых скалярах дают нулевую сумму, а значит, являются линейно зависимыми.
С другой стороны, предположим, что из проверочной матрицы можно выделить множество из
линейно зависимых столбцов, для которых выполняется соотношение
,
где
– номера столбцов проверочной матрицы, вошедшие в упомянутое множество. Построим вектор
, в котором
, а остальные
позиций заполнены нулями. Очевидно, что
,
следовательно,
, т.е. является кодовым вектором. Последнее означает, что кодовое расстояние
не более
, поскольку
, что противоречит условию теоремы. Таким образом, любое множество из
столбцов матрицы
линейно независимо.
Рассматривая структуру матриц
и
можно вынести следующее заключение. Обе матрицы состоят из множества линейно независимых векторов, поскольку наличие в их структуре единичной матрицы делает невозможным существование линейной комбинации строк с нулевой суммой. Следовательно, каждая из матриц может рассматриваться как базис некоторого линейного пространства. Более того, каждое из этих пространств является подпространством векторного пространства, состоящего из всех векторов длины
. Учитывая сказанное выше, можно их «поменять ролями» и использовать
в качестве порождающей, а
– проверочной матрицы некоторого другого кода. Коды, связанные с таким преобразованием, называются дуальными друг другу. Таким образом, если исходным являлся
кодом, то дуальным ему будет
код.
Кроме того, из заданного
кода можно получить новый, обладающий теми же параметрами, если в каждом кодовом слове поменять местами символы, стоящие на одинаковых позициях. Получаемый по такому алгоритму код называется эквивалентным. Порождающие матрицы
и
эквивалентных кодов связаны друг с другом элементарным преобразованием. Так обмен символами на одинаковых позициях кодовых слов (или, что то же самое, перестановка координат кода) эквивалентна перестановке столбцов матрицы
. Следовательно, два кода эквивалентны тогда и только тогда, когда их порождающие матрицы получаются одна из другой посредством перестановки столбцов, либо в результате элементарных операций над строками.
Теорема 6.4.2. (Граница Синглтона). Минимальное расстояние (минимальный вес) любого линейного
кода удовлетворяет неравенству:
. (6.8)
Доказательство: Согласно теореме 6.3.1, ненулевое слово минимального веса в коде имеет вес, равный
. В систематическом коде существуют слова с одним ненулевым информационным символом и
проверочными. Ясно, что такое кодовое слово не может иметь вес, больший
, и, значит,
.
Граница Синглтона показывает, что для исправления
ошибок слова линейного кода должны содержать не менее
проверочных символов. Большинство кодов, даже оптимальных, имеют значительно большее количество проверочных символов. Вместе с тем, существуют коды, для которых неравенство (6.8) обращается в равенство.
Любой код с кодовым расстоянием
, удовлетворяющим соотношению (6.8), называется кодом с максимальным расстоянием.
Замечание. Граница Синглтона (6.8) бесполезна для двоичных кодов, поскольку значительно уступает в точности границам Плоткина и Хэмминга. Однако, она играет значительную роль в случае
–ичных кодов.