MIMO Systems 所有程序.docx
《MIMO Systems 所有程序.docx》由会员分享,可在线阅读,更多相关《MIMO Systems 所有程序.docx(34页珍藏版)》请在冰豆网上搜索。
MIMOSystems所有程序
IntroductiontoMIMOSystems
ThisdemointroducesMultiple-Input-Multiple-Output(MIMO)systems,whichusemultipleantennasatthetransmitterandreceiverendsofawirelesscommunicationsystem.MIMOsystemsareincreasinglybeingadoptedincommunicationsystemsforthepotentialgainsincapacitytheyrealizewhenusingmultipleantennas.Multipleantennasusethespatialdimensioninadditiontothetimeandfrequencyones,withoutchangingthebandwidthrequirementsofthesystem.
Foragenericcommunicationslink,thisdemofocusesontransmitdiversityinlieuoftraditionalreceivediversity.Usingtheflat-fadingRayleighchannel,itillustratestheconceptofOrthogonalSpace-TimeBlockCoding,whichisemployablewhenmultipletransmitterantennasareused.Itisassumedherethatthechannelundergoesindependentfadingbetweenthemultipletransmit-receiveantennapairs.
Forachosensystem,italsoprovidesameasureoftheperformancedegradationwhenthechannelisimperfectlyestimatedatthereceiver,comparedtothecaseofperfectchannelknowledgeatthereceiver.
Contents
∙PART1:
TransmitDiversityvs.ReceiveDiversity
∙PART2:
Space-TimeBlockCodingwithChannelEstimation
∙PART3:
OrthogonalSpace-TimeBlockCodingandFurtherExplorations
PART1:
TransmitDiversityvs.ReceiveDiversity
Usingdiversityreceptionisawell-knowntechniquetomitigatetheeffectsoffadingoveracommunicationslink.However,ithasmostlybeenrelegatedtothereceiverend.In[1],Alamoutiproposesatransmitdiversityschemethatofferssimilardiversitygains,usingmultipleantennasatthetransmitter.Thiswasconceivedtobemorepracticalas,forexample,itwouldonlyrequiremultipleantennasatthebasestationincomparisontomultipleantennasforeverymobileinacellularcommunicationssystem.
Thissectionhighlightsthiscomparisonoftransmitvs.receivediversitybysimulatingcoherentbinaryphase-shiftkeying(BPSK)modulationoverflat-fadingRayleighchannels.Fortransmitdiversity,weusetwotransmitantennasandonereceiveantenna(2x1notationally),whileforreceivediversityweemployonetransmitantennaandtworeceiveantennas(1x2notationally).
Thesimulationcoversanend-to-endsystemshowingtheencodedand/ortransmittedsignal,channelmodel,andreceptionanddemodulationofthereceivedsignal.Italsoprovidestheno-diversitylink(singletransmit-receiveantennacase)andtheoreticalperformanceofsecond-orderdiversitylinkforcomparison.Itisassumedherethatthechannelisknownperfectlyatthereceiverforallsystems.WerunthesimulationoverarangeofEb/NopointstogenerateBERresultsthatallowustocomparethedifferentsystems.
Westartbydefiningsomecommonsimulationparameters
frmLen=100;%framelength
numPackets=1000;%numberofpackets
EbNo=0:
2:
20;%Eb/Novaryingto20dB
N=2;%maximumnumberofTxantennas
M=2;%maximumnumberofRxantennas
andsetupthesimulation.
%Seedstatesforrepeatability
seed=[9876512345];randn('state',seed
(1));rand('state',seed
(2));
%CreateBPSKmod-demodobjects
P=2;%modulationorder
bpskmod=modem.pskmod('M',P,'SymbolOrder','Gray');
bpskdemod=modem.pskdemod(bpskmod);
%Pre-allocatevariablesforspeed
tx2=zeros(frmLen,N);H=zeros(frmLen,N,M);
r21=zeros(frmLen,1);r12=zeros(frmLen,2);
z21=zeros(frmLen,1);z21_1=zeros(frmLen/N,1);z21_2=z21_1;
z12=zeros(frmLen,M);
error11=zeros(1,numPackets);BER11=zeros(1,length(EbNo));
error21=error11;BER21=BER11;error12=error11;BER12=BER11;BERthy2=BER11;
%SetupafigureforvisualizingBERresults
h=gcf;gridon;holdon;
set(gca,'yscale','log','xlim',[EbNo
(1),EbNo(end)],'ylim',[1e-51]);
xlabel('Eb/No(dB)');ylabel('BER');set(h,'NumberTitle','off');
set(h,'renderer','zbuffer');set(h,'Name','Transmitvs.ReceiveDiversity');
title('Transmitvs.ReceiveDiversity');
%LoopoverseveralEbNopoints
foridx=1:
length(EbNo)
%Loopoverthenumberofpackets
forpacketIdx=1:
numPackets
data=randint(frmLen,1,P);%datavectorperuserperchannel
tx=modulate(bpskmod,data);%BPSKmodulation
%AlamoutiSpace-TimeBlockEncoder,G2,fullrate
%G2=[s1s2;-s2*s1*]
s1=tx(1:
N:
end);s2=tx(2:
N:
end);
tx2(1:
N:
end,:
)=[s1s2];
tx2(2:
N:
end,:
)=[-conj(s2)conj(s1)];
%CreatetheRayleighdistributedchannelresponsematrix
%fortwotransmitandtworeceiveantennas
H(1:
N:
end,:
:
)=(randn(frmLen/2,N,M)+...
j*randn(frmLen/2,N,M))/sqrt
(2);
%assumeheldconstantfor2symbolperiods
H(2:
N:
end,:
:
)=H(1:
N:
end,:
:
);
%Receivedsignals
%foruncoded1x1system
r11=awgn(H(:
1,1).*tx,EbNo(idx));
%forG2-coded2x1system-withnormalizedTxpower,i.e.,the
%totaltransmittedpowerisassumedconstant
r21=awgn(sum(H(:
:
1).*tx2,2)/sqrt(N),EbNo(idx));
%forMaximal-ratiocombined1x2system
fori=1:
M
r12(:
i)=awgn(H(:
1,i).*tx,EbNo(idx));
end
%Front-endCombiners-assumechannelresponseknownatRx
%forG2-coded2x1system
hidx=1:
N:
length(H);
z21_1=r21(1:
N:
end).*conj(H(hidx,1,1))+...
conj(r21(2:
N:
end)).*H(hidx,2,1);
z21_2=r21(1:
N:
end).*conj(H(hidx,2,1))-...
conj(r21(2:
N:
end)).*H(hidx,1,1);
z21(1:
N:
end)=z21_1;z21(2:
N:
end)=z21_2;
%forMaximal-ratiocombined1x2system
fori=1:
M
z12(:
i)=r12(:
i).*conj(H(:
1,i));
end
%MLDetector(minimumEuclideandistance)
demod11=demodulate(bpskdemod,r11.*conj(H(:
1,1)));
demod21=demodulate(bpskdemod,z21);
demod12=demodulate(bpskdemod,sum(z12,2));
%Determineerrors
error11(packetIdx)=biterr(demod11,data);
error21(packetIdx)=biterr(demod21,data);
error12(packetIdx)=biterr(demod12,data);
end%endofFORloopfornumPackets
%CalculateBERforcurrentidx
%foruncoded1x1system
BER11(idx)=sum(error11)/(numPackets*frmLen);
%forG2coded2x1system
BER21(idx)=sum(error21)/(numPackets*frmLen);
%forMaximal-ratiocombined1x2system
BER12(idx)=sum(error12)/(numPackets*frmLen);
%fortheoreticalperformanceofsecond-orderdiversity
BERthy2(idx)=berfading(EbNo(idx),'psk',2,2);
%Plotresults
semilogy(EbNo(1:
idx),BER11(1:
idx),'r*',...
EbNo(1:
idx),BER21(1:
idx),'go',...
EbNo(1:
idx),BER12(1:
idx),'bs',...
EbNo(1:
idx),BERthy2(1:
idx),'m');
legend('NoDiversity(1Tx,1Rx)','Alamouti(2Tx,1Rx)',...
'Maximal-RatioCombining(1Tx,2Rx)',...
'Theoretical2nd-OrderDiversity');
drawnow;
end%endofforloopforEbNo
%Performcurvefittingandreplottheresults
fitBER11=berfit(EbNo,BER11);
fitBER21=berfit(EbNo,BER21);
fitBER12=berfit(EbNo,BER12);
semilogy(EbNo,fitBER11,'r',EbNo,fitBER21,'g',EbNo,fitBER12,'b');
holdoff;
Thetransmitdiversitysystemhasacomputationcomplexityverysimilartothatofthereceivediversitysystem.
Theresultingsimulationresultsshowthatusingtwotransmitantennasandonereceiveantennaprovidesthesamediversityorderasthemaximal-ratiocombined(MRC)systemofonetransmitantennaandtworeceiveantennas.
Alsoobservethattransmitdiversityhasa3dBdisadvantagewhencomparedtoMRCreceivediversity.Thisisbecausewemodelledthetotaltransmittedpowertobethesameinbothcases.Ifwecalibratethetransmittedpowersuchthatthereceivedpowerforthesetwocasesisthesame,thentheperformancewouldbeidentical.Thetheoreticalperformanceofsecond-orderdiversitylinkmatchesthetransmitdiversitysystemasitnormalizesthetotalpoweracrossallthediversitybranches.
Theaccompanyingfunctionalscripts,MRC1M.mandOSTBC2M.maidfurtherexplorationfortheinterestedusers.
PART2:
Space-TimeBlockCodingwithChannelEstimation
Buildingonthetheoryoforthogonaldesigns,Tarokhetal.[2]generalizedAlamouti'stransmitdiversityschemetoanarbitrarynumberoftransmitterantennas,leadingtotheconceptofSpace-TimeBlockCodes.Forcomplexsignalconstellations,theyshowedthatAlamouti'sschemeistheonlyfull-rateschemefortwotransmitantennas.
Inthissection,westudytheperformanceofsuchaschemewithtworeceiveantennas(i.e.,a2x2system)withandwithoutchannelestimation.Intherealisticscenariowherethechannelstateinformationisnotknownatthereceiver,thishastobeextractedfromthereceivedsignal.Weassumethatthechannelestimatorperformsthisusingorthogonalpilotsignalsthatareprependedtoeverypacket[3].Itisassumedthatthechannelremainsunchangedforthelengthofthepacket(i.e.,itundergoesslowfading).
Asimulationsimilartotheonedescribedintheprevioussectionisemployedhere,whichleadsustoestimatetheBERperformanceforaspace-timeblockcodedsystemusingtwotransmitandtworeceiveantennas.
Againwestartbydefiningthecommonsimulationparameters
frmLen=100;%framelength
maxNumErrs=300;%maximumnumberoferrors
maxNumPackets=3000;%maximumnumberofpackets
EbNo=0:
2:
12;%Eb/Novaryingto12dB
N=2;%numberofTxantennas
M=2;%numberofRxantennas
pLen=8;%numberofpilotsymbolsperframe
W=hadamard(pLen);
pilots=W(:
1:
N);%orthogonalsetpertransmitantenna
andsetupthesimulation.
%Seedstatesforrepeatability
seed=[9876512345];randn('state',seed
(1));rand('state',seed
(2));
%Pre-allocatevariablesforspeed
tx2=zeros(frmLen,N);r=zeros(pLen+frmLen,M);
H=zeros(pLen+frmLen,N,M);H_e=zeros(frmLen,N,M);
z_e=zeros(frmLen,M);z1_e=zeros(frmLen/N,M);z2_e=z1_e;
z=z_e;z1=z1_e;z2=z2_e;
BER22_e=zeros(1,length(EbNo));BER22=BER22_e;
%SetupafigureforvisualizingBERresults
clf(h);gridon;holdon;
set(gca,'yscale','log','xlim',[EbNo
(1),EbNo(end