Как стать автором
Обновить

Комментарии 25

Пусть нам нужно зашифровать следующее сообщение

Закодировать?
Да, все верно. Синонимичные понятия.
Неверно. Кодируют с целью передать информацию более надежно — шифруют же с целью защитить ее от перехвата. Это принципиально разные вещи, которыми занимаются совершенно разные науки (теория информации и криптография) при помощи совершенно разных алгоритмов.
Да, кодирование направлено на повышение битовой скорости передачи при ограниченных ресурсах (мощность передатчика, полоса частот, динамический диапазон приёмника) и имеющихся помехах (статистика помех). Кодирование даёт выигрыш за счёт интеллекта.
Можно кодированием и не заниматься, если есть возможность крутнуть ручку мощности передатчика и/или прибрать себе большую полосу частот (сила есть, ума не надо).
Шифрование — это, по сути, наложение замка, ключ от которого только у законного абонента. На скорость передачи информации оно никак не влияет.
Шифрованием также можно не заниматься, если есть «агент», который привезёт важную информацию «своим ходом» («агент» — имеется ввиду индивидуальная линия передачи). Медь есть — ума не надо :).
В электронике это очень синонимические понятия. Зря что ли Шифратор и дешифратор так называются? Но с криптографией они никак не связаны.
Простите, а причем здесь шифратор? Тут нужен кодер и декодер.
Шифратор здесь при том, что на самом деле он — кодер. Но исторически сложилось так, что его называют шифратором.
Можете называть его и историческим названием. Это ваше право. Правда от этого кодирование шифрованием не станет все равно.
Я с вами и не спорю.
С шифратором — так сложилось исторически. Но сейчас это разные понятия.
Наука не терпит синонимов.
Хе-хе.
Абелева группа, она же коммутативная.
Декартово произведение, оно же прямое.
Линейное пространство, оно же векторное.
Функция и отображение.

И это только то, что я вспомнил за пять минут…
Что поделаешь… Жизнь… Многие ведь наукой занимаются :)
Ладно хоть по два синонима. Но, если честно, они вносят кашу, особенно тем, кто учится.
Мне вот, например, не нравится говорить то «генераторная матрица», то «производящая» (есть ещё «порождающая», думаю, можно назвать «образующая», но это всё она, единственная).
Хороший термин «угол». Угол он и есть угол. Также и с другими областями науки должно быть. Градус он и есть градус. Ватт он и есть Ватт. И так далее.
Представьте, было бы: «Водород» (он же «Лёгкий газ», он же «Голубое топливо»), — ну какая это наука? Трёп.
к сожалению с градусом не так просто… он есть температурный (Кельвин, Цельсий, Фарангейт и прочее), как измерение угла, как смещение фаз электричества… думаю есть и другие градусы…
отсюда же пошло — в военное время прямой угол может достигать 100 градусов :)
Да, с градусом я промахнулся: надо вставлять прилагательное.
У Вас на рисунках на входе кодера есть две стрелочки, указывающие на жирную точку. Это что? Обратная связь? Может, там сумматор должен быть?
Как называются такие коды? Ссылки на литературу (чем Вы руководствовались)?

При шифровании размеры входных и выходных блоков равны, при помехоустойчивом кодировании размер выходного обязательно больше размера входного, а при сжатии (экономном кодировании) — теоретически должен быть меньше (практически — зависит от источника сообщения, от алгоритма сжатия).
1. точки это ключи. Сумматор обозначается как ⊕, на рисунке он тоже есть. Физический смысли ключей, в том что при начале кодирования/декодирования, через ключ проходит сообщение из канала и полностью заполняет регистр, а в процессе кодирования/декодирования происходит «транспортирование» бита из последней (13-ой) ячейки регистра в первую (с индексом 0).
2. Данный код является блоковым. Если точнее то, это мажоритарно декодируемый код. Почитать про него можно в вики.
3. В данном случае выходной блок бит в 2 раза больше входного, так как выходной будет формироваться в из проверочной и информационной части (u и v). И обе части будут необходимы при декодирование.
4. Пользовался литературой не очень популярной — «Помехоустойчивое кодирование. Методы и Алгоритмы. Справочник». Золоторев, Овечкин. Писал мой руководитель в универе. Книжка не толстая, но ёмкая. Многие вопросы описаны очень вскользь По этому я и пытаюсь расшифровать их в более популярной форме. Если нужно то могу поискать в электронном виде.
Лучше бы вам статью отредактировать, пока еще можете, а не комментарии к ней писать. Понятнее, когда объяснение про ключи идет перед первым рисунком, а не в конце статьи.
да, поправлю. спасибо за совет
Хорошо.
Интересно, а куда отнести свёрточные коды, с которыми у меня сразу возникла ассоциация? А тут вдруг блоковые, а свёрточные — это не блоковые. Может, это циклический код тогда? Но нет, так как проверочные биты и информационные можно группировать как угодно. Если это просто линейный блочный код, то он мало где применяется. В свёрточных кодах также есть пороговое декодирование, почему у меня и возникли такие ассоциации.
Свёрточные коды будут кодировать/декодирвоать непрерывный поток бит, т.е. грубо говоря поступил бит в регистр, мы на основание его и соседних бит его закодировали и отправили в канал. пример Алгоритм Витерби. и так хоть миллион бит, всё непрерывным потоком. А в данном случае мы взяли блок бит, покрутили его, но покрутили всё тот же один единственный блок и закодировали его, потом этот же блок бит декодировали. Всё по блокам.
Пороговый декодер в чистом виде мало где используется. но на его основе интересен многопороговый декодер. над которым я сейчас работаю… может быть созрею для ещё одной статейки в ближайшее время :)
А можете генераторную матрицу рассмотренного кода привести, раз он блоковый? Просто линейные блочные коды в общем случае не могут быть заданы одним полиномом. Если уж можно одним — это циклический код.
Зачем мне надо генераторную матрицу? Я просто не могу классифицировать этот код.

Кстати, свёрточный код можно принудительно сделать блочным, обрезав его полубесконечную генераторную матрицу, что на практике и делается (всё-таки, информация передаётся пакетами, и в природе нет бесконечной последовательности битов).
Да конечно, сверточный делается искусственно «блоковым» — обрезается для просто реализации и исследования/моделирования, я тоже так делаю для Витерби к примеру. Бесконечность это теория.

В общем, это линейный блочный код (26, 13), заданный в систематической форме, если принять формат выхода [u, v]. Столбцы блока Q генераторной матрицы G=[I, Q] являются циклическими перестановками друг друга, что даёт минимальное количество ячеек памяти при реализации кодера (матрица I — диагональная, квадратная). Кодовое расстояние — пять. Кстати, если в полином добавить слагаемое x^11, то кодовое расстояние увеличится до шести. Полином должен выбираться так, чтобы дать максимум величины min( w(polynom), min_[i=1,2,...,12](w(polynom XOR circshift(polynom, i))) ), где w() — количество единиц в коэффициентах полинома polynom, circshift(p, i) — циклический сдвиг коэффициентов полинома p на i-разрядов. Тогда кодовое расстояние будет равно этому максимуму плюс один.
Итог: данный код является привлекательным для практического использования.
Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации

Истории