📄 random_interleaver.cpp
字号:
//Author NiuKai
//Date July,28th 2002
//Function random interleaving
#include "PCCC_para.h"
void Random_interleaver(float data[],int index[],int method,int buffer_len)
{ int i,j,k;
int *buffer;
float *pool;
buffer=(int *)calloc(buffer_len,sizeof(int));
pool=(float *)calloc(buffer_len,sizeof(float));
int temp;
switch(method)
{ case 0 : //first interleaving
for(i=0;i<buffer_len;i++)
{ buffer[i]=rand();
index[i]=i;
}
//sort
for(i=0;i<buffer_len;i++)
{ k=i;
for(j=i+1;j<buffer_len;j++)
if(buffer[j]<buffer[k]) k=j;
temp=buffer[k];buffer[k]=buffer[i];buffer[i]=temp;
temp=index[k];index[k]=index[i];index[i]=temp;
}
for(i=0;i<buffer_len;i++)
pool[index[i]]=data[i];
for(i=0;i<buffer_len;i++)
data[i]=pool[i];
break;
case 1 : //other interleaving
for(i=0;i<buffer_len;i++)
pool[index[i]]=data[i];
for(i=0;i<buffer_len;i++)
data[i]=pool[i];
break;
case 2 : //deinterleaving
for(i=0;i<buffer_len;i++)
pool[i]=data[index[i]];
for(i=0;i<buffer_len;i++)
data[i]=pool[i];
break;
default : printf("\nplease input correct interleaving method!\n");
}
free(buffer);
free(pool);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -