echooff;clearall;closeall;clc;fprintf('OFDM仿真\n');tic%---------------------------------------------%% 参数定义 %%---------------------------------------------%%InitializetheparametersNumLoop=1000;NumSubc=128;NumCP=8;SyncDelay=0;%子载波数 128%位数/符号 2%符号数/载波 1000%训练符号数 0%循环前缀长度 8 (1/16)*T%调制方式 4-QAM%多径信道数 3%IFFTSize 128%信道最大时延 2%---------------------------------------------%% QAMMODULATION %%---------------------------------------------%%GeneratetherandombinarystreamfortransmittestBitsTx=floor(rand(1,NumLoop*NumSubc)*2);%Modulate(GeneratesQAMsymbols)%input:BitsTx(1,NumLoop*NumSubc);output:SymQAM(NumLoop,NumSubc/2)SymQAMtmp=reshape(BitsTx,2,NumLoop*NumSubc/2).';SymQAMtmptmp=bi2de(SymQAMtmp,2,'left-msb');%--------------------------------------------------------------------%函数说明:%bin2dec(binarystr)interpretsthebinarystringbinarystrandreturnsthe%equivalentdecimalnumber.% bi2de是把列向量的每一个元素都由2进制变为10进制% D=BI2DE(...,MSBFLAG)heinputorientation.% MSBFLAGhastwopossiblevalues,'right-msb'and'left-msb'. Givinga% 'right-msb'MSBFLAGdoesnotchangethefunction'sdefaultbehavior.% Givinga'left-msb'MSBFLAGflipstheinputorientationsuchthatthe% MSBisontheleft.%%% D=BI2DE(...,P)convertsabasePvectortoadecimalvalue.%% Examples:%% >>B=[0011;1010];%% >>T=[011;210];%% >>D=bi2de(B) >>D=bi2de(B,'left-msb') >>D=bi2de(T,3)%% D= D= D=%% 12 3 12%% 5 10 5%--------------------------------------------------------------------%QAMmodulation%00->-1-i,01->-1+i,10->1-i,11->1+i%利用查表法进行QAM星座映射QAMTable=[-1-i-1+i1-i1+i];SymQAM=QAMTable(SymQAMtmptmp+1);%---------------------------------------------%% IFFT %%---------------------------------------------%%input:SymQAM(NumLoop,NumS
OFDM MATLAB 仿真程序 来自淘豆网m.daumloan.com转载请标明出处.