sinterleaver.asv

来自「turbo 码matlab编译码程序」· ASV 代码 · 共 89 行

ASV
89
字号
%generate S-random interleavers
N=1024;
M=floor(sqrt(N/2));
S=22

u=rand(1,N)
[x,I]=sort(u);
x
I
for i=1:N
    variagroup(i)=0;
end

for T=1:4
         
         
           for i = 2: N
	        
            
                 
                
                 if i<=S
                    
                      for j=1:i-1
                      
                              while abs(I(i)-I(j))<S
                               
                                varia=I(i);
                                for k=i+1:N                          
                                     I(k-1)=I(k);
                                end
                   
                                 I(N)=varia;
                             end
                       end
                     
            
                else
                  
                   j=i-S;
                   while j<i
                       flag=0;
                       while abs(I(i)-I(j))<S
                         
                               varia=I(i);
                                 for k=i+1:N
                                      I(k-1)=I(k);
                                 end
                               I(N)=varia;
                               flag=flag+1;
                               if  flag==N-i+1
                                     
                                     j=i;
                                     
                                     break;
                               end     
                       end
                       j=j+1;
                   end
                   
                   
                   if  flag==N-i+1
                              i
                              for  k=i:N
                                   
                                     variagroup(k-i+1)= I(k);   
                              end
                              for k=1:i-1
                                   
                                     variagroup(k+N-i+1)=I(k);
                              end
                              for k=1:N
                                   
                                     I(k)=variagroup(k);
                              end
                     break;         
                    end
                    
                end
                
                
                
                
          
            end
            
        end
     
I

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?