В общем, это линейный блочный код (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-разрядов. Тогда кодовое расстояние будет равно этому максимуму плюс один.
Итог: данный код является привлекательным для практического использования.
А можете генераторную матрицу рассмотренного кода привести, раз он блоковый? Просто линейные блочные коды в общем случае не могут быть заданы одним полиномом. Если уж можно одним — это циклический код.
Зачем мне надо генераторную матрицу? Я просто не могу классифицировать этот код.
Кстати, свёрточный код можно принудительно сделать блочным, обрезав его полубесконечную генераторную матрицу, что на практике и делается (всё-таки, информация передаётся пакетами, и в природе нет бесконечной последовательности битов).
Что поделаешь… Жизнь… Многие ведь наукой занимаются :)
Ладно хоть по два синонима. Но, если честно, они вносят кашу, особенно тем, кто учится.
Мне вот, например, не нравится говорить то «генераторная матрица», то «производящая» (есть ещё «порождающая», думаю, можно назвать «образующая», но это всё она, единственная).
Хороший термин «угол». Угол он и есть угол. Также и с другими областями науки должно быть. Градус он и есть градус. Ватт он и есть Ватт. И так далее.
Представьте, было бы: «Водород» (он же «Лёгкий газ», он же «Голубое топливо»), — ну какая это наука? Трёп.
Хорошо.
Интересно, а куда отнести свёрточные коды, с которыми у меня сразу возникла ассоциация? А тут вдруг блоковые, а свёрточные — это не блоковые. Может, это циклический код тогда? Но нет, так как проверочные биты и информационные можно группировать как угодно. Если это просто линейный блочный код, то он мало где применяется. В свёрточных кодах также есть пороговое декодирование, почему у меня и возникли такие ассоциации.
Да, кодирование направлено на повышение битовой скорости передачи при ограниченных ресурсах (мощность передатчика, полоса частот, динамический диапазон приёмника) и имеющихся помехах (статистика помех). Кодирование даёт выигрыш за счёт интеллекта.
Можно кодированием и не заниматься, если есть возможность крутнуть ручку мощности передатчика и/или прибрать себе большую полосу частот (сила есть, ума не надо).
Шифрование — это, по сути, наложение замка, ключ от которого только у законного абонента. На скорость передачи информации оно никак не влияет.
Шифрованием также можно не заниматься, если есть «агент», который привезёт важную информацию «своим ходом» («агент» — имеется ввиду индивидуальная линия передачи). Медь есть — ума не надо :).
У Вас на рисунках на входе кодера есть две стрелочки, указывающие на жирную точку. Это что? Обратная связь? Может, там сумматор должен быть?
Как называются такие коды? Ссылки на литературу (чем Вы руководствовались)?
При шифровании размеры входных и выходных блоков равны, при помехоустойчивом кодировании размер выходного обязательно больше размера входного, а при сжатии (экономном кодировании) — теоретически должен быть меньше (практически — зависит от источника сообщения, от алгоритма сжатия).
Не работает, потому что нельзя раскладывать 9 на сумму 3+3+3, так как в двоичном коде число 9=00001001, а число 3=00000011.
Сумма трёх троек даст опять тройку, так как 11+11+11 = 00+11=11. Ну, или полиномами: x+1+x+1+x+1=x+1 (коэффициенты складываются по модулю два, то есть 3x=(3-2)x=x).
Девятка — это полином x^3+1, а x^3 — это три раза умножить на x, то есть на 2=00000010=>1*x^1+0*x^0, поэтому
n*9=mul2(mul2(mul2(n))) XOR n. Число n — это полином степени 7 с коэффициентами {0,1} (один байт).
Так тогда понятно про 0x1b… Кто бы знал про полином
x^8 + x^4 + x^3 + x + 1
из Вашей ссылки… Просто происходит замена x^8 на x^4+x^3+x+1, а это и есть 00011011=0x1b.
Тогда я был частично неправ. Но матрицу 4x4 я проверил — она совпала, но там при умножении полиномов x^4 заменялась на 1, так как там модуль x^4+1 = 0.
Почему умножение на {02} выполняется так странно? Умножение на 2 — это умножение на полином 1*x**1+0*x**0 (2_dec=10_bin), то есть это циклический сдвиг влево и всё:
(b7*x**7+b6*x**6+b5*x**5+b4*x**4+b3*x**3+b2*x**2+b1*x**1+b0*x**0)*x = (b6*x**7+b5*x**6+b4*x**5+b3*x**4+b2*x**3+b1*x**2+b0*x**1+b7*x**0).
Откуда там взялось XOR с 1b?..
Умножение на {03} (попросту на тройку) — это умножение на полином (x+1), что даст
((b6+b7)*x**7+(b5+b6)*x**6+(b4+b5)*x**5+(b3+b4)*x**4+(b2+b3)*x**3+(b1+b2)*x**2+(b0+b1)*x**1+(b7+b0)*x**0).
Коэффициенты — биты, поэтому 1+1=0, 0+1=1+0=1, 0+0=0.
Всё просто.
Если они используют модуль x**4+1 с допустимыми коэффициентами {0,1}, то это означает, что x**4 можно заменить на 1, x**5 — на x и так далее x**n на x**(n-4m).
То есть надо исправить на 20*log10(A / A0). Тот же 16-битовый АЦП даёт, как известно, 96 дБ, а это 20*16*log10(2). В той же Википедии ниже идёт объяснение разницы между 10 и 20. В итоге нам без разницы: по мощности ли, по напряжению — децибел он и есть децибел. Видимо децибелы были придуманы для мощностей, а для амплитуд — это уже следствие.
А, ну тогда конечно: спектр частот (Фурье) — признак, портрет — тоже признак. Всё ясно. По сути-то корреляция и частотный спектр — связанные понятия. Корреляция усматривается в построении текущего отсчёта и предыдущего.
Кстати, а что, сигнал ЭЭГ содержит звуковые частоты, например «мяу-мяу»?
Да, хаос80 хорошо описал. «Восстановление системы уравнений из потока» — из какого потока? То есть это синтез модели динамической системы по имеющимся данным? Просто Фурье используется для спектрального анализа, а фазовые портреты, всё-таки, это из другой области.Хотя я понимаю, что дифф. уравнения можно решать методом преобразования Фурье — но то решать, а не наоборот — синтезировать.
Итог: данный код является привлекательным для практического использования.
Зачем мне надо генераторную матрицу? Я просто не могу классифицировать этот код.
Кстати, свёрточный код можно принудительно сделать блочным, обрезав его полубесконечную генераторную матрицу, что на практике и делается (всё-таки, информация передаётся пакетами, и в природе нет бесконечной последовательности битов).
Ладно хоть по два синонима. Но, если честно, они вносят кашу, особенно тем, кто учится.
Мне вот, например, не нравится говорить то «генераторная матрица», то «производящая» (есть ещё «порождающая», думаю, можно назвать «образующая», но это всё она, единственная).
Хороший термин «угол». Угол он и есть угол. Также и с другими областями науки должно быть. Градус он и есть градус. Ватт он и есть Ватт. И так далее.
Представьте, было бы: «Водород» (он же «Лёгкий газ», он же «Голубое топливо»), — ну какая это наука? Трёп.
Интересно, а куда отнести свёрточные коды, с которыми у меня сразу возникла ассоциация? А тут вдруг блоковые, а свёрточные — это не блоковые. Может, это циклический код тогда? Но нет, так как проверочные биты и информационные можно группировать как угодно. Если это просто линейный блочный код, то он мало где применяется. В свёрточных кодах также есть пороговое декодирование, почему у меня и возникли такие ассоциации.
Можно кодированием и не заниматься, если есть возможность крутнуть ручку мощности передатчика и/или прибрать себе большую полосу частот (сила есть, ума не надо).
Шифрование — это, по сути, наложение замка, ключ от которого только у законного абонента. На скорость передачи информации оно никак не влияет.
Шифрованием также можно не заниматься, если есть «агент», который привезёт важную информацию «своим ходом» («агент» — имеется ввиду индивидуальная линия передачи). Медь есть — ума не надо :).
Как называются такие коды? Ссылки на литературу (чем Вы руководствовались)?
При шифровании размеры входных и выходных блоков равны, при помехоустойчивом кодировании размер выходного обязательно больше размера входного, а при сжатии (экономном кодировании) — теоретически должен быть меньше (практически — зависит от источника сообщения, от алгоритма сжатия).
Сумма трёх троек даст опять тройку, так как 11+11+11 = 00+11=11. Ну, или полиномами: x+1+x+1+x+1=x+1 (коэффициенты складываются по модулю два, то есть 3x=(3-2)x=x).
Девятка — это полином x^3+1, а x^3 — это три раза умножить на x, то есть на 2=00000010=>1*x^1+0*x^0, поэтому
n*9=mul2(mul2(mul2(n))) XOR n. Число n — это полином степени 7 с коэффициентами {0,1} (один байт).
x^8 + x^4 + x^3 + x + 1
из Вашей ссылки… Просто происходит замена x^8 на x^4+x^3+x+1, а это и есть 00011011=0x1b.
Тогда я был частично неправ. Но матрицу 4x4 я проверил — она совпала, но там при умножении полиномов x^4 заменялась на 1, так как там модуль x^4+1 = 0.
если num — один байт.
(b7*x**7+b6*x**6+b5*x**5+b4*x**4+b3*x**3+b2*x**2+b1*x**1+b0*x**0)*x = (b6*x**7+b5*x**6+b4*x**5+b3*x**4+b2*x**3+b1*x**2+b0*x**1+b7*x**0).
Откуда там взялось XOR с 1b?..
Умножение на {03} (попросту на тройку) — это умножение на полином (x+1), что даст
((b6+b7)*x**7+(b5+b6)*x**6+(b4+b5)*x**5+(b3+b4)*x**4+(b2+b3)*x**3+(b1+b2)*x**2+(b0+b1)*x**1+(b7+b0)*x**0).
Коэффициенты — биты, поэтому 1+1=0, 0+1=1+0=1, 0+0=0.
Всё просто.
Если они используют модуль x**4+1 с допустимыми коэффициентами {0,1}, то это означает, что x**4 можно заменить на 1, x**5 — на x и так далее x**n на x**(n-4m).
Кстати, а что, сигнал ЭЭГ содержит звуковые частоты, например «мяу-мяу»?