m基于STBC的MIMO通信系统性能仿真和信道容量仿真
目录
1.算法概述
空时分组编码STBC(Space Time Block Coding)用在无线通信中传输一个数据流的多个拷贝。通过许多天线来产生数据的多种接收版本,提高数据传输的可靠性。接收机接收到的数据拷贝中,存在一些比其它拷贝“更好”的拷贝。而这种冗余导致有更高机会使用一个或更多接收到数据拷贝来正确的解码接收到的数据。实际上,STBC联合所有接收到的信号的拷贝以一种最佳的方式从它们中尽可能地吸取更多有用的数据。
空时编码在不同天线所发送的信号中引入时间和空间的相关性,从而不用牺牲带宽就可以为接收端提供不编码系统所没有的分集增益和编码增益。空时编码的基本工作原理如下:从信源给出的信息数据流,到达空时编码器后,形成同时从许多个发射天线上发射出去的矢量输出,称这些调制符号为空时符号(STS)或者空时矢量符(STVS)。与通常用一个复数表示调制符号类似(复的基带表示) ,一个空时矢量符STVS可以表示成为一个复数的矢量,矢量中数的个数等于发射天线的个数。
MIMO技术实质上是为系统提供了空间复用增益和空间分集增益。
空间复用就是在接收端和发射端使用多副天线,充分利用空间传播中的多径分量,在同一个频带上使用多个数据通道(MIMO子信道)发射信号,从而使得容量随着天线数量的增加而线性增加。这种信道容量的增加不需要占用额外的带宽,也不需要消耗额外的发射功率,因此是提高信道和系统容量一种非常有效的手段。
利用 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 信道:
此外,假设信号 sj(t) 是从第 j 个发射天线发出,在第 i 个接收天线处接收的信号 yj(t) 给出如下:
对于一个理想的 MIMO 信道,每个 hi,j (为方便起见,省略 τk,t) 的性质都与 SISO 无线信道相同,其中,所有信道都相互独立而且不相关。在实际 MIMO 信道中,信道之间存在一定程度的相关性,因此,会直接影响 MIMO 系统能够实现的分集增益。
MIMO信道的信道容量在很大程度上取决于天线之间的相关性和MIMO信道矩阵的满秩情况。如前所述,对于收发端都具有相关性的MIMO信道.为了分析和比较天线的相关性对信道容量的具体影响,这里以2*2的信道为例进行仿真,相关系数分别取为0,0.2,0.5,0.9,结果如图XX所示。从图中可以看出,天线的相关系数越大,对信道容量的影响越大,而且信噪比越大,造成的损失越大。
2.仿真效果预览
matlab2022a仿真结果如下:
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
4.完整MATLAB程序
V
相关文章
- Python 编写locust性能测试代码
- 系统吞吐量、TPS(QPS)、用户并发量、性能测试概念和公式
- python之psutil模块(获取系统性能数据)
- 【性能优化】直方图
- 【工具】系统性能查看工具 dstat
- PHP7开启OPcache和Swoole哪个提升更大?性能的提升对比
- 页面性能测试之二----ShowSlow+Yslow环境搭建
- 性能测试需要系统的学习一下,这个对提升自己对架构的认识非常的有用,
- jmeter全面总结-6-jmeter性能数据监控系统 influxdb,grafana
- 性能测试
- linux系统性能调优第一步——性能分析(vmstat)
- 系统的性能瓶颈可能出现的地方
- PgSQL · 性能优化 · 如何潇洒的处理每天上百TB的数据增量
- 系统性能检测工具之iostat
- 系统性能检测工具之top
- linux系统性能调优第一步——性能分析(vmstat)
- paip.mysql 性能测试 报告 home right
- DL之DNN优化技术:利用Dropout(简介、使用、应用)优化方法提高DNN模型的性能
- 移除 GIL,可显著提升 Python 多线程性能么?
- MIMO通信系统中对比Alamouti和MRC的误码率性能matlab仿真
- m索引OFDM调制解调系统的性能仿真分析
- iOS App 性能优化总结
- android 性能測试CTS篇
- Mysql 性能调优参考2——筑梦之路
- Python几种并发实现方案的性能比较
- 【项目实战】性能测试之压力测试的系统性能指标基本介绍
- Linux CPU性能 系统当中的不可中断进程D和僵尸进程Z
- ubuntu系统性能分析工具
- Linux系统通过Shell脚本实现一个全方面的系统性能分析系统
- 闪存系统性能优化方向?NAND 多通道并发(NAND Multi Channel )读写原理与实战?
- 闪存系统性能优化方向?NAND Interleave Program(闪存交错写) 并发原理与实战?
- 自动驾驶辅助系统性能评估工具MXeval4.1版本更新快讯