📄 testinterleave.asv
字号:
clc;
clear all;
%
% % 分组交织
% % interleaving
% InterOut = zeros(1, 256);
% InterIn = 1:256;
%
% for k=1:256
% i = 16*mod((k-1), 16) + floor((k-1)/16);
% InterOut(k) = InterIn(i+1); %没加高低位交织
% end
%
% % Deinterleave
% DeInterOut = zeros(1, 256);
% DeInterIn = InterOut;
%
% for k=1:256
% j = 16*(k-1) - 255*floor((k-1)/16);
% DeInterOut(j+1) = DeInterIn(k); %没加高低位交织
% end
%
% % 高低位交织
% % interleaving
% InterOut = zeros(1, 256);
% InterIn = 1:256;
%
% for i=1:256
% j = 2*floor((i-1)/2) + mod((i+1+floor((i-1)/16)), 2);
% InterOut(i) = InterIn(j+1);
% end
%
% % Deinterleave
% DeInterIn = InterOut;
% DeInterOut = zeros(1, 256);
%
% for k=1:256
% j = 2*floor((k-1)/2) + mod((k+floor((k+15)/16)), 2);
% DeInterOut(k) = DeInterIn(j+1);
% end
Num_Bit =128;
Out = 1:256;
InterOut = zeros(1, 2*Num_Bit);
for i=1: (2*Num_Bit/256)
InterIn = Out(1+(i-1)*256 : i*256);
for k=1:256
j = 16*mod((k-1), 16) + floor((k-1)/16);
InterOut(k) = InterIn(j+1);
end
for k=1:256
temp = 16*mod((k-1), 16) + floor((k-1)/16); %分组交织
j = 2*floor(temp/2) + mod((temp+floor(temp/16)), 2); % 高低位交织
InterOut(k+(i-1)*256) = InterIn(j+1);
end
end
% deinterleaving
DeInterOut = zeros(1, 2*Num_Bit);
DeInterIn = zeros(1, 256);
for i=1: (2*Num_Bit/256)
DeInter1Out = InterOut(1+(i-1)*256 : i*256);
for k=1:256
j = 2*floor((k-1)/2) + mod((k+floor((k+15)/16)), 2); %解高低位交织
DeInter2In(k) = DeInter1Out(j+1);
end
for k=1:256
j = 16*(k-1) - 255*floor((k-1)/16); %解分组交织
DeInterOut(j+1+(i-1)*256) = DeInter2In(k);
end
end
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -