?? 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 + -