毕业论文-基于MATLAB平台的DFDM系统的仿真与分析_第1页
毕业论文-基于MATLAB平台的DFDM系统的仿真与分析_第2页
毕业论文-基于MATLAB平台的DFDM系统的仿真与分析_第3页
毕业论文-基于MATLAB平台的DFDM系统的仿真与分析_第4页
毕业论文-基于MATLAB平台的DFDM系统的仿真与分析_第5页
已阅读5页,还剩37页未读 继续免费阅读

下载本文档

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

文档简介

JIANGSUUNIVERSITY本科毕业论文基于MATLAB的OFDM系统的仿真与设计不能随意改名!DesignofOFDMsystembasedonMATLAB?不能随意改名!?基于MATLAB的OFDM系统仿真设计系统的仿真与分析SimulationofOFDMsystembasedonMATLAB??专业:〔通信工程〕班级:〔2〕姓名:〔许小龙〕指导教师姓名:〔赵跃华〕指导教师职称:〔教授〕目录引言 错误!未找到引用源。?,从而使得相邻符号间不会造成串扰,不会破坏子载波间的正交性,降低误码率。?一般,循环前缀的选择是将OFDM符号尾部的一局部复制后放到前部,即将将符号周期由T增加,△T是保护间隔,也就是循环前缀。本文中也是这样选取的。保护间隔长度△T对OFDM系统的影响非常大,为了消除信道时延扩展的影响,保护间隔的长度要足够长。保护间隔的引入会带来功率和信息速率的损失,其其中功率损失可以定义为:当保护间隔占到20%时,功率损失不到1dB,信息速率的损失高达20%,但是插入保护间隔可以消除ISI和ICI的影响,因此这样的代价对OFDM系统而言是值得的。2.3OFDM系统组成OFDM系统实现如图2.3所示。在发送端,首先对二进制数据进行编码和交织,这样可以克服随机噪声和突发噪声的影响,然后进行PSK或者QAM调制,再进行串并(S/P)变换,将一路信号分成N路,通过N点的IFFT处理把数据调制到多个相互正交的子载波上并行发送,经过并串(P/S)变换得到IFFT调制后,得到的N个样点值组成的OFDM符号,然后把OFDM符号的个样点复制,添加到最前面作为一个循环前缀,用于抑制由多径衰落引起的符号间干扰(ISI),然后进行数模(D/A)转换得到要发送的信号,最后经过上变频后发送出去。二进制数据比特频域时域噪声二进制数据比特上变频S/P变换IFFT变换P/S变二进制数据比特频域时域噪声二进制数据比特上变频S/P变换IFFT变换P/S变换加CPD/A信道信道下变频信道解码P/S变换信道均衡FFT变换S/P变换去CPA/D下变频信道解码P/S变换信道均衡FFT变换S/P变换去CPA/D图2.3OFDM系统框图在接收端的过程与发送端相反,对通过信道接收到的射频信号进行下变频,然后进行模数(A/D)转换得到离散的样点,找到OFDM符号的起始位置,除去循环前缀局部,对余下的OFDM信号作N点FFT变换,信道均衡,然后进行并/串变换〔P/S〕,PSK或者QAM的解调,解交织后得到信源所发送的二进制比特数据。

第三章OFDM的系统仿真3.1MATLAB特点与功能在科学研究和工程应用中,往往要进行大量的数学计算,如矩阵运算,这些运算一般来说难以用手工精确和快捷地进行,而要借助计算机编制相应的程序做近似计算,这不仅需要对有关算法有深刻的了解,还需要熟练地掌握所用语言(用Basic、Fortran和C++等)的语法及编程技巧。对多数科学工作者而言,同时具备这两方面技能有一定困难。通常,编制程序也是繁杂的,不仅消耗人力与物力,而且影响工作进程和效率。为克服上述困难,美国Mathwork公司推出了“MatrixLaboratory〞,(缩写为MATLAB)软件包,具有强大的工程计算能力,是一种功能强、效率高、便于进行科学和工程计算的交互式软件包。其工具箱中包括:数值分析、矩阵运算、通信、数字信号处理、建模和系统控制等应用工具程序,并集应用程序和图形于一体,便于应用到集成环境中。MATLAB的特点是编程效率高,用户使用方便,扩充能力强,语句简单,内涵丰富,具有高效方便的矩阵和数组运算和方便的绘图功能,特别适合系统仿真和设计的工作。还有3种功能。〔1〕数值和符号的计算功能〔2〕MATLAB语言〔3〕图形的可视化功能3.2OFDM系统收发机OFDM系统的收发机的典型框图如图3.1所示。对于发送端来说,首先是要产生用于仿真的二进制随机数据,编码模块的作用是为了提高系统的可靠性,降低接收端的误码率。之后的交织处理模块是为了防止突发性的错误导致连续一段数据发生错误,无法进行纠错,而人为的将数据次序打乱,从而使突发错误分散到不同的地方,有利于纠错。数字调制模块可以提高信道的频谱利用率。插入导频模块用于定时和信道估计;串并转换模块有利于降低数据流的速率;IFFT模块是数据变换形成信道上传输的多载波信号;然后将N路子载波信号叠加,即进行并串转换;参加保护间隔和循环前缀会进一步减少ICI的影响,至此完成了整个信号发送局部的基带处理。接收端局部是发送端的逆过程,将接收到的信号变换到基带后,移除保护间隔,也就可以去除符号间的干扰;经过FFT变换后,提取出用于信道估计的数据,利用信道特性对接收信号进行补偿;再经并串转换,将并行数据变为串行数据,然后进行信道校正,解调以及译码等工作后就得到所图3.1OFDM系统的Matlab仿真流程如图得到所要的二进制信号的输出。图中上半局部对应于发射机链路,下半局部对应于接收机链路。IFFT变换与IDFT变换的作用相同,只是具有更高的计算效率。由于FFT操作类似于IFFT,因此发射机和接收机可以使用同一硬件设备。接收端进行与发送端相反的操作,将射频〔RF〕信号与基带信号进行混频处理,并用FFT变换分解频域信号,子载波的幅度和相位被采集出来并转换回数字信号。IFFT和FFT护卫反变换,选择适当的变换将信号接受或发送。3.3OFDM系统仿真串行数据的产生为了便于计算把系统的仿真参数设置的较小,仿真参数为:子载波个数为4,IIFFT/FFT的长度为4,调制方式选用QPSK调制,为了最大限度的减少插入保护间隔带来的信噪比损失,希望OFDM周期长度远远大于保护间隔长度,但是OFDM符号周期越大,系统中包括的子载波数越多,使子载波间隔相应减少,系统的复杂度增加,而且还加大了系统的峰值平均功率比,同时使系统对频率偏差更加敏感。因此在实际应用中,一般选择符号周期长度是保护间隔长度的5倍,这样由于插入保护比特所造成的信噪比损失只有1dB左右。所以保护间隔的长度为有效符号周期的1/4,,即为IFFT/FFT长度的1/4,故设循环前缀的长度为1,每帧含有2个OFDM符号,信噪比为10dB。在实际应用中一般用信号发生器来产生整数随机序列。在matlab软件里产生随机序列可以使用函数rand(),生成个数为16的串行序列,函数设置为rand(1,16)即可。rand()函数产生的序列是随机可变的,3.3.2串并转换OFDM系统是多载波传输的一种特殊方式,而发送端产生的数据为串行的,因此需要进行串并转换。OFDM将高速输入的串行数据比特流转换成并行传输的低速数据流,而且串并转换之后会提高系统的抗干扰能力。串并转换的示意图如下??多行道信道1单行道信道2串行数据信道3图〔3〕?串并转换的实现方法很多,在matlab里,reshape用来把指定的矩阵改变形状,但,?但是元素个数不变,在本程序中采用reshape函数来实现串并转换,系统参数中,并并行信道的个数为4,信息量为16比特。因此将序列转换成4行4列的矩阵,函函数设置为reshape(Signal,4,4),,Signal表示发送端的穿行序列。前4bit的数据变为第一列,随后的4bit变为第二列,以此类推。3..3..3QPSK调制信号的调制方式有多种,可以通过改变发射的射频信号的幅度、相位和频率来调制信号。对于OFDM系统来说,只能采用前两种方法,而不能采用频率的调制方法,因为子载波是频率正交,并且携带独立的信息,调制子载波频率会破坏这这些子载波的正交特性。QPSK调制方案能等量调制,不会由于星座点的能量不等而为OFDM系统带来PAPR较大的问题。QPSK调制的方法有两种,一种是数字方法,另一种是相位选择法。本程序中选择的是利用数字的方法来调制信号。kmod=1./sqrt(2);ich1=ich.*kmod;qch1=qch.*kmod;qpsk_x=ich1+qch1.*sqrt(-1);%频域数据变时域m程序中的qpskmod函数是自定义的一个函数,其具体的m语言程序为:function[iout,qout]=qpskmod(paradata,para,nd,ml)m2=ml./2;paradata2=paradata.*2-1;count2=0;forjj=1:ndisi=zeros(para,1);isq=zeros(para,1);forii=1:m2isi=isi+2.^(m2-ii).*paradata2((1:para),ii+count2);isq=isq+2.^(m2-ii).*paradata2((1:para),m2+ii+count2);endiout((1:para),jj)=isi;qout((1:para),jj)=isq;count2=count2+ml;end通过将上述的发送段的并行数据进行调制后得到时域的数据为:qpsk_x=0.7071-0.7071i0.7071+0.7071i0.7071+0.7071i0.7071-0.7071i-0.7071+0.7071i-0.7071+0.7071i-0.7071-0.7071i0.7071+0.7071iQPSK调制星座图为了能够很好的观察到qpsk的调制为此在程序中将qpsk调制的星座图画了出来,具体的m语言实现为:foralfa=0:0.001*pi:2*piplot(cos(alfa),sin(alfa),'b')holdonendfori=1:Ns*para例如:对16QAM,要把输入序列调整为4行,length(g_MOD_IN_16QAM)/4列的矩阵。%%B2D:二进制向十进制转化后的结果(convertthebinarysequencetodec)%%Temp:星座图阵列(theconstellation)%%********************************************************%system_parametersswitch(mod_mode)case4%本论文采用的就是QPSK的调制方式mod_out=zeros(1,length(mod_in)/2);R=reshape(mod_in,2,length(mod_in)/2);%将输入序列转化为(2,length(x)/2)的矩阵B2D=bi2de(R','left-msb')+1;%将二进制转为十进制,注意加1,因为matlab没有a(0)项,而是从a(1)开始Temp=[-1-j-1+j1-j1+j];fori=1:length(mod_in)/2mod_out(i)=Temp(B2D(i))/sqrt(2);%归一化endotherwisedisp('Error!Pleaseinputagain');end〔2〕解调方法是调制方法的逆向运算,因本论文的仿真是以QPSK为调制和解调方法为根底的,此处就以case4〔QPSK〕为主介绍解调的实现。case4%QPSK调制d=zeros(4,length(demod_in));%'d'是信道值和星座点的距离m=zeros(1,length(demod_in));temp=[-1-j-1+j1-j1+j]/sqrt(2);fori=1:length(demod_in)forn=1:4d(n,i)=(abs(demod_in(i)*sqrt(2)-temp(n))).^2;%由信道值,求出该值与星座图中所有点的距离end%计算信道值和星座点的距离[min_distance,constellation_point]=min(d(:,i));%排序m(i)=constellation_point;endA=de2bi([0:3],'left-msb');%写出0到N-1(N为星座图点数)fori=1:length(demod_in)DEMOD_OUT(i,:)=A(m(i),:);%最小值对应的星座点序号的二进制表示即为解调结果enddemod_out=reshape(DEMOD_OUT',1,length(demod_in)*2);3.3.5不同信道环境下的系统仿真实现在本程序中,我仿真了具有64个子载波,保护间隔为16点,每帧包含5个符号的OFDM系统,局部主要程序如下:系统发送局部:Source_Bits=randint(1,2*NumOfSubcarrier*NumOfSymbolPerFrame);%产生信息序列Modulated_Sequence=modulation(Source_Bits,modulation_mode);%进行QPSK调制R_Modulated_Sequence=reshape(Modulated_Sequence,NumOfSubcarrier,NumOfSymbolPerFrame);%重置矩阵IFFT_Out_Data(:,:)=sqrt(NumOfSubcarrier)*ifft(R_Modulated_Sequence);%进行IFFT变换GI_Added_Frame(1:LengthOfGI,:)=IFFT_Out_Data((NumOfSubcarrier-LengthOfGI+1):NumOfSubcarrier,:);GI_Added_Frame((LengthOfGI+1):(NumOfSubcarrier+LengthOfGI),:)=IFFT_Out_Data(1:NumOfSubcarrier,:);%加保护间隔和循环编码Serial_Signal=reshape(GI_Added_Frame,1,NumOfSymbolPerFrame*(NumOfSubcarrier+LengthOfGI));%并串变换系统接收局部:forjj=1:NumOfSymbolPerFrameforii=1:NumOfSubcarrierGI_Removed_Rx_Signal(ii+(jj-1)*NumOfSubcarrier)=Noised_Transmited_Signal(LengthOfGI*jj+ii+(jj-1)*NumOfSubcarrier);endend%去除保护间隔Parallel_Rx_Signal=reshape(GI_Removed_Rx_Signal,NumOfSubcarrier,NumOfSymbolPerFrame);%串并变换Freq_Rx_Signal=fft(Parallel_Rx_Signal)/sqrt(NumOfSubcarrier);Demod_In_Data(1:NumOfSubcarrier,1:NumOfSymbolPerFrame)=Freq_Rx_Signal(1:NumOfSubcarrier,1:NumOfSymbolPerFrame);FFT_Out=conj(Demod_In_Data(:,1:NumOfSymbolPerFrame)');Serial_Output=reshape(Demod_In_Data,1,NumOfSubcarrier*NumOfSymbolPerFrame);%进行FFT变换Demod_Sequence=demodulation(Serial_Output,modulation_mode);%QPSK解调forjj=1:(length(Source_Bits))ifDemod_Sequence(jj)~=Source_Bits(jj)NumOfErrorBit=NumOfErrorBit+1;endendendBER(counter)=NumOfErrorBit/(NumOfFrames*NumOfSubcarrier*2*NumOfSymbolPerFrame);%计算系统的误码率以上程序是OFDM系统的实现,并没有包括信道干扰,下面考虑两种信道干扰,仅有高斯白噪声干扰和同时存在高斯白噪声干扰与多径干扰的信道。仅有高斯白噪声干扰的信道:fori=1:NumOfSymbolPerFrame*(NumOfSubcarrier+LengthOfGI)[n_In_Q]=gngauss(sgma);noise(i)=n_I+j*n_Q;end%产生高斯干扰,n_I和n_Q分别服从N(0,1)分布,noise为复数Noised_Transmited_Signal=Serial_Signal+noise;%把高斯干扰叠加到信号上同时存在高斯干扰和多径干扰的信道:fori=1:NumOfSymbolPerFrame*(NumOfSubcarrier+LengthOfGI)[n_In_Q]=gngauss(sgma);noise(i)=n_I+j*n_Q;end%产生高斯干扰,n_I和n_Q分别服从N(0,1)分布,noise为复数Ray_delay=4;%Rayleigh衰落的时延Ray_amp=0.3;%Rayleigh衰落的增益Serial_Signal_2path=[zeros(1,Ray_delay),Ray_amp*Serial_Signal(1:length(Serial_Signal)-Ray_delay)];%产生第二径衰落信号Noised_Transmited_Signal=Serial_Signal+Serial_Signal_2path+noise;%把高斯干扰叠加到两路信号上系统不同实现方式的仿真实现OFDM系统为了克服多径干扰带来的影响,需要参加保护间隔和循环编码,为了分析保护间隔和循环编码对系统误码性能的影响,在系统实现时设计了两种不同的方式,即带有保护间隔和循环编码的实现方式与无保护间隔的实现方式,下面是无保护间隔的实现方式:系统发送局部:Source_Bits=randint(1,2*NumOfSubcarrier*NumOfSymbolPerFrame);%产生信息序列Modulated_Sequence=modulation(Source_Bits,modulation_mode);%进行QPSK调制R_Modulated_Sequence=reshape(Modulated_Sequence,NumOfSubcarrier,NumOfSymbolPerFrame);%重置矩阵IFFT_Out_Data(:,:)=sqrt(NumOfSubcarrier)*ifft(R_Modulated_Sequence);%进行IFFT变换Serial_Signal=reshape(IFFT_Out_Data,1,NumOfSymbolPerFrame*NumOfSubcarrier);%并串变换系统接受局部:Parallel_Rx_Signal=reshape(Noised_Transmited_Signal,NumOfSubcarrier,NumOfSymbolPerFrame);%串并变换Freq_Rx_Signal=fft(Parallel_Rx_Signal)/sqrt(NumOfSubcarrier);Demod_In_Data(1:NumOfSubcarrier,1:NumOfSymbolPerFrame)=Freq_Rx_Signal(1:NumOfSubcarrier,1:NumOfSymbolPerFrame);FFT_Out=conj(Demod_In_Data(:,1:NumOfSymbolPerFrame)');Serial_Output=reshape(Demod_In_Data,1,NumOfSubcarrier*NumOfSymbolPerFrame);%进行FFT变换Demod_Sequence=demodulation(Serial_Output,modulation_mode);%QPSK解调forjj=1:(length(Source_Bits))ifDemod_Sequence(jj)~=Source_Bits(jj)NumOfErrorBit=NumOfErrorBit+1;endendendBER(counter)=NumOfErrorBit/(NumOfFrames*NumOfSubcarrier*2*NumOfSymbolPerFrame);%计算系统的误码率3.4仿真结果分析对系统进行仿真,画出误码率随信噪比变化的图并分析其结果。3.3.1不同信道环境下的误码特性在加性高斯白噪声干扰下的误码特性,系统及仿真参数如下;NumOfSubcarrier=64;%子载波数LengthOfGI=16;%保护间隔大小modulation_mode=4;%调制方式为QPSKNumOfSymbolPerFrame=5;%每帧符号数为5NumOfFrames=200;%仿真帧数为200SNR_in_dB=[0:12];%信噪比从0db到12db图3-1。。。如图3-1所示,用+号表示的蓝线代表理论分析的误码率,其曲线是由Qfunct函数产生的,由通信原理课程上所学知识可知,经过QPSK调制的系统在有加性高斯白噪声干扰下的理论误码率公式。图中短曲线为实际仿真出来的误码率,数量级,由图中看出,两条曲线根本吻合,说明经过QPSK调制的OFDM系统在误码性能上与原始的QPSK调制的系统的误码性能是一致的,即IFFT与FFT变换不改变系统的误码性能。图3--2。。。在多径干扰下的误码特性比拟〔有OFDM与无OFDM〕:如图3--2所示下方的线表示系统经过OFDM调制后在多径干扰下的误码性能,上方的线表示系统不经过OFDM调制情况下在多径干扰下的误码性能,由图中可以看出,OFDM调制可以降低多径干扰带来的影响,使误码性能得到改善。在加性高斯白噪声干扰和多径干扰下的误码特性,系统及仿真参数如下;:NumOfSubcarrier=64;%子载波数LengthOfGI=16;%保护间隔大小modulation_mode=4;%调制方式为QPSKNumOfSymbolPerFrame=5;%每帧符号数为5NumOfFrames=200;%仿真帧数为200SNR_in_dB=[0:12];%信噪比从0db到12dbRay_delay=4;%多径时延为4点Ray_amp=0.3;%多径衰落幅度为0.3图3--3。。。如图3--3所示,以+号表示的蓝线〔上方〕表示在有多径衰落情况下的系统误码性能,以*号表示的红线〔下方〕表示仅有加性高斯白噪声干扰下的系统误码性能。从图中可以看出,在多径干扰下的系统误码特性比加性高斯白噪声干扰下的误码性能要差许多,这主要是因为多径时延引起的码间干扰影响了系统的误码特性。多径衰落中不同时延对系统误码性能的影响;下面比拟随着多径衰落中时延的增大,系统误码性能的改变,在此次仿真中,逐渐使时延从4点开始增大,依次为10点,20点,在前两种情况下时延未超出保护间隔,而第三种情况下,时延已超出保护间隔,仿真结果如下:图3--4。。。如图3--4所示,最下方的线表示多径时延为4点的情况,中间的线表示多径时延为10点的情况,最上面的线表示多径时延为20点的情况。从图中可以看出,当信噪比比拟小的时候,这三者的误码特性几乎相同,只有到10db以后,三者的误码率才有所区别,但区别程度不大。还可从图中近一步看出,在多径时延未超出保护间隔的时候,系统误码性能比拟接近,虽然误码率会随着多径时延的增大而增大,但增加的幅度很小,而当多径时延大于保护间隔时,系统的误码率要比前两种情况大,而且增加的幅度更大。多径衰落中不同幅度对系统误码性能的影响;下面比拟随着多径衰落中幅度的增大,系统误码性能的改变,在此次仿真中,逐渐使幅度从0.3开始增大,依次为0.4,0.5,仿真结果如图3--5,最下方的线表示多径衰落中幅度为0.3,中间的线表示多径衰落幅度为0.4,最上方的线表示多径衰落为0.5。从图中可以看出,随着多径衰落幅度的增加,系统的误码率逐渐变大,而且增加的幅度比拟快。比照多径衰落中时延对误码率的影响,可以看出,系统对衰落幅度的敏感程度要远大于系统对时延大小的敏感程度。因此在以后对OFDM系统分析时,要更加注意考虑多径衰落的幅度的因素。图3--5。。。不同系统实现方式下的误码特性下面比拟在系统有保护间隔和无保护间隔时,系统的误码特性。图3--6。。。如图3--6所示,下方的线表示在系统有保护间隔和循环编码下的系统误码率,上方的曲线表示在系统无保护间隔下的误码率,可以从中看出,当系统采用保护间隔措施时,可以在一定程度上克服多径衰落带来的信道间干扰,使误码率下降,但付出的代价是使系统的容量变小,但与其带来的误码特性的改善相比,是值得的。

结论OFDM技术由于其独特的优点,逐渐受到关注。本文在对OFDM技术原理进行分析的根底上,用MATLAB软件实现了对OFDM传输系统发送,信道传输和接收的仿真。并分析了不同信道环境下的误码特性和不同系统实现方式下的误码特性。星座图的仿真实现。结果说明OFDM系统可以降低多径干扰带来的影响,使误码性能得到改善,另外由于OFDM采用保护间隔措施,可以在一定程度上克服多径衰落带来的信道间干扰,使误码率下降。然而它的缺点也是很明显的;:易受频率偏差的影响和存在较高的峰值平均功率比。这两个缺点是在OFDM开展中急需解决的问题。OFDM由于其频谱利用率高、抗衰落能力强适合高速数据传输等原因越来越受到人们的关注。随着人们对通信数据化、宽带化、个人化和移动化的需求,OFDM技术在综合无线接入领域将越来越得到广泛的应用。随着DSP芯片技术的开展,IFFT/FFT、软判决技术、信道自适应技术、插入保护时段等技术的引入,OFDM技术也在不断地完善之中。OFDM技术将很可能成为第四代移动通信的主流技术。

致谢本文最终得以完稿主要得益于赵跃华老师的指导,母校老师一直以来的培养,同学的帮助和家人的支持和关心。在这里向他们表示深深的谢意!感谢我的指导老师--赵跃华老师一直以来的帮助和最后阶段诲人不倦的教诲,细心的指导了整个论文的撰写。感谢辅导员刘家豪老师和马宁老师一直以来的帮助和指导。感谢四年来所有老师的传业授道,你们四年来的帮助、教育和指引学生终生不敢忘。感谢四年来相濡以沫的同学们的帮助和鼓励。感谢我的父母,是你们塑造了我。最后感谢学术界的前辈们为我的研究打下的坚实根底。

参考文献:偏少偏少[1]LiYe.Pilot-Symbol-aidedChannelEstimationforOFDMinWirelessSystems[J].IEEETransactionsonVehicularTechnology,2000,49(04):1207-1215.[2]邱关源.电路(第四版)[M].北京::高等教育出版社,2001[3]王文博,郑侃.宽带无线通信OFDM技术[M].北京::人民邮电出版社,,2003[4]王正林,王胜开.MATLAB/Simulink与控制系统仿真[M].北京::电子工业出版社,,2007[5]樊昌信,,徐炳祥等..通信原理[M].北京:国防工业出版社,,2006.6:,161-172[6]胡中豫..现代短波通信[M].北京::国防工业出版社,,2003.[7]张晖,,徐淑正,,杨华中等.OFDM在短波通信中的应用[J].电子技术应用,,2005,期号?页?期号?页?[8]尹长川,,罗涛,,乐光新.多载波宽带无线通信技术[M].北京::北京邮电大学出版社,,2004[9]袁东风,,张海霞等.宽带移动通信中的先进信道编码技术[M].北京::北京邮电大学出版社,,2004.[10]邓华..MATLAB通信仿真及应用实例详解[M]..北京::人民邮电出版社社,2003.9:,116-122;[11]BinghamJAC.Multicarriermodulationfordatatransmission.IEEEComMag,1990。。。。。。

附录仿真主要程序清单及说明clear;clc;SNR=10;%信噪比fl=128;%设置FFT长度Ns=6;%设置一个祯结构中OFDM信号的个数para=128;%设置并行传输的子载波个数sr=250000;%符号速率br=sr.*2;%每个子载波的比特率gl=132%保护时隙的长度nloop=1%仿真循环次数noe=0;%误码数nod=0;%传输的数据数量eop=0;%误组数nop=0;%传输的分组数foriii=1:nloop%发送局部%产生数据Signal=rand(1,para*Ns*2)>0.5;%产生0,1随即序列,符号数为para*Ns*2,Signal实际得到的%是右边逻辑表达式的结果,rand产生的值如果大于0.5,那么Signal为1,如果小于0.5,那么Signal%为0%串并转换paradata=reshape(Signal,para,Ns*2)%变换方式:前128bit变为第一列,随后的128bit变为第二列,以此类推%QPSK调制[ich,qch]=qpskmod(paradata,para,Ns,2)kmod=1./sqrt(2);ich1=ich.*kmod;qch1=qch.*kmod;qpsk_x=ich1+qch1.*sqrt(-1);%频域数据变时域%IFFTfy=ifft(qpsk_x);ich2=real(fy);qch2=imag(fy);%插入保护间隔ich3=[ich2(fl-gl+1:fl,:);ich2];qch3=[qch2(fl-gl+1:fl,:);qch2];%计算衰减spow=sum(ich3.^2+qch3.^2)/Ns./para;attn=0.5*spow*sr/br*10.^(-SNR/10);attn=sqrt(attn);%并串变换ich4=reshape(ich3,1,(fl+gl)*Ns);qch4=reshape(qch3,1,(fl+gl)*Ns);%形成复数发射数据TrData=ich4+qch4.*sqrt(-1);%接收机%参加高斯白噪声ReData=awgn(TrData,SNR,'measured');%接收端%移去保护间隔idata=real(ReData);qdata=imag(ReData);idata1=reshape(idata,fl+gl,Ns);qdata1=reshape(qdata,fl+gl,Ns);idata2=idata1(gl+1:gl+fl,:);qdata2=qdata1(gl+1:gl+fl,:);%FFTRex=idata2+qdata2.*sqrt(-1);ry=fft(Rex);ReIChan=real(ry);ReQChan=imag(ry);ReIchan=ReIChan/kmod;ReQchan=ReQChan/kmod;%QPSK解调RePara=qpskdemod(ReIchan,ReQchan,para,Ns,2);%接收端信号ReSig=reshape(RePara,1,para*Ns*2);%误码比特率〔BER〕%即时的误码和数据noe2=sum(abs(ReSig-Signal));%将接收解调后的信号与原始信号相比拟,累计不一样的nod2=length(Signal);%发送信号的总长度%累计误码组数和总的数据noe=noe+noe2;%因为进行了nloop次的循环,所以把每次循环的数据和误码组数累累积起来nod=nod+nod2;%计算误组率〔PER〕〔每次循环作为一个分组〕ifnoe2~=0eop=eop+1;elseeop=eop;endeop;nop=nop+1;fprintf('%d\t%e\t%d\n',iii,noe2/nod2,eop)%屏幕显示;end%输出结果per=eop/nop;%总的误组数ber=noe/nod;%总的误码率figure(1)%发送信号与接收信号的图形subplot(2,1,1),stem(Signal),gridminor;title('signal');xlabel('x'),ylabel('y');subplot(2,1,2),stem(ReSig),gridminor;title('Resignal')figure(2)subplot(2,1,1),stem(ich2),gridminor;xlabel('x'),ylabel('y');subplot(2,1,2),stem(qch2),gridminor;xlabel('x'),ylabel('y');%参加噪声后的I、Q路的幅度波形figure(3)subplot(2,1,1),stem(idata),gridminor;xlabel('时间'),ylabel('幅度');title('加噪声后I路波形')subplot(2,1,2),stem(qdata),gridminor;xlabel('时间'),ylabel('幅度');title('加噪声后Q路波形')figure(4)subplot(2,1,1),stem(ReIChan),gridminor;subplot(2,1,2),stem(ReQChan),gridminorxlabel('x'),ylabel('y');%QPSK星座图figure(5)foralfa=0:0.001*pi:2*piplot(cos(alfa),sin(alfa),'b')holdonendfori=1:Ns*paraplot(ich1(i),qch1(i),'ro');holdonendgrid;xlabel('I路');ylabel('Q路');title('调制后信号的星座图');holdofffigure(6)plot(abs(fy));%IFFT运算结果的波形figure(7)plot(abs(ry));%FFT运算结果的波形 09/2011:46102机体齿飞面孔双卧多轴组合机床及CAD设计09/0820:023kN微型装载机设计09/2015:0945T旋挖钻机变幅机构液压缸设计08/3015:325吨卷扬机设计10/3017:12C620轴拨杆的工艺规程及钻2-Φ16孔的钻床夹具设计09/2113:39CA6140车床拨叉零件的机械加工工艺规程及夹具设计83100308/3015:37CPU风扇后盖的注塑模具设计09/2016:19GDC956160工业对辊成型机设计08/3015:45LS型螺旋输送机的设计10/0723:43LS型螺旋输送机设计09/2016:23P-90B型耙斗式装载机设计09/0820:17PE10自行车无级变速器设计10/0709:23话机机座下壳模具的设计与制造09/0820:20T108吨自卸车拐轴的断裂原因分析及优化设计09/2113:39X-Y型数控铣床工作台的设计09/0820:25YD5141SYZ后压缩式垃圾车的上装箱体设计10/0709:20ZH1115W柴油机气缸体三面粗镗组合机床总体及左主轴箱设计09/2115:34ZXT-06型多臂机凸轮轴加工工艺及工装设计10/3016:04三孔连杆零件的工艺规程及钻Φ35H6孔的夹具设计08/3017:57三层货运电梯曳引机及传动系统设计10/2914:08上盖的工工艺规程及钻6-Ф4.5孔的夹具设计10/0413:45五吨单头液压放料机的设计10/0413:44五吨单头液压放料机设计09/0923:40仪表外壳塑料模设计09/0820:57传动盖冲压工艺制定及冲孔模具设计09/0821:00传动系统测绘与分析设计10/0723:46保护罩模具结构设计09/2015:30保鲜膜机设计10/0414:35减速箱体数控加工工艺设计10/0413:20凿岩钎具钎尾的热处理工艺探索设计09/0821:33别离爪工艺规程和工艺装备设计10/3015:26制定左摆动杠杆的工工艺规程及钻Ф12孔的夹具设计10/2914:03

温馨提示

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

评论

0/150

提交评论