СИСТЕМЫ И СПОСОБЫ ДЛЯ КОДИРОВАНИЯ НЕПОЛНОГО РАНГА

1. Система обработки данных, содержащая:
цепь кодера, выполненную с возможностью
приема входных пользовательских данных;
матричного умножения входных пользовательских данных на первый квазициклический компонент четности для получения первого промежуточного значения;
матричного умножения первого промежуточного значения на обратный левый множитель-компонент нормальной формы Смита для получения второго промежуточного значения;
матричного умножения второго промежуточного значения на псевдообратный диагональный множитель-компонент нормальной формы Смита для получения третьего промежуточного значения;
матричного умножения третьего промежуточного значения на обратный правый множитель-компонент нормальной формы Смита для получения первой части четности;
матричного умножения первой части четности на второй квазициклический компонент четности для получения четвертого промежуточного значения; и
векторного сложения первого промежуточного значения с четвертым промежуточным значением для получения второй части четности.
2. Система обработки данных по п. 1, в которой цепь кодера дополнительно выполнена с возможностью:
сборки, по меньшей мере, входных пользовательских данных, первой части четности и второй части четности в закодированное кодовое слово.
3. Система обработки данных по п. 1, в которой цепь кодера дополнительно выполнена с возможностью:
матричного умножения входных пользовательских данных на третий квазициклический компонент четности для получения третьей части четности.
4. Система обработки данных по п. 3, в которой цепь кодера дополнительно выполнена с возможностью:
сборки входных пользовательских данных, первой части четности, второй части четности и третьей части четности в закодированное кодовое слово.
5. Система обработки данных по п. 3, в которой цепь кодера включает в себя память, которая используется для хранения первого квазициклического компонента четности, обратного левого множителя-компонента нормальной формы Смита, псевдообратного диагонального множителя-компонента нормальной формы Смита, обратного левого множителя-компонента нормальной формы Смита и второго квазициклического компонента четности.
6. Система обработки данных по п. 5, в которой цепь кодера включает в себя:
первую цепь матричного умножения, которая используется для матричного умножения входных пользовательских данных на первый квазициклический компонент четности для получения первого промежуточного значения;
вторую цепь матричного умножения, которая используется для матричного умножения первого промежуточного значения на обратный левый множитель-компонент нормальной формы Смита для получения второго промежуточного значения;
третью цепь матричного умножения, которая используется для матричного умножения второго промежуточного значения на псевдообратный диагональный множитель-компонент нормальной формы Смита для получения третьего промежуточного значения;
четвертую цепь матричного умножения, которая используется для матричного умножения третьего промежуточного значения на обратный правый множитель-компонент нормальной формы Смита для получения первой части четности;
пятую цепь матричного умножения, которая используется для матричного умножения первой части четности на второй квазициклический компонент четности для получения четвертого промежуточного значения;
цепь векторного сложения, которая используется для векторного сложения первого промежуточного значения с четвертым промежуточным значением для получения второй части четности; и
шестую цепь матричного умножения, которая используется для матричного умножения входных пользовательских данных на третий квазициклический компонент четности для получения третьей части четности.
7. Система обработки данных по п. 6, в которой каждая из первой цепи матричного умножения, второй цепи матричного умножения, четвертой цепи матричного умножения, пятой цепи матричного умножения и шестой цепи матричного умножения выполнена с возможностью умножать входные данные на квазициклическую матрицу.
8. Система обработки данных по п. 6, в которой третья цепь матричного умножения выполнена с возможностью умножать входные данные на неквазициклическую матрицу.
9. Система обработки данных по п. 1, в которой псевдообратный диагональный множитель-компонент нормальной формы Смита является неквазициклическим компонентом.
10. Система обработки данных по п. 9, в которой и обратный правый множитель-компонент нормальной формы Смита, и обратный левый множитель-компонент нормальной формы Смита являются квазициклическими компонентами.
11. Система обработки данных по п. 1, в которой система обработки данных реализована как часть устройства, выбранного из группы, состоящей из: устройства хранения данных и коммуникационного устройства.
12. Система обработки данных по п. 1, в которой система обработки данных реализована как часть интегральной схемы.
13. Способ кодирования данных, содержащий этапы, на которых:
вычисляют компоненты для кодера неполного ранга, при этом при вычислении компонентов применяют нормальное преобразование Смита ко входной матрице, результатом чего является левый множитель-компонент нормального преобразования Смита, диагональный множитель-компонент нормального преобразования Смита и правый множитель-компонент нормального преобразования Смита;
обращают левый множитель-компонент нормального преобразования Смита для получения обратного левого множителя-компонента нормального преобразования Смита, при этом обратный левый множитель-компонент нормального преобразования Смита является квазициклической матрицей;
обращают диагональный множитель-компонент нормального преобразования Смита для получения псевдообратного диагонального множителя-компонента нормального преобразования Смита, при этом псевдообратный диагональный множитель-компонент нормального преобразования Смита является неквазициклической матрицей;
обращают правый диагональный множитель-компонент нормального преобразования Смита для получения обратного левого множителя-компонента нормального преобразования Смита, при этом обратный левый множитель-компонент нормального преобразования Смита является квазициклической матрицей; и
сохраняют обратный левый диагональный множитель-компонент нормального преобразования Смита, псевдообратный множитель-компонент нормального преобразования Смита и обратный правый множитель-компонент нормального преобразования Смита на запоминающем устройстве.
14. Способ по п. 13, дополнительно содержащий этапы, на которых:
принимают входные пользовательские данные;
матрично умножают входные пользовательские данных на первый квазициклический компонент четности для получения первого промежуточного значения;
матрично умножают первое промежуточное значение на обратный левый множитель-компонент нормального преобразования Смита для получения второго промежуточного значения;
матрично умножают второе промежуточное значение на псевдообратный диагональный множитель-компонент нормального преобразования Смита для получения третьего промежуточного значения;
матрично умножают третье промежуточное значение на обратный правый множитель-компонент нормального преобразования Смита для получения первой части четности;
матрично умножают первую часть четности на второй квазициклический компонент четности для получения четвертого промежуточного значения; и
векторно складывают первое промежуточное значение с четвертым промежуточным значением для получения второй части четности.
15. Способ по п. 14, при этом способ дополнительно содержит этап, на котором:
матрично умножают входные пользовательские данные на третий квазициклический компонент четности для получения третьей части четности.
16. Способ по п. 14, при этом способ дополнительно содержит этап, на котором:
собирают входные пользовательские данные, первую часть четности, вторую часть четности и третью часть четности в закодированное кодовое слово.
17. Способ по п. 14, в котором каждый из этапов, на которых матрично умножают входные пользовательские данные на первый квазициклический компонент четности для получения первого промежуточного значения, матрично умножают первое промежуточное значение на обратный левый множитель-компонент нормального преобразования Смита для получения второго промежуточного значения, матрично умножают третье промежуточное значение на обратный правый множитель-компонент нормального преобразования Смита для получения первой части четности и матрично умножают первую часть четности на второй квазициклический компонент четности для получения четвертого промежуточного значения, выполняются с использованием соответствующих цепей матричного умножения, выполненных с возможностью умножать входные данные на квазициклическую матрицу.
18. Способ по п. 14, в котором этап, на котором матрично умножают второе промежуточное значение на псевдообратный диагональный множитель-компонент нормального преобразования Смита для получения третьего промежуточного значения выполняется с использованием цепи матричного умножения, выполненной с возможностью умножать входные данные на неквазициклическую матрицу.
19. Способ по п. 14, при этом способ дополнительно содержит этап, на котором:
передают закодированное кодовое слово получателю, выбранному из группы, состоящей из носителя данных и приемника.
20. Устройство хранения данных, содержащее:
носитель данных;
головку, расположенную относительно носителя данных и используемую для записи набора кодированных данных на носитель данных;
цепь кодера, которая выполнена с возможностью:
приема входных пользовательских данных;
матричного умножения входных пользовательских данных на первый квазициклический компонент четности для получения первой части четности;
матричного умножения входных пользовательских данных на второй квазициклический компонент четности для получения первого промежуточного значения;
матричного умножения первого промежуточного значения на обратный левый множитель-компонент нормальной формы Смита для получения второго промежуточного значения;
матричного умножения второго промежуточного значения на псевдообратный диагональный множитель-компонент нормальной формы Смита для получения третьего промежуточного значения;
матричного умножения третьего промежуточного значения на обратный правый множитель-компонент нормальной формы Смита для получения третьей части четности;
матричного умножения третьей части четности на третий квазициклический компонент четности для получения четвертого промежуточного значения;
векторного сложения первого промежуточного значения с четвертым промежуточным значением для получения второй части четности; и
сборки входных пользовательских данных, первой части четности, второй части четности и третьей части четности в закодированное кодовое слово, при этом набор кодированных данных получается из закодированного кодового слова.