⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 testinterleave.asv

📁 OFDM系统
💻 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 + -