MIMOOFDMSimulator:OFDM.m:OFDMSimulator(outerfunction)create_channel.m:GeneratesaRayleighfadingfrequency-selectivechannel,parametrizedbytheantennaconfiguration,theOFDMconfiguration,andthepower-delayprofile.svd_decompose_channel.m:Sincefullchannelknowledgeisassumed,transmissionisacrossparallelsingularvaluemodes.Thisfunctiondecomposesthechannelintothesemodes.BitLoad.m:Applythebit-loadingalgorithmtoachievethedesiredbitandenergyallocationforthecurrentchannelinstance.ComputeSNR.m:Giventhesubcarriergains,thissimplefunctiongeneratestheSNRvaluesofeachchannel(eachsingularvalueoneachtoneisaseparatechannel).chow_algo.m:ApplyChow'salgorithmtogenerateaparticularbitandenergyallocation.EnergyTableInit.m:GiventheSNRvalues,formatableofenergyincrementsforeachchannel.campello_algo.m:ApplyCampello'salgorithmtoconvergetotheoptimalbitandenergyallocationforthegivenchannelconditions.ResolvetheLastBit.m:Anoptimalbit-loadingofthelastbitrequiresauniqueoptimization.modulate.m:Modulatetherandominputsequenceaccordingtothebitallocationsforeachchannel.ENC2.mat:BPSKModulatorENC4.mat:4-QAMModulator(Graycoded)ENC16.mat:16-QAMModulator(Graycoded)ENC64.mat:64-QAMModulator(Graycoded)ENC256.mat:256-QAMModulator(Graycoded)precode.m:Precodethetransmittedvectorateachtimeinstancebyfilteringthemodulatedvectorwiththeright-inverseofthechannel'srightsingluarmatrix.ifft_cp_tx_blk.m:IFFTblockoftheOFDMsystem.channel.m:ApplythechanneltotheOFDMframe.fft_cp_rx_blk.m:FFTblockoftheOFDMsystem.shape.m:Completethediagonalizationofthechannelbyfilteringthereceivedvectorwiththeleft-inverseofthechannel'sleftsingularmatrix.demodulate.m:Performanearestneighborsearchknowingthetransmitconstellationused.
1