polar-3gpp-matlab开源项目

我要开发同款
匿名用户2021年11月23日
56阅读
所属分类、应用工具、科研计算工具
授权协议GPL-3.0 License

作品详情

polar-3gpp-matlab

MatlabsimulationsoftheencoderandSuccessiveCancellationList(SCL)decoderfortheNewRadiopolarcodefrom3GPPRelease15,asdefinedinTS38.212V15.2.0andusedinthePublicBroadcastChannel(PBCH),PhysicalDownlinkControlChannel(PDCCH)andPhysicalUplinkControlChannel(PUCCH).

Thiscodeisintendedtoprovideareferencemodelforthestandardandhasbeenwrittenwithafocusoncorrectness,ratherthanonsimulationspeed.ThiscodeisalsointendedtoprovideaplatformforresearchonenhancementstotheNewRadiopolarcode.Thismotivatestheinclusionofthecustom1_encoderandcustom1_decoder,alongsideencodersanddecodersfortheNewRadioPBCH,PDCCHandPUCCHchannels.Inparticular,custom1_encoderandcustom1_decoderadapttheNewRadiopolarcodeforgeneralpurposeapplications,enablingsupportforarbitrarily-highinformationblocklengthsA.Bycontrast,thelongestblocklengthssupportedintheNewRadioPBCH,PDCCHandPUCCHchannelsare32,140and1706bits,respectively.

PlotofBlockErrorRate(BLER)versuschannelSignaltoNoiseRatio(SNR)Es/N0forthePublicBroadcastChannel(PBCH)polarcodeof3GPPNewRadio,whenusingQuadraturePhaseShiftKeying(QPSK)forcommunicationoveranAdditiveWhiteGaussianNoise(AWGN)channel.Here,Aisthenumberofbitsineachinformationblock,EisthenumberofbitsineachencodedblockandListhelistsizeusedduringmin-sumSuccessiveCancellationList(SCL)decoding.ThesimulationofeachSNRwascontinueduntil1000blockerrorswereobserved.CapacityplotsareprovidedbytheO(n−2)metaconversePPVupperbound.PlotofSignaltoNoiseRatio(SNR)Es/N0requiredtoachieveaBlockErrorRate(BLER)of10-3versusnumberbitsineachinformationblockAforthePhysicalDownlinkControlChannel(PDCCH)polarcodeof3GPPNewRadio,whenusingQuadraturePhaseShiftKeying(QPSK)forcommunicationoveranAdditiveWhiteGaussianNoise(AWGN)channel.Here,EisthenumberofbitsineachencodedblockandListhelistsizeusedduringmin-sumSuccessiveCancellationList(SCL)decoding.ThesimulationofeachSNRwascontinueduntil100blockerrorswereobserved.CapacityplotsareprovidedbytheO(n−2)metaconversePPVupperbound.PlotofSignaltoNoiseRatio(SNR)Es/N0requiredtoachieveaBlockErrorRate(BLER)of10-3versusnumberbitsineachinformationblockAforthePhysicalUplinkControlChannel(PUCCH)polarcodeof3GPPNewRadio,whenusingQuadraturePhaseShiftKeying(QPSK)forcommunicationoveranAdditiveWhiteGaussianNoise(AWGN)channel.Here,GisthenumberofbitsineachencodedblockandListhelistsizeusedduringmin-sumSuccessiveCancellationList(SCL)decoding.ThesimulationofeachSNRwascontinueduntil100blockerrorswereobserved.CapacityplotsareprovidedbytheO(n−2)metaconversePPVupperbound.

ThecapacityplotsintheFiguresabovewereobtainedusingtheO(n−2)metaconversePPVupperboundfromtheSPECTREShortPacketCommunicationToolbox.Ifyouusetheseresults,pleaseacknowledgethemwithareferenceto...

T.Erseghe,"CodingintheFinite-BlocklengthRegime:BoundsBasedonLaplaceIntegralsandTheirAsymptoticApproximations",IEEETransactionsonInformationTheory,vol.62,no.12,pp.6854-6883,Dec.2016.

SectionofTS38.212ImplementedinComment5.1components/get_crc_generator_matrix.mTheCRCbitsaregeneratedusingb=[a,mod(a*G_P,2)].5.2.1PUCCH_encoder.mThefirstandsecondsegmentsareobtainedasa(1:floor(A/C))anda(floor(A/C)+1:A),respectively.5.3.1components/get_3GPP_N.m5.3.1.1components/get_3GPP_crc_interleaver_pattern.mInterleavingisimplementedusingc_prime=c(Pi).5.3.1.2Q0N-1components/get_3GPP_sequence_pattern.mTheelementsofQ0N-1areincrementedby1,sinceindicesbeginat1inMatlab.5.3.1.2QPCNcomponents/get_PC_bit_pattern.mProvidesavectorofNelements,inwhichtheelementswiththeindicesQPCNaresettotrueandallotherelementsaresettofalse.5.3.1.2ucomponents/PCCA_polar_encoder.mOthercomponents/*_polar_encoder.mfilesarealsousefulforspecialcaseswithoutPCbits,withoutCRCbitsorwithdistributedCRCbits.5.3.1.2GNcomponents/get_G_N.mEncodingisimplementedusingd=mod(u*G_N,2).5.4.1.1P(i)components/get_3GPP_rate_matching_pattern.m5.4.1.1QINcomponents/get_3GPP_info_bit_pattern.mProvidesavectorofNelements,inwhichtheelementswiththeindicesQINaresettotrueandallotherelementsaresettofalse.5.4.1.2components/get_3GPP_rate_matching_pattern.mRatematchingisimplementedusinge=d(rate_matching_pattern).5.4.1.3components/get_3GPP_channel_interleaver_pattern.mInterleavingisimplementedusingf=e(channel_interleaver_pattern).5.5PUCCH_encoder.mThefirstandsecondsegmentsareconcatenatedusingf=[f,...].6.3.1.2.1PUCCH_encoder.m6.3.1.3.1PUCCH_encoder.m6.3.1.4.1PUCCH_encoder.mRatematchingisimplemented,butnotthedeterminationofEUCI.6.3.1.5PUCCH_encoder.m6.3.2.2.1PUCCH_encoder.m6.3.2.3.1PUCCH_encoder.m6.3.2.4.1PUCCH_encoder.mRatematchingisimplemented,butnotthedeterminationofEUCI.6.3.2.5PUCCH_encoder.m7.1.3PBCH_encoder.m7.1.4PBCH_encoder.m7.1.5PBCH_encoder.m7.3.1PDCCH_encoder.mOnlyimplementsthezeropaddingofDCIformats,toincreasetheirlengthto12bits.7.3.2PDCCH_encoder.m7.3.3PDCCH_encoder.m7.3.4PDCCH_encoder.m

Eachofthe*_encoder.mfileshascorresponding*_decoder.mfiles,forperformingthecorrespondingoperationofthereceiver.

ManythankstomycolleaguesatAccelerComm,whohavespentlotsoftimedoublecheckingthatthiscodematchesthestandard.

Havefun!Rob.

声明:本文仅代表作者观点,不代表本站立场。如果侵犯到您的合法权益,请联系我们删除侵权资源!如果遇到资源链接失效,请您通过评论或工单的方式通知管理员。未经允许,不得转载,本站所有资源文章禁止商业使用运营!
下载安装【程序员客栈】APP
实时对接需求、及时收发消息、丰富的开放项目需求、随时随地查看项目状态

评论