收藏 分销(赏)

OFDM系统仿真.doc

上传人:精*** 文档编号:2773283 上传时间:2024-06-05 格式:DOC 页数:14 大小:837.69KB 下载积分:8 金币
下载 相关 举报
OFDM系统仿真.doc_第1页
第1页 / 共14页
OFDM系统仿真.doc_第2页
第2页 / 共14页


点击查看更多>>
资源描述
OFDM系统仿真 一、OFDM基本原理 把一个高速率的数据流分解成很多低速率的子数据流,以并行的方式在多个子载波上传输,子载波间彼此保持相互正交的关系以消除子载波间数据的干扰。 1. 串并变换 在并行数据传输系统中,许多符号被同时传输 ,每个传输符号速率的在几十bit/s到几十kbit/s之间检错码和纠错码,数据加扰作为串并变换工作的一部分,通过把每个连续的数据比特随机的分配到各个子载波上来实现 ,将比特错误位置的随机化可以提高前向纠错编码对性能,并且系统的总的性能也得到改进。 2. 子载波调制 一个OFDM符号之内包含多个经过相移键控(PSK)或者正交幅度调制(QAM)的子载波。其中,N表示子载波的个数,T表示OFDM符号的持续时间,d(i=0,1,2,….n-1)是分配给每个子载波的数据符号,fi是第i个子载波的载波频率,矩形函数rect(t)=1,,则从开始的OFDM符号可以表示为: 其中,s(t)的实部和虚部分别对应于OFDM符号的同相和正交分量,在实际系统中可以分别于相应子载波的cos分量和sin分量相乘,其中,。在接收端将接收到的同相和正交分量映射回数据信息,完成子载波调解。 OFDM系统基本模型框图 3. OFDM的IDFT/DFT实现 对于N比较大的系统来说,式2中的OFDM复等效基带信号可以采用离散Fourier逆变化(IDFT)方法来实现。令式2中的,并且忽略矩形函数,对信号s(t)以T/N的速率进行抽样,即令t=kT/N,(k=0,1,......N-1),可以得到: 可以看到,等效为对进行IDFT运算。同样在接收端,为了恢复原始的数据符号,可以对进行逆变化,即DFT得到: 由此可见,OFDM系统的调制和解调可以分别通过IDFT/DFT来实现,频域数据符号经过N点IDFT运算变换为时域符号,经过射频载波调制后,发送到信道中。其中每一个IDFT输出的数据符号都是由所有子载波经过叠加生成的,即对连续的多个经过调制的子载波的叠加信号进行抽样得到的。 在OFDM系统的实际应用中,可以采用更加方便快捷的快速Fourier变换(FFT/IFFT)。N点IDFT运算需要实施N*N次的复数乘法,而IFFT可以显著的降低运算的复杂度。对于常用的基2IFFT算法来说,其复数乘法的次数仅为(N/2)。IDFT的计算复杂度会随N增加而呈现二次方增长,IFFT的算法复杂度的增加速度只是稍稍快于线性变化。对于子载波数量非常大的OFDM系统来说,可以进一步采用基4IFFT算法来实施Fourier变换。 4. 保护间隔与循环前缀 应用OFDM的一个重要原因在于它可以有效的对抗多径时延扩展,为了最大限度的消除符号间干扰,还可以在每个OFDM符号之间插入保护间隔,为了消除由于多径所造成的ICI,OFDM符号需要在其保护间隔内填入循环前缀信号。 插入保护间隔后的OFDM系统框图 当子载波个数比较大时,OFDM的符号周期T相对于信道的脉冲响应长度很大,则符号间干扰的影响很小;而如果相邻OFDM符号之间的保护间隔满足的要求,则可以完全克服ISI的影响。同时为了保持子载波之间的正交性,该保护间隔必须是循环前缀。此时,OFDM的符号周期为: 保护间隔的离散长度,即样点个数为: 这样根据图7,保护间隔、功率归一化的OFDM的抽样序列为: 经过信道和加性高斯噪声作用后的接收信号为: 接收信号r(t)经过A/D变换后得到接收序列,为对r(t)按T/N的抽样速率得到的数字抽样。ISI只会对接收序列的钱个样点形成干扰,因此将前个样点去掉,就可以完全消除ISI的影响。对去掉保护间隔的序列进行DFT变换,可得到DFT输出的多载波调解序列,得到N个复数点: 通过适当选择子载波个数N,可以使信道响应平坦,插入保护间隔还有助于子载波之间的正交性,因此OFDM有可能完全消除ISI和多径带来的ICI的影响,接收信号的频率表达为: (1-13) 其中,为第n个子载波的复衰落系数,代表第个子信道的AWGN,它的实部与虚部均服从零均值高斯分布,且互相独立。噪声方差为: 这个系统有N个并行的子系统,每个子系统经受乘性复干扰和加性白高斯噪声的影响。 ●OFDM多载波系统的等效频域系统 二、802.11a的帧结构 1.OFDM物理层编码过程 (1)产生PLCP训练序列。此序列由10个重复的短训练序列和2个重复的加保护间隔(GI)的长训练序列构成。10个端训练序列用来进行接收端的自动增益控制、定时捕获以及完成频率的粗同步。长训练训练作用是在接受端正信道估计以及进行系统的细同步。 (2)根据发送端的速率位、长度位和业务位,再添加适当的比特得到PLCP头。PLCP中Rate和Length经过1/2速率的卷积编码,映射成一个单独BPSK编码的OFDM符号,这与Signal得到一个OFDM符号要经过统一的过程:卷积编码、交织、BPSK调制、插入导频、IFFT,最后是加保护间隔是数据速率达到6Mbit/s。Signal部分不需要扰码。 (3)根据发送端的Rate,计算每个OFDM符号所包含的数据比特率(记为)。编码速率(R),每个OFDM子载波中的比特数()。 (4)发送端服务区后跟着的是PSDU。通过添加适当的“0”(至少6个),使得比特流的长度是的整数倍。调整过后的比特流形成包中的Data部分。 (5)用非0初值产生的伪随机序列形成扰码,然后再与调整后的信息比特做与逻辑运算。 (6)用6个未成扰码的“0”比特替换后6个“0”经过扰码后形成的比特(这些比特能使接收端的卷积编码器回到零状态,而他们解码后只作为尾比特)。 (7) 接下来对数据进行1/2速率的卷积编码,然后再根据编码速率的需要进行打孔(Puncture)。  (8) 将编码输出的数据以NCBPS为长度单位分成若干组,对每一组进行交织(Interleaving)处理。  (9) 编码,交织完成后输出的数据流以NCBPS为长度单位分成若干组,再选择合适的调制方法,如BPSK或者QAM等进行调制。 (10) 将调制后的复数信号按48为单位分成若干组,每一组可以形成一个OFDM符号。一组中的符号映射到编号为-26~-22、-20~-8、-6~-1、1~6、8~20、22~26的OFDM子载波上。编号为-21、-7、7、21的子载波用来插入导频。代表中心频率的0号子载波可以忽略,所以置为零。  (11)  导频插入编号为-21、-7、7和21的4个子载波中,总的子载波是52。 (12)  (12) 每一组从编号为-26~26的子载波经过逆傅立叶变换转为时域信号。对逆傅立叶变换后的波形加循环前缀形成GI,并采用时间截短的方法对每一个周期的OFDM符号的波形范围进行加窗处理(Windowing)。  (13)  以含有Rate和Length信息的Signal开始的OFDM符号流一个接一个地进入信道传输。  (14) 根据理想信道的中心频率,将复基带波形上变频到RF频率上。 OFDM系统的主要参数 2. 训练符号 训练符号用来进行同步,训练符号由2部分组成:10个相同的短训练符t1~t100(为正常OFDM符号时间的1/4)和2个相同的长训练符号T1~T2(时间长等于正常的OFDM符号时间长度),总的训练时间长度为16us。 3. Signal域 训练符号之后紧跟着Signal域 §Signal域中的信息比特经过BPSK调制以及效率为1/2的卷积编码,这样就可以得到6Mbit/s的信息传输速率,这也是IEEE 802.11a中规定的最低信息速率。 §随后LENGTH域的长度为12个比特,用于指示MAC请求PHY发送的PSDU的字节个数。 4. Data域的扰码及解扰 Data域包括Service、PSDU、尾比特以及填充比特。在送入卷积编码器要先经过加扰处理,也就是用一长为127的帧同步码来对Data域进行加扰。 三、IEEE 802.11a系统的仿真 §单径信道 §2径信道 源代码: clear all %%%%%%%%%%%%% 参数设置部分 %%%%%%%%%%%%%%%%% Nsp=52; %系统子载波数(不包括直流载波) Nfft=64; % FFT 长度 Ncp=16; % 循环前缀长度 Ns=Nfft+Ncp; % 1个完整OFDM符号长度 noc=53; % 包含直流载波的总的子载波数 Nd=6; % 每帧包含的OFDM符号数(不包括训练符号) M1=4; % QPSK调制 M2=16; % 16-QAM调制 sr=250000; % OFDM符号速率 EbNo=0:2:30; % 归一化信噪比 Nfrm=10000; % 每种信噪比下的仿真帧数 ts=1/sr/Ns; % OFDM符号抽样时间间隔 t=0:ts:(Ns*(Nd+1)*Nfrm-1)*ts; % 抽样时刻 fd=100; % 最大多普勒频移 h=rayleigh(fd,t); % 生成单径Rayleigh衰落信道 h1=sqrt(2/3)*h; h2=sqrt(1/3)*rayleigh(fd,t); h2=[zeros(1,4) h2(1:end-4)]; %训练符号频域数据,采用802.11a中的长训练符号数据 Preamble=[1 1 -1 -1 1 1 -1 1 -1 1 1 1 1 1 1 -1 -1 1 1 -1 1 -1 1 1 1 1 ... 1 -1 -1 1 1 -1 1 -1 1 -1 -1 -1 -1 -1 1 1 -1 -1 1 -1 1 -1 1 1 1 1]; Preamble1=zeros(1,Nfft); Preamble1(2:27)=Preamble(27:end); % 前导重排后的数据 Preamble1(39:end)=Preamble(1:26); preamble1=ifft(Preamble1); % 训练符号时域数据 preamble1=[preamble1(Nfft-Ncp+1:end) preamble1]; % 加入循环前缀 %%%%%%%%%%%%%%%%%%%%% 仿真循环 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% for ii=1:length(EbNo) %**************************发射机部分 ***************************** msg1=randsrc(Nsp,Nd*Nfrm,[0:M1-1]); % QPSK信息数据 msg2=randsrc(Nsp,Nd*Nfrm,[0:M2-1]); % 16-QAM信息数据 data1=pskmod(msg1,M1,pi/4); % QPSK调制 data2=qammod(msg2,M2)/sqrt(10); % 16-QAM调制并归一化 data3=zeros(Nfft,Nd*Nfrm); % 根据FFT要求,对数据重排 data4=zeros(Nfft,Nd*Nfrm); data3(2:27,:)=data1(27:end,:); data3(39:end,:)=data1(1:26,:); data4(2:27,:)=data2(27:end,:); data4(39:end,:)=data2(1:26,:); clear data1 data2; % 清除不需要的临时变量 data3=ifft(data3); % IFFT变换 data4=ifft(data4); data3=[data3(Nfft-Ncp+1:end,:);data3]; % 加入循环前缀 data4=[data4(Nfft-Ncp+1:end,:);data4]; spow1=norm(data3,'fro').^2/(Nsp*Nd*Nfrm); % 计算符号能量 spow2=norm(data4,'fro').^2/(Nsp*Nd*Nfrm); data5=zeros(Ns,(Nd+1)*Nfrm); % 加入训练符号 data6=data5; for indx=1:Nfrm data5(:,(indx-1)*(Nd+1)+1)=preamble1.'; data5(:,(indx-1)*(Nd+1)+2:indx*(Nd+1))=data3(:,(indx-1)*Nd+1:indx*Nd); data6(:,(indx-1)*(Nd+1)+1)=preamble1.'; data6(:,(indx-1)*(Nd+1)+2:indx*(Nd+1))=data4(:,(indx-1)*Nd+1:indx*Nd); end clear data3 data4; % 清除不需要的临时变量 data5=reshape(data5,1,Ns*(Nd+1)*Nfrm); % 并串变换 data6=reshape(data6,1,Ns*(Nd+1)*Nfrm); data51=zeros(1,length(data5)); data61=zeros(1,length(data6)); data51(5:end)=data5(1:end-4); data61(5:end)=data6(1:end-4); sigma1=sqrt(1/2*spow1/log2(M1)*10.^(-EbNo(ii)/10)); % 根据EbNo计算噪声标准差 sigma2=sqrt(1/2*spow2/log2(M2)*10.^(-EbNo(ii)/10)); for indx=1:Nfrm dd1=data5((indx-1)*Ns*(Nd+1)+1:indx*Ns*(Nd+1)); dd2=data6((indx-1)*Ns*(Nd+1)+1:indx*Ns*(Nd+1)); dd3=data51((indx-1)*Ns*(Nd+1)+1:indx*Ns*(Nd+1)); dd4=data61((indx-1)*Ns*(Nd+1)+1:indx*Ns*(Nd+1)); hh=h((indx-1)*Ns*(Nd+1)+1:indx*Ns*(Nd+1)); % 当前帧的单径信道参数 hh1=h1((indx-1)*Ns*(Nd+1)+1:indx*Ns*(Nd+1)); % 当前帧的2径信道参数 hh2=h2((indx-1)*Ns*(Nd+1)+1:indx*Ns*(Nd+1)); % 信号通过单径衰落信道,并加入高斯白噪声 r1=hh.*dd1+sigma1*(randn(1,length(dd1))+j*randn(1,length(dd1))); r2=hh.*dd2+sigma2*(randn(1,length(dd2))+j*randn(1,length(dd2))); % 信号通过2径衰落信道,并加入高斯白噪声 r11=hh1.*dd1+hh2.*dd3+sigma1*(randn(1,length(dd1))+j*randn(1,length(dd1))); r21=hh1.*dd2+hh2.*dd4+sigma2*(randn(1,length(dd2))+j*randn(1,length(dd2))); r1=reshape(r1,Ns,Nd+1); % 串并变换 r2=reshape(r2,Ns,Nd+1); r11=reshape(r11,Ns,Nd+1); r21=reshape(r21,Ns,Nd+1); r1=r1(Ncp+1:end,:); % 移除循环前缀 r2=r2(Ncp+1:end,:); r11=r11(Ncp+1:end,:); r21=r21(Ncp+1:end,:); R1=fft(r1); % fft运算 R2=fft(r2); R11=fft(r11); R21=fft(r21); R1=[R1(39:end,:);R1(2:27,:)]; % 数据重排 R2=[R2(39:end,:);R2(2:27,:)]; R11=[R11(39:end,:);R11(2:27,:)]; R21=[R21(39:end,:);R21(2:27,:)]; HH1=(Preamble.')./R1(:,1); % 信道估计 HH2=(Preamble.')./R2(:,1); HH11=(Preamble.')./R11(:,1); HH21=(Preamble.')./R21(:,1); HH1=HH1*ones(1,Nd); HH2=HH2*ones(1,Nd); HH11=HH11*ones(1,Nd); HH21=HH21*ones(1,Nd); x1=R1(:,2:end).*HH1; % 信道补偿 x2=R2(:,2:end).*HH2; x3=R11(:,2:end).*HH11; x4=R21(:,2:end).*HH21; x1=pskdemod(x1,M1,pi/4); % 数据解调 x2=qamdemod(x2.*sqrt(10),M2); x3=pskdemod(x3,M1,pi/4); x4=qamdemod(x4.*sqrt(10),M2); [neb1(indx),temp]=biterr(x1,msg1(:,(indx-1)*Nd+1:indx*Nd),log2(M1)); % 统计一帧中的错误比特数 [neb2(indx),temp]=biterr(x2,msg2(:,(indx-1)*Nd+1:indx*Nd),log2(M2)); [neb3(indx),temp]=biterr(x3,msg1(:,(indx-1)*Nd+1:indx*Nd),log2(M1)); [neb4(indx),temp]=biterr(x4,msg2(:,(indx-1)*Nd+1:indx*Nd),log2(M2)); end ber1(ii)=sum(neb1)/(Nsp*log2(M1)*Nd*Nfrm); % 理想信道估计的误比特率 ber2(ii)=sum(neb2)/(Nsp*log2(M2)*Nd*Nfrm); ber3(ii)=sum(neb3)/(Nsp*log2(M1)*Nd*Nfrm); % 非理想信道估计的误比特率 ber4(ii)=sum(neb4)/(Nsp*log2(M2)*Nd*Nfrm); end semilogy(EbNo,ber1,'-ro',EbNo,ber3,'-rv',EbNo,ber2,'-r*',EbNo,ber4,'-rx') grid on title('OFDM系统误比特率性能') legend('QPSK 单径信道','QPSK 2径信道','16-QAM 单径信道','16-QAM 2径信道') xlabel('信噪比(EbNo)') ylabel('误比特率')
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 包罗万象 > 大杂烩

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服