Генерація перевірочної і породжує
матриць для коду Хеммінга
h = hammgen (m);
h = hammgen (m, pol);
[H, g] = hammgen (.);
[H, g, n, k] = hammgen (.);
Для всіх варіантів синтаксису довжина кодового слова позначається як n. Величина n дорівнює 2 m - 1 для деякого цілочисельного m. більшого або рівного трьом. Довжина блоку вихідного повідомлення позначається як k, вона дорівнює n - m.
Повертає перевірочну матрицю (m рядків, n стовпців) для коду Хеммінга з довжиною кодового слова n = 2 m - 1. Вхідний параметр m повинен бути цілим числом, більшим або рівним трьом. Довжина блоку вихідного повідомлення для одержуваного коду дорівнює n - m. Для отримання коду Хеммінга застосовується двійковий примітивний поліном, який використовується в MATLAB за замовчуванням для кінцевого поля GF (2 m). Цей поліном розраховується за допомогою функції gfprimdf (m).
Те ж, що й у попередньому варіанті синтаксису, але другий вхідний параметр pol в явному вигляді задає примітивний поліном над кінцевим полем GF (2 m), який використовується для отримання коду Хеммінга. Цей параметр повинен являти собою вектор-рядок і містити коефіцієнти полінома в порядку зростання ступенів. Якщо поліном, що представляється параметром pol, не є примітивним, функція видає повідомлення про помилку.
Те ж, що попередні варіанти синтаксису, але в даному випадку поряд з перевірочної функція повертає і породжує матрицю коду - вихідний параметр g (k рядків, n стовпців). Довжина блоку вихідного повідомлення, k. дорівнює n - m. або, що те ж саме, 2 m - 1 - m.
- [H, g, n, k] = hammgen (.)
Те ж, що попередній варіант синтаксису, але поряд з перевірочної і породжує матрицями коду функція повертає також довжину кодового слова n і довжину блоку вихідного повідомлення k.
Зауваження. Якщо значення m не перевищує 25 і для генерації коду використовується примітивний поліном за замовчуванням, синтаксис hammgen (m) швидше за все виявиться швидшим, ніж hammgen (m, pol).
Наведена нижче команда виводить на екран перевірочну і породжує матриці для коду Хеммінга з довжиною кодового слова 7 = 2 3 - 1 і довжиною блоку вихідного повідомлення 4 = 7 - 3.
h =
1 0 0 1 0 1 1
0 1 0 1 1 1 0
0 0 1 0 1 1 1
g =
1 1 0 1 0 0 0
0 1 1 0 1 0 0
1 1 1 0 0 1 0
1 0 1 0 0 0 1
Наступна команда використовує явно заданий примітивний поліном 1 + x 2 + x 3. показуючи тим самим, що вид перевірочної матриці залежить від вибору примітивного полінома. Щоб в цьому переконатися, порівняйте виведену нижче матрицю h1 з матрицею h з попереднього прикладу.
h1 = hammgen (3, [1 0 1 1])
h1 =
1 0 0 1 1 1 0
0 1 0 0 1 1 1
0 0 1 1 1 0 1
Схожі статті