📄 de_randomized.m
字号:
function data_derandomized_hex=de_randomized(input_data_hex)
register_initial=[0 0 0 1 1 1 0 1 1 1 1 0 0 0 1]; %%随机化的初始化矢量
%%%%%将输入的16进制数变为2进制
binary_input=[]; %%将输入的16进制数变为二进制数
for i=1:length(input_data_hex)
b1=input_data_hex(i);
b2=hex2dec(b1);
b3=dec2bin(b2,4);%%注意:4表示一位16进制数转换为4位2进制数\
b4=[];
for j=1:4
b4=str2num(b3(j));
binary_input=[binary_input b4];
end
end
for i=1:length(binary_input)
register_output(i)=xor(register_initial(14),register_initial(15));
output_data(i)=xor(binary_input(i),register_output(i));
register_initial=register_initial';
register_initial= circshift(register_initial,1); %%每输入一个数据,移位寄存器右移一位
register_initial=register_initial';
register_initial(1)= register_output(i);
end
%%%%%将随机化后的二进制数转换为16进制数
L=length(output_data);
tt=L/4;
msgtemp=reshape(output_data,4,tt);
msgtemp=msgtemp';
for i=1:tt %%for循环将卷积编码后得到的二进制数组转换为16进制数
array=msgtemp(i,:);
str = num2str(array);
dec=bin2dec(str);
data_derandomized_hex(i)=dec2hex(dec);
end
%验证数据:D4BAA112F274963027D4889C96E3A952B315ABFD92530732C06248F01922E091621AC1
%%输出:4529C479AD0F5528AD87B5761A9C8050451B9FD92A8895EBAEB52E034F091469580A5D
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -