Хорошо, давайте разберем замечания и исправим их.
На изображении с комментариями указаны два пункта:
1. Нужно написать у каждого метода - эффективный, неэффективный или негативный.
2. Результаты процесса дескремблирования должны совпасть с исходным объемом информации, если этого нет, значит в процессе вычислений - ошибка.
Давайте пройдемся по вашему решению и внесем необходимые корректировки.
***
Цель работы. Изучить методы логического кодирования данных.
Задание:
- Взять первые четыре буквы своей фамилии, перевести их в двоичный числовой код;
- Соединить полученные байты в единое 32-х разрядное двоичное число и выполнить операцию логического кодирования для всех перечисленных ниже стандартов:
- Избыточные коды (4B/5B);
- Скремблирование и дескремблирование
- Сделать вывод об эффективности этих методов.
Решение:
1. Взять первые четыре буквы своей фамилии, перевести их в двоичный числовой код (используя таблицу кодировки ASCII, см. примечание).
Предположим, что фамилия начинается на "ПАХО".
П=(207)-11001111
А=(192)-11000000
Х=(213)-11010101
О=(206)-11001110
2. Соединить полученные байты в единое 32-х разрядное двоичное число и выполнить операцию цифрового кодирования для всех перечисленных ниже стандартов:
Исходная 32-разрядная двоичная последовательность:
11001111110000001101010111001110
Избыточные коды (4B/5B)
1. Разделение на группы по 4 бита:
1100
1111
1100
0000
1101
0101
1100
1110
2. Поиск соответствующих 5-битных кодов:
Используя таблицу кодов 4B/5B, мы можем сопоставить каждую 4-битную группу с её 5-битным представлением:
| 4-битный код |
5-битный код |
| 1100 |
11010 |
| 1111 |
11101 |
| 1100 |
11010 |
| 0000 |
11110 |
| 1101 |
11011 |
| 0101 |
01011 |
| 1100 |
11010 |
| 1110 |
11100 |
3. Собираем итоговую последовательность:
Двоичная последовательность 11001111110000001101010111001110 в избыточном коде 4B/5B преобразуется в:
11010111011101011110110110101101011100
Комментарий к методу 4B/5B:
Метод 4B/5B является эффективным. Он увеличивает количество передаваемых бит (из 4 бит данных получается 5 бит кода), что приводит к избыточности. Эта избыточность используется для обеспечения синхронизации и ограничения длины последовательностей из одинаковых бит (например, нулей), что важно для надежной передачи данных по физическим каналам. Однако, за счет увеличения длины кода, скорость передачи полезной информации снижается на 25% (4/5).
Скремблирование двоичного кода
Исходный код: 11001111110000001101010111001110
Для скремблирования используем полином \(G(x) = x^5 + x^4 + 1\).
Это означает, что выходной бит \(B_i\) вычисляется как \(B_i = A_i \oplus B_{i-4} \oplus B_{i-5}\), где \(A_i\) - входной бит, а \(B_{i-4}\) и \(B_{i-5}\) - ранее сгенерированные выходные биты. Для первых 5 битов (или до тех пор, пока не будет достаточно предыдущих выходных битов) используются начальные значения (обычно нули).
Давайте пересчитаем скремблирование, используя правильную формулу и начальные условия.
Предположим, что начальные значения регистра сдвига (B1, B2, B3, B4, B5) равны 0.
Исходная последовательность \(A\): 11001111110000001101010111001110
\[
B_i = A_i \oplus B_{i-4} \oplus B_{i-5}
\]
Таблица скремблирования:
| A |
\(B_{i-5}\) |
\(B_{i-4}\) |
B |
| A1=1 |
0 |
0 |
B1=1 |
| A2=1 |
0 |
0 |
B2=1 |
| A3=0 |
0 |
0 |
B3=0 |
| A4=0 |
0 |
0 |
B4=0 |
| A5=1 |
0 |
0 |
B5=1 |
| A6=1 |
B1=1 |
B2=1 |
B6=1 \(\oplus\) 1 \(\oplus\) 1 = 1 |
| A7=1 |
B2=1 |
B3=0 |
B7=1 \(\oplus\) 1 \(\oplus\) 0 = 0 |
| A8=1 |
B3=0 |
B4=0 |
B8=1 \(\oplus\) 0 \(\oplus\) 0 = 1 |
| A9=1 |
B4=0 |
B5=1 |
B9=1 \(\oplus\) 0 \(\oplus\) 1 = 0 |
| A10=1 |
B5=1 |
B6=1 |
B10=1 \(\oplus\) 1 \(\oplus\) 1 = 1 |
| A11=0 |
B6=1 |
B7=0 |
B11=0 \(\oplus\) 1 \(\oplus\) 0 = 1 |
| A12=0 |
B7=0 |
B8=1 |
B12=0 \(\oplus\) 0 \(\oplus\) 1 = 1 |
| A13=0 |
B8=1 |
B9=0 |
B13=0 \(\oplus\) 1 \(\oplus\) 0 = 1 |
| A14=0 |
B9=0 |
B10=1 |
B14=0 \(\oplus\) 0 \(\oplus\) 1 = 1 |
| A15=0 |
B10=1 |
B11=1 |
B15=0 \(\oplus\) 1 \(\oplus\) 1 = 0 |
| A16=0 |
B11=1 |
B12=1 |
B16=0 \(\oplus\) 1 \(\oplus\) 1 = 0 |
| A17=1 |
B12=1 |
B13=1 |
B17=1 \(\oplus\) 1 \(\oplus\) 1 = 1 |
| A18=1 |
B13=1 |
B14=1 |
B18=1 \(\oplus\) 1 \(\oplus\) 1 = 1 |
| A19=0 |
B14=1 |
B15=0 |
B19=0 \(\oplus\) 1 \(\oplus\) 0 = 1 |
| A20=1 |
B15=0 |
B16=0 |
B20=1 \(\oplus\) 0 \(\oplus\) 0 = 1 |
| A21=0 |
B16=0 |
B17=1 |
B21=0 \(\oplus\) 0 \(\oplus\) 1 = 1 |
| A22=1 |
B17=1 |
B18=1 |
B22=1 \(\oplus\) 1 \(\oplus\) 1 = 1 |
| A23=0 |
B18=1 |
B19=1 |
B23=0 \(\oplus\) 1 \(\oplus\) 1 = 0 |
| A24=1 |
B19=1 |
B20=1 |
B24=1 \(\oplus\) 1 \(\oplus\) 1 = 1 |
| A25=1 |
B20=1 |
B21=1 |
B25=1 \(\oplus\) 1 \(\oplus\) 1 = 1 |
| A26=1 |
B21=1 |
B22=1 |
B26=1 \(\oplus\) 1 \(\oplus\) 1 = 1 |
| A27=0 |
B22=1 |
B23=0 |
B27=0 \(\oplus\) 1 \(\oplus\) 0 = 1 |
| A28=0 |
B23=0 |
B24=1 |
B28=0 \(\oplus\) 0 \(\oplus\) 1 = 1 |
| A29=1 |
B24=1 |
B25=1 |
B29=1 \(\oplus\) 1 \(\oplus\) 1 = 1 |
| A30=1 |
B25=1 |
B26=1 |
B30=1 \(\oplus\) 1 \(\oplus\) 1 = 1 |
| A31=1 |
B26=1 |
B27=1 |
B31=1 \(\oplus\) 1 \(\oplus\) 1 = 1 |
| A32=0 |
B27=1 |
B28=1 |
B32=0 \(\oplus\) 1 \(\oplus\) 1 = 0 |
Скремблированная последовательность:
11001101011110011111111111111110
Комментарий к методу скремблирования:
Скремблирование является эффективным методом. Оно не изменяет объем данных, но преобразует последовательность битов таким образом, чтобы уменьшить вероятность появления длинных последовательностей одинаковых битов (нулей или единиц). Это улучшает синхронизацию приемника и передатчика, а также распределяет энергию сигнала по спектру, что снижает электромагнитные помехи. Скремблирование не добавляет избыточности для обнаружения ошибок, но улучшает характеристики передачи.
Дескремблирование двоичного кода
Скремблированный код: 11001101011110011111111111111110
Для дескремблирования используется тот же полином \(G(x) = x^5 + x^4 + 1\).
Формула для дескремблирования: \(C_i = B_i \oplus C_{i-4} \oplus C_{i-5}\), где \(B_i\) - входной (скремблированный) бит, а \(C_{i-4}\) и \(C_{i-5}\) - ранее сгенерированные выходные (дескремблированные) биты. Начальные значения (C1, C2, C3, C4, C5) также принимаются равными 0.
Таблица дескремблирования:
| B |
\(C_{i-5}\) |
\(C_{i-4}\) |
C |
| B1=1 |
0 |
0 |
C1=1 |
| B2=1 |
0 |
0 |
C2=1 |
| B3=0 |
0 |
0 |
C3=0 |
| B4=0 |
0 |
0 |
C4=0 |
| B5=1 |
0 |
0 |
C5=1 |
| B6=1 |
C1=1 |
C2=1 |
C6=1 \(\oplus\) 1 \(\oplus\) 1 = 1 |
| B7=0 |
C2=1 |
C3=0 |
C7=0 \(\oplus\) 1 \(\oplus\) 0 = 1 |
| B8=1 |
C3=0 |
C4=0 |
C8=1 \(\oplus\) 0 \(\oplus\) 0 = 1 |
| B9=0 |
C4=0 |
C5=1 |
C9=0 \(\oplus\) 0 \(\oplus\) 1 = 1 |
| B10=1 |
C5=1 |
C6=1 |
C10=1 \(\oplus\) 1 \(\oplus\) 1 = 1 |
| B11=1 |
C6=1 |
C7=1 |
C11=1 \(\oplus\) 1 \(\oplus\) 1 = 1 |
| B12=1 |
C7=1 |
C8=1 |
C12=1 \(\oplus\) 1 \(\oplus\) 1 = 1 |
| B13=1 |
C8=1 |
C9=1 |
C13=1 \(\oplus\) 1 \(\oplus\) 1 = 1 |
| B14=1 |
C9=1 |
C10=1 |
C14=1 \(\oplus\) 1 \(\oplus\) 1 = 1 |
| B15=0 |
C10=1 |
C11=1 |
C15=0 \(\oplus\) 1 \(\oplus\) 1 = 0 |
| B16=0 |
C11=1 |
C12=1 |
C16=0 \(\oplus\) 1 \(\oplus\) 1 = 0 |
| B17=1 |
C12=1 |
C13=1 |
C17=1 \(\oplus\) 1 \(\oplus\) 1 = 1 |
| B18=1 |
C13=1 |
C14=1 |
C18=1 \(\oplus\) 1 \(\oplus\) 1 = 1 |
| B19=1 |
C14=1 |
C15=0 |
C19=1 \(\oplus\) 1 \(\oplus\) 0 = 0 |
| B20=1 |
C15=0 |
C16=0 |
C20=1 \(\oplus\) 0 \(\oplus\) 0 = 1 |
| B21=1 |
C16=0 |
C17=1 |
C21=1 \(\oplus\) 0 \(\oplus\) 1 = 0 |
| B22=1 |
C17=1 |
C18=1 |
C22=1 \(\oplus\) 1 \(\oplus\) 1 = 1 |
| B23=1 |
C18=1 |
C19=0 |
C23=1 \(\oplus\) 1 \(\oplus\) 0 = 0 |
| B24=1 |
C19=0 |
C20=1 |
C24=1 \(\oplus\) 0 \(\oplus\) 1 = 0 |
| B25=1 |
C20=1 |
C21=0 |
C25=1 \(\oplus\) 1 \(\oplus\) 0 = 0 |
| B26=1 |
C21=0 |
C22=1 |
C26=1 \(\oplus\) 0 \(\oplus\) 1 = 0 |
| B27=1 |
C22=1 |
C23=0 |
C27=1 \(\oplus\) 1 \(\oplus\) 0 = 0 |
| B28=1 |
C23=0 |
C24=0 |
C28=1 \(\oplus\) 0 \(\oplus\) 0 = 1 |
| B29=1 |
C24=0 |
C25=0 |
C29=1 \(\oplus\) 0 \(\oplus\) 0 = 1 |
| B30=1 |
C25=0 |
C26=0 |
C30=1 \(\oplus\) 0 \(\oplus\) 0 = 1 |
| B31=1 |
C26=0 |
C27=0 |
C31=1 \(\oplus\) 0 \(\oplus\) 0 = 1 |
| B32=0 |
C27=0 |
C28=1 |
C32=0 \(\oplus\) 0 \(\oplus\) 1 = 1 |
Дескремблированная последовательность:
11001111111110010100000011111111
Сравним с исходной:
Исходная: 11001111110000001101010111001110
Дескремблированная: 11001111111110010100000011111111
Как видно, дескремблированная последовательность не совпадает с исходной. Это означает, что в процессе вычислений (скремблирования или дескремблирования) была допущена ошибка, как указано в замечании 2.
Давайте перепроверим расчеты скремблирования и дескремблирования.
Исходная последовательность \(A\): 11001111110000001101010111001110
Полином \(G(x) = x^5 + x^4 + 1\).
Скремблер: \(B_i = A_i \oplus B_{i-4} \oplus B_{i-5}\)
Дескремблер: \(C_i = B_i \oplus C_{i-4} \oplus C_{i-5}\)
Начальные значения для \(B_{i-4}\) и \(B_{i-5}\) (для первых 5 битов) и для \(C_{i-4}\) и \(C_{i-5}\) (для первых 5 битов) должны быть нулями.
Пересчитаем скремблирование:
A: 1 1 0 0 1 1 1 1 1 1 0 0 0 0 0 0 1 1 0 1 0 1 0 1 1 1 0 0 1 1 1 0
B:
B1 = A1 \(\oplus\) 0 \(\oplus\) 0 = 1 \(\oplus\) 0 \(\oplus\) 0 = 1
B2 = A2 \(\oplus\) 0 \(\oplus\) 0 = 1 \(\oplus\) 0 \(\oplus\) 0 = 1
B3 = A3 \(\oplus\) 0 \(\oplus\) 0 = 0 \(\oplus\) 0 \(\oplus\) 0 = 0
B4 = A4 \(\oplus\) 0 \(\oplus\) 0 = 0 \(\oplus\) 0 \(\oplus\) 0 = 0
B5 = A5 \(\oplus\) 0 \(\oplus\) 0 = 1 \(\oplus\) 0 \(\oplus\) 0 = 1
B6 = A6 \(\oplus\) B2 \(\oplus\) B1 = 1 \(\oplus\) 1 \(\oplus\) 1 = 1
B7 = A7 \(\oplus\) B3 \(\oplus\) B2 = 1 \(\oplus\) 0 \(\oplus\) 1 = 0
B8 = A8 \(\oplus\) B4 \(\oplus\) B3 = 1 \(\oplus\) 0 \(\oplus\) 0 = 1
B9 = A9 \(\oplus\) B5 \(\oplus\) B4 = 1 \(\oplus\) 1 \(\oplus\) 0 = 0
B10 = A10 \(\oplus\) B6 \(\oplus\) B5 = 1 \(\oplus\) 1 \(\oplus\) 1 = 1
B11 = A11 \(\oplus\) B7 \(\oplus\) B6 = 0 \(\oplus\) 0 \(\oplus\) 1 = 1
B12 = A12 \(\oplus\) B8 \(\oplus\) B7 = 0 \(\oplus\) 1 \(\oplus\) 0 = 1
B13 = A13 \(\oplus\) B9 \(\oplus\) B8 = 0 \(\oplus\) 0 \(\oplus\) 1 = 1
B14 = A14 \(\oplus\) B10 \(\oplus\) B9 = 0 \(\oplus\) 1 \(\oplus\) 0 = 1
B15 = A15 \(\oplus\) B11 \(\oplus\) B10 = 0 \(\oplus\) 1 \(\oplus\) 1 = 0
B16 = A16 \(\oplus\) B12 \(\oplus\) B11 = 0 \(\oplus\) 1 \(\oplus\) 1 = 0
B17 = A17 \(\oplus\) B13 \(\oplus\) B12 = 1 \(\oplus\) 1 \(\oplus\) 1 = 1
B18 = A18 \(\oplus\) B14 \(\oplus\) B13 = 1 \(\oplus\) 1 \(\oplus\) 1 = 1
B19 = A19 \(\oplus\) B15 \(\oplus\) B14 = 0 \(\oplus\) 0 \(\oplus\) 1 = 1
B20 = A20 \(\oplus\) B16 \(\oplus\) B15 = 1 \(\oplus\) 0 \(\oplus\) 0 = 1
B21 = A21 \(\oplus\) B17 \(\oplus\) B16 = 0 \(\oplus\) 1 \(\oplus\) 0 = 1
B22 = A22 \(\oplus\) B18 \(\oplus\) B17 = 1 \(\oplus\) 1 \(\oplus\) 1 = 1
B23 = A23 \(\oplus\) B19 \(\oplus\) B18 = 0 \(\oplus\) 1 \(\oplus\) 1 = 0
B24 = A24 \(\oplus\) B20 \(\oplus\) B19 = 1 \(\oplus\) 1 \(\oplus\) 1 = 1
B25 = A25 \(\oplus\) B21 \(\oplus\) B20 = 1 \(\oplus\) 1 \(\oplus\) 1 = 1
B26 = A26 \(\oplus\) B22 \(\oplus\) B21 = 1 \(\oplus\) 1 \(\oplus\) 1 = 1
B27 = A27 \(\oplus\) B23 \(\oplus\) B22 = 0 \(\oplus\) 0 \(\oplus\) 1 = 1
B28 = A28 \(\oplus\) B24 \(\oplus\) B23 = 0 \(\oplus\) 1 \(\oplus\) 0 = 1
B29 = A29 \(\oplus\) B25 \(\oplus\) B24 = 1 \(\oplus\) 1 \(\oplus\) 1 = 1
B30 = A30 \(\oplus\) B26 \(\oplus\) B25 = 1 \(\oplus\) 1 \(\oplus\) 1 = 1
B31 = A31 \(\oplus\) B27 \(\oplus\) B26 = 1 \(\oplus\) 1 \(\oplus\) 1 = 1
B32 = A32 \(\oplus\) B28 \(\oplus\) B27 = 0 \(\oplus\) 1 \(\oplus\) 1 = 0
Скремблированная последовательность (B): 11001101011110011111111111111110
Это совпадает с вашей скремблированной последовательностью.
Теперь дескремблирование:
B: 1 1 0 0 1 1 0 1 0 1 1 1 1 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0
C:
C1 = B1 \(\oplus\) 0 \(\oplus\) 0 = 1 \(\oplus\) 0 \(\oplus\) 0 = 1
C2 = B2 \(\oplus\) 0 \(\oplus\) 0 = 1 \(\oplus\) 0 \(\oplus\) 0 = 1
C3 = B3 \(\oplus\) 0 \(\oplus\) 0 = 0 \(\oplus\) 0 \(\oplus\) 0 = 0
C4 = B4 \(\oplus\) 0 \(\oplus\) 0 = 0 \(\oplus\) 0 \(\oplus\) 0 = 0
C5 = B5 \(\oplus\) 0 \(\oplus\) 0 = 1 \(\oplus\) 0 \(\oplus\) 0 = 1
C6 = B6 \(\oplus\) C2 \(\oplus\) C1 = 1 \(\oplus\) 1 \(\oplus\) 1 = 1
C7 = B7 \(\oplus\) C3 \(\oplus\) C2 = 0 \(\oplus\) 0 \(\oplus\) 1 = 1
C8 = B8 \(\oplus\) C4 \(\oplus\) C3 = 1 \(\oplus\) 0 \(\oplus\) 0 = 1
C9 = B9 \(\oplus\) C5 \(\oplus\) C4 = 0 \(\oplus\) 1 \(\oplus\) 0 = 1
C10 = B10 \(\oplus\) C6 \(\oplus\) C5 = 1 \(\oplus\) 1 \(\oplus\) 1 = 1
C11 = B11 \(\oplus\) C7 \(\oplus\) C6 = 1 \(\oplus\) 1 \(\oplus\) 1 = 1
C12 = B12 \(\oplus\) C8 \(\oplus\) C7 = 1 \(\oplus\) 1 \(\oplus\) 1 = 1
C13 = B13 \(\oplus\) C9 \(\oplus\) C8 = 1 \(\oplus\) 1 \(\oplus\) 1 = 1
C14 = B14 \(\oplus\) C10 \(\oplus\) C9 = 1 \(\oplus\) 1 \(\oplus\) 1 = 1
C15 = B15 \(\oplus\) C11 \(\oplus\) C10 = 0 \(\oplus\) 1 \(\oplus\) 1 = 0
C16 = B16 \(\oplus\) C12 \(\oplus\) C11 = 0 \(\oplus\) 1 \(\oplus\) 1 = 0
C17 = B17 \(\oplus\) C13 \(\oplus\) C12 = 1 \(\oplus\) 1 \(\oplus\) 1 = 1
C18 = B18 \(\oplus\) C14 \(\oplus\) C13 = 1 \(\oplus\) 1 \(\oplus\) 1 = 1
C19 = B19 \(\oplus\) C15 \(\oplus\) C14 = 1 \(\oplus\) 0 \(\oplus\) 1 = 0
C20 = B20 \(\oplus\) C16 \(\oplus\) C15 = 1 \(\oplus\) 0 \(\oplus\) 0 = 1
C21 = B21 \(\oplus\) C17 \(\oplus\) C16 = 1 \(\oplus\) 1 \(\oplus\) 0 = 0
C22 = B22 \(\oplus\) C18 \(\oplus\) C17 = 1 \(\oplus\) 1 \(\oplus\) 1 = 1
C23 = B23 \(\oplus\) C19 \(\oplus\) C18 = 1 \(\oplus\) 0 \(\oplus\) 1 = 0
C24 = B24 \(\oplus\) C20 \(\oplus\) C19 = 1 \(\oplus\) 1 \(\oplus\) 0 = 0
C25 = B25 \(\oplus\) C21 \(\oplus\) C20 = 1 \(\oplus\) 0 \(\oplus\) 1 = 0
C26 = B26 \(\oplus\) C22 \(\oplus\) C21 = 1 \(\oplus\) 1 \(\oplus\) 0 = 0
C27 = B27 \(\oplus\) C23 \(\oplus\) C22 = 1 \(\oplus\) 0 \(\oplus\) 1 = 0
C28 = B28 \(\oplus\) C24 \(\oplus\) C23 = 1 \(\oplus\) 0 \(\oplus\) 0 = 1
C29 = B29 \(\oplus\) C25 \(\oplus\) C24 = 1 \(\oplus\) 0 \(\oplus\) 0 = 1
C30 = B30 \(\oplus\) C26 \(\oplus\) C25 = 1 \(\oplus\) 0 \(\oplus\) 0 = 1
C31 = B31 \(\oplus\) C27 \(\oplus\) C26 = 1 \(\oplus\) 0 \(\oplus\) 0 = 1
C32 = B32 \(\oplus\) C28 \(\oplus\) C27 = 0 \(\oplus\) 1 \(\oplus\) 0 = 1
Дескремблированная последовательность (C): 11001111111110010100000011111111
Сравним с исходной:
Исходная: 11001111110000001101010111001110
Дескремблированная: 11001111111110010100000011111111
Действительно, последовательности не совпадают. Это указывает на ошибку в расчетах.
Давайте внимательно перепроверим формулу и ее применение.
Полином \(G(x) = x^5 + x^4 + 1\).
Это означает, что обратная связь берется от 4-го и 5-го битов регистра сдвига.
Скремблер: \(B_i = A_i \oplus B_{i-4} \oplus B_{i-5}\)
Дескремблер: \(C_i = B_i \oplus C_{i-4} \oplus C_{i-5}\)
Возможно, ошибка в интерпретации полинома или в начальных условиях.
Часто для скремблеров используются начальные значения регистра сдвига, которые не обязательно все нули. Однако, если не указано иное, нули - это стандартное предположение.
Давайте еще раз проверим первые несколько битов дескремблирования, чтобы убедиться в правильности формулы.
Исходная \(A\): 11001111110000001101010111001110
Скремблированная \(B\): 11001101011110011111111111111110
Дескремблирование:
C1 = B1 \(\oplus\) 0 \(\oplus\) 0 = 1 \(\oplus\) 0 \(\oplus\) 0 = 1 (Совпадает с A1)
C2 = B2 \(\oplus\) 0 \(\oplus\) 0 = 1 \(\oplus\) 0 \(\oplus\) 0 = 1 (Совпадает с A2)
C3 = B3 \(\oplus\) 0 \(\oplus\) 0 = 0 \(\oplus\) 0 \(\oplus\) 0 = 0 (Совпадает с A3)
C4 = B4 \(\oplus\) 0 \(\oplus\) 0 = 0 \(\oplus\) 0 \(\oplus\) 0 = 0 (Совпадает с A4)
C5 = B5 \(\oplus\) 0 \(\oplus\) 0 = 1 \(\oplus\) 0 \(\oplus\) 0 = 1 (Совпадает с A5)
C6 = B6 \(\oplus\) C2 \(\oplus\) C1 = 1 \(\oplus\) 1 \(\oplus\) 1 = 1 (Совпадает с A6)
C7 = B7 \(\oplus\) C3 \(\oplus\) C2 = 0 \(\oplus\) 0 \(\oplus\) 1 = 1 (Не совпадает с A7=1)
Здесь уже ошибка. A7 = 1, а C7 = 1. Это совпадает.
C8 = B8 \(\oplus\) C4 \(\oplus\) C3 = 1 \(\oplus\) 0 \(\oplus\) 0 = 1 (Совпадает с A8=1)
C9 = B9 \(\oplus\) C5 \(\oplus\) C4 = 0 \(\oplus\) 1 \(\oplus\) 0 = 1 (Совпадает с A9=1)
C10 = B10 \(\oplus\) C6 \(\oplus\) C5 = 1 \(\oplus\) 1 \(\oplus\) 1 = 1 (Совпадает с A10=1)
C11 = B11 \(\oplus\) C7 \(\oplus\) C6 = 1 \(\oplus\) 1 \(\oplus\) 1 = 1 (Не совпадает с A11=0)
Вот здесь точно ошибка.
Давайте перепроверим скремблирование еще раз, возможно, я ошибся в ручном расчете.
A: 11001111110000001101010111001110
B:
B1 = A1 = 1
B2 = A2 = 1
B3 = A3 = 0
B4 = A4 = 0
B5 = A5 = 1
B6 = A6 \(\oplus\) B2 \(\oplus\) B1 = 1 \(\oplus\) 1 \(\oplus\) 1 = 1
B7 = A7 \(\oplus\) B3 \(\oplus\) B2 = 1 \(\oplus\) 0 \(\oplus\) 1 = 0
B8 = A8 \(\oplus\) B4 \(\oplus\) B3 = 1 \(\oplus\) 0 \(\oplus\) 0 = 1
B9 = A9 \(\oplus\) B5 \(\oplus\) B4 = 1 \(\oplus\) 1 \(\oplus\) 0 = 0
B10 = A10 \(\oplus\) B6 \(\oplus\) B5 = 1 \(\oplus\) 1 \(\oplus\) 1 = 1
B11 = A11 \(\oplus\) B7 \(\oplus\) B6 = 0 \(\oplus\) 0 \(\oplus\) 1 = 1
B12 = A12 \(\oplus\) B8 \(\oplus\) B7 = 0 \(\oplus\) 1 \(\oplus\) 0 = 1
B13 = A13 \(\oplus\) B9 \(\oplus\) B8 = 0 \(\oplus\) 0 \(\oplus\) 1 = 1
B14 = A14 \(\oplus\) B10 \(\oplus\) B9 = 0 \(\oplus\) 1 \(\oplus\) 0 = 1
B15 = A15 \(\oplus\) B11 \(\oplus\) B10 = 0 \(\oplus\) 1 \(\oplus\) 1 = 0
B16 = A16 \(\oplus\) B12 \(\oplus\) B11 = 0 \(\oplus\) 1 \(\oplus\) 1 = 0
B17 = A17 \(\oplus\) B13 \(\oplus\) B12 = 1 \(\oplus\) 1 \(\oplus\) 1 = 1
B18 = A18 \(\oplus\) B14 \(\oplus\) B13 = 1 \(\oplus\) 1 \(\oplus\) 1 = 1
B19 = A19 \(\oplus\) B15 \(\oplus\) B14 = 0 \(\oplus\) 0 \(\oplus\) 1 = 1
B20 = A20 \(\oplus\) B16 \(\oplus\) B15 = 1 \(\oplus\) 0 \(\oplus\) 0 = 1
B21 = A21 \(\oplus\) B17 \(\oplus\) B16 = 0 \(\oplus\) 1 \(\oplus\) 0 = 1
B22 = A22 \(\oplus\) B18 \(\oplus\) B17 = 1 \(\oplus\) 1 \(\oplus\) 1 = 1
B23 = A23 \(\oplus\) B19 \(\oplus\) B18 = 0 \(\oplus\) 1 \(\oplus\) 1 = 0
B24 = A24 \(\oplus\) B20 \(\oplus\) B19 = 1 \(\oplus\) 1 \(\oplus\) 1 = 1
B25 = A25 \(\oplus\) B21 \(\oplus\) B20 = 1 \(\oplus\) 1 \(\oplus\) 1 = 1
B26 = A26 \(\oplus\) B22 \(\oplus\) B21 = 1 \(\oplus\) 1 \(\oplus\) 1 = 1
B27 = A27 \(\oplus\) B23 \(\oplus\) B22 = 0 \(\oplus\) 0 \(\oplus\) 1 = 1
B28 = A28 \(\oplus\) B24 \(\oplus\) B23 = 0 \(\oplus\) 1 \(\oplus\) 0 = 1
B29 = A29 \(\oplus\) B25 \(\oplus\) B24 = 1 \(\oplus\) 1 \(\oplus\) 1 = 1
B30 = A30 \(\oplus\) B26 \(\oplus\) B25 = 1 \(\oplus\) 1 \(\oplus\) 1 = 1
B31 = A31 \(\oplus\) B27 \(\oplus\) B26 = 1 \(\oplus\) 1 \(\oplus\) 1 = 1
B32 = A32 \(\oplus\) B28 \(\oplus\) B27 = 0 \(\oplus\) 1 \(\oplus\) 1 = 0
Скремблированная последовательность (B): 11001101011110011111111111111110.
Мои расчеты скремблирования совпадают с вашими.
Теперь дескремблирование:
C1 = B1 \(\oplus\) 0 \(\oplus\) 0 = 1
C2 = B2 \(\oplus\) 0 \(\oplus\) 0 = 1
C3 = B3 \(\oplus\) 0 \(\oplus\) 0 = 0
C4 = B4 \(\oplus\) 0 \(\oplus\) 0 = 0
C5 = B5 \(\oplus\) 0 \(\oplus\) 0 = 1
C6 = B6 \(\oplus\) C2 \(\oplus\) C1 = 1 \(\oplus\) 1 \(\oplus\) 1 = 1
C7 = B7 \(\oplus\) C3 \(\oplus\) C2 = 0 \(\oplus\) 0 \(\oplus\) 1 = 1
C8 = B8 \(\oplus\) C4 \(\oplus\) C3 = 1 \(\oplus\) 0 \(\oplus\) 0 = 1
C9 = B9 \(\oplus\) C5 \(\oplus\) C4 = 0 \(\oplus\) 1 \(\oplus\) 0 = 1
C10 = B10 \(\oplus\) C6 \(\oplus\) C5 = 1 \(\oplus\) 1 \(\oplus\) 1 = 1
C11 = B11 \(\oplus\) C7 \(\oplus\) C6 = 1 \(\oplus\) 1 \(\oplus\) 1 = 1
C12 = B12 \(\oplus\) C8 \(\oplus\) C7 = 1 \(\oplus\) 1 \(\oplus\) 1 = 1
C13 = B13 \(\oplus\) C9 \(\oplus\) C8 = 1 \(\oplus\) 1 \(\oplus\) 1 = 1
C14 = B14 \(\oplus\) C10 \(\oplus\) C9 = 1 \(\oplus\) 1 \(\oplus\) 1 = 1
C15 = B15 \(\oplus\) C11 \(\oplus\) C10 = 0 \(\oplus\) 1 \(\oplus\) 1 = 0
C16 = B16 \(\oplus\) C12 \(\oplus\) C11 = 0 \(\oplus\) 1 \(\oplus\) 1 = 0
C17 = B17 \(\oplus\) C13 \(\oplus\) C12 = 1 \(\oplus\) 1 \(\oplus\) 1 = 1
C18 = B18 \(\oplus\) C14 \(\oplus\) C13 = 1 \(\oplus\) 1 \(\oplus\) 1 = 1
C19 = B19 \(\oplus\) C15 \(\oplus\) C14 = 1 \(\oplus\) 0 \(\oplus\) 1 = 0
C20 = B20 \(\oplus\) C16 \(\oplus\) C15 = 1 \(\oplus\) 0 \(\oplus\) 0 = 1
C21 = B21 \(\oplus\) C17 \(\oplus\) C16 = 1 \(\oplus\) 1 \(\oplus\) 0 = 0
C22 = B22 \(\oplus\) C18 \(\oplus\) C17 = 1 \(\oplus\) 1 \(\oplus\) 1 = 1
C23 = B23 \(\oplus\) C19 \(\oplus\) C18 = 1 \(\oplus\) 0 \(\oplus\) 1 = 0
C24 = B24 \(\oplus\) C20 \(\oplus\) C19 = 1 \(\oplus\) 1 \(\oplus\) 0 = 0
C25 = B25 \(\oplus\) C21 \(\oplus\) C20 = 1 \(\oplus\) 0 \(\oplus\) 1 = 0
C26 = B26 \(\oplus\) C22 \(\oplus\) C21 = 1 \(\oplus\) 1 \(\oplus\) 0 = 0
C27 = B27 \(\oplus\) C23 \(\oplus\) C22 = 1 \(\oplus\) 0 \(\oplus\) 1 = 0
C28 = B28 \(\oplus\) C24 \(\oplus\) C23 = 1 \(\oplus\) 0 \(\oplus\) 0 = 1
C29 = B29 \(\oplus\) C25 \(\oplus\) C24 = 1 \(\oplus\) 0 \(\oplus\) 0 = 1
C30 = B30 \(\oplus\) C26 \(\oplus\) C25 = 1 \(\oplus\) 0 \(\oplus\) 0 = 1
C31 = B31 \(\oplus\) C27 \(\oplus\) C26 = 1 \(\oplus\) 0 \(\oplus\) 0 = 1
C32 = B32 \(\oplus\) C28 \(\oplus\) C27 = 0 \(\oplus\) 1 \(\oplus\) 0 = 1
Дескремблированная последовательность (C): 11001111111110010100000011111111
Исходная последовательность (A): 11001111110000001101010111001110
Сравним побитно:
A: 11001111110000001101010111001110
C: 11001111111110010100000011111111
Различия начинаются с 11-го бита.
A11=0, C11=1
A12=0, C12=1
A13=0, C13=1
A14=0, C14=1
A15=0, C15=0 (совпадает)
A16=0, C16=0 (совпадает)
A17=1, C17=1 (совпадает)
A18=1, C18=1 (совпадает)
A19=0, C19=0 (совпадает)
A20=1, C20=1 (совпадает)
A21=0, C21=0 (совпадает)
A22=1, C22=1 (совпадает)
A23=0, C23=0 (совпадает)
A24=1, C24=0 (не совпадает)
A25=1, C25=0 (не совпадает)
A26=1, C26=0 (не совпадает)
A27=0, C27=0 (совпадает)
A28=0, C28=1 (не совпадает)
A29=1, C29=1 (совпадает)
A30=1, C30=1 (совпадает)
A31=1, C31=1 (совпадает)
A32=0, C32=1 (не совпадает)
Ошибка в расчетах дескремблирования.
Давайте еще раз проверим формулу дескремблера.
Если скремблер: \(B_i = A_i \oplus B_{i-4} \oplus B_{i-5}\)
То дескремблер должен быть: \(C_i = B_i \oplus C_{i-4} \oplus C_{i-5}\)
Это верно.
Возможно, ошибка в начальных условиях. Если для скремблера использовались начальные нули, то для дескремблера тоже должны использоваться начальные нули.
Давайте попробуем использовать другой подход для проверки.
Если \(B_i = A_i \oplus S_i\), где \(S_i\) - выход регистра сдвига скремблера.
Тогда \(A_i = B_i \oplus S_i\).
Для дескремблера: \(C_i = B_i \oplus S'_i\), где \(S'_i\) - выход регистра сдвига дескремблера.
Чтобы \(C_i = A_i\), необходимо, чтобы \(S'_i = S_i\).
Это означает, что регистры сдвига скремблера и дескремблера должны быть идентичны и иметь одинаковые начальные состояния.
В вашем случае, регистр сдвига дескремблера заполняется дескремблированными битами \(C_i\).
То есть, \(C_i = B_i \oplus C_{i-4} \oplus C_{i-5}\).
Это стандартная схема дескремблера для полинома \(x^5