m基于STBC的MIMO通信系统性能仿真和信道容量仿真

简介: m基于STBC的MIMO通信系统性能仿真和信道容量仿真

1.算法概述

   空时分组编码STBC(Space Time Block Coding)用在无线通信中传输一个数据流的多个拷贝。通过许多天线来产生数据的多种接收版本,提高数据传输的可靠性。接收机接收到的数据拷贝中,存在一些比其它拷贝“更好”的拷贝。而这种冗余导致有更高机会使用一个或更多接收到数据拷贝来正确的解码接收到的数据。实际上,STBC联合所有接收到的信号的拷贝以一种最佳的方式从它们中尽可能地吸取更多有用的数据。

   空时编码在不同天线所发送的信号中引入时间和空间的相关性,从而不用牺牲带宽就可以为接收端提供不编码系统所没有的分集增益和编码增益。空时编码的基本工作原理如下:从信源给出的信息数据流,到达空时编码器后,形成同时从许多个发射天线上发射出去的矢量输出,称这些调制符号为空时符号(STS)或者空时矢量符(STVS)。与通常用一个复数表示调制符号类似(复的基带表示) ,一个空时矢量符STVS可以表示成为一个复数的矢量,矢量中数的个数等于发射天线的个数。

   MIMO技术实质上是为系统提供了空间复用增益和空间分集增益。

空间复用就是在接收端和发射端使用多副天线,充分利用空间传播中的多径分量,在同一个频带上使用多个数据通道(MIMO子信道)发射信号,从而使得容量随着天线数量的增加而线性增加。这种信道容量的增加不需要占用额外的带宽,也不需要消耗额外的发射功率,因此是提高信道和系统容量一种非常有效的手段。

1.png

    利用 h (τk, t) 定义在时间 t 和时延 τk 处的信道脉冲响应,可以采用一个线性时变系统作为无线信道的模型,其中 k = 0,...,L-1,L 为多径编号。用 hi,j (τk, t) 表示第 j 个发射天线与第 i 个接收天线之间的脉冲响应,用 Nr x Nt 矩阵 h (τk,t) 表示具有 Nt 个发射天线和 Nr 个接收天线的 MIMO 信道:

2.png

此外,假设信号 sj(t) 是从第 j 个发射天线发出,在第 i 个接收天线处接收的信号 yj(t) 给出如下:

3.png

   对于一个理想的 MIMO 信道,每个 hi,j (为方便起见,省略 τk,t) 的性质都与 SISO 无线信道相同,其中,所有信道都相互独立而且不相关。在实际 MIMO 信道中,信道之间存在一定程度的相关性,因此,会直接影响 MIMO 系统能够实现的分集增益。

    MIMO信道的信道容量在很大程度上取决于天线之间的相关性和MIMO信道矩阵的满秩情况。如前所述,对于收发端都具有相关性的MIMO信道.为了分析和比较天线的相关性对信道容量的具体影响,这里以2*2的信道为例进行仿真,相关系数分别取为0,0.2,0.5,0.9,结果如图XX所示。从图中可以看出,天线的相关系数越大,对信道容量的影响越大,而且信噪比越大,造成的损失越大。

2.仿真效果预览
matlab2022a仿真结果如下:

4.png
5.png
6.png

3.核心MATLAB预览

for(k = 1 : 2)
    nt = nt_V(k);
    nr = nr_V(k);
    for(i = 1 : length(SNR_V))
        Pt = N0 * SNR_V(i);
        for(j = 1 : Iteration)
            H = random('rayleigh',1,nr,nt);
            [S V D] = svd(H);
            landas(:,j)  = diag(V);
            [Capacity(i,j) PowerAllo] = WaterFilling_alg(Pt,landas(:,j),B,N0);
        end
    end
 
    f1 = figure(1);
    hold on
    plot(SNR_V_db,mean(Capacity'),notation(k,:),'color',color(k,:))
    
   
    hold on
    [y,x] = hist(reshape(landas,[1,min(nt,nr)*Iteration]),100);
    plot(x,y/Iteration,'color',color(k,:));
    clear landas
end
f1 = figure(1)
legend_str = [];
for( i = 1 : length(nt_V))
    legend_str =[ legend_str ;...
        {['nt = ',num2str(nt_V(i)),' , nr = ',num2str(nr_V(i))]}];
end
01_005_m
相关文章
|
人工智能 移动开发 运维
阿里云APP “题库 ” 重磅上线!考取阿里云认证刷题神器,“懒人”必备
阿里云APP上线最新题库功能,和小编一起探索新功能~
13786 17
 阿里云APP  “题库 ”  重磅上线!考取阿里云认证刷题神器,“懒人”必备
|
机器学习/深度学习 人工智能 监控
机器视觉:技术原理、应用与未来发展
机器视觉:技术原理、应用与未来发展
|
网络架构 内存技术
OpenOCD(六):重置配置
OpenOCD(六):重置配置
245 1
|
5月前
|
Linux 编译器 开发工具
提升CentOS 7中的gcc/G++版本
至此,你已经成功在CentOS 7中升级了gcc/G++版本。从现在开始,在终端中运行 `gcc`或 `g++`时,将会使用新版本的编译器。
487 21
|
7月前
|
前端开发 搜索推荐 数据安全/隐私保护
Calibre-Web-Automated:打造你的私人图书馆
Calibre-Web-Automated 是一个功能强大、易于使用的电子书管理平台,它可以帮助你轻松构建和管理你的私人图书馆。如果你正在寻找一个开源、免费、可定制的电子书管理解决方案,那么 Calibre-Web-Automated 绝对是你的不二之选!
304 10
Calibre-Web-Automated:打造你的私人图书馆
|
6月前
|
存储 弹性计算 人工智能
阿里云服务器2核8G/4核16G/8核32G配置热门实例规格对比与选购指南
如果我们是计划购买2核8G/4核16G/8核32G配置的阿里云服务器,在阿里云活动中一般会有经济型e、通用算力型u1、通用型g7、通用型g8i和通用型g8y几种常见的实例规格可选,尽管这些实例在配置上相似,但它们在性能、价格以及适用场景上存在显著差异。本文将深入解析这些实例规格的性能特点、价格差异及适用场景,为用户在阿里云服务器购买时提供详实的参考依据。
|
PyTorch 算法框架/工具
Pytorch学习笔记(七):F.softmax()和F.log_softmax函数详解
本文介绍了PyTorch中的F.softmax()和F.log_softmax()函数的语法、参数和使用示例,解释了它们在进行归一化处理时的作用和区别。
1146 1
Pytorch学习笔记(七):F.softmax()和F.log_softmax函数详解
|
Linux Windows
FinalShell连接Linux虚拟机报错java.net.ConnectException: Connection timed out: connect(亲测有效)
FinalShell连接Linux虚拟机报错java.net.ConnectException: Connection timed out: connect(亲测有效)
3533 0
【Matlab 2019b】Matlab在figure中如何把横坐标或者纵坐标单位转换为10的几次方
本文提供了在Matlab中如何改变图形坐标轴单位的方法,举例说明了如何将横轴刻度标签设置为特定的年份,并调整刻度取值以匹配自变量的变化。
1973 1
|
缓存 JavaScript 前端开发
vuecli3 项目在 ie11 下面白屏报错:SCRIPT1002: 语法错误
vuecli3 项目在 ie11 下面白屏报错:SCRIPT1002: 语法错误
542 0