【《基于matlab的OFDM仿真系统设计研究》10000字】_第1页
【《基于matlab的OFDM仿真系统设计研究》10000字】_第2页
【《基于matlab的OFDM仿真系统设计研究》10000字】_第3页
【《基于matlab的OFDM仿真系统设计研究》10000字】_第4页
【《基于matlab的OFDM仿真系统设计研究》10000字】_第5页
已阅读5页,还剩28页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

-PAGEIII-基于matlab的OFDM仿真系统设计研究摘要无线通信技术的发展对无线网络提出了更高的要求,更高的传输速度、更高的通信可靠性成为了人们对无线通信系统的追求目标。正交频分复用(OFDM)技术对无线通信信道的时延扩展具有很高的抵抗能力,能够明显减弱符号间的影响。因此它的发展前景非常广阔。本文首先介绍了OFDM系统的基本原理,然后研究OFDM系统,论述了实现OFDM的关键技术,最后利用matlab软件设计了OFDM系统的仿真平台。该仿真平台应包括仿真界面和OFDM算法两部分,实现OFDM系统参数的自定义、仿真结果显示等功能。仿真结果表明:OFDM技术可以在信道带宽不变的情况下保证多根天线信号的可靠传输。关键词:正交频分复用,仿真平台,仿真界面,matlab软件目录9238摘要 I20922目录 III13659第一章引言 493051.1课题的背景和意义 4245591.2国内外研究现状 4207161.3论文主要研究工作及组织结构 56762第2章OFDM系统 744802.1OFDM基本原理 7303982.2OFDM主要技术 922513第3章OFDM仿真系统的设计 18287403.1Matlab仿真环境 18264873.2基于Matlab语言的仿真界面设计 1896113.3基于GUIDE的仿真界面设计 1950463.4OFDM仿真主程序的设计 23219404.1基于Matlab语言的仿真界面的实现 2626014图4-1OFDM仿真界面的程序结构 26251374.2基于GUIDE的仿真界面的实现 2949664.3OFDM系统仿真的实现 30258382、部分子程序说明 3329455第5章总结与展望 37第1章引言1.1课题的背景和意义通信产业发展迅速,从最初的电报业务到固话业务,再到网络业务;从最初的文本传输到语音传输,再到现在的多媒体传输信。人们对通信服务质量、通信服务种类要求都在不断提高。为了更好地提供实现全业务、高速度、无缝覆盖和高质量的优质服务,移动通信系统需要面临许多问题,例如移动信道会对信号产生多径干扰,造成信号符号互相干扰,降低了传输速率。为了克服移动信道的多径干扰,提高传输速率,采用正交频分复用(OFDM)技术可以有效地和改善系统性能,同时满足大容量、高速率的用户需求。正交频分复用是一种基于多载波调制的数字通信技术,它通过串并转换处理将高速信息流变成低速信息流,利用许多相互正交的子载波上进行传输。这样增加了每个符号的传输时间,起到了抗多径时延干扰的作用,同时采用循环前缀起到间隔保护作用,从而达到消除移动信道时延扩展带来的码间干扰。除此之外,正交频分复用技术允许子载波的频谱有部分重叠,提高了系统的频谱利用率。作为一种可以有效克服码间干扰的高速数据传输技术,正交频分复用技术受到许多研究人员的广泛关注,并在数字视频广播、移动通信、无线局域网等领域得到应用。因此,研究正交频分复用技术具有重大的实际意义。1.2国内外研究现状在1970年,基于多载波调制的OFDM系统出现了。然而在以后的相当长时间内,OFDM系统发展缓慢。这是因为在实际应用中,OFDM所需的载波振荡电路不稳定、射频功率放大器不满足线性要求等因素限制了OFDM系统的发展。随着通信技术和大规模集成电路的发展,这些技术难题得到解决,促进了OFDM的快速发展。目前OFDM系统的研究主要体现在以下方面:

(1)同步

OFDM系统的同步分为粗同步和细同步两个阶段。在上行通信链路中,为了满足子载波间的正交性,OFDM同步必须保证来自不同终端的信号同时到达基站。在下行通信链路中,基站向各个终端发送同步信号,所以下行链路的同步电路相对简单,容易实现。具体实现OFDM同步时,既可以单独从时域或频域进行同步,也可以同时从时域和频域进行同步。

(2)信道估计

OFDM系统的信道估计主要面临两个问题::一是导频符号的选择。由于移动通信信道一般是衰落信道,OFDM系统需要不断地发射导频符号,才能不断地检测信道情况;二是信道估计电路结构简单,实现复杂度较低。在实际应用中,信道估计性能与导频符号的选择、导频符号的传输方式密切相关。信道编码和交织

交织和信道编码是提高OFDM系统性能的常用方法,但这两种方法的使用目的不同,交织方法应对OFDM系统出现的随机错误,而信道编码方法应对OFDM系统出现的突发错误。实际工程中,OFDM系统通常同时采用信道编码方法和交织方法。降低峰值平均功率比

在时域上,OFDM信号可以表现为若干个相互正交的子载波信号的叠加,这些信号的叠加会产生最大峰值功率。为了防止高峰值平均功率比的OFDM信号不发生失真,发送设备的高功率放大器(HPA)必须保证线性度,从而导致发送效率极较低。除此之外,接收设备的数模变换器、前端放大器也要保证线性度。因此,高峰值平均功率比造成OFDM系统性能下降,甚至会影响系统的实际应用。为了解决这一问题,人们提出了基于信号畸变技术、信号扰码技术和基于信号空间扩展等降低OFDM系统PAPR的方法。(5)自适应技术.

自适应调制技术实质是OFDM系统可以根据信道的衰落情况,自动调整每个子载波的调制方式,提高系统性能。在实际的工程应用中,还应考虑信道估计、时间间隔等各种因素。1.3论文主要研究工作及组织结构本文主要研究如何使用MATLAB软件进行OFDM通信仿真平台的构建。本文各章节安排如下:第一章首先是简述了OFDM通信系统和其中的信号检测算法的研究背景和意义、国内外研究现状,其次简单介绍了论文的主要研究工作和组织结构。第二章研究了OFDM系统的基本原理和主要技术,为之后使用MATLAB构建OFDM系统做出了理论上的铺垫。第三章阐述了基于matlab的OFDM仿真平台设计,该设计包括仿真界面的设计和OFDM程序的设计。第四章利用MATLAB软件完成了OFDM系统的仿真平台。该仿真平台实现了OFDM系统参数的自定义、仿真结果显示等功能。第3章OFDM仿真系统的设计第2章OFDM系统2.1OFDM基本原理OFDM通过串并转换处理,将高速数据流变成低速数据流,再把这些低速数据流映射处理后去调制相应的子载波,并行发送出去。OFDM允许各子载波的频谱部分重叠,大大提高了频谱利用率。在OFDM系统中的一个符号间之含有若干进行调制的子载波。N表示子载波数量,T表示OFDM符号周期,表示给子载波分派的数据符号,表示第i个子载波使用的载波频率,矩形函数,,则从时刻开始的OFDM系统符号可以表示为:(2-1)只要把传输的比特分派到各自的子载波上,不同的调制模式则将这些符号映射为子载波的幅度和相位。一般情况下,使用等效基带信号来表述OFDM系统的输出信号,(2-2)其中是的实部和虛部对应于OFDM系统符号的同相分量和正交分量,在实际系统中需要分别与对应子载波的分量和分量相乘,最后合成OFDM符号。在图2-1中给出了OFDM系统基本模型,其中。OFDM接收系统将获取到的同相和正交矢量反映射到数据信息上,最后就完成了子载波在OFDM系统下的解调。如图2-2所示,一个OFDM符号含有四个子载波。在符号周期内,每个子载波的持续时间都是周期的整数倍,并且每个紧邻的子载波之间刚好相差1个周期持续时间。因此得出在一个符号周期内,子载波正交的条件就是:()将接收端第个子载波信号进行解调的具体过程为:把接收到的OFDM信号和第k路解调的载波相乘,接着用获得的结果在OFDM符号周期中进行积分,就能得到系统发送的信号,(2-4)从公式(2-4)能够看出,若解调第k个子载波就能够恢复出所期望的符号。2.2OFDM主要技术串并转换在采取串行方式传输数据时,可供使用的带宽总是被每个数据的频域完全占据,来实现数据的不间断传输。如果遇到多个数据被同时传输时,我们则采取并行方式来传输数据。采用并行方式,会降低串行方式出现的数据传输问题。在OFDM数据传输时,由于单个数据传输速度与时间的比值往往介于几十到几万之间,为了发挥并行传输的优势采用串并行转换的方式来传输数据。数据调制方式根据信道的变化情况,可以灵活地调整,导致子载波传所携带的数据数量会有很大的不同,因此在串行并行转换时为每个子载波预留的长度也是不同的。在接收端进行对各个子载波所携带的数据进行反向处理,恢复原始数据。当OFDM数据在移动信道内传送的时候,总会有部分子载波受到频率选择性衰落的影响,导致数据发生错误。在信道频率响应上出现的零点将影响周围子载波搭载的数据,并且产生更多的数据错误。因此,为了改善OFDM系统的传输性能,就需要在串并转换过程中引入数据加扰操作。2、调制方式调制一个信号可以依靠调整发射端发射信号的幅度、频率和发射时的相位等方式来完成。在OFDM系统中,由于需要严格保证子载波的正交性,就不应该选用频率调制的方式进行子载波调制,转而对子载波的振幅和相位调制作为调制载体的方法。在频率调制中信号的频率需要成为信息载体,频率调制会让子载波在信道中的正交性被破坏,故本技术不会涉及频率调制的技术。在现实中调制短波通信会使用QPSK和MQAM两种方式。在OFDM系统中进行幅度相互正交的调制操作需要控制子载波的幅度和相位发生改变,也就是由振幅调制(ASK)与频率调制(FSK)相结合。矩形的QAM信号更容易由系统制造出来也易于进行解调验证等优点。矩形4QAM星座点对应的比特为2,16QAM星座点对应的比特为4,64QAM星座点对应的比特为6,使用QAM方式调制的每一步的长度必须为2,在某些情形下使用MQAM调并不方便。使用QPSK技术进行调制,第一个优势是QPSK调制可以随意传输任意为自然数个数的比特,其中Q表示任意自然数的两倍。QPSK调制技术的第二个优势就是它的调制方法是对等能量的调制,不会因为星座点的能量分部不均匀导致系统的峰值功率与平均功率之比太大,而影响OFDM系统的稳定性。但是QPSK在Q的值较大的时候性能远远不如QAM调制好。因为以上两种调制方法各有优势与不足之处,所以在调制子信道时需要动态地在这二者中选择更合适的调制方式。选择调制方式的时候需要考虑数据传输速率、频谱效率与利用率、传输途中的可靠性还有在信息传输时出现谬误的概率等方面后做出相对最优的选择。根据图2-4(a)所展示的多相调制矢量,在实际生活中广泛应用的数字通信系统中,提高某一个系统的传输信号的速率,通常会用系统载波的一个相位去搭载一段完整的二进制信息,如图2-4(b)与图2-4(c)所显示的。在传送数字信息时QPSK技术使用了四种相位来描述数字信号的特征。在QPSK调制中,QPSK组件将被系统输入的二进制信息根据每二位数字凑成一个组,将原本的二进制信息拼接为双比特码元。不难看出这些组合只有2种,但是有种不同状态,可以用种相位或相位差来表示。其中,因此这种调制方式被人们命名为四相调相。同样的道理QPSK也存在八相的调制方式,与四相调相不同的是八相调相是在一个周期中一次向接受端传递3位有效的信息,八相调制的信息传送效率一般认为是普通二相调制的3倍。进一步可以说明,在多相调制中使用的级数的数量和系统的传输速率是呈现正相关的,但是采用QPSK调制紧邻的子载波的相位差却会越来越小,在接收端区分相邻子载波的复杂度和困难程度也越来越大,最后导致传输出现谬误的可能性大大增加。综上所述在实际中使用的诸多调相技术中,常用到四相和八相调相这两种对于解调相对友好的调制方式。四相调制时使用四种不同的相位和二进制数据信息相互组合,考虑到二进制数必须和四相调制的四个相位一一对应起来,所以二进制数使用两位数来完成对应。通过和两种分配方式我们可以载波均匀地分成四种相位。实际电路的设计中四相调相电路的设计也采用的以上提到的两种分配方式,所以调相系统往往有系统和系统的区别。我们可以在表2-1中看到两个调相系统双码元和载波相位的存在的一些映射关系。我们根据表2-1能够分析得出,在已调制载波映射的相邻的双比特码元之间,最多有一位双比特码元与先前的码元不一致。所以为了提高OFDM系统的频带传输数字信息时的可靠性,在进行解调时通常采用格雷码,此码可以大大的帮助系统减少因为相位相近的造成解码器误判而产生的谬误。系统将会获得两路由二进制数经过串并转换后生成的序列(序列a和序列b)。从a、b两序列中依次取出一个a和一个b便可以组成一个双比特码元,数模变换器拥有四种将双比特码元数据进行组合方式。,系统得到QPSK信号需要将两路码元信号重新进行叠合,而这两路信号是从a路和b路分别进行平衡调制得到的。调制和解调框图放在下文的图3-1和图3-2中展示了。调制过程:(1)a路序列用表示,记为函数。(2)b路序列也用表示,但记为函数。(3)由对载波完成调制,使用对进行调制。(4)用信号加上信号,就产生了QPSK信号。然后在实际的系统设计调制电路时,所依据的数学表达式为:解调过程:(1)将调制产生的信号与载波的相关数据相乘。(2)信号经过滤波器除去高次的谐波,从滤波器后得到一个常数。(3)运用抽样判决获取:当是,将判信息判断为0,当时,将信息判断为1。(4)解调的信息由两路信号经判决后得到的信息进行并串转换的得到。相位模糊是QPSK技术解调时必须解决的一个问题,而且载波存在不止一个相位模糊。要解决这个问题,调制系统需要先进行差分编码,再使用相位调制。系统在解调时,要先完成相位解调,再来解译差分编码。差分编码可以帮助系统解决一部分的由于相位模糊造成的数据传输错误,但是由此编码方式本身产生的错误信息会导致原本正确的译码出现错误,从而减低了系统本身的有效信息传递效率。3、DFT变换离散傅里叶变换(DFT)在时域和频域都是离散的,在实际中常常使用快速傅里叶变换(FFT)来计算DFT。由于FFT的高效,使得OFDM技术得以更快速的发展。在N值较大的系统中,如公式(2-2)中的等效基带信号也能使用离散傅里叶逆变换来完成。为简化书写可以让公式(2-2)中的,省略矩形函数,并且对信号以的效率进行抽样得到公式(2-5):(2-5)等同为对进行运算。在接收时进行IDFT,为复原初始数据信号,需要对进行逆变换得到以下公式:(2-6)由公式(2-5)和公式(2-6)的分析可以得出,OFDM系统的调制是IDFT的过程,而解调是IDFT的逆过程DFT。OFDM系统把频域中的数据信息利用IDFT变换为时域的数据信息经过调制之后,由天线发射进信道中,其中每个IDFT输出的数据信息是由全部子载波信号经过叠合形成的。在实际应用中,OFDM系统通常采用简便高效的IFFT/FFT算法。N个点的IDFT算法处理过程需要完成N的二次方数量的复数乘法,而IFFT可以使得运算时间大幅度降低。4、傅里叶变换过采样在现实中应用OFDM技术时,如果对OFDM的一个符号信息进行多次取样,又或者在多个点进行IFFT运算获得到地对应数量的输出信息有时并不能很好的的反馈出不间断OFDM系统符号信息会变化的特性。会产生这种误差的原因可能是:在取样点送到模数转换器(A/D)时,因为没有进行过采样,导致了虚假信号的产生,这会极大的影响OFDM系统的可靠性。这种虚假信号的特征是,如果使用比二倍最高频率低的频率进行取样时,还原样本值后获得的信息中丢失了原始信息中的高频部分,仅仅得到了虚假的低频信号。为了提高系统传输的有效性对此类信号,一般采用过采样OFDM信号的方式的解决。过采样就是在已有的取样点中间加入若干额外的取样点,来凑够aN(a为整数)个样本值。此方式也可以通过借由IFFT/FFT来完成。在系统进行IFFT运算的时候,要在初始的N个输入值中间添加数量为(a-1)N个的“0”,进行FFT的运算时,则需在原有的N个输入值的后面加如数量为(a-1)N个“0”。实质上过采样是使用在原本的取样点中通过超量计算的方式提高结果精度的技术。通过计算结果得知,如果需求的子载波的数量不是二的整数次幂时,便要填充频率为零的子载波,零子载波需要按照上面描述的方式填充在适当的位置。通过实验比较可以发现,在外部干扰相同的状态下,由傅里叶过采样得到的信号误码率明显优于没有经过过采样得到信号的误码率。5、OFDM同步OFDM系统同步就是要保证OFDM通信系统的发射设备和接收设备在时间上保持步调一致。OFDM系统涉及的同步技术主要有三个方面,及通信系统对于发送的符号、获取的样值和选取的载波三个方面的同步。同步误差会带各种各样的干扰,严重的时候还会损害各个系统之间载波的正交性降低发送端信息传递的效率,也使得接收端无法正确有效的解调出发送端传递的信息。在多载波系统中子信道间的干扰在客观上有很多因素,有时也由频率偏移产生。在移动通信系统中,当终端的移动速度过快,或者自然信道存在的环境不适宜信息传输,都会让通信的质量变得极度不稳定,因此研究OFDM系统的同步技术,提高信息收发两端的系统同步精准度,变得十分有意义和重要。故在接收端开始为通信系统接收信息之前,要求先进行时域和频域的同步工作。第一个是系统需要检验接收信号的载波以确保载波没有发生偏移,如有则需要校正载波的偏移,并且进行系统估计。第二个是尽量选取最佳的取样方案设置合适的时钟完成采样,设法降低由各类干扰带来的负面影响(比如载波干扰),明确符号的界限。OFDM同步技术包括:(1)符号同步:在OFDM系统中将符号同步依据符号的精度不同分为符号的细同步和粗同步。细同步一般用在系统采样、载波同步后来消除之前的操作没有被完全消除的同步偏差;而粗同步相对于符号细同步它所要求精准度并不高,常常被应用在系统的接收端完成快速傅里叶变换之前进行,用来提高接受符号的准确性。(2)采样同步:在系统中采样同步使用快速傅里叶变换作为核心算法,第一步是进行对于模拟信号进行转换,使连续的模拟变为不连续的数字信号,由系统的软件来决定何时取得模拟信号的样本;第二步要将取得的不连续的采样信号进行解调。(3)载波同步:载波同步的原理是在接受端设备上制造一个本地振荡并且要求这个振荡与载波同频率和相位,来完成后续的解调工作。在整个OFDM系统中接收信号的载波与发送的载波难免在信道传输中出现一定的误差,如果存在频率误差会破坏系统子载波之间的正交关系,若是在相位上出现误差,会造成相位模糊的问题。同步偏移对OFDM系统性能的影响体现在以下方面:载波频率偏差对OFDM系统性能的影响。载波频率偏差有小数部分带来的频率偏差也有整数部分造成的频率偏差。两种偏差的区别是:整数频率偏恰好是载波间隔的整数倍数,它的影响仅仅是造成了符号信息传输时在信道上的位置会发生平行偏移,但当子载波间隔和载波频率偏差是小数倍数时(这种频偏被称分数频偏或者小数频率偏),会让子信道间互相干扰影响正常的信号传输。载波同步问题的解决方案有两个步骤:第一步是进行设法捕获出现的各种频偏,系统在运用PN序列来大范围高效率且快速的捕获接受端整数部分的频偏。PN序列只能帮助消除整数部分的频偏。第二步是建立在第一步的基础上,由于第一步已经将捕获的频率限制在一个相对较小的范围内,要用跟踪手段比如盲估计方法和辅助数据法来继续消除频率偏移。OFDM系统的符号制造保护间隔的方法是在符号间加入了常规循环前缀(cp),所以严格控制定时同步开始的时间在插入循环前缀中的变化,就会大大降低单个符号对后面的符号产生码间干扰的情况发生,缺点是会增大系统的能量消耗,损失额外的能量。根据图3.1可以得到,只要运算窗口(FFT运算)滑动到OFDM符号定时同步所允许的范围之外,就会引发码间干扰影响系统同步。因此OFDM系统必须宽松的处理符号的定时同步来减少子载波干扰和码间干扰。由此造成的性能下降,必须要依靠精准的符号定时来平衡。通常只要在保护间隔内符号定时的开始时间可以在这段时间内自由的选取,但是选择不同开始时间带来的变化会让OFDM系统的性能产生一些对信息传递不友好的变化,因此将符号定时同步的偏差控制在一个尽可能小的范围中十分的有必要。6、信道估计OFDM系统的信道估计实质是根据接收的OFDM数据,估计多径信道模型的参数。常用的信道估计算法包括:盲估计算法、已知OFDM数据的估计算法。盲估计算法利用接收的OFDM数据中包含的数学信息来实现信道估计。与基于已知OFDM数据的信道估计算法相比,它可以提高OFDM通信系统的有效性。但其灵活性不足、计算量太大,限制了在OFDM通信系统的应用。已知OFDM数据的信道估计算法是指OFDM接收机利用已知数据来进行信道估计,其缺点是已知数据占用了一定的信息比特,降低了OFDM通信系统的有效性。对于单载波通信系统,只能在时域上插入已知数据;但对于OFDM通信系统,由于其具有时域和频域的二维结构,因此可以在时域和频域同时插入已知OFDM数据。OFDM仿真系统的设计3.1Matlab仿真环境Matlab软件由Mathworks公司设计,广泛应用于科学研究、工业设计、金融预测、图像处理等领域。它具有以下显著特点:(1)数值和符号的计算功能Matlab软件支持以下数值计算:积分运算、微分运算、多项式运算、数据曲线拟合、矩阵运算、数学统计分析、数组运算等。除数值计算功能外,matlab软件还具有强大的符号计算功能。符号计算允许变量可以不用定义,而数值计算要求变量必须有定义。对于符号计算,C、C++等一般程序软件不容易实现,但是matlab软件不仅可以借助符号工具箱,也可以借助Maple软件来实现。(2)简单易学

Matlab软件的指令表达式与常用的数学表达式十分相似,简单易学。对于数学问题的求解,用matlab软件处理要比用C、C++等高级语言软件处理简洁得多。尽管matlab软件的执行效率与其它高级语言软件相比较低,但是它的编程效率,语言可读性、可移植性相对较高。(3)图形的可视化功能利用matlab软件不仅可以轻易地绘制直线、曲线或曲面,还可以完成坐标的转换、动画的绘制、图形的叠绘等工作。除此以外,matlab软件还提供了对图形句柄或对象进行操作的指令,方便用户进行各种操作,为用户在可视化方面开拓了一个广阔的发挥空间。3.2基于Matlab语言的仿真界面设计Matlab语言为仿真界面的设计提供了很多的编程对象,它们之间的相互关系如图6-1所示。建立在根对象之下的是图形窗口对象,每个图形窗口对象下可以有4种对象,即菜单对象、控件对象、坐标轴对象和右键快捷菜单对象。用图形编程对象设计OFDM仿真界面,可以直接对OFDM通信系统的子载波数等参数进行修改。OFDM通信系统的主要参数包括:子载波数、符号总数、IFFT长度、循环前缀长度、调制方式等。因此在OFDM界面设计使用不同的图形编程对象,例如通过文本框直接输入数值,进行子载波数的设置;通过下拉菜单方式选择调制方式。图3-1图形编程对象关系的示意图3.3基于GUIDE的仿真界面设计图形用户界面开发环境(GUIDE)的简称,是MATLAB软件为用户界面的设计程提供的基于图形界面的集成化开发环境,简化了用户界面的设计过程。GUIDE是一个工具集,能够将设计好的用户界面保存在一个*.fig文件中,同时还会生成一个用户界面控件和布局的编程代码*.m文件。具体设计步骤如下:1.打开MATLAB仿真平台,在功能菜单中选择“新建”→APP→GUIDE如图4-1所示。 图3-1创建GUIDE单击GUIDE选项卡后,弹出一个窗口如图4-2所示,选择BlankGUI(Default),点击“确定”按钮,就会生成一个空白GUI文件,如图4-3所示,左侧是可以选择的控件。图4-2选择GUDIE后的界面图4-3仿真窗口设计界面选择“文件”选项,打开其中的“预设”选项卡,浏览左侧列表选择“GUIDE”选项,勾选“在组件选项板中展示名称”并单击应用完成设置来帮助完成此次设计,如图4-4所示。图5-4修改预设配置在左侧选择单击需要的组件,并在操作区域拖动鼠标,在合适的位置放置所需的组件,完成此次仿真设计需要生成:一块面板、六个静态文本框、五个可编辑文本框、一个弹出式菜单、两个按钮、一个坐标区,如图4-5所示。图4-5放置界面组件双击需要修改的组件打开检查器,修改相应的属性。例如:双击面板将“String”属性设置为“参数面板”;将面板里的六个静态文本的“String”字段依次设置为“子载波数”、“总符号数”、“IFFT长度”、“循环前缀”、“循环后缀”、“调制方式”,并且统一将他们的字号属性“FontSize”设置为“12.0”;将另一侧与静态文本框的可编辑文本框的“String”属性依次设置为“200”、“100”、“512”、“128”、“20”;将弹出式菜单的“String”属性列表打开并依次填入“QPSK”、“QAM16”,把字号属性“FontSize”设置为“12.0”,将两个按钮的“String”属性依次设置为“计算”、“退出”并将字号属性“FontSize”设置为“12.0”。完成设置后得到图4-6。 图4-6完成部分参数设置的GUI界面为GUI界面添加回调函数。保存过GUI界面后我们得到了“OFDM.fig”文件和“OFDM.m”文件,打开“OFDM.m”文件并找到“计算”按钮的“Callback”函数,将OFDM仿真使用的函数编写在“计算”按钮的“Callback”函数下。点击计算,得到仿真结果。3.4OFDM仿真主程序的设计图4-6完成部分参数设置的GUI界面如图所示,OFDM系统仿真流程如下:随机产生的二进值随机序列经过串并转换后,通过调制、IFFT、加循环前缀、加窗函数等处理,形成OFDM符号数据。这些数据经过高斯白噪声信道后,通过去循环前缀、FFT变换、解调、并串转换等处理,恢复出数据。致谢第四章OFDM系统仿真平台的实现4.1基于Matlab语言的仿真界面的实现用matlab语言设计OFDM仿真界面,可以直接对OFDM系统各参数进行修改,OFDM仿真界面的程序结构如图4-1所示:图4-1OFDM仿真界面的程序结构图4-2OFDM仿真界面当运行ofdm_gui.m后就出现OFDM仿真界面,如图4-2所示。仿真界面程序ofdm_gui.m部分关键代码如下:functionfig=ofdm_start()h0=figure('Units','points',...'Color',[0.80.80.8],...'Colormap',mat0,...'FileName','ui_start.m',...'MenuBar','none',...'Name','OFDM仿真平台',...'NumberTitle','off',...'PaperPosition',,...'PaperUnits','points',...'Position',[20100.5575.25220.5],...'Resize','on',...'Tag','UIFigure',...'ToolBar','none');%调制方式的参数设置h1=uicontrol('Parent',h0,...'Units','points',...%调制方式背景颜色'BackgroundColor',[0.7529411764705880.7529411764705880.752941176470588],...%字体型号'FontSize',10,...'HorizontalAlignment','left',...'ListboxTop',0,...'Position',[18.7593.75168.7518.75],...'String','调制方式',...'Style','text',...'Tag','StaticText1');h1=uicontrol('Parent',h0,...'Units','points',...'BackgroundColor',[0.7529411764705880.7529411764705880.752941176470588],...'ListboxTop',0,...'Position',[112.593.757518.75],...'String',['16QAM'],...%下拉菜单'Style','popupmenu',...'Tag','ofdm_modulation',...'Value',1);h1=uicontrol('Parent',h0,...'Units','points',...'BackgroundColor',[0.7529411764705880.7529411764705880.752941176470588],...'BusyAction','cancel',...'Callback','ofdm_start',...'Interruptible','off',...'ListboxTop',0,...'Position',[45018.7593.7518.75],...'String','计算',...'Tag','Pushbutton1');%运行主程序OFDMifnargout>0,fig=h0;end4.2基于GUIDE的仿真界面的实现 图4-3OFDM的GUI界面基于GUIDE的仿真界面的部分代码如下:functionradiobutton1_Callback(hObject,eventdata,handles)%hObjecthandletoradiobutton1(seeGCBO)%handlesstructurewithhandlesanduserdata(seeGUIDATA)carrier_number=str2num(get(handles.carrier_number1,'string'))%子载波数symbol_number=str2num(get(handles.symbol_number1,'string'))%符号总数ifft_length=str2num(get(handles.ifft_length1,'string'))%IFFT长度CP_length=str2num(get(handles.CP_length1,'string'))%循环前缀%下拉框内容调制方式contents=cellstr(get(handles.popupmenu1,'String'));modtype=contents{get(handles.popupmenu1,'Value')};switchupper(modtype)case'16QAM'Nbps_set=[1]case'QPSK'Nbps_set=[2];case'BPSk'Nbps_set=[4];end4.3OFDM系统仿真的实现1、OFDM仿真主程序主程序关键代码如下:bit_length=carrier_number*symbol_number*bit_per_symbol;bit_stream=round(rand(1,bit_length))';%列向量%子载波调制方式carrier_position=29:228;conj_position=485:-1:286;bit_qammod=qammod(bit_stream,16,'InputType','bit');figure('position',[00400400],'menubar','none');scatter(real(bit_qammod),imag(bit_qammod));title('调制后的散点图');gridon;ifft_position=zeros(ifft_length,symbol_length);bit_moded=reshape(bit_qammod,carrier_length,symbol_length);figure('position',[4000400400],'menubar','none');stem(abs(bit_moded(:,1)));gridon;ifft_position(carrier_position,:)=bit_qammod(:,:);ifft_position(conj_position,:)=conj(bit_qammod(:,:));signal_time=ifft(ifft_position,ifft_length);figure('position',[0400400400],'menubar','none');subplot(3,1,1)plot(signal_time(:,1),'b');title('原始单个OFDM符号');xlabel('Time');ylabel('Amplitude');signal_time_C=[signal_time(end-CP_length+1:end,:);signal_time];subplot(3,1,2);plot(signal_time_C(:,1));xlabel('Time');ylabel('Amplitude');title('加CP的单个OFDM符号');signal_window=zeros(size(signal_time_C));signal_window=signal_time_C.*repmat(rcoswindow(alpha,size(signal_time_C,1)),1,symbol_count);subplot(3,1,3)plot(signal_window(:,1))title('加窗后的单个OFDM符号')xlabel('Time');ylabel('Amplitude');signal_Tx=reshape(signal_window,1,[]);signal_origin=reshape(signal_time_C,1,[]);windowed_Tx=zeros(size(signal_Tx));figure('menubar','none')subplot(2,1,1)plot(signal_Tx_mult)title('多径下OFDM信号')xlabel('Time/samples')ylabel('Amplitude')subplot(2,1,2)plot(signal_Tx)title('单径下OFDM信号')xlabel('Time/samples')ylabel('Amplitude')figureorgin_aver_power=20*log10(mean(abs(fft(signal_time_C'))));subplot(2,1,1)plot((1:length(orgin_aver_power))/length(orgin_aver_power),orgin_aver_power)holdonplot(0:1/length(orgin_aver_power):1,-35,'rd')holdoffaxis([01-40max(orgin_aver_power)])gridontitle('未加窗信号频谱')%====================加窗信号频谱=========================orgin_aver_power=20*log10(mean(abs(fft(signal_window'))));subplot(2,1,2)plot((1:length(orgin_aver_power))/length(orgin_aver_power),orgin_aver_power)holdonplot(0:1/length(orgin_aver_power):1,-35,'rd')holdoffaxis([01-40max(orgin_aver_power)])gridontitle('加窗信号频谱')%========================加A

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论