第7章 MIMO-OFDM系统自适应技术_第1页
第7章 MIMO-OFDM系统自适应技术_第2页
第7章 MIMO-OFDM系统自适应技术_第3页
第7章 MIMO-OFDM系统自适应技术_第4页
第7章 MIMO-OFDM系统自适应技术_第5页
已阅读5页,还剩51页未读 继续免费阅读

下载本文档

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

文档简介

第7章OFDM系统自适应技术7.1引言

链路级自适应技术的基本思想是,根据在发射端获取的某种形式的信道状态信息自适应调节各种信号传输的参数,实现对当前信道环境的充分利用。可以调节的基本参数包括调制方式、编码方式、符号速率、发射功率等。在多载波条件下可以调整每个子信道的编码调制方式和发送功率,在多用户条件下可以调整用户间资源分配的数量和方式等。通过自适应技术得到的系统信道容量的增益是非常明显的。这种自适应技术已经被广泛地认为是无线通信系统中有效提高频谱利用率的重要手段之一。1OFDM系统把一个频率选择性衰落的实际信道划分成若干个独立的平坦窄带子信道,各个子信道之间信道状况差异很大,具有相对独立性,不同子信道受到不同的衰落,从而具有不同的传输质量。这种特点的好处就是,能够根据各个子信道的实际状态自适应地分配信息比特和发射功率,从而减弱衰落的影响,更加有效地利用信道资源。所以与传统的单载波系统相比,多载波OFDM系统使用自适应技术会具有更高的灵活性,并能够获得更好的性能。当自适应传输技术应用于多天线环境中时,也可为系统带来系统容量提升和整体性能的提高。由于增加了空间上的自由度,MIMO系统的自适应算法的设计也更为灵活和复杂。2在发射端,MIMO系统通过了解当前信道的状态信息,可自适应的调整天线上的发射功率、比特分配,并由此获得系统性能的提高。MIMO系统有多种传输策略,有以提高系统容量为目标的,有以改善系统性能为目标的,有的适用于存在空间相关的环境,有的需要天线之间服从独立衰落。根据信道状况来选择适当的传输策略,包括多种不同传输策略的结合或选择,都是当前自适应MIMO研究的热点题目。在MIMO-OFDM系统中应用自适应技术,能充分利用空间、时间和频率维上的自由度,可以设计更为灵活的传输结构、可调整的参数更多,当然推导和实现也更为复杂。37.2自适应技术的理论基础仙农定理实际传输速率该式的含义是某种调制、编码方法所能达到的实际传输速率,相当于信噪比

损失了一个因子后的信道容量。

表示在特定的调制方式、信道纠错编码方式以及误码率下,达到一定的传输速率时,理论所需要的功率与实际所需要的功率之间的比值,被称之为信噪比差额(SNRGap)。它是一个与调制方式和信道纠错编码方式、以及目标误码率都有关的量。

7.2.1注水原理4当时,就是对功率利用的最理想的情况。在特定调制方式编码方式以及误码率下,

是一个大于1的常量,表明对功率利用的降低或对信噪比的实际利用能力。由于实际上信道的特性是随机的,因此在设计传输速率时,时,实际传输的速率为:还要留出一个信噪比的裕量,以便在信道特性变差时,传输的速率和性能仍不受影响。当考虑信噪比裕量(SNRMargin)5信道容量::信道带宽:信道的传输增益

:信道的加性高斯白噪声的功率谱密度

:信号的功率谱密度假设信号的总发射功率为,则拉格朗日乘子法为拉格朗日乘数。

6数学中设给定二元函数和附加条件,为寻找在附加条件下的极值点,先做拉格朗日函数其中为拉格朗日乘数。由上述方程组解出,及,如此求得的,就是函数在附加条件的可能极值点。7注水原理中的核心公式:

上式的物理意义是:当信噪比

较大时,信道对应的分配功率应该较大,反之,信道对应的分配功率应该较小,或者关闭部分信噪比极低的信道,即绝大多数发射功率集中在信道衰减较小的频带范围内。8注水功率分配示意图7.2.2自适应OFDM系统模型对于OFDM动态自适应算法研究,我们必须首先承认几个假设:

假设发送端己知所有用户在信道中的实时传输函数。每

个子信道带宽远小于相干带宽。

子载波和比特分配信息通过独立专用信道发送到接收端。9自适应分配的OFDM系统结构框图

其工作过程大致分析为:在接收端对信道的参量作出估计,当系统有数据要发送时,首先由信道估计获得各个用户的信道特性,比特及功率分配模块根据这一估计信息为用户所用子载波分配比特,在此基础上进行发射功率分配,所有这些分配策略将通过专用信道反馈给发送端,而接收端利用这些分配信息进行相应解调和数据还原。107.2.3自适应分配的原则自适应策略的基本思想:定义一个信道质量指示变量,或称为信道状态信息,它提供有关信道的一些特征。

2)根据时间、频率或者空间上的信道状态信息,调整信号传输的参数。按照系统的比特传输速率来分,OFDM自适应比特功率分配算法可以分为两大类,即固定传输速率算法和变传输速率算法。其中固定传输速率算法又可以分为固定功率算法和变功率算法。具体介绍如下:11变传输速率算法。在给定的总发射功率和系统误比特率(BER)条件下,实现信道容量(传输速率)最大化。也称为最大比特率准则,即RA(RateAdaptive)准则。其对应的优化模型可用下式描述1.基于信道容量最优化的原则122.基于发射功率最小化的原则固定传输速率、变功率算法。在给定的传输速率准则。其对应的优化模型可表示为:和系统误比特率条件下,根据子信道的增益对子载波上的比特数进行动态自适应分配,同时调整各子载波上的发射功率,使得需要的总发射功率(或者平均每比特信噪比)最小,称为功率最小化准则,即MA(MarginAdaptive)133.基于误比特率性能最优化的原则固定传输速率、固定功率算法,即在系统总发射功率和传输速率都保持一定的情况下,通过自适应分配各子载化算法。对应的优化模型可表示为波上的比特和功率,直接提高系统的性能为出发点的优147.2.4自适应技术的实现OFDM系统中的自适应技术,其实现过程可以分为以下3步:1.信道估计自适应技术根据时变信道的变化情况,改变下一个符合帧(或时隙)的发送参数,因此首先需要对时变信道的质量进行估计,得到信道状态信息(CSI)。最常用的信道状态信息是信道的传递函数。除了使用信道传递函数外,还应该考虑各种干扰(如同信道干扰、子载波间干扰等)的影响。因此还可以使用以下的信道参数作为信道的状态信息:信噪比(SNR)15均方误差(MSE):误比特率(BER)误帧率(FER):2.发送参数的选择在获得信道的状态信息之后,就可以据此改变发送端的传输特性,这是自适应技术的核心。在自适应OFDM技术中可以改变的参数有用户分配的子载波数、调制方式(即分配比特数)和发送功率等。选择最佳的参数,一般那是在限定条件下目标函数的最优问题。例如,在速率和发送功率一定的条件下,是差错概率最小,或者在保证一定差错概率和发送功率条件下,使传送速率最大等等。163.系统所使用参数的信令传输系统所使用参数的信令主要有3种方式:(1)开环方式

接收端根据接收情况估计信道,通过信令通知发送端,或者在TDD方式下利用互易性,发送端直接估计信道,然后发送端根据信道情况选择参数,并通过信道通知接收端。(2)闭环方式接收端根据接收情况估计信道,并选定参数,然后通过信令通知发送端。(3)盲检测没有信令传送,发送端根据自己接收的情况选择参数,接收端盲检测传输参数。177.3OFDM系统自适应算法7.3.1迭代注水功率分配算法(IWFP)以信道容量(传输速率)最大化为目标(RA准则)。由优化目标、约束条件和拉格朗日乘子法可以得到下面的拉格朗日函数是拉格朗日常数。其中18由香农信道容量公式可得和的关系在QAM调制方式下,可表示为式中,是子信道噪声功率,是信道的信噪比间隔。当取最优值时19得最优的功率分配其中得到的理论最优解:207.3.2Hughes-Hartogs算法Hughes-Hartogs算法是经典的贪婪算法。对于功率最小化准则(MA准则),该算法的主要思想是,首先将各个子载波的比特数目均设为0,然后将所有的待分配比特依次分配给相应的子载波。在每次比特分配过程中,首先找到增加1比特时,只需增加最少发射功率就能维持目标误比特率的子载波,然后将该子载波的比特数目增加1。如此循环迭代,直到所有的比特被分配完,最后计算各个子载波所需要的发射功率。而对于比特率最大化的准则(RA准则),则只需重复分配至加载到子载波的总功率达到指定的发射功率为止即可。21Step1:

比特分配1)初始化:每个子载波的初始比特和功率分配均设为0,即

2)计算每个子载波增加1比特信息时所需要增加的功率,即差额功率3)求得中的最小值,及其对应的子载波编号,即224)给编号为的子载波分配1比特的信息,即计算当前已分配的比特总数;

若,判断是否成立,若是转至(5),否则转至(2);

若,则比特分配完毕,转至step2进行功率分配;5)置,转至(3)。Step2:功率分配至此,分配完成。23Hughes-Hartogs算法能达到最优的比特和功率分配结果,保证了系统的性能要求,但需要额外的搜索和排序。该算法的复杂度相当高,特别是在子载波数较多或者每个OFDM符号包含的比特数较多的多载波系统中。目前难以在无线环境中应用,实时性较差。%Hughes-HartogsAlgorithmDemo仿真程序:N_subc=64;P_av=1;Pt=P_av*N_subc;SNR_av=0;Noise=P_av./10.^(SNR_av./10);24B=1e6;N_psd=Noise./(B/N_subc);BER=1e-4;M=8;Rb=128;H=random('rayleigh',1,1,N_subc);%--------------------------------------[bit_alloc,power_alloc]=…Hughes_Hartogs(N_subc,Rb,M,BER,N_psd,H);bit_allocpower_alloc=Pt.*(power_alloc./sum(power_alloc))%--------------------------------------PSD:PowerSpectralDensity

25clf;figure(1);subplot(2,1,1);stem(bit_alloc,'fill','MarkerSize',3);holdon;plot(H,'-r');ylabel('Bitsallocation');xlabel('Subcarriers');subplot(2,1,2);stem(power_alloc,'fill','MarkerSize',3);ylabel('Powerallocation');xlabel('Subcarriers');26function[bit_alloc,power_alloc]=…Hughes_Hartogs(N_subc,Rb,M,BER,Noise,H)%---------------------initialization-------------------bit_alloc=zeros(1,N_subc);power_alloc=zeros(1,N_subc);bit_total=0;%-----------------------incrementofpower---------------fori=1:N_subcpower_add(i)=(f_mpsk(bit_alloc(i)+1,BER,Noise)-...f_mpsk(bit_alloc(i),BER,Noise))/H(i)^2;end27%----------------------findminindex--------------------min_add=min(power_add);index_min=find(power_add==min_add,1);%---------------------firstbitallocation--------------------bit_alloc(index_min)=bit_alloc(index_min)+1;bit_total=sum(bit_alloc);%**************************WHILE************************while(bit_total<Rb)if(bit_alloc(index_min)~=M)%-----------------------incrementofpower---------------

fori=1:N_subc28power_add(i)=(f_mpsk(bit_alloc(i)+1,BER,Noise)-...f_mpsk(bit_alloc(i),BER,Noise))/H(i)^2;

end%---------------------bitallocationloop--------------------

min_add=min(power_add);index_min=find(power_add==min_add,1);bit_alloc(index_min)=bit_alloc(index_min)+1;bit_total=sum(bit_alloc);

elsepower_add(index_min)=inf;%---------------------bitallocationloop--------------------

29min_add=min(power_add);index_min=find(power_add==min_add,1);bit_alloc(index_min)=bit_alloc(index_min)+1;

bit_total=sum(bit_alloc);endend%---------------------powerallocation--------------------------fori=1:N_subcpower_alloc(i)=f_mpsk(bit_alloc(i),BER,Noise)/H(i)^2;endend%-----------------------EndofFile------------------------------30functionpower=f_mpsk(b,Pe,N_psd)switchbcase0

power=0;

case1power=N_psd/2*(Qinv(Pe))^2;

case2power=N_psd*(Qinv(1-sqrt(1-Pe)))^2;

otherwisepower=N_psd/2*(Qinv(Pe/2)/sin(pi/2^b))^2;end31functionpower=f_mqam(c,Pe,N_psd)if(mod(c,2)~=0)error('ThenumberofbitmustbeEveninMQAM')endifc==0

power=0;elseM=2^c;power=N_psd/3*(M-1)*(Qinv(Pe*sqrt(M)/(4*(sqrt(M)-1))))^2;endend32endfunctiony=Qinv(x)y=sqrt(2)*erfcinv(2*x);endfunctiony=Q(x)y=.5*erfc(x/sqrt(2));

33Hughes-Hartogs算法的比特和功率分配347.3.3Chow算法Chow算法是根据各个子信道的信道容量来分配比特。Chow算法的优化准则是在维持目标误比特率的前提下,使系统的余量最大。该算法通过迭代过程,逐步分配比特,同时使系统的余量逐步增大,直到所有的比特都分配完毕。算法中设置了一个最大的迭代次数,以保证算法的收敛速度。Chow算法主要由三个步骤完成,首先确定使系统性能达到最优的门限,然后确定各个子载波的调制方式,最后调整各个子载波的功率。

余量定义为在满足系统要求的比特差错率条件下,系统可以容许的噪声增加量。35具体描述如下:1)计算各个子载波的信噪比,并假设所有子载波上的信号能量都是归一化的,;已使用的子载波数其中为可用的子载波数的最大数目;3)从到依次计算、、和:2)令(dB),迭代次数

,364)计算。若,则信道状况太差,无法使用;5)计算新的:若,则令;376);7)若且,令,然后转到步骤3),否则转到步骤8);8)若,那么找到最小的,相应的减1,加1,重复此步骤直到;9)若,那么找到最大的,相应的加1,减1,重复此步骤直到;38调整发射总功率:对所有已使用的子载波乘以相同的比例因子,使分配的总信号功率。与Hughes-Hartogs算法相比,P.S.Chow算法摒弃了大量的搜索和排序,简化了算法复杂度。但是由于信号功率的分配和支持的传输速率是直接相关的,优化的余地有限,因此性能无法达到最优。10)调整每个子载波上的发射功率,使得对于相应的,;39%example_chow_algoN_subc=32;BER=1e-4;gap=-log(5*BER)/1.5;%indBP_av=1;Pt=P_av*N_subc;SNR_av=16;noise=P_av./10.^(SNR_av./10);Rt=128;subcar_gains=random('rayleigh',1,1,N_subc);SNR=(subcar_gains.^2)./(noise*gap);[bit_allocpower_allocIterate_count]=…chow_algo(SNR,N_subc,gap,Rt);bit_alloc40power_alloc=Pt.*(power_alloc./sum(power_alloc))%*************************plot********************figure(1);subplot(2,1,1);plot(subcar_gains,'-r');legend('信道增益');holdon;stem(bit_alloc,'fill','MarkerSize',3);title('Chow算法');ylabel('Bitsallocation');xlabel('Subcarriers');axis([03206]);subplot(2,1,2);stem(power_alloc,'fill','MarkerSize',3);%stairs(power_alloc);ylabel('Powerallocation');xlabel('Subcarriers');axis([03202]);41%Chow'sAlgorithmfunction[bits_alloc,power_alloc,Iterate_count]=…chow_algo(SNR,N_subc,gap,target_bits)%SNR每个子信道的信噪比(1×N_subc)向量(dB)%N_subc子载波数%gap信噪比间隔(常量)(dB)%target_bits总比特数(数据传输速率)%--------------------outputvariables------------------------%bits_alloc%Iterate_count%power_alloc42margin=0;%门限值Max_count=10;%最大迭代次数Iterate_count=0;%迭代计数器N_use=N_subc;%可用子载波数total_bits=0;%分配的总比特数power_alloc=zeros(1,N_subc);%功率分配结果(1×N_subc)向量bits_alloc=zeros(1,N_subc);%比特分配结果(1×N_subc)向量temp_bits=zeros(1,N_subc);

%每个子载波分配的比特数理论值,非整数round_bits=zeros(1,N_subc);%每个子载波分配的比特数取整值diff=zeros(1,N_subc);%每个子载波比特分配的误差%---------------------initialization-------------------------43%-----------------------------bitsallocation-------------------------while(total_bits~=target_bits)&&(Iterate_count<Max_count)

Iterate_count=Iterate_count+1;

N_use=N_subc;temp_bits=log2(1+SNR./(1+margin/gap));

round_bits=round(temp_bits);

diff=temp_bits-round_bits;

total_bits=sum(round_bits);

if(total_bits==0)

disp('thechannelisnotbeused');

total_bits

end44nuc=length(find(round_bits==0));N_use=N_subc-nuc;margin=margin+10*log10(2^((total_bits-target_bits)/N_use));endwhile(total_bits>target_bits)

use_ind=find(round_bits>0);

diff_use=diff(use_ind)

id=find(diff_use==min(diff_use),1);ind_alter=use_ind(id);round_bits(ind_alter)=round_bits(ind_alter)-1;diff(ind_alter)=diff(ind_alter)+1;total_bits=sum(round_bits);end45while(total_bits<target_bits)use_ind=find(round_bits~=0);

diff_use=diff(use_ind);

id=find(diff_use==max(diff_use),1);

ind_alter=use_ind(id);

round_bits(ind_alter)=round_bits(ind_alter)+1;

diff(ind_alter)=diff(ind_alter)-1;

total_bits=sum(round_bits);endbits_alloc=ro

温馨提示

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

评论

0/150

提交评论