基于MATLAB的MIMO通信系统仿真(DOC)
基于MATLAB的MIMO-OFDM通信系统的仿真
基于MATLAB的MIMO-OFDM通信系统的仿真0 引言5G技术的逐步普及,使得我们对海量数据的存储交换,以及数据传输速率、质量提出了更高的要求。
信号的准确传播显得越发重要,随之而来的是对信道模型稳定性、抗噪声性能以及低误码率的要求。
本次研究通过构建结合空间分集和空间复用技术的MIMO信道,引入OFDM 技术搭建MIMO-OFDM 系统,在添加保护间隔的基础上探究其在降低误码率以及稳定性等方面的优异性能。
1 概述正交频分复用(Orthogonal Frequency Division Multiplexing,OFDM)技术通过将信道分成数个互相正交的子信道,再将高速传输的数据信号转换成并行的低速子数据流进行传输。
该技术充分利用信道的宽度从而大幅度提升频谱效率达到节省频谱资源的目的。
作为多载波调制技术之一的OFDM 技术目前已经在4G 中得到了广泛的应用,5G 技术作为新一代的无线通信技术,对其提出了更高的信道分布和抗干扰要求。
多输入多输出(Multi Input Multi Output,MIMO)技术通过在发射端口的发射机和接收端口的接收机处设计不同数量的天线在不增加频谱资源的基础上通过并行传输提升信道容量和传输空间。
常见的单天线发射和接收信号传输系统容量小、效率低且若出现任意码间干扰,整条链路都会被舍弃。
为了改善和提高系统性能,有学者提出了天线分集以及大规模集成天线的想法。
IEEE 806 16 系列是以MIMO-OFDM 为核心,其目前在欧洲的数字音频广播,北美洲的高速无线局域网系统等快速通信中得到了广泛应用。
多媒体和数据是现代通信的主要业务,所以快速化、智能化、准确化是市场向我们提出的高要求。
随着第五代移动通信5G 技术的快速发展,MIM-OFDM 技术已经开始得到更广泛的应用。
本次研究的MIMO-OFDM 系统模型是5G的关键技术,所以对其深入分析和学习,对于当下无线接入技术的发展有着重要的意义。
(完整版)基于matlab的通信系统仿真毕业论文
创新实践报告报告题目:基于matlab的通信系统仿真学院名称:信息工程学院*名:***班级学号:***师:**二O一四年十月十五日目录一、引言 (3)二、仿真分析与测试 (4)2.1 随机信号的生成 (4)2.2信道编译码 (4)2.2.1 卷积码的原理 (4)2.2.2 译码原理 (5)2.3 调制与解调 (5)2.3.1 BPSK的调制原理 (5)2.3.2 BPSK解调原理 (6)2.3.3 QPSK调制与解调 (7)2.4信道 (8)2.4.1 加性高斯白噪声信道 (8)2.4.2 瑞利信道 (8)2.5多径合并 (8)2.5.1 MRC方式 (8)2.5.2 EGC方式 (9)2.6采样判决 (9)2.7理论值与仿真结果的对比 (9)三、系统仿真分析 (11)3.1有信道编码和无信道编码的的性能比较 (11)3.1.1信道编码的仿真 (11)3.1.2有信道编码和无信道编码的比较 (12)3.2 BPSK与QPSK调制方式对通信系统性能的比较 (13)3.2.1调制过程的仿真 (13)3.2.2不同调制方式的误码率分析 (14)3.3高斯信道和瑞利衰落信道下的比较 (15)3.3.1信道加噪仿真 (15)3.3.2不同信道下的误码分析 (15)3.4不同合并方式下的对比 (16)3.4.1 MRC不同信噪比下的误码分析 (16)3.4.2 EGC不同信噪比下的误码分析 (16)3.4.3 MRC、EGC分别在2根、4根天线下的对比 (17)3.5理论数据与仿真数据的区别 (17)四、设计小结 (19)参考文献 (20)一、引言现代社会发展要求通信系统功能越来越强,性能越来越高,构成越来越复杂;另一方面,要求通信系统技术研究和产品开发缩短周期,降低成本,提高水平。
这样尖锐对立的两个方面的要求,只有通过使用强大的计算机辅助分析设计技术和工具才能实现。
在这种迫切的需求之下,MATLAB应运而生。
基于MIMO的通信系统仿真与分析研究
仿真工具介绍
性能评估指标
衡量系统在给定频谱资源下传输数据的能力,包括频谱效率/频谱利用率。
频谱效率
容量
误码率/错误率
鲁棒性
衡量系统在特定信道条件下的最大传输速率,包括空间信道容量、自由度容量等。
衡量系统传输数据的错误率,包括硬错误率、软错误率等。
衡量系统在信道条件变化下的性能表现,包括信道估计误差、干扰等对系统性能的影响。
基于MIMO的通信系统仿真实验与结果分析
06
总结词
本实验主要研究了在不同信道模型下,MIMO系统的性能变化。
详细描述
首先,我们选择了三种典型的信道模型,包括Rayleigh、Rician和Log-normal模型。在每个模型下,我们通过仿真生成了大量的信道矩阵,并利用这些矩阵进行MIMO系统的调制和解调。通过对比各个模型下的误码率和频谱效率,我们发现Rayleigh模型下的性能表现最为优秀,其次是Rician模型,最后是Log-normal模型。这一结果表明,信道模型的选取对MIMO系统的性能有着重要影响。
03
确定仿真目标和参数
明确要研究的MIMO通信系统的性能指标和参数范围。
开始仿真
运行仿真模型,收集仿真数据。
建立仿真模型
根据MIMO通信系统的原理和模型,建立相应的仿真模型。
数据分析与处理
对仿真数据进行处理和分析,提取有用的信息。
配置仿真环境
设置仿真工具的相关参数,如仿真时间、信道模型等。
结果可视化
在城市高楼大厦的环境中,空间复用技术能够更好地利用空间资源,提高无线通信系统的性能。
多用户MIMO技术是一种利用多天线技术提高系统容量的方法,允许多个用户在同一时间和频率上同时通信。
通过多用户MIMO技术,可以增加系统容量和频谱效率,同时减少用户之间的干扰。
基于某MATLAB的MIMO系统预编码性能仿真
摘要在现今的移动通信系统中,被极多的国际通信标准采纳为基础性关键技术的一种方法是多输入多输出的技术(Multiple-Input Multiple-Output,MIMO)。
无线传输的技术是应用多项发射以及多次接收天线来进行。
应用MIMO技术的情形下,就算是系统带宽和传输功率没有增加,仍然是能够显著的增长无线信道容量,它的增长往往是成倍得,譬如4G LTE技术。
通过使用MIMO信道而增加的空间复用增益可以改善传输效率,其带来的空间分集增益也可以增加传输的可靠度。
这两种增益的提高分别可以通过改变收发天线数来实现。
提高通信质量是需要MIMO技术在接收端和发送端配置很多的天线,然后使信号经过多个接收和发送端。
本篇主要探索的是空间复用MIMO系统的线性预编码及信号检测方法。
在发射端通过对传输信号进行预编码操作,不仅可以有效抑制干扰,还可以简化接收机数据解调的计算复杂度。
同时对线性信号检测与预编码技术方法进行了分别的详细说明。
想要验明一下MIMO系统预编码的性能,借助MATLAB这个软件进行验证确定仿真。
结果表明,在其他的前提一样的情形下,以最小均方误差为基准的MMSE算法比简单的线性检测算法ZF算法,所得误差更小,噪比的变大而减小导致系统传输得可靠程度会跟着变化。
关键词:MIMO 信号检测预编码MATLABABSTRACTIn mobile communication system, multi input multi output technology (Multiple-Output Multiple-Input, MIMO) is a technology that uses multiple transmit and multiple receive antennas for wireless transmission. MIMO technology can not increase the system bandwidth and transmission power, and exponentially improve the capacity of wireless channel, which has been adopted by many international communication standards as the basic key technologies, such as LTE 4G system. This technology can achieve the transmission efficiency and transmission reliability by changing the number of transmit and receive antennas, that is, the spatial multiplexing gain and the spatial diversity gain of MIMO channel are used to improve the transmission efficiency.MIMO technology need to configure multiple antennas at the receiver and transmitter, and then make the signal through a number ofreceiving and sending end, in order to improve the quality of communication. This paper mainly studies the spatial multiplexing MIMO system precoding and signal detection technology. At the transmitter, it can not only effectively suppress the interference, but also simplify the computation complexity of the receiver data demodulation. In this paper, the linear signal detection and pre coding technology are introduced and discussed in detail. In order to verify the performance of the MIMO system, the simulation was carried out with the aid of MATLAB computer software. The results show that, under the same conditions, the MMSE algorithm has better performance than the ZF algorithm, and the transmission reliability of the system is gradually reduced with the increase of the signal to noise ratio.Keywords: MIMO; signal detection; precoding; MATLAB目录摘要 .................................................................................................................................................. - 1 - ABSTRACT...................................................................................................................................... - 2 -第一章绪论.................................................................................................................................... - 3 -1.1 研究背景.......................................................................................................................... - 3 -1.2 研究现状.......................................................................................................................... - 4 -1.3 研究容.............................................................................................................................. - 7 - 第二章MIMO系统信号检测算法............................................................................................. - 8 -2.1 MIMO系统简介............................................................................................................. - 8 -2.2 无线信道及数学模型..................................................................................................... - 9 -2. 3 MIMO信道容量.......................................................................................................... - 11 -2.4 MIMO检测算法........................................................................................................... - 13 -2.5本章小节......................................................................................................................... - 16 - 第三章MIMO预编码技术研究............................................................................................... - 16 -3.1 系统模型........................................................................................................................ - 16 -3.2 ZF预编码....................................................................................................................... - 17 -3.3 MMSE预编码............................................................................................................... - 18 -3.4本章小节......................................................................................................................... - 19 - 第四章MIMO预编码算法仿真............................................................................................... - 19 -4.2MTALAB简介 ................................................................................................................ - 19 -4.2仿真结果分析................................................................................................................. - 20 -4.3本章小结......................................................................................................................... - 24 - 第五章总结.................................................................................................................................. - 25 - 参考文献........................................................................................................................................ - 26 -附录 ................................................................................................................................................ - 29 -第一章绪论1.1 研究背景自二十世纪八十年,计算机技术和通讯技术在社会的各个方面都获得了巨大的发展。
基于MATLAB的MIMO-OFDM通信系统的仿真
基于MATLAB的MIMO-OFDM通信系统的仿真
杨豪;孙立
【期刊名称】《计算机时代》
【年(卷),期】2022()11
【摘要】MIMO信道模型和OFDM系统各有优缺点,在空间分集和空间复用技术上同时考虑多径影响和信道衰落的情况下,通过MATLAB实现MIMO-OFDM信道模型的仿真,观察添加保护间隔后信道模型的稳定性及误码率。
结果显示,4*4的MIMO-OFDM信道模型相较于传统OFDM系统误码率有极大的改善,而且传输信道更加稳定。
【总页数】6页(P10-14)
【作者】杨豪;孙立
【作者单位】贵州大学医学院;贵州省人民医院骨科
【正文语种】中文
【中图分类】TN914.1
【相关文献】
1.自适应MIMO-OFDM通信系统中基于CPSO-PF的状态优化与性能仿真
2.基于MATLAB的扩频通信系统仿真研究
3.基于Matlab的数字通信系统原理与控制仿真实验
4.基于Matlab/Simulink虚拟仿真的通信系统建模的研究与探索
5.基于Matlab的时延差编码被动时反转镜水声通信系统仿真实验设计
因版权原因,仅展示原文概要,查看原文内容请购买。
基于Matlab的MIMO通信系统仿真
北京邮电大学基于Matlab的MIMO通信系统仿真专业:信息工程班级:126姓名:学号:目录一、概述 (1)1、课题的研究背景 (1)2、课程设计的研究目的 (1)3、MIMO系统 (1)【1】MIMO的三种主要技术 (1)【2】MIMO系统的概述 (2)【3】MIMO系统的信道模型 (2)二、基本原理 (3)1、基本流程 (3)2、MIMO原理 (3)3、空时块码 (4)三、仿真设计 (5)1、流程图 (5)2、主要模块及参数 (5)3、信源产生 (5)4、信道编码 (6)5、调制 (6)6、AWGN信道 (6)7、输出统计 (7)四、程序块设计 (7)1、代码 (7)五、仿真结果分析 (11)1、仿真图 (11)2、结果分析 (12)六、重点研究的问题 (12)七、心得与体会 (12)八、参考文献 (12)一、概述1、背景MIMO 表示多输入多输出。
在第四代移动通信技术标准中被广泛采用,例如IEEE 802.16e (Wimax),长期演进(LTE)。
在新一代无线局域网(WLAN)标准中,通常用于IEEE 802.11n,但也可以用于其他 802.11 技术。
MIMO 有时被称作空间分集,因为它使用多空间通道传送和接收数据。
只有站点(移动设备)或接入点(AP)支持 MIMO 时才能部署MIMO。
MIMO 技术可以显著克服信道的衰落,降低误码率。
该技术的应用,使空间成为一种可以用于提高性能的资源,并能够增加无线系统的覆盖范围。
通常,多径要引起衰落,因而被视为有害因素。
然而研究结果表明,对于MIMO系统来说,多径可以作为一个有利因素加以利用。
MIMO系统在发射端和接收端均采用多天线(或阵列天线)和多通道,MIMO的多入多出是针对多径无线信道来说的。
传输信息流s(k)经过空时编码形成N个信息子流ci(k),I=1,……,N。
这N个子流由N个天线发射出去,经空间信道后由M个接收天线接收。
多天线接收机利用先进的空时编码处理能够分开并解码这些数据子流,从而实现最佳的处理。
MIMO通信系统的信道容量分析及MATLAB仿真实现
3 MI MO 系 统 信 道 模 型
研 究 MI MO系统 必 须考虑 信 道模 型 , 设研 究 的信道 为基 于瑞 利衰 落 的随机信 道 , MI 设 MO系统 信道模 型有 J V根发 射 天线 和 M 根接 收天 线 ,信道矩 阵 H( J 表 示第 i 发射 天线 到第 7 接 收天线 的信道 衰落 系 i) , 根 根 数 ,每根 发射 天线 的功 率为 P Ⅳ,每 根接 收天 线 的噪声 功率 为 ,故 信 噪 比 S R为 : =P/ I.通过分 / N 4 】
21 0 2年 4月
Apr 201 . 2
MI MO通信系统 的信道容 量分析及 MA L B仿真实现 TA
朱琳璐
( 丽水广播 电视 大 学 ,浙 江 丽水 3 3 0 2 0 0)
摘
要 :在 多入 多 出( MO) MI 系统原 理和模 型 的基础 上 ,分析 了基 于单入 单 出(I O 、单入 多 出( I SS ) SMO) 、多
解信道特征矩阵 Q的特征值 ,由香农公式导出 MI MO信道容量 C= o:el +P( ̄) } Wl dt 【/ r 】 ,其中威沙 g { N Q
特矩 阵 Q=HH“,M <N ;Q=日“ , M ≥N ; I 是 mi( n M,N) 阶单位 矩 阵 ;W 为 每个子 信道 的带宽 ,
还是 提高 频谱 的资源 利用率 .在无线 通信 中,使 用 多输入 、多输 出( MO:Mut l Ip t lpeOup t MI lpe n u— t l— tu) i — Mu i
技术 既能增 加 系统容量 ,也 能增强 系统 性能 ,在其 他条 件相 同 的前 提下 ,可 以成倍地 提 高频谱 效率 .
‘4 1 5‘
基于MIMO的通信系统仿真与分析研究毕业设计论文
基于MIMO的通信系统仿真与分析研究毕业设计论文标题:基于MIMO的通信系统仿真与分析研究摘要:随着通信技术的不断发展,多天线系统(MIMO)已经成为无线通信领域的关键技术之一、本文通过对MIMO通信系统进行仿真与分析研究,探讨了MIMO技术在提高通信容量和增强系统性能方面的潜力。
首先介绍了MIMO技术的原理和特点,然后建立了MIMO通信系统的仿真模型,通过对不同天线配置和信道模型的仿真结果进行分析,验证了MIMO系统的优势。
最后,本文对MIMO技术在实际应用中可能面临的问题和挑战进行了讨论,提出了一些改进和优化策略,为MIMO技术的进一步研究和应用提供了参考。
关键词:MIMO技术,通信容量,系统性能,仿真分析,问题与挑战1.引言无线通信领域的快速发展和普及,对通信系统的容量和性能提出了更高要求。
传统的单天线系统受到频谱资源有限和多径衰落等因素的限制,通信容量有限,信号质量易受到干扰和衰落的影响。
而多天线系统(MIMO)通过增加天线数量和利用空间多样性,可以有效提高通信容量,增强系统性能,成为无线通信领域的重要技术之一2.MIMO技术的原理和特点MIMO技术基于空间多样性和信号处理算法,通过在发射端和接收端分别配置多个天线,在有限的频谱资源下同时传输多个并行无干扰的数据流,并通过接收端的信号处理算法进行解码和合并,从而提高通信容量和信号质量。
MIMO技术具有抗干扰性强、提高频谱效率、增强系统覆盖范围等特点。
3.MIMO通信系统的仿真模型为了研究MIMO技术在不同场景下的性能,本文建立了MIMO通信系统的仿真模型。
该模型包括信号生成、信道模型、噪声模型、信号传输和信号接收等模块,通过设置不同的参数和信道模型进行仿真实验,并采用误码率和信噪比等指标进行性能评估。
4.MIMO系统性能的仿真结果分析通过对不同信号传输方式、天线配置和信道条件的仿真实验,本文分析了MIMO系统的通信容量和系统性能。
仿真结果表明,在相同信道条件下,MIMO系统可以显著提高通信容量和信号质量,特别是在复杂多径衰落环境和高信噪比条件下,MIMO技术的性能更为优越。
基于Matlab的MIMO通信系统仿真设计
北京邮电大学基于Matlab的MIMO通信系统仿真专业:信息工程班级:2011211126:学号:目录一、概述 (1)1、课题的研究背景 (1)2、课程设计的研究目的 (1)3、MIMO系统 (1)【1】MIMO的三种主要技术 (1)【2】MIMO系统的概述 (2)【3】MIMO系统的信道模型 (2)二、基本原理 (3)1、基本流程 (3)2、MIMO原理 (3)3、空时块码 (4)三、仿真设计 (5)1、流程图 (5)2、主要模块及参数 (5)3、信源产生 (5)4、信道编码 (6)5、调制 (6)6、AWGN信道 (6)7、输出统计 (7)四、程序块设计 (7)1、代码 (7)五、仿真结果分析 (11)1、仿真图 (11)2、结果分析 (12)六、重点研究的问题 (12)七、心得与体会 (12)八、参考文献 (12)一、概述1、背景MIMO 表示多输入多输出。
在第四代移动通信技术标准中被广泛采用,例如IEEE 802.16e (Wimax),长期演进(LTE)。
在新一代无线局域网(WLAN)标准中,通常用于IEEE 802.11n,但也可以用于其他 802.11 技术。
MIMO 有时被称作空间分集,因为它使用多空间通道传送和接收数据。
只有站点(移动设备)或接入点(AP)支持 MIMO 时才能部署MIMO。
MIMO 技术可以显著克服信道的衰落,降低误码率。
该技术的应用,使空间成为一种可以用于提高性能的资源,并能够增加无线系统的覆盖围。
通常,多径要引起衰落,因而被视为有害因素。
然而研究结果表明,对于MIMO系统来说,多径可以作为一个有利因素加以利用。
MIMO系统在发射端和接收端均采用多天线(或阵列天线)和多通道,MIMO的多入多出是针对多径无线信道来说的。
传输信息流s(k)经过空时编码形成N个信息子流ci(k),I=1,……,N。
这N个子流由N个天线发射出去,经空间信道后由M个接收天线接收。
多天线接收机利用先进的空时编码处理能够分开并解码这些数据子流,从而实现最佳的处理。
基于matlab的MQAM通信系统的仿真
课程设计学生日志课程设计考勤表课程设计评语表基于matlab的M-QAM通信系统的仿真一、设计目的和意义(1)通过仿真进一步掌握M-QAM调制及解调的原理;(2)学会用matlab编程对通信系统进行仿真;(3)学会用理论知识去分析结果。
二、设计原理利用Matlab仿真软件,完成如图1所示的一个基本的数字通信系统。
信号源产生0、1等概分布的随机信号,映射到16QAM的星座图上,同时一路信号已经被分成了I路和Q路,后边的处理建立在这两路信号的基础上。
I路和Q路信号分别经过平方根升余弦滤波器,再加入高斯白噪声,然后通过匹配滤波器(平方根升余弦滤波器)。
最后经过采样,判决,得到0、1信号,同原信号进行比较,给出16QAM数字系统的误码。
图1三、详细设计步骤随机信号的生成利用Matlab中自带的函数randsrc来产生0、1等概分布的随机信号。
源代码如下所示:global NN=300;global pp=0.5;source=randsrc(1,N,[1,0;p,1-p]);星座图映射将等概分布的0、1信号映射到16QAM星座图上。
每四个bit构成一个码子,具体实现的方法是,将输入的信号进行串并转换分成两路,分别叫做I路和Q路。
再把每一路的信号分别按照两位格雷码的规则进行映射,这样实际上最终得到了四位格雷码。
为了清楚说明,参看表1function [y1,y2]=Qam_modulation(x)%QAM_modulation%对产生的二进制序列进行QAM调制%=====首先进行串并转换,将原二进制序列转换成两路信号N=length(x);a=1:2:N;y1=x(a);y2=x(a+1);%=====分别对两路信号进行QPSK调制%======对两路信号分别进行2-4电平变换a=1:2:N/2;temp1=y1(a);temp2=y1(a+1);y11=temp1*2+temp2;temp1=y2(a);temp2=y2(a+1);y22=temp1*2+temp2;%=======对两路信号分别进行相位调制a=1:N/4;y1=(y11*2-1-4)*1.*cos(2*pi*a);y2=(y22*2-1-4)*1.*cos(2*pi*a);%========按照格雷码的规则进行映射y1(find(y11==0))=-3;y1(find(y11==1))=-1;y1(find(y11==3))=1;y1(find(y11==2))=3;y2(find(y22==0))=-3;y2(find(y22==1))=-1;y2(find(y22==3))=1;y2(find(y22==2))=3;插值为了能够模拟高斯白噪声的宽频谱特性,以及为了能够显示波形生成器(平方根升余弦滤波器)的效果,所以在原始信号中间添加一些0点。
基于MIMO的通信系统仿真与分析研究设计29322537
基于MIMO的通信系统仿真与分析研究设计29322537毕业设计(论文)设计(论文)题目:基于MIMO的通信系统仿真与分析研究摘要随着移动通信的快速发展,用户数量与用户需求的急剧攀升,使得移动通信成为了通信界最具有市场潜力的技术。
而无线通信与有线通信比较时暴露出来的弱点,如移动信道环境恶劣、用户使用突发性大等,使得提高无线通信的容量和质量需要诸多突破点。
所以短缺的频谱资源刺激着人们向提高频谱利用率的方向努力。
自二十世纪九十年代MIMO(Multiple-Input Multiple-Output,多输入多输出)技术提出以来,由于在提高信道容量方面取得的突出成果,逐渐被无线通信领域的多个标准所应用,成为了在提供可靠无线传输链路方面一个重要突破。
MIMO技术是由多天线分集技术和空间编码技术相结合而产生的,它的一个很重要的特点就是:不再是对抗多径效应,而是巧妙地利用它。
随着研究人员对MIMO 通信系统理论、算法、应用等各个方面越来越多的研究,其已经成为了通信技术中的热门课题。
本文首先介绍了MIMO技术的基本原理和MIMO通信系统的信道模型,然后简要介绍了本文研究使用的仿真工具,即MATLAB/Simulink仿真软件。
其后通过理论推导与软件仿真对MIMO通信系统的信道容量进行了研究,总结了各因素对信道容量的影响。
最后本文对基于正交空时分组编码的MIMO通信系统进行了仿真。
【关键词】频谱利用率MIMO通信系统信道容量正交空时分组编码ABSTRACTWith the rapid development of the mobile communications, the sharp rise in the number of users and the need of users making the mobile communications has become to the most potential technology in the communication market. However, when compared the wireless communications to the wired communications, the weaknesses unfolded. Such as the poor mobile channel environment, the sudden rise or down of the number of users or other characteristics, makes the improvement of the capacity and the quality of wireless communication needs many breakthroughs. But the shortage of spectrum resources stimulates people to improve the spectrum utilization.Since the 1990s, MIMO (Multiple-Input Multiple-Output) technology has been gradually applied to several standards of wireless communications and become an important breakthrough in many aspects, such as providing reliable wireless transmission link, for the outstanding achievements in improving the channel capacity.MIMO technology is combined with multi-antenna diversity technology and spatial coding technology. One of the most important features of MIMO technology is not confronting multipath effects, but using it cleverly. With more and more studies in the theory, algorithms, applications, etc. of MIMO communication systems by many researchers, it has become a hot topic in communications technology.Firstly, we will describe the basic principles of the MIMO system technology and the MIMO channel models in this paper. Then I will describe the simulation tool, MATLAB / Simulink simulation software briefly. Next, this paper will study the theoretical derivation and simulation software for the channel capacity of MIMO systems and sum up the impact of various factors on the channel capacity. Finally, a simulation of the MIMO communication system based on orthogonal space-time block coding will be given in this paper.【Key words】Spectrum utilization MIMO communication system Channel capacity Orthogonal space-time block coding目录前言 (1)第一章MIMO技术的概述 (3)第一节MIMO技术发展历史和现状 (3)一、发展历史 (3)二、现状 (3)第二节仍存在的问题与发展趋势 (4)一、仍存在的问题 (4)二、发展趋势 (5)第三节MIMO技术原理 (5)一、天线分集技术 (5)二、空时编码技术 (7)第四节MIMO通信系统模型 (8)第五节MIMO通信系统信道模型 (10)第六节本章小结 (12)第二章MATLAB/Simulink仿真工具介绍 (13)第一节概述 (13)第二节通信系统仿真方法与流程 (13)第三节Simulink仿真概述 (14)第四节Simulink通信工具箱仿真模块与S-函数 (15)一、通信工具箱 (15)二、S-函数 (16)第五节本章小结 (16)第三章MIMO信道容量仿真与分析研究 (17)第一节信道容量计算概述 (17)第二节仿真与结果分析 (19)一、相同信噪比、相同接收天线下的仿真 (20)二、不同信噪比、相同接收天线下的仿真 (20)三、不同信噪比、相同发射天线下的仿真 (21)四、相同信噪比、不同接收天线下的仿真 (22)第四节本章小结 (23)第四章MIMO正交空时分组的仿真 (25)第一节MIMO通信系统与空时分组编码 (25)第二节正交空时分组编码、译码与性能分析 (26)一、正交空时分组编码 (26)二、正交空时分组码译码 (26)三、正交空时分组码性能分析 (27)第三节4-QAM与其他调制方式下的仿真与结果分析 (28)第四节本章小结 (34)结论 (35)致谢 (36)参考文献 (37)附录 (38)一、英文原文 (38)二、英文翻译 (43)三、工程设计图纸 (47)四、源程序 (49)前言随着无线通信的发展,人们已经基本实现了三个“W”(Wherever, Whenever, Whoever,即能够实现用户在任意地点,任意时间,与任意用户进行即时通信)。
MIMO OFDM MATLAB仿真程序一
: OFDM Simulator (outer function)clear all;A = [1 1/exp(1) 1/exp(2)]; % power delay profileN = 64; % number of symbols in a single OFDM symbolGI = 16; % guard intervalMt = 1; % number of Tx antennasMr = 1; % number of Rx antennassig2 = 1e-3; % noise varianceM = 8; % max constellation bit numberMgap = 10.^(1:(1.7/10):2.7); % gapBtot = 100*Mt; % total # bits per OFDM symbolTransmitIter = 50; % # iterations of symbol transmissions for each channel instance ChannelIter = 100; % # iterations of independent identically distributed channel instances GapIter = length(Mgap);loadloadloadloadloadTotEbNo = [];Errors =[];EbNo = [];for lGap = 1:GapIterlGapgap = Mgap(lGap);totalErrors = 0;for lChan = 1:ChannelIter% create channel[H h_f]=create_channel(Mt, Mr, A, N+GI);% decompose each subchannel in the frequency domain[U S V] = svd_decompose_channel(Mt, Mr, h_f, N);% bitloading[bits_alloc,energy_alloc] = BitLoad(S,Btot,Mt*N,gap,sig2,M);%energy_alloc=energy_alloc/(mean(energy_alloc));%energy_alloc=ones(1,128);for lTrans = 1:TransmitIter% bits to transmitx = (randn(1,Btot)>0);% modulatex_mod = modulate(x,bits_alloc,energy_alloc, s2,s4,s16,s64,s256);% precode modulated signalx_pre = precode(Mt, x_mod, V, N);% ifft, with cyclic prefix for each antennaofdm_symbol =[];for i=1:Mtofdm_symbol = [ofdm_symbol; ifft_cp_tx_blk(x_pre(i:Mt:Mt*(N-1)+i),N,GI)];endofdm_symbol2 = reshape(ofdm_symbol,Mt*(N+GI),1);% channely = transpose(channel(sig2, Mt, Mr, ofdm_symbol2, H, N+GI));% fftrec_symbol =[];for i=1:Mtrec_symbol = [rec_symbol; fft_cp_rx_blk(y(i:Mt:Mt*(N+GI-1)+i),N,GI)];endrec_symbol2 = reshape(rec_symbol,1,Mt*N);% shape received signalshaped_vals = shape(rec_symbol2, Mr, U, N);% demodulatey_demod = demodulate(shaped_vals, bits_alloc, energy_alloc, S, s2,s4,s16,s64,s256, c2,c4,c16,c64,c256); % comparisontotalErrors = totalErrors + sum(xor(y_demod,x));endEbNo = [EbNo sum(energy_alloc)/Btot/sig2];endErrors = [Errors totalErrors/Btot/ChannelIter/TransmitIter]TotEbNo = [TotEbNo mean(EbNo)]EbNo = [];endsemilogx(TotEbNo, Errors);xlabel('Eb/No');ylabel('BER');title('SISO link, adaptive rate and power')save Errors EbNo: Generates a Rayleigh fading frequency-selective channel, parametrized by the antenna configuration, the OFDM configuration, and the power-delay profile.function [H, H_f]=create_channel(Mt, Mr, A, N);% function [H, H_f]=create_channel(Mt, Mr, A, N);%% A - vector containing the power-delay profile (real values)% Mt - number of Tx antennas% Mr - number of Rx antennas% N - number of vector symbols to be sent in a single OFDM symbol Tx% ie: N MIMO transmissions in one OFDM symbol% This is for Rayleigh frequency-selective fading, which assumes complex% Gaussian matrix elements with in-phase and quadrature components independent.% Assume iid matrix channel elements, and further, independent channel taps % define the channel tapsH_int = 1/sqrt(2)*(randn(Mr*length(A),Mt) + j*randn(Mr*length(A),Mt));H_int2=[];for i = 1:length(A)H_int2 = [H_int2;sqrt(A(i))*H_int((i-1)*Mr+1:i*Mr,:)];end%h_f = fft(H_int2',64);%%H = H_int2';H_int2 = [H_int2;zeros((N-length(A))*Mr,Mt)];H_f = zeros(Mr,Mt*(N-16));for i = 1:Mtfor j = 1:Mrh_f = fft(H_int2(j:Mr:(N-16-1)*Mr+j,i));for k = 1:(N-16)H_f(j,i+(k-1)*Mt) = h_f(k);endendendH=[H_int2];for i = 1:N-1H=[H,[zeros(Mr*i,Mt);H_int2(1:(N-i)*Mr,:)]];end: Since full channel knowledge is assumed, transmission is across parallel singular value modes. This function decomposes the channel into these modes.function [U, S, V] = svd_decompose_channel(Mt, Mr, h_f, N);% [U S V] = svd_decompose_channel(Mt, Mr, h_f, N);%% Function decomposes the channel at each subcarrier into its SVD components %% Mt - # Tx antennas% Mr - # Rx antennas% h_f - MIMO impulse response - Mr rows, Mt*L columns, where L is the number of% channel taps% N - # subcarriersU = [];S = [];V = [];for i = 1:N[Utmp Stmp Vtmp] = svd(h_f(:,(i-1)*Mt+1:i*Mt));U=[U Utmp];V=[V Vtmp];S=[S Stmp];endS = sum(S,1);: Apply the bit-loading algorithm to achieve the desired bit and energy allocation for the current channel instance.function [bits_alloc,energy_alloc] =BitLoad(subchan_gains,total_bits,num_subc,gap,noise,M)% Bit Loading Algorithm% ---------------------%% Inputs :% subchan_gains : SubCarrier Gains% total_bits : Total Number of bits% num_subc : Number of Subcarriers% gap : Gap of the system% noise : Noise Power% M : Max Constellation Size% Outputs:% bits_alloc : Bits allocation for each subchannel% power_alloc : Total Power allocation% ---------------------------------------------------------------% Compute SNR's for each channelSNR = ComputeSNR(subchan_gains,noise,gap);% This function just initializes the system with a particular bit% allocation and energy allocation using Chow's Algorithm. This is% further efficientize using Campello's Algorithm[bits_alloc, energy_alloc] = chow_algo(SNR,num_subc,M);% Form the Energy Increment Table based on the present channel% gains for all the subchannels in order to be used by Campello% Algorithmenergytable = EnergyTableInit(SNR,M);% Efficientize the algorithm using the Campello's algorithm[bits_alloc,energy_alloc] =campello_algo(bits_alloc,energy_alloc,energytable,total_bits,num_subc,M );: Given the subcarrier gains, this simple function generates the SNR values of each channel (each singular value on each tone is a separate channel).function SNR = ComputeSNR(subcar_gains,noise,gap)SNR = abs((subcar_gains.^2)./(noise*gap));: Apply Chow's algorithm to generate a particular bit and energy allocation.% Chow's Algorithm% ----------------% This is based on the paper by Chow et al titled%% A Practical Discrete Multitone Transceiver Loading Algorithm% for Data Transmission over Spectrally Shaped Channels.IEEE Trans% on Communications. Vol. 43, No 2/3/4, pp. 773-775, Feb/Mar/Apr 1995 function [bits_alloc, energy_alloc] = chow_algo(SNR,num_subc,M)for i = 1:num_subc% Assuming each of the subchannels has a flat fading, we get initial estimate % of the bits for each subchanneltempbits = log2(1 + abs(SNR(i))); % bits per two dimension. roundtempbits = round(tempbits); % round the bitsif (roundtempbits > 8) % Limit them between 2 and 15 roundtempbits = 8;endif (mod(roundtempbits,2)== 1 & roundtempbits ~= 1)roundtempbits = roundtempbits -1;endif roundtempbits > 0 % Calculate the Energy required for the subchannelenergy_alloc(i) = (2^roundtempbits-1)/SNR(i) ;elseenergy_alloc(i) = 0;endbits_alloc(i) = roundtempbits; % Update the BitSubChan end% end of function: Given the SNR values, form a table of energy increments for each channel.function energytable = EnergyTableInit(SNR,M);% Inputs:% subcar_gains : Subcarrier Gains% M : max Constellation Size% Gap : Gap of the system% Noise : Noise Power% Outputs:% energytable : Energytable%% Based on the Subcarrier Gains, we calculate the energy% increment required by each subcarrier for transmitting% 1,2 ,4 ,6,8 bits.% Energy = 2^(i-1)/subcar_gains;% ------------------------------------------------------%subcar_gains = (subcar_gains.^2)/(Gap*Noise);energytable = abs((1./SNR)'*(2.^([1:M+1]-1)));% Increase the energy value for constellation size of more than M to% a very high value so that it is not assigned.energytable(:,M+1) = Inf*ones(size(energytable(:,M+1)));for i = 3:2:Menergytable(:,i) = (energytable(:,i) +energytable(:,i+1))/2;energytable(:,i+1) = energytable(:,i);end%energytable = [ones(1,size(energytable,1))' energytable];: Apply Campello's algorithm to converge to the optimal bit and energy allocation for the given channel conditions.% --------------% This function is used by Campello's algorithm to allocate bits and energy for% each subchannel optimally.function [bits_alloc, energy_alloc] =campello_algo(bits_alloc,energy_alloc,energytable,total_bits,num_subc,M)bt = sum(bits_alloc);% We can't transmit more than M*(Number of subchannel) bitsif total_bits > M*num_subctotal_bits = M*num_subc;endwhile (bt ~= total_bits)if (bt > total_bits)max_val = 0;max_ind = ceil(rand(1)*num_subc);for i = 1:num_subcif bits_alloc(i) ~= 0temp = energytable(i,bits_alloc(i)) ;elsetemp = 0;endif (temp > max_val)max_val = temp;max_ind = i;endendif (bits_alloc(max_ind) > 0)bits_alloc(max_ind) = bits_alloc(max_ind) -1;energy_alloc(max_ind) = energy_alloc(max_ind) - max_val;bt = bt-1;endelsemin_val = Inf;min_ind = ceil(rand(1)*num_subc);for i = 1:num_subcif bits_alloc(i) ~=0 & bits_alloc(i) <9temp = energytable(i,bits_alloc(i) + 1);elsetemp = Inf;endif (temp < min_val)min_val = temp;min_ind = i;endendif (bits_alloc(min_ind) < 8)bits_alloc(min_ind) = bits_alloc(min_ind) +1;if (min_val==inf)min_val = energytable(min_ind,bits_alloc(min_ind));endenergy_alloc(min_ind) = energy_alloc(min_ind) +min_val;bt = bt+1;endendendfor i = 1:length(bits_alloc)if (mod(bits_alloc(i),2) == 1 & bits_alloc(i) ~=1)[bits_alloc,energy_alloc] =ResolvetheLastBit(bits_alloc,energy_alloc,i,energytable,num_subc);endend: An optimal bit-loading of the last bit requires a unique optimization.function [bits_alloc, energy_alloc] =ResolvetheLastBit(bits_alloc,energy_alloc,index,energytable,num_subc) max_val = 0;for i = 1:num_subcif (i ~= index & bits_alloc(i) == 1)if bits_alloc(i) ~= 0temp = energytable(i,bits_alloc(i)) ;endif (temp > max_val)max_val = temp;max_ind = i;endendendmin_val = Inf;for i = 1:num_subcif (i~= index & bits_alloc(i) == 1)if bits_alloc(i) ~=0temp = energytable(i,bits_alloc(i) + 1);endif (temp < min_val)min_val = temp;min_ind = i;endendendif (min_val < max_val)bits_alloc(min_ind) = bits_alloc(min_ind) + 1;bits_alloc(index) = bits_alloc(index) - 1;energy_alloc(index) = energy_alloc(index) - min_val; elsebits_alloc(max_ind) = bits_alloc(max_ind) - 1;bits_alloc(index) = bits_alloc(index) + 1;energy_alloc(index) = energy_alloc(index) + max_val; end。
基于MATLAB的MIMO-OFDMA系统的设计与仿真
基于MATLAB的MIMO-OFDMA系统的设计与仿真摘要在信息时代的快速发展形势下,产生了越来越多的业务需求,用户对通信系统的性能提出了更高的要求。
基于正交频分复用( Orthogonal Frequency Division Multiplexing,OFDM )技术和多输入多输出(Multiple Input Multiple Output,MIMO )技术的无线通信系统在增加系统容量、提高频谱利用率以及对抗频率选择性衰落等方面具备优越的性能,是未来通信领域中的关键技术。
本文首先阐述了MIMO技术和OFDM技术的国内外研究概况,然后通过分析MIMO技术和OFDM技术的基本原理和系统结构,设计出简单的MIMO-OFDM系统。
基于MATLAB软件对所建立的MIMO系统的信道容量进行了仿真,并对SISO-OFDM系统和MIMO-OFDM系统的性能进行了比较,仿真结果表明,本文所提出的MIMO-OFDM系统方案能够在不增加误比特率的情况下增加信道容量,最后结合空时分组码(Space Time Block Coding,STBC)对MIMO-OFDM系统进行了完善并采用MATLAB对其性能进行了仿真,结果显示,相较于未完善的系统完善后的系统的误比特率指标明显降低,传输可靠性得到了极大的提高。
关键词:无线通信;MIMO;OFDM;误比特率Performance Evaluation of MIMO-OFDMASystem using MatlabAbstractAs the rapid development of information technology has resulted in more influences on people’s daily lives and businesses. Higher requirements should be provided by communication system to meet people’s needs. The communication system which based on the technology of Orthogonal Frequency Division Multiplexing (OFDM) and Multiple Input Multiple Output (MIMO) enables to not only increase the system capacity, but improve the spectrum utilization, and moreover to effectively against frequency selective fading, has become the key technologies in the field of communication in the future.This paper first gives an in-detailed survey on MIMO and OFDM technologies in academic society. After that, we designed a simple MIMO-OFDM system by means of the analysis of the basic concepts and the architecture of MIMO and OFDM technology. Followed by performance evaluation via Matlab to compare SISO-OFDM and MIMO-OFDM systems in term of channel capacity and Bit Error Rate (BER) to validate the proposed MIMO-OFDM system outperforms SISO-OFDM. Finally, we further integrated space-time block codes into the proposed MIMO-OFDM system, through simulation results, we can observe that BER can be significant reduced compared to its counterpart which without implements space-time block codes. Keywords:Wireless communication,MIMO, OFDM, Bit Error Rate (BER)目录第1章绪论 (1)1.1课题背景 (1)1.2国内外研究概况 (1)1.2.1OFDM研究概况 (1)1.2.1MIMO研究概况 (2)1.2.2MIMO-OFDM研究概况 (3)1.3论文结构 (3)第2章相关理论基础 (4)2.1OFDM基本原理 (4)2.1.1OFDM数学描述 (4)2.1.2OFDM系统框图 (7)2.2MIMO原理及数学描述 (9)2.2.1MIMO系统模型 (9)2.2.2MIMO信道容量 (11)2.2.3空时编码技术 (11)2.3无线信道环境及数学描述 (12)第3章仿真与分析 (14)3.1MIMO信道容量仿真 (14)3.2MIMO-OFDM系统与仿真 (16)3.3基于STBC的MIMO-OFDM系统与仿真 (19)3.3本章小结 (20)第4章总结 (21)4.1完成的工作 (21)4.2不足与展望 (21)致谢 (22)参考文献 (23)附录 (24)南京林业大学本科生毕业设计(论文)第1章绪论1.1课题背景对于无线通信系统,其性能的优劣通常采用有效性和可靠性指标来进行评价。
基于MATLAB的MIMO通信系统仿真
其中卷积码的解码深度设为8
调制
在进行编写的进程中,最初没有想到挪用Matlab已经封装好了的QPSK的调制函数而是自己编写了一个函数,先进行了仿真。
先进行了符号映射。
加入噪声,因为输入的是复信息,因此加入的噪声为复噪声
以下图为QPSK系统调制图。
AWGN信道
加性高斯白噪声AWGN(Additive White Gaussian Noise)是最大体的噪声与干扰模型。
加性噪声:叠加在信号上的一种噪声,通常记为n(t),而且不管有无信号,噪声n(t)都是始终存在的。因此通常称它为加性噪声或加性干扰。
白噪声:噪声的功率谱密度在所有的频率上均为一常数,那么称如此的噪声为白噪声。若是白噪声取值的概率散布服从高斯散布,那么称如此的噪声为高斯白噪声。
从上图能够看到,MIMO模型中有一个空时编码器,有多根天线,其系统模型和上述MIMO系统理论一致。发送天线的数量要大于接收天线,因为一样来讲,移动终端所支持的天线数量老是比基站端要少。
(3)分集与复用:
依照各根天线上发送信息的不同,MIMO能够分为发射分集技术和空间复用技术。
发射分集:在不同的天线上发射包括一样信息的信号(信号的具体形式不必然完全相同),达到空间分集的成效,起到抗衰落的作用
图2 分层空时码的接收端系统模型
最后的系统结构图:
三、仿真设计
(1)流程图
(2)要紧模块
信源产生
要求:产生独立等概二进制信源
Matlab函数:randsrc()
信道编码
利用卷积码来进行信道编码
依照3GPP的规定,可选取如上所示的卷积码来进行信道编码。
基于MATLAB的MIMO通信系统仿真
目录(一)基于MATLAB的MIMO通信系统仿真…………………………一、基本原理………………………………………………………二、仿真……………………………………………………………三、仿真结果………………………………………………………四、仿真结果分析…………………………………………………(二)自选习题部分…………………………………………………(三)总结与体会……………………………………………………(四)参考文献……………………………………………………实训报告(一)基于MATLAB的MIMO通信系统仿真一、基本原理二、仿真三、仿真结果四、仿真结果分析OFDM技术通过将频率选择性多径衰落信道在频域内转换为平坦信道,减小了多径衰落的影响。
OFDM技术如果要提高传输速率,则要增加带宽、发送功率、子载波数目,这对于频谱资源紧张的无线通信时不现实的。
MIMO能够在空间中产生独立并行信道同时传输多路数据流,即传输速率很高。
这些增加的信道容量可以用来提高信息传输速率,也可以通过增加信息冗余来提高通信系统的传输可靠性。
但是MIMO却不能够克服频率选择性深衰落。
所以OFDM和MIMO这一对互补的技术自然走到了一起,现在是3G,未来也是4G,以及新一代WLAN技术的核心。
总之,是核心物理层技术之一。
1、MIMO系统理论:核心思想:时间上空时信号处理同空间上分集结合。
时间上空时通过在发送端采用空时码实现: 空时分组、空时格码,分层空时码。
空间上分集通过增加空间上天线分布实现。
此举可以把原来对用户来说是有害的无线电波多径传播转变为对用户有利。
2、MIMO 系统模型:11h 12h 21h 22h rn h 1rnh 21R n h 2R n h 1n n R h 可以看到,MIMO 模型中有一个空时编码器,有多根天线,其系统模型和上述MIMO 系统理论一致。
为什么说nt>nr ,因为一般来说,移动终端所支持的天线数目总是比基站端要少。
mimo_ofdm通信系统matlab毕业设计
mimo_ofdm通信系统matlab毕业设计随着无线通信技术的不断发展,MIMO-OFDM技术已成为下一代无线通信系统的关键技术之一。
因此,在毕业设计中选择MIMO-OFDM 通信系统作为研究对象是非常具有实际意义的。
MIMO-OFDM通信系统可以实现高速数据传输,并且具有抗多径干扰和频率选择性衰落的能力。
在MATLAB中,可以使用其通信系统工具箱来进行MIMO-OFDM通信系统的仿真和研究。
在毕业设计中,首先需要对MIMO-OFDM通信系统进行深入的理论研究,包括MIMO技术和OFDM技术的原理、系统模型和性能分析等。
然后,根据理论研究的结果,使用MATLAB进行系统的仿真和实现。
在仿真过程中,需要对MIMO-OFDM通信系统的各个方面进行详细的模拟和分析,包括信道建模、信号调制解调、信道估计与均衡、多天线技术等。
通过对这些方面的仿真和分析,可以深入了解MIMO-OFDM通信系统的性能和特点,并对其中的关键技术进行研究和改进。
最后,需要对毕业设计进行总结和展望。
总结研究成果和经验教训,提出进一步研究的方向和改进方案,为未来的研究和应用打下坚实的基础。
基于matlab的MQAM通信系统的仿真
课程设计学生日志课程设计考勤表课程设计评语表基于matlab的M-QAM通信系统的仿真一、设计目的和意义(1)通过仿真进一步掌握M-QAM调制及解调的原理;(2)学会用matlab编程对通信系统进行仿真;(3)学会用理论知识去分析结果。
二、设计原理利用Matlab仿真软件,完成如图1所示的一个基本的数字通信系统。
信号源产生0、1等概分布的随机信号,映射到16QAM的星座图上,同时一路信号已经被分成了I路和Q路,后边的处理建立在这两路信号的基础上。
I路和Q路信号分别经过平方根升余弦滤波器,再加入高斯白噪声,然后通过匹配滤波器(平方根升余弦滤波器)。
最后经过采样,判决,得到0、1信号,同原信号进行比较,给出16QAM数字系统的误码。
图1三、详细设计步骤随机信号的生成利用Matlab中自带的函数randsrc来产生0、1等概分布的随机信号。
源代码如下所示:global NN=300;global pp=0.5;source=randsrc(1,N,[1,0;p,1-p]);星座图映射将等概分布的0、1信号映射到16QAM星座图上。
每四个bit构成一个码子,具体实现的方法是,将输入的信号进行串并转换分成两路,分别叫做I路和Q路。
再把每一路的信号分别按照两位格雷码的规则进行映射,这样实际上最终得到了四位格雷码。
为了清楚说明,参看表1function [y1,y2]=Qam_modulation(x)%QAM_modulation%对产生的二进制序列进行QAM调制%=====首先进行串并转换,将原二进制序列转换成两路信号N=length(x);a=1:2:N;y1=x(a);y2=x(a+1);%=====分别对两路信号进行QPSK调制%======对两路信号分别进行2-4电平变换a=1:2:N/2;temp1=y1(a);temp2=y1(a+1);y11=temp1*2+temp2;temp1=y2(a);temp2=y2(a+1);y22=temp1*2+temp2;%=======对两路信号分别进行相位调制a=1:N/4;y1=(y11*2-1-4)*1.*cos(2*pi*a);y2=(y22*2-1-4)*1.*cos(2*pi*a);%========按照格雷码的规则进行映射y1(find(y11==0))=-3;y1(find(y11==1))=-1;y1(find(y11==3))=1;y1(find(y11==2))=3;y2(find(y22==0))=-3;y2(find(y22==1))=-1;y2(find(y22==3))=1;y2(find(y22==2))=3;插值为了能够模拟高斯白噪声的宽频谱特性,以及为了能够显示波形生成器(平方根升余弦滤波器)的效果,所以在原始信号中间添加一些0点。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
目录(一)基于MATLAB的MIMO通信系统仿真…………………………一、基本原理………………………………………………………二、仿真……………………………………………………………三、仿真结果………………………………………………………四、仿真结果分析…………………………………………………(二)自选习题部分…………………………………………………(三)总结与体会……………………………………………………(四)参考文献……………………………………………………实训报告(一)基于MATLAB的MIMO通信系统仿真一、基本原理二、仿真三、仿真结果四、仿真结果分析OFDM技术通过将频率选择性多径衰落信道在频域内转换为平坦信道,减小了多径衰落的影响。
OFDM技术如果要提高传输速率,则要增加带宽、发送功率、子载波数目,这对于频谱资源紧张的无线通信时不现实的。
MIMO能够在空间中产生独立并行信道同时传输多路数据流,即传输速率很高。
这些增加的信道容量可以用来提高信息传输速率,也可以通过增加信息冗余来提高通信系统的传输可靠性。
但是MIMO却不能够克服频率选择性深衰落。
所以OFDM和MIMO这一对互补的技术自然走到了一起,现在是3G,未来也是4G,以及新一代WLAN技术的核心。
总之,是核心物理层技术之一。
1、MIMO系统理论:核心思想:时间上空时信号处理同空间上分集结合。
时间上空时通过在发送端采用空时码实现: 空时分组、空时格码,分层空时码。
空间上分集通过增加空间上天线分布实现。
此举可以把原来对用户来说是有害的无线电波多径传播转变为对用户有利。
2、MIMO 系统模型:11h 12h 21h 22h rn h 1rnh 21R n h 2R n h 1n n R h 可以看到,MIMO 模型中有一个空时编码器,有多根天线,其系统模型和上述MIMO 系统理论一致。
为什么说nt>nr ,因为一般来说,移动终端所支持的天线数目总是比基站端要少。
接收矢量为:y Hx n =+,即接收信号为信道衰落系数X 发射信号+接收端噪声3、MIMO 系统容量分析:(附MIMO 系统容量分析程序)香农公式的信道容量(即信息传送速率)为:2log (1/)C B S N =+4、在MIMO 中计算信道容量分两种情况:未知CSI 和已知CSI (CSI 即为信道状态信息),其公式推导较为复杂,推导结果为信道容量是信噪比与接收、发射天线的函数。
在推导已知CSI 中,常用的有waterfilling ,即著名的注水原理。
但是,根据相关文献资料,通常情况下CSI 可以当做已知,因为发送,接收端会根据具体信道情况估算CSI 的相关参数。
在这里对注水原理做一个简单介绍:之所以成为注水原理是因为理想的注水原理是在噪声大的时候少分配功率,噪声小时多分配功率,最后噪声+功率=定值,这如果用图形来表示,则类似于给水池注水的时候,水池低的地方就多注水,也就是噪声小分配的功率就多,故称这种达到容量的功率分配方式叫做注水原理。
通过给各个天线分配不同的发射功率,增加系统容量。
核心思想就是上面所阐述的,信道条件好,则分配更多功率;信道条件差,则分配较少的功率。
在MIMO 的信道容量当中要注意几个问题:(下面说已知CSI 都是加入了估计CSI 的算法,并且采用了注水原理。
)1. 已知CSI 的情况下的信道容量要比发送端未知CSI 的情况下的信道容量高,这是由于当发送端已知CSI 的时候,发送端可以优化发送信号的协方差矩阵。
也就是可以通过注水原理使得信道容量达到最大。
所以在实际系统当中,发射端必须有效利用CSI (如上述说明的通常采用估算的方法),这样可以优化发送信号。
2.如果信道信噪比足够大的时候,这时已知和未知CSI 相差不大。
因为已知CSI 情况下此时所有的池子都是满的,此时发送天线上的功率得到了最大分配。
和未知CSI 情况一样。
3. 如果收发天线数相等,这时已知CSI 比未知CSI 的优势并不明显;但是,当发射天线数大于接收天线数时,已知CSI 的信道容量要明显高于未知CSI 。
5、MIMO 和OFDM 结合使用,即MIMO-OFDM 系统:发送天线接收天线Nt*Nr MIMO-OFDM 系统结构框图利用MIMO 和OFDM 结合,可以大大提高无线通信系统的信道容量和传输速率,有效抵抗信道衰落和抑制干扰,被认为是构建宽带无线通信系统最关键的物理层传输方案。
从图中可以看出,MIMO-OFDM 系统中,每根发射天线的通路上都有一个OFDM 调制器,每根接收天线上都有一个OFDM 解调器。
空时编码技术之STBC 介绍:在上文的阐述中讲到了MIMO 通过时间上空时信号处理和空间上分集结合实现。
空时信号处理,即空时编码技术目前研究较多的是分层空时编码(BLAST ),空时网格编码(STTC )以及空时分组编码(STBC )。
其中,空时分组编码(STBC )与1998年发明,应用最为广泛。
)Alamouti 发送分集空时编码方案星座映射的解释如下:数字调制用"星座图"来描述,星座图中定义了一种调制技术的两个基本参数:1)信号分布;2)与调制数字比特之间的映射关系。
星座图中规定了星座点与传输比特间的对应关系,这种关系称为"映射",一种调制技术的特性可由信号分布和映射完全定义,即可由星座图来完全定义。
将输入的串行二进制信息序列经串-并变换,变成m=log2M 个并行数据流,M 为星座图的星座点数目,每一路的数据率是R/m,R 是串行输入码的数据率。
每m 个比特对应星座图上的的一个星座点,比如BPSK 调制,每1个比特对应一个星座点;QPSK 调制,每2个比特对应一个星座点;16QAM 调制,每4个比特对应一个星座点。
一般映射采用格雷码为映射规则。
在此例中,信源发送的二进制信息比特首先进行星座映射。
假设采用4进制的调制星座,有2log 2m M ==。
把从信源来的二进制信息比特每2个比特分为一组(此例中是x1和x2),对连续的两组比特进行星座映射,得到两个调制符号x1,x2。
把这两个符号送入编码器,并按照如下方式编码:12**21x x x x ⎡⎤⎢⎥-⎣⎦在第一个发送时刻,符号1x 在天线1上发送出去,符号2x 在天线2上发送出去。
第二个时刻,符号*2x -在天线1上发送出去,符号*1x 在天线2上发送出去。
可以看出,两幅发送天线上发送信号批次存在着一定的关系,因此这种空时码是基于发送分集的。
两幅发送天线上发送的信号满足正交特性。
考虑两个发送天线,一个接收天线的情况:假设接收端可以完全准确地估计出信道的衰落系数1h 和2h ,在接收端采用最大似然估计,从星座中找出一对符号12,x x ∧∧⎛⎫⎪⎝⎭,该符号也就是最终接收端认为发送端发送的符号。
在程序中,其判决式为:()2~222112111arg min 1,x h h x d x x ∧∧∧⎛⎫=+-+ ⎪⎝⎭()2~222212222arg min 1,x h h x d x x ∧∧∧⎛⎫=+-+ ⎪⎝⎭其中~1x ,~2x 是根据信道衰落系数和接收信号进行合并得到的信号。
考虑多接收天线的情况:多天线系统中,发送端的编码与传输方案和单接收天线系统一样。
只是在接收端的处理变得复杂,需要对不同接收天线上接收到的信号进行合并处理。
多接收天线下的判决度量可以通过把各副接收天线上的接受信号得到的判决度量线性合并得到。
判决式如下(该判决式在程序中有体现):()2~2221,1,21111arg min 1,nr j j j x h h x d x x ∧∧∧=⎧⎫⎡⎤⎪⎪⎛⎫=+-+⎨⎬ ⎪⎢⎥⎝⎭⎪⎣⎦⎪⎭⎩∑()2~2222,1,22221arg min 1,nr j j j x h h x d x x ∧∧∧=⎧⎫⎡⎤⎪⎪⎛⎫=+-+⎨⎬ ⎪⎢⎥⎝⎭⎪⎣⎦⎪⎭⎩∑最后的系统结构图:发射天线1N接收天线1(N,M )STBC-MIMO-OFDM 系统框图程序:信道容量: close all ; clear all ; clc; N_loop=100; EbN0=0:5:25; N0=1;Eb=10.^(EbN0/10)*N0; normalized=sqrt(1/2); C_norm=zeros(1,length(EbN0)); D=zeros(1,N_loop);n=[1,2,4,8]; W=3*10^4; for i=1:4for ee=1:length(EbN0) for s=1:N_loopH=randn(n(i),n(i))+j*randn(n(i),n(i)); Q=H'*H;m=n(i);I=eye(m,m);SNR=Eb(ee)/N0;C=W*log2(det(I+SNR/n(i)*Q));D(s)=C;endC_avg=sum(D)/N_loop;C_normal=C_avg/W;C_norm(ee)=C_normal;disp(['When SNR is ',num2str(EbN0(ee)),'dB:C_avg',int2str(i),' = ',num2str(C_avg),'; C_normal ',int2str(i),' = ',num2str(C_normal)]);endP=plot(EbN0,C_norm,'r-d');set(P,'linewidth',[2]);axis([0 30 0 100]);AX=gca;set(AX,'fontsize',14);title('\fontsize{12}\bfMIMO ÐŵÀÈÝÁ¿');X=xlabel('Eb/N_0 [dB]£¨ÐÅÔë±È£©');set(X,'fontsize',12);Y=ylabel('Capacity bit/s/Hz£¨ÐŵÀÈÝÁ¿£©');set(Y,'fontsize',12);hold on;grid on;endlegend('n1=1','n2=2','n3=4','n4=8');51015202530MIMO 信道容量Eb/N 0 [dB](信噪比)C a p a c i t y b i t /s /H z (信道容量)误码率与信噪比关系: clear all close all clc%+++++++++++++++++++++++++++±äÁ¿++++++++++++++++++++++++++++++ i=sqrt(-1);IFFT_bin_length=512; carrier_count=100; symbols_per_carrier=66; cp_length=10;addprefix_length=IFFT_bin_length+cp_length; M_psk=4;bits_per_symbol=log2(M_psk);O=[1 -2 -3;2+j 1+j 0;3+j 0 1+j;0 -3+j 2+j];co_time=size(O,1); Nt=size(O,2); Nr=2;disp('--------------start-------------------'); num_X=1;for cc_ro=1:co_timefor cc_co=1:Ntnum_X=max(num_X,abs(real(O(cc_ro,cc_co))));endendco_x=zeros(num_X,1);for con_ro=1:co_timefor con_co=1:Ntif abs(real(O(con_ro,con_co)))~=0delta(con_ro,abs(real(O(con_ro,con_co))))=sign(real(O(con_ro,con_co)));epsilon(con_ro,abs(real(O(con_ro,con_co))))=con_co;co_x(abs(real(O(con_ro,con_co))),1)=co_x(abs(real(O(con_ro,con_co))),1)+1;eta(abs(real(O(con_ro,con_co))),co_x(abs(real(O(con_ro,con_co))),1))=con_ro;coj_mt(con_ro,abs(real(O(con_ro,con_co))))=imag(O(con_ro,con_co));endendendeta=eta.';eta=sort(eta);eta=eta.';carriers = (1: carrier_count) + (floor(IFFT_bin_length/4) -floor(carrier_count/2));conjugate_carriers=IFFT_bin_length-carriers+2; tx_training_symbols=training_symbol(Nt,carrier_count);baseband_out_length = carrier_count * symbols_per_carrier;snr_min=3;snr_max=15;graph_inf_bit=zeros(snr_max-snr_min+1,2,Nr);graph_inf_sym=zeros(snr_max-snr_min+1,2,Nr);for SNR=snr_min:snr_maxclcdisp('Wait until SNR=');disp(snr_max);SNRn_err_sym=zeros(1,Nr);n_err_bit=zeros(1,Nr);Perr_sym=zeros(1,Nr);Perr_bit=zeros(1,Nr);re_met_sym_buf=zeros(carrier_count,symbols_per_carrier,Nr);re_met_bit=zeros(baseband_out_length,bits_per_symbol,Nr);baseband_out=round(rand(baseband_out_length,bits_per_symbol));de_data=bi2de(baseband_out);data_buf=pskmod(de_data,M_psk,0);carrier_matrix=reshape(data_buf,carrier_count,symbols_per_carrier); for tt=1:Nt:symbols_per_carrierdata=[];for ii=1:Nttx_buf_buf=carrier_matrix(:,tt+ii-1);data=[data;tx_buf_buf];endXX=zeros(co_time*carrier_count,Nt);for con_r=1:co_timefor con_c=1:Ntif abs(real(O(con_r,con_c)))~=0if imag(O(con_r,con_c))==0XX((con_r-1)*carrier_count+1:con_r*carrier_count,con_c)=data((abs(real(O(con_r,con_c)))-1)*carrier_count+1:abs(real(O(con_r,con_c)))...*carrier_count,1)*sign(real(O(con_r,con_c)));elseXX((con_r-1)*carrier_count+1:con_r*carrier_count,con_c)=conj(data((abs(real(O(con_r,con_c)))-1)*carrier_count+1:abs(real(O(con_r,con_c)))...*carrier_count,1))*sign(real(O(con_r,con_c)));endendendendXX=[tx_training_symbols;XX];rx_buf=zeros(1,addprefix_length*(co_time+1),Nr);for rev=1:Nrfor ii=1:Nttx_buf=reshape(XX(:,ii),carrier_count,co_time+1);IFFT_tx_buf=zeros(IFFT_bin_length,co_time+1);IFFT_tx_buf(carriers,:)=tx_buf(1:carrier_count,:);IFFT_tx_buf(conjugate_carriers,:)=conj(tx_buf(1:carrier_count,:));time_matrix=ifft(IFFT_tx_buf);time_matrix=[time_matrix((IFFT_bin_length-cp_length+1):IFFT_bin_lengt h,:);time_matrix];tx=time_matrix(:)';%+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++tx_tmp=tx;d=[4,5,6,2;4,5,6,2;4,5,6,2;4,5,6,2];a=[0.2,0.3,0.4,0.5;0.2,0.3,0.4,0.5;0.2,0.3,0.4,0.5;0.2,0.3,0.4,0.5];for jj=1:size(d,2)copy=zeros(size(tx)) ;for kk = 1 + d(ii,jj): length(tx)copy(kk) = a(ii,jj)*tx(kk - d(ii,jj)) ;endtx_tmp=tx_tmp+copy;endtxch=awgn(tx_tmp,SNR,'measured');rx_buf(1,:,rev)=rx_buf(1,:,rev)+txch;end%+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++rx_spectrum=reshape(rx_buf(1,:,rev),addprefix_length,co_time+1); rx_spectrum=rx_spectrum(cp_length+1:addprefix_length,:);FFT_tx_buf=fft(rx_spectrum);spectrum_matrix=FFT_tx_buf(carriers,:);Y_buf=(spectrum_matrix(:,2:co_time+1));Y_buf=conj(Y_buf');spectrum_matrix1=spectrum_matrix(:,1);Wk=exp((-2*pi/carrier_count)*i);L=10;p=zeros(L*Nt,1);for jj=1:Ntfor l=0:L-1for kk=0:carrier_count-1p(l+(jj-1)*L+1,1)=p(l+(jj-1)*L+1,1)+spectrum_matrix1(kk+1,1)*conj(tx_ training_symbols(kk+1,jj))*Wk^(-(kk*l));endendend%q=zeros(L*Nt,L*Nt);%for ii=1:Nt% for jj=1:Nt% for l1=0:L-1% for l2=0:L-1% for kk=0:carrier_count-1% q(l2+(ii-1)*L+1,l1+(jj-1)*L+1)=q(l2+(ii-1)*L+1,l1+(jj-1)*L+1)+tx_training_symbols(kk+1,ii)*conj(tx_t raining_symbols(kk+1,jj))*Wk^(-(kk*(-l1+l2)));% end% end% end% end%end%h=inv(q)*p;h=p/carrier_count;H_buf=zeros(carrier_count,Nt);for ii=1:Ntfor kk=0:carrier_count-1for l=0:L-1H_buf(kk+1,ii)=H_buf(kk+1,ii)+h(l+(ii-1)*L+1,1)*Wk^(kk*l);endendendH_buf=conj(H_buf');RRR=[];for kk=1:carrier_countY=Y_buf(:,kk);H=H_buf(:,kk);for co_ii=1:num_Xfor co_tt=1:size(eta,2)if eta(co_ii,co_tt)~=0if coj_mt(eta(co_ii,co_tt),co_ii)==0r_til(eta(co_ii,co_tt),:,co_ii)=Y(eta(co_ii,co_tt),:);a_til(eta(co_ii,co_tt),:,co_ii)=conj(H(epsilon(eta(co_ii,co_tt),co_ii),:));elser_til(eta(co_ii,co_tt),:,co_ii)=conj(Y(eta(co_ii,co_tt),:));a_til(eta(co_ii,co_tt),:,co_ii)=H(epsilon(eta(co_ii,co_tt),co_ii),:);endendendendRR=zeros(num_X,1);for iii=1:num_Xfor ttt=1:size(eta,2)if eta(iii,ttt)~=0RR(iii,1)=RR(iii,1)+r_til(eta(iii,ttt),1,iii)*a_til(eta(iii,ttt),1,iii)*delta(eta(iii,ttt),iii);endendendRRR=[RRR;conj(RR')];endr_sym=pskdemod(RRR,M_psk,0);re_met_sym_buf(:,tt:tt+Nt-1,rev)=r_sym;endendre_met_sym=zeros(baseband_out_length,1,Nr);for rev=1:Nrre_met_sym_buf_buf=re_met_sym_buf(:,:,rev);re_met_sym(:,1,rev)= re_met_sym_buf_buf(:);re_met_bit(:,:,rev)=de2bi(re_met_sym(:,1,rev));for con_dec_ro=1:baseband_out_length if re_met_sym(con_dec_ro,1,rev)~=de_data(con_dec_ro,1)n_err_sym(1,rev)=n_err_sym(1,rev)+1;for con_dec_co=1:bits_per_symbolifre_met_bit(con_dec_ro,con_dec_co,rev)~=baseband_out(con_dec_ro,con_dec_co)n_err_bit(1,rev)=n_err_bit(1,rev)+1;endendendend%+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++graph_inf_sym(SNR-snr_min+1,1,rev)=SNR;graph_inf_bit(SNR-snr_min+1,1,rev)=SNR;Perr_sym(1,rev)=n_err_sym(1,rev)/(baseband_out_length); graph_inf_sym(SNR-snr_min+1,2,rev)=Perr_sym(1,rev);Perr_bit(1,rev)=n_err_bit(1,rev)/(baseband_out_length*bits_per_symbol);graph_inf_bit(SNR-snr_min+1,2,rev)=Perr_bit(1,rev);%+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++endendfor rev=1:revx_sym=graph_inf_sym(:,1,rev); y_sym=graph_inf_sym(:,2,rev);subplot(Nr,1,rev);semilogy(x_sym,y_sym,'b-*');axis([2 16 0.0001 1]);xlabel('ÐÅÔë±È/dB');ylabel('ÎóÂëÂÊ');grid on%hold onend%hold off%for rev=1:rev%x_bit=graph_inf_bit(:,1,rev);%y_bit=graph_inf_bit(:,2,rev);%subplot(2,1,2);%semilogy(x_bit,y_bit,'k-v');%axis([2 16 0.0001 1]);%xlabel('SNR, [dB]');%ylabel('Bit Error Probability');%grid on%hold on%end%hold offdisp('--------------end-------------------');%+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++% ************************beginning offile*****************************%training_symbol.mfunction tx_training_symbols=training_symbol(Nt,carrier_count)j=sqrt(-1);Wk=exp((-2*pi/carrier_count)*i);training_symbols= [ 1 j j 1 -1 -j -j -1 1 j j 1 -1 -j -j -1 1 j j 1 -1 -j -j -1 1 j j 1 -1 -j -j -1 1 j j 1 -1 ...-j -j -1 1 j j 1 -1 -j -j -1 1 j j 1 -1 -j -j -1 1 j j 1 -1 -j -j -1 1 j j 1 -1 -j -j -1 1 ...j j 1 -1 -j -j -1 1 j j 1 -1 -j -j -1 1 j j 1 -1 -j -j -1 1 j j 1 ]';tx_training_symbols=[];for ii=1:carrier_counttraining_symbols_buf=[];for jj=1:Nttraining_symbols_buf=[training_symbols_buf,Wk^(-floor(carrier_count/N t)*(jj-1)*ii)*training_symbols(ii,1)];endtx_training_symbols=[tx_training_symbols;training_symbols_buf];end%************************end of file**********************************(二)自选习题部分实例二:clear;reg=ones(1,9);coeff=[1,0,0,1,0,1,1,0,0,1];N=2^length(reg)-1;for k=1:Na_n=mod(sum(reg.*coeff(1:length(coeff)-1)),2);reg=[reg(2:length(reg)),a_n];out(k)=reg(1);endout=2*out-1;for j=0:N-1rho(j+1)=sum(out.*[out(1+j:N),out(1:j)])/N;endj=-N+1:N-1;rho=[fliplr(rho(2:N)),rho];plot(j,rho);axis([-10 10 -0.1 1.2]);运行结果:实例三:clear;reg=ones(1,6); 寄存器初始状态,全1,寄存器级数为6coeff=[1,0,0,0,0,1,1]; 抽头数cr,---,c1,c0取决于特征多项式N=2^length(reg)-1; 周期for k=1:N 计算一个周期的m序列输出a_n=mod(sum(reg.*coeff(1:length(coeff)-1)),2); 反馈reg=[reg(2:length(reg)),a_n]; 寄存器移位,反馈out1(k)=2*reg(1)-1; 寄存器最低位输出,转换为双极性序列endreg=ones(1,6);coeff=[1,1,0,0,1,1,1];for k=1:Na_n=mod(sum(reg.*coeff(1:length(coeff)-1)),2);reg=[reg(2:length(reg)),a_n];out2(k)=2*reg(1)-1;endfor j=0:N-1R(j+1)=sum(out1.*[out2(1+j:N),out2(1:j)]); 计算相关函数endj=-N+1:N-1;R=[fliplr(R(2:N)),R];plot(j,R);axis([-N N -20 20]);xlabel('j');ylabel('R(j)');max(abs(R))运行结果:(三)总结与体会经过两个星期的仿真实训,我初步了解了基于MATLAB的MIMO通信系统仿真。