📄 midamble.c
字号:
//midamble
struct fushu
{
int shibu;
int xubu;
};
struct fushu product(struct fushu A,struct fushu B)
{
struct fushu C;
C.shibu=A.shibu*B.shibu-A.xubu*B.xubu;
C.xubu=A.xubu*B.shibu+A.shibu*B.xubu;
return C;
}
main()
{
int p=128; //基本码长度
int lm=144; //生成长度
int k=4; //一个时隙可用码的最大数目
int w=p/k; //冲激响应的窗口长度
int l=lm+(k-1)*w; //周期扩展
int user=1; //用户的号码
int i,j;
int n=0;
int v=0;
/* int basic[128]={1,-1,1,1,-1,-1,1,-1,1,-1,1,-1,1,1,-1,-1,-1,1,-1,-1,-1,-1,1,-1,-1,-1,-1,-1,1,1,1,1,
-1,1,1,1,1,1,-1,-1,1,-1,-1,-1,1,1,-1,1,1,1,1,-1,1,-1,1,1,1,1,1,1,1,-1,1,-1,
-1,1,1,-1,1,-1,-1,1,-1,1,-1,1,-1,-1,-1,-1,-1,1,-1,1,1,-1,-1,1,1,-1,-1,-1,-1,-1,-1,1,
1,-1,1,1,1,1,-1,-1,1,1,-1,1,-1,-1,-1,-1,-1,-1,1,-1,1,-1,-1,-1,1,1,-1,-1,-1,-1,1,1};
*/
struct fushu basic[128]={1,0,-1,0,1,0,1,0,-1,0,-1,0,1,0,-1,0,1,0,-1,0,1,0,-1,0,1,0,1,0,-1,0,-1,0,-1,0,1,0,-1,0,-1,0,-1,0,-1,0,1,0,-1,0,-1,0,-1,0,-1,0,-1,0,1,0,1,0,1,0,1,0,-1,0,1,0,1,0,1,0,1,0,1,0,-1,0,-1,0,1,0,-1,0,-1,0,-1,0,1,0,1,0,-1,0,1,0,1,0,1,0,1,0,-1,0,1,0,-1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,-1,0,1,0,-1,0,-1,0,1,0,1,0,-1,0,1,0,-1,0,-1,0,1,0,-1,0,1,0,-1,0,1,0,-1,0,-1,0,-1,0,-1,0,-1,0,1,0,-1,0,1,0,1,0,-1,0,-1,0,1,0,1,0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,0,1,0,1,0,-1,0,1,0,1,0,1,0,1,0,-1,0,-1,0,1,0,1,0,-1,0,1,0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,0,1,0,-1,0,1,0,-1,0,-1,0,-1,0,1,0,1,0,-1,0,-1,0,-1,0,-1,0,1,0,1,0};
struct fushu m[240]={0};
struct fushu fs[4]={1,0,0,1,-1,0,0,-1};
struct fushu af_fs[128]={0};
struct fushu fs_basic[128]={0};
struct fushu mid_amble[128]={0};
struct fushu GP[16]={1,0,-1,0,1,0,1,0,-1,0,-1,0,1,0,-1,0,1,0,-1,0,1,0,-1,0,1,0,1,0,-1,0,-1,0};
for(i=0;i<128/4;i++)
{
for(j=0;j<4;j++)
{
af_fs[n++]=fs[j];
}
}
//生成复数midamble码
for(i=0;i<128;i++)
{
fs_basic[v++]=product(basic[i],af_fs[i]);
}
for(i=0;i<240;i++)
{
if(i<128)
m[i]=fs_basic[i];
else
m[i]=fs_basic[i-128];
}
//生成用户所使用的Midamble码
for(i=0;i<144;i++)
{
mid_amble[i]=m[i+(k-user)*w];
}
//生成GP
for(i=0;i<128;i++)
{
printf(" %d+%dj ",af_fs[i].shibu,af_fs[i].xubu);
}
printf("\n");
printf("\n");
for(i=0;i<240;i++)
{
printf(" %d+%dj ",m[i].shibu,m[i].xubu);
}
printf("\n");
printf("\n");
for(i=0;i<128;i++)
{
printf(" %d+%dj ",mid_amble[i].shibu,mid_amble[i].xubu);
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -