空时网格码设计与实现

1、描述空时网格码编码原理。

空时网格编码是一种能获取更高数据传输率的信号编码技术。空时编码是空间传输信号和时间传输信号的结合,实质上就是空间和时间维的处理相结合的方法。

在新一代移动通信系统中,空间上采用多发多收天线的空间分集来提高无线通信系统的容量和信息率;在时间上把不同信号在不同时隙内使用同一个天线发射,使接收端可以分集接收。用这样的方法可以获得分集和编码增益,从而实现高速率的传输。现在是第三代移动通信系统中提高频谱利用率的一项技术。

2、设计或使用现有网格码,例如如图的2天线8状态的4PSK的空时网格码

                   

3、编程实现空时网格码编码。

代码:

#include<stdio.h>

int main()

{

int a[8][8]={{0,0,2,0,2,2,0,2},{1,2,3,2,3,0,1,0},{2,1,0,1,0,3,2,3},{3,3,1,3,1,1,3,1},{0,2,2,2,2,0,0,0},{1,0,3,0,3,2,1,2},{2,3,0,3,0,1,2,1},{3,1,1,1,1,3,3,3},};

int i=0,j=0,x,n,m=1;

int c[500],d[500];

int b[1000];

printf("请输入序列对数:\n");

scanf("%d",&n);

printf("请输入输入序列:\n");

for(i=2*n-1;i>=0;i--)

{

if(i%2==1)

{

if(i!=1)

scanf("%d",&b[i-1]);

else

scanf("%d",&b[i]);

}

if(i%2==0)

{

if(i!=0)

scanf("%d",&b[i+1]);

else

scanf("%d",&b[i]);

}

}

for(x=0;x<5;x++)

{

i=b[2*x],j=b[2*x+1];

c[x]=a[z-1][2*(2*i+j)];

d[x]=a[z-1][2*(2*i+j)+1];

if(m%2==0)

{

//if(i==0&&j==0)

// z=5;

//if(i==0&&j==1)

// z=6;

//if(i==1&&j==0)

// z=7;

//if(i==1&&j==1)

// z=8;

z=2*i+j+5;

}

else if(z%2==1)

{

//if(i==0&&j==0)

// z=1;

//if(i==0&&j==1)

// z=2;

//if(i==1&&j==0)

// z=3;

//if(i==1&&j==1)

// z=4;

m=2*i+j+1;

}

}

printf("第1根天线的输出:\n");

for(i=0;i<n;i++)

{

printf("%d ",c[i]);

}

printf("\n");

printf("第2根天线的输出:\n");

for(i=0;i<n;i++)

{

printf("%d ",d[i]);

}

}

4、选做:推广到多种空时网格情况;尝试简单实现空时分组码。

空时分组码是一种在无线通信中使用的技术,用于在多个天线上发送数据流的多个副本,并利用各种接收的数据版本来提高数据传输的可靠性。 传输信号必须穿过具有散射,反射,折射等的潜在困难环境,然后可能被接收器中的热噪声进一步破坏,这意味着一些接收到的数据副本将比其他更好。这种冗余导致能够使用一个或多个接收到的副本来正确解码接收信号的机会更高。实际上,空时编码以最佳方式组合所接收信号的所有副本,以尽可能多地从每个副本中提取信息。

实验结果:

 

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值