空时编码是一种基于多发射天线系统设计的编码和信号处理技术。它在不同天线发射得出信号之间引入时域和空域相关,使得在接受端可以进行分集接收,并且可以在不牺牲带宽的情况下获得更改的编码增益。Alamouti与1998年提出了两天线空时分组码[1]。传输率为1符号/s且译码算法简单。
已知编码矩阵为,可以写成以下表格的形式:
|
天线1 |
天线2 |
天线3 |
天线4 |
时间t |
x1 |
x2* |
x3* |
0 |
时间t + T |
-x2 |
x1* |
0 |
-x3* |
时间t + 2T |
-x3 |
0 |
x1* |
x2* |
在第一个发射周期中,信号x1、x2*、x3*、0分别同时从4个天线发射,在第二个发射周期中,发射信号-x2、x1*、0、-x3*,在第三个发射周期,发射信号-x3、0、x1*、-x2*。其中x1*表示x1的复共轭。编码矩阵满足:
故其满足正交设计。
单接收天线情况:
用h1(t)、h2(t)、h3(t)、h4(t)分别表示在t时刻发射天线1、2、3、4到接收天线的信道衰落系数,且假设衰落系数在两个连续符号发射周期之间不变。接收天线在时刻t、t+T、t+2T的接收信号分别为r1、r2、r3,T为持续时间,则有:
r1 = h1x1 + h2x2* + h3x3* + n1 ( 1 )
r2 = -h1x2 + h2x1* – h4x3* + n2 ( 2 )
r3 = -h1x3 + h3x1* + h4x2* + n3 ( 3 )
其中n1、n2、n3表示接收天线在t、t + T和t + 2T时均值为0方差为N0/2的独立复高斯白噪声。
译码:
假设接收端可以完全准确地估计出信道的衰落系数h1、h2、h3、h4,在接收端可以采用最大似然译码,在信号调制星座图中选择一组信号(x1, x2, x3)使下式的欧式距离最小:
最大似然译码可表示为
其中是最大似然的译码结果,,A表示星座图,d2表示两复数点距离的平方,是根据信道衰落系数和接收信号进行合并得到的两个判决统计。统计的决策变量可表示为:
( 4 )
( 5 )
( 6 )
对于在接收端已获得信道衰落系数的情况下,决策变量仅是xi的函数。故可解出三个独立的信号并分别对其进行译码,可得:
( 7 )
( 8 )
( 9 )
多接收天线情况(假设共有nR个接收天线):
假设在多接收天线情况下,发射天线i和接收天线j之间存在信道衰落系数hij。
在时间t时,接收天线j接收到的信号rtj为:
( 10 )
代入数据得到:
( 11 )
( 12 )
( 13 )
多接收天线的接收到的信号相加即可,最大似然检测规则是形成决策变量:
( 14 )
( 15 )
( 16 )
解出三个独立的信号并且译码为:
( 17 )
( 18 )
( 19 )
其中A表示星座图。
仿真
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 |
clear all datasize = 999999; % 仿真的符号数 EbNo = 0:2:25; % 信噪比横坐标 x1 = randsrc(3,datasize/3,[0:1]); % 0-1随机数(分成三组) x2 = randsrc(3,datasize/3,[0:3]); % 0-3随机数 x3 = randsrc(3,datasize/3,[0:7]); % 0-7随机数 x4 = randsrc(3,datasize/3,[0:15]); % 0-15随机数 m1 = pskmod(x1,2);% BPSK调制 m2 = pskmod(x2,4);% QPSK调制 m3 = pskmod(x3,8);% 8PSK调制 m4 = modulate(modem.qammod(16),x4); % 16QAM调制 h=randn(6,datasize/3)+j*randn(6,datasize/3); % 瑞利衰落信道衰落系数 h=h./sqrt(2); for indx=1:length(EbNo) % sigma1=sqrt(1/(4*10.^(EbNo(indx)/10))); %加性高斯白噪声标准差 % n=sigma1*(randn(3,datasize/3)+j*randn(3,datasize/3)); sigma2=sqrt(1/(4/3*10.^(EbNo(indx)/10))); % 每个子信道高斯白噪声标准差 n=sigma2*(randn(6,datasize/3)+j*randn(6,datasize/3)); n1(1,:)=(conj(h(1,:)).*n(1,:)+h(2,:).*conj(n(2,:))+h(3,:).*conj(n(3,:)))./(sum(abs(h(1:3,:)).^2)); %对应上文中的式(4) n1(2,:)=(-conj(h(1,:)).*n(2,:)+h(2,:).*conj(n(1,:))+h(4,:).*conj(n(3,:)))./(sum(abs(h(1:3,:)).^2)); %对应上文中的式(5) n1(3,:)=(-conj(h(1,:)).*n(3,:)+h(3,:).*conj(n(1,:))-h(4,:).*conj(n(2,:)))./(sum(abs(h(1:3,:)).^2)); %对应上文中的式(6) y1 = m1 + n1; y2 = m2 + n1; y3 = m3 + n1; y4 = m4 + n1; % x4=pskdemod(y1g,M,pi/4); d1 = pskdemod(y1,2); d2 = pskdemod(y2,4); d3 = pskdemod(y3,8); d4 = demodulate(modem.qamdemod(16),y4); [temp,ber1(indx)]=biterr(x1,d1,log2(2)); [temp,ber2(indx)]=biterr(x2,d2,log2(4)); [temp,ber3(indx)]=biterr(x3,d3,log2(8)); [temp,ber4(indx)]=biterr(x4,d4,log2(16)); end semilogy(EbNo,ber1,'-k*',EbNo,ber2,'-ko',EbNo,ber3,'-kd',EbNo,ber4,'-k.') grid on legend('BPSK','QPSK','8PSK','16QAM') xlabel(' 信噪比 EbNo(dB)') ylabel(' 误比特率 (BER)') title('4天线3时间间隔空时分组码在瑞利衰落信道下的性能 ') |
参考文献
[1]Alamouti S.M..A simple transmit diversity technique for wireless communications[J].IEEE Journal on Selected Areas in Communications,1998,16(8):1451-1458.
[2]Tarokh V, Seshadri N, Calderbank A R. Space-time codes for high data rate wireless communication: performance criterion and code construction[J]. IEEE Transactions on Information Theory It, 1998, 50(12):19-32.
[3]赵琰.准正交空时分组码译码算法的比较研究[J].上海电力学院学报,2005,21(4):346. DOI:10.3969/j.issn.1006-4729.2005.04.014.
[4]Branka Vucetic, Jinhong Yuan.空时编码技术[M].机械工业出版社,2004:80-86.
[5]喻华文,尹俊勋,赖国庭.一种快衰落下正交空时分组码的译码[J].微计算机信息,2007,23(30):203-204. DOI:10.3969/j.issn.1008-0570.2007.30.078.
[6]李星,苏佳.MIMO系统中的空时分组分组码技术研究[J].电子世界,2018,(2):120-121.