Alamouti编码与SFBC编码

作用:实现发射分集增益。

接收分集技术是最大比合并MRC

两发一收Alamouti编码

Alamouti编码的基础场景是两根发射天线,一根接收天线,并且发射机不知道信道,那么该如何发射。
实现方式:一次性发送两个数据。因为只有一根接收天线,所以要再发送一次,接收端才能正常接收。
在这里插入图片描述
两个信号都分别经过了两个信道,获得了分集的效果。方程改写为:
在这里插入图片描述
可验证上述信道矩阵是正交矩阵。
在这里插入图片描述在这里插入图片描述
(符号互换了一下,不影响结果)


Alamouti编码的巧妙之处在于不知道信道的情况下,将信道矩阵正交化。

注:正交信道可以在同一时间和频率上传输多个独立的信号,而这些信号之间相互正交,彼此之间不会相互干扰。这种正交性可以降低多径效应和其他信道干扰对信号的影响,提高通信系统的性能和可靠性。

信道矩阵 H \mathbf{H} H 为:
H = [ h 1 h 2 h 2 ∗ − h 1 ∗ ] \mathbf{H} = \begin{bmatrix} h_1 & h_2 \\ h_2^* & -h_1^* \end{bmatrix} H=[h1h2h2h1]

其共轭转置 H H \mathbf{H}^H HH 为:
H H = [ h 1 ∗ h 2 h 2 ∗ − h 1 ] \mathbf{H}^H = \begin{bmatrix} h_1^* & h_2 \\ h_2^* & -h_1 \end{bmatrix} HH=[h1h2h2h1]

计算 H H H \mathbf{H}^H \mathbf{H} HHH
H H H = [ ∣ h 1 ∣ 2 + ∣ h 2 ∣ 2 0 0 ∣ h 1 ∣ 2 + ∣ h 2 ∣ 2 ] \mathbf{H}^H \mathbf{H} = \begin{bmatrix} |h_1|^2 + |h_2|^2 & 0 \\ 0 & |h_1|^2 + |h_2|^2 \end{bmatrix} HHH=[h12+h2200h12+h22]

这表明 H H H \mathbf{H}^H \mathbf{H} HHH 是对角矩阵,说明 H \mathbf{H} H 是正交的。

解码信号(信号分离):
利用正交性,接收端可以通过 H H \mathbf{H}^H HH 分离信号:
H H y = H H H s + H H n \mathbf{H}^H \mathbf{y} = \mathbf{H}^H \mathbf{H} \mathbf{s} + \mathbf{H}^H \mathbf{n} HHy=HHHs+HHn
H H y = ( ∣ h 1 ∣ 2 + ∣ h 2 ∣ 2 ) s + H H n \mathbf{H}^H \mathbf{y} = (|h_1|^2 + |h_2|^2) \mathbf{s} + \mathbf{H}^H \mathbf{n} HHy=(h12+h22)s+HHn

这样, s 1 s_1 s1 s 2 s_2 s2 被分离,且互不干扰。

下面再解方程:
在这里插入图片描述
在这里插入图片描述
每次每一根天线只发送一个符号,所以只有分集的效果,若2发2收,每根天线发两个符号,所有还有空分复用的效果。
Alamouti编码在空时编码STC领域广泛应用,Alamouti编码也叫做STBC(空时块码)


4G LTE使用了一种更通用的发射分集方案,称为 空频块编码(Space-Frequency Block Coding, SFBC)。SFBC是Alamouti编码在频域的扩展,适用于OFDM系统:

  • SFBC原理:将Alamouti编码的思想应用到相邻的子载波上,而不是时间 slot。

  • 优势:在频率选择性信道中,SFBC能够提供分集增益,同时适应OFDM的多载波特性。


3/19日更新:
Alamouti 空时编码技术可以通过将一个符号分为两个部分来实现空间分集和空间复用。

在 Alamouti 空时编码中,以2发2收为例,每个时刻有两个天线进行发送和接收。发送端将每个符号分成两个部分,然后将它们分别发送到两个不同的天线。通过这种方式,可以在同一时间和同一频率上传输两个符号。接收端收到信号后,对信号进行解码和处理,从而可以获得更好的信号质量和数据传输速度。

具体而言,假设要发送的符号为 s = [ s 1 , s 2 ] s = [s_1, s_2] s=[s1,s2],则 Alamouti 空时编码器将其转化为:

在这里插入图片描述

其中, s 1 s_1 s1 s 2 s_2 s2 分别表示两个部分。这个矩阵 S S S 会被分别发送到两个天线进行传输。接收端会接收到两个天线的信号,通过对这两个信号进行处理和解码,可以得到原始的符号 s s s。这样就可以在同一时间和同一频率上传输两个符号,从而实现了空间复用的效果。

在接收端,通过对接收到的信号进行解码和处理,可以得到原始的符号 s s s,从而实现了空间分集的效果。

感谢同为CSDN一位博主的代码(访问量最高的那个)

%仿真Alamouti 2发2收空时编码性能,调制方式为QPSK
clear all
datasize = 100000; %仿真的符号数
EbN0 = 0:2:20; %信噪比
M = 4; %QPSK调制
x = randsrc(2,datasize/2,[0:3]); %数据源符号
x1 = pskmod(x,M,pi/4);  %pi/4表示用QPSK
h = randn(4,datasize/2) +j*randn(4,datasize/2); %Rayleigh衰落信道
h = h./sqrt(2); %能量归一化
 
for index=1:length(EbN0)
%     除以4是因为 Alamouti 空时编码器的发射机制,一个符号被拆分成两个发送,
%     每个发送的能量只有原本的1/2,这样每个发送的信噪比就是原信号的1/4。
    sigma1 = sqrt(1/(4*10.^(EbN0(index)/10))); %SISO信道高斯白噪声标准差
    n = sigma1*(randn(2,datasize/2)+j*randn(2,datasize/2));
    y = x1 + n; %通过AWGN信道
    x2 = pskdemod(y,M,pi/4); %高斯噪声解调

    y1 = x1 + n./h(1:2,:); %通过SISO瑞利衰落信道后的判决变量
    x3 = pskdemod(y1,M,pi/4); %SISO瑞利解调
    
    sigma2 = sqrt(1/(2*10.^(EbN0(index)/10))); %Alamouti方案每个子信道高斯白噪声标准差
    n = sigma2*(randn(4,datasize/2)+j*randn(4,datasize/2));
    n1(1,:) = (conj(h(1,:)).*n(1,:)+h(2,:).*conj(n(2,:)))./(sum(abs(h(1:2,:)).^2)); %2发1收Alamouti方案判决变量的噪声项
    n1(2,:) = (conj(h(2,:)).*n(1,:)-h(1,:).*conj(n(2,:)))./(sum(abs(h(1:2,:)).^2));   
    y = x1 + n1;
    x4 = pskdemod(y,M,pi/4);%2发1收Alamouti方案

    n2(1,:) = (conj(h(1,:)).*n(1,:)+h(2,:).*conj(n(2,:))+conj(h(3,:)).*n(3,:)+h(4,:).*conj(n(4,:)))./(sum(abs(h).^2)); %2发2收Alamouti方案判决变量的噪声项
    n2(2,:) = (conj(h(2,:)).*n(1,:)-h(1,:).*conj(n(2,:))+conj(h(4,:)).*n(3,:)-h(3,:).*conj(n(4,:)))./(sum(abs(h).^2));
    y1= x1 + n2;
    x5 = pskdemod(y1,M,pi/4);
    [temp,ber1(index)] = biterr(x,x2,log2(M));
    [temp,ber2(index)] = biterr(x,x3,log2(M));
    [temp,ber3(index)] = biterr(x,x4,log2(M));
    [temp,ber4(index)] = biterr(x,x5,log2(M));
end
 
semilogy(EbN0,ber1,'-ko',EbN0,ber2,'-ro',EbN0,ber3,'-go',EbN0,ber4,'-bo')
grid on
legend('AWGN信道','SISO瑞利衰落信道', '2发1收Alamouti方案', '2发2收Alamouti方案')
xlabel('信噪比Eb/N0')
ylabel('误比特率(BER)')
title('2发2收Alamouti方案在瑞利衰落信道下的性能')

两发一收SFBC编码

SFBC的核心思想是将数据符号分成块(block),并通过多个发射天线在不同的子载波频率上发送这些符号的线性组合。与传统的空时编码(STBC)在时间维度上分布符号不同,SFBC在频率维度上分配符号,利用OFDM系统的子载波特性来实现分集增益。

以一个简单的2×1 MIMO系统(2个发射天线,1个接收天线)为例,假设有两个数据符号 s 1 s_1 s1 s 2 s_2 s2 需要发送。在SFBC中,这两个符号会被分配到两个相邻的子载波(例如子载波 k k k k + 1 k+1 k+1)和两个发射天线上。编码矩阵可以表示为:

S = [ s 1 − s 2 ∗ s 2 s 1 ∗ ] \mathbf{S} = \begin{bmatrix} s_1 & -s_2^* \\ s_2 & s_1^* \end{bmatrix} S=[s1s2s2s1]

  • 行表示发射天线(第一行对应天线1,第二行对应天线2)。
  • 列表示子载波(第一列对应子载波 k k k,第二列对应子载波 k + 1 k+1 k+1)。
  • s ∗ s^* s 表示复共轭。

因此:

  • 在子载波 k k k 上,天线1发送 s 1 s_1 s1,天线2发送 s 2 s_2 s2
  • 在子载波 k + 1 k+1 k+1 上,天线1发送 − s 2 ∗ -s_2^* s2,天线2发送 s 1 ∗ s_1^* s1

假设信道在子载波 k k k k + 1 k+1 k+1 上的系数分别为 h 1 , k h_{1,k} h1,k(天线1到接收天线的信道响应)和 h 2 , k h_{2,k} h2,k(天线2到接收天线的信道响应),且这些系数在相邻子载波间近似恒定(即 h 1 , k ≈ h 1 , k + 1 h_{1,k} \approx h_{1,k+1} h1,kh1,k+1 h 2 , k ≈ h 2 , k + 1 h_{2,k} \approx h_{2,k+1} h2,kh2,k+1)(Alamouti编码也有类似在时域不变的假设)。接收信号可以表示为:

  • 子载波 k k k 上的接收信号:
    y k = h 1 , k s 1 + h 2 , k s 2 + n k y_k = h_{1,k} s_1 + h_{2,k} s_2 + n_k yk=h1,ks1+h2,ks2+nk

  • 子载波 k + 1 k+1 k+1 上的接收信号:
    y k + 1 = h 1 , k + 1 ( − s 2 ∗ ) + h 2 , k + 1 s 1 ∗ + n k + 1 y_{k+1} = h_{1,k+1} (-s_2^*) + h_{2,k+1} s_1^* + n_{k+1} yk+1=h1,k+1(s2)+h2,k+1s1+nk+1

其中, n k n_k nk n k + 1 n_{k+1} nk+1 是加性高斯白噪声(AWGN)。
接收端通过信道估计获得 h 1 , k h_{1,k} h1,k h 2 , k h_{2,k} h2,k,并利用SFBC的正交特性进行解码。假设信道在相邻子载波间恒定( h 1 , k = h 1 , k + 1 h_{1,k} = h_{1,k+1} h1,k=h1,k+1 h 2 , k = h 2 , k + 1 h_{2,k} = h_{2,k+1} h2,k=h2,k+1),接收端对信号进行线性组合:

  • 估计 s 1 s_1 s1
    s ^ 1 = h 1 , k ∗ y k + h 2 , k y k + 1 ∗ \hat{s}_1 = h_{1,k}^* y_k + h_{2,k} y_{k+1}^* s^1=h1,kyk+h2,kyk+1
    代入 y k y_k yk y k + 1 y_{k+1} yk+1
    s ^ 1 = h 1 , k ∗ ( h 1 , k s 1 + h 2 , k s 2 + n k ) + h 2 , k ( h 1 , k ∗ ( − s 2 ) + h 2 , k ∗ s 1 + n k + 1 ) ∗ \hat{s}_1 = h_{1,k}^* (h_{1,k} s_1 + h_{2,k} s_2 + n_k) + h_{2,k} (h_{1,k}^* (-s_2) + h_{2,k}^* s_1 + n_{k+1})^* s^1=h1,k(h1,ks1+h2,ks2+nk)+h2,k(h1,k(s2)+h2,ks1+nk+1)
    化简后:
    s ^ 1 = ( ∣ h 1 , k ∣ 2 + ∣ h 2 , k ∣ 2 ) s 1 + h 1 , k ∗ n k + h 2 , k n k + 1 ∗ \hat{s}_1 = (|h_{1,k}|^2 + |h_{2,k}|^2) s_1 + h_{1,k}^* n_k + h_{2,k} n_{k+1}^* s^1=(h1,k2+h2,k2)s1+h1,knk+h2,knk+1

  • 估计 s 2 s_2 s2:类似地计算:
    s ^ 2 = h 2 , k ∗ y k − h 1 , k y k + 1 ∗ \hat{s}_2 = h_{2,k}^* y_k - h_{1,k} y_{k+1}^* s^2=h2,kykh1,kyk+1
    最终得到:
    s ^ 2 = ( ∣ h 1 , k ∣ 2 + ∣ h 2 , k ∣ 2 ) s 2 + h 2 , k ∗ n k − h 1 , k n k + 1 ∗ \hat{s}_2 = (|h_{1,k}|^2 + |h_{2,k}|^2) s_2 + h_{2,k}^* n_k - h_{1,k} n_{k+1}^* s^2=(h1,k2+h2,k2)s2+h2,knkh1,knk+1

可以看到,解码后的信号中 s 1 s_1 s1 s 2 s_2 s2 被分离出来,增益因子 ∣ h 1 , k ∣ 2 + ∣ h 2 , k ∣ 2 |h_{1,k}|^2 + |h_{2,k}|^2 h1,k2+h2,k2 体现了空间和频率分集的效果。


对比Alamouti编码:

特性Alamouti编码(STBC)SFBC
编码维度时间 + 空间频率 + 空间
适用系统窄带系统(如单载波系统)宽带系统(如OFDM)
信道假设信道在时间上恒定(慢衰落)信道在相邻子载波上近似恒定(频率平坦)
时延需要两个时间槽,增加传输时延在同一时间发送,无额外时延
复杂度简单,接收端线性解码简单,但需要OFDM调制支持
优缺点对比

Alamouti编码

  • 优点
    • 适用于窄带系统,无需复杂的频率域处理。
    • 在慢衰落信道中性能优异,提供2阶分集增益。
    • 实现简单,广泛应用于早期MIMO系统(如WiMAX)。
  • 缺点
    • 需要两个时间槽,增加了传输时延,不适合高速数据传输。
    • 在快速时变信道中性能下降(信道不再恒定)。

SFBC

  • 优点
    • 利用OFDM子载波,无需时间维度冗余,适合实时性要求高的系统。
    • 在频率选择性信道中表现良好,充分利用宽带特性。
    • 与现代宽带系统(如LTE、5G)高度兼容。
  • 缺点
    • 假设相邻子载波信道恒定,若频率选择性过强(信道变化剧烈),性能会下降。
    • 需要OFDM支持,系统复杂度略高于窄带STBC。

两发两收情况

2025年2月11日17:24:57更新
在两发两收(2x2 MIMO)场景下,Alamouti 空时编码的编解码过程会稍微复杂一些,因为有两根接收天线。以下是详细的公式展示:


1. 编码过程

假设发送的数据为 s 1 s_1 s1 s 2 s_2 s2,编码方式与两发一收场景相同:

  • 第一次发送: [ s 1 , s 2 ] [s_1, s_2] [s1,s2]
  • 第二次发送: [ s 2 ∗ , − s 1 ∗ ] [s_2^*, -s_1^*] [s2,s1]

2. 信道模型

假设两根发射天线和两根接收天线之间的信道分别为:
- h 11 h_{11} h11:发射天线 1 到接收天线 1 的信道。
- h 12 h_{12} h12:发射天线 1 到接收天线 2 的信道。
- h 21 h_{21} h21:发射天线 2 到接收天线 1 的信道。
- h 22 h_{22} h22:发射天线 2 到接收天线 2 的信道。


3. 接收信号

在两根接收天线上,接收信号可以表示为:

  • 接收天线 1:
    r 11 = h 11 s 1 + h 21 s 2 + n 11 , r_{11} = h_{11} s_1 + h_{21} s_2 + n_{11}, r11=h11s1+h21s2+n11,
    r 12 = h 11 s 2 ∗ − h 21 s 1 ∗ + n 12 . r_{12} = h_{11} s_2^* - h_{21} s_1^* + n_{12}. r12=h11s2h21s1+n12.
  • 接收天线 2:
    r 21 = h 12 s 1 + h 22 s 2 + n 21 , r_{21} = h_{12} s_1 + h_{22} s_2 + n_{21}, r21=h12s1+h22s2+n21,
    r 22 = h 12 s 2 ∗ − h 22 s 1 ∗ + n 22 . r_{22} = h_{12} s_2^* - h_{22} s_1^* + n_{22}. r22=h12s2h22s1+n22.

其中:
- r i j r_{ij} rij表示第 i i i个接收天线在第 j j j个时间间隔接收的信号。
- n i j n_{ij} nij表示噪声。


4. 解码过程

在两发两收场景下,解码过程需要对两根接收天线的信号进行合并。具体步骤如下:

(1)对 s 1 s_1 s1的估计

s ^ 1 = h 11 ∗ r 11 − h 21 r 12 ∗ + h 12 ∗ r 21 − h 22 r 22 ∗ ∣ h 11 ∣ 2 + ∣ h 21 ∣ 2 + ∣ h 12 ∣ 2 + ∣ h 22 ∣ 2 . \hat{s}_1 = \frac{h_{11}^* r_{11} - h_{21} r_{12}^* + h_{12}^* r_{21} - h_{22} r_{22}^*}{|h_{11}|^2 + |h_{21}|^2 + |h_{12}|^2 + |h_{22}|^2}. s^1=h112+h212+h122+h222h11r11h21r12+h12r21h22r22.

(2)对 s 2 s_2 s2的估计

s ^ 2 = h 21 ∗ r 11 + h 11 r 12 ∗ + h 22 ∗ r 21 + h 12 r 22 ∗ ∣ h 11 ∣ 2 + ∣ h 21 ∣ 2 + ∣ h 12 ∣ 2 + ∣ h 22 ∣ 2 . \hat{s}_2 = \frac{h_{21}^* r_{11} + h_{11} r_{12}^* + h_{22}^* r_{21} + h_{12} r_{22}^*}{|h_{11}|^2 + |h_{21}|^2 + |h_{12}|^2 + |h_{22}|^2}. s^2=h112+h212+h122+h222h21r11+h11r12+h22r21+h12r22.


5. 公式解释

  • 分子部分
    • s 1 s_1 s1的估计:利用接收信号 r 11 , r 12 , r 21 , r 22 r_{11}, r_{12}, r_{21}, r_{22} r11,r12,r21,r22和信道参数的复共轭进行加权合并。
    • s 2 s_2 s2的估计:同样利用接收信号和信道参数的复共轭进行加权合并。
  • 分母部分
    • 归一化项 ∣ h 11 ∣ 2 + ∣ h 21 ∣ 2 + ∣ h 12 ∣ 2 + ∣ h 22 ∣ 2 |h_{11}|^2 + |h_{21}|^2 + |h_{12}|^2 + |h_{22}|^2 h112+h212+h122+h222,用于消除信道增益的影响。

6. 总结

在两发两收场景下,Alamouti 空时编码的解码过程需要对两根接收天线的信号进行合并,公式如下:
s ^ 1 = h 11 ∗ r 11 − h 21 r 12 ∗ + h 12 ∗ r 21 − h 22 r 22 ∗ ∣ h 11 ∣ 2 + ∣ h 21 ∣ 2 + ∣ h 12 ∣ 2 + ∣ h 22 ∣ 2 , \hat{s}_1 = \frac{h_{11}^* r_{11} - h_{21} r_{12}^* + h_{12}^* r_{21} - h_{22} r_{22}^*}{|h_{11}|^2 + |h_{21}|^2 + |h_{12}|^2 + |h_{22}|^2}, s^1=h112+h212+h122+h222h11r11h21r12+h12r21h22r22,
s ^ 2 = h 21 ∗ r 11 + h 11 r 12 ∗ + h 22 ∗ r 21 + h 12 r 22 ∗ ∣ h 11 ∣ 2 + ∣ h 21 ∣ 2 + ∣ h 12 ∣ 2 + ∣ h 22 ∣ 2 . \hat{s}_2 = \frac{h_{21}^* r_{11} + h_{11} r_{12}^* + h_{22}^* r_{21} + h_{12} r_{22}^*}{|h_{11}|^2 + |h_{21}|^2 + |h_{12}|^2 + |h_{22}|^2}. s^2=h112+h212+h122+h222h21r11+h11r12+h22r21+h12r22.

这种合并方式正是 最大比合并(MRC) 的体现,通过加权合并最大化信噪比(SNR)。

### Alamouti 编码原理 Alamouti编码是一种专门设计用于两个发射天线的空时块码(STBC),能够有效利用时间空间上的多样性来抵抗信道衰落和噪声的影响[^2]。这种编码方法不仅提供了分集增益,还能够在特定配置下提供一定的空分复用增益。 对于两根发射天线的情况,在任意给定的时间间隔内,第一根天线发送信号 \(s_1\) 和第二根天线发送信号 \(-s_2^*\);而在下一个时间间隔,则由第一根天线发送 \(s_2\) 并让第二根天线传输 \(s_1^*\)[^3]。这里 * 表示共轭操作符。 #### MATLAB 实现示意代码 为了更好地理解这一过程,可以考虑以下简化版MATLAB仿真代码片段: ```matlab % 定义输入符号向量 s=[s1, s2] s = randn(2, 1); % 构建 Alamouti 矩阵 alamouti_matrix = [real(s(1)) imag(s(1)); ... real(s(2)) -imag(s(2))]; ``` 这段代码展示了如何创建一个简单的 Alamouti 编码矩阵,其中包含了实部和虚部分开处理的过程。 ### 应用场景 在实际应用场景中,Alamouti 编码广泛应用于各种多天线系统之中,特别是那些采用 OFDM 技术的无线通信标准里。例如,在 LTE(Long Term Evolution) 中就采用了基于 Alamouti 的 STBC 方案以增强链路可靠性并改善用户体验质量(QoE)[^4]。 此外,当涉及到更复杂的 MIMO(Multiple Input Multiple Output) 结构时,虽然基本形式保持不变,但是可以通过扩展到更多数量的接收端来进行进一步优化。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值