信道编码LDPC和Turbo文档格式.docx
- 文档编号:19869284
- 上传时间:2023-01-11
- 格式:DOCX
- 页数:11
- 大小:89.68KB
信道编码LDPC和Turbo文档格式.docx
《信道编码LDPC和Turbo文档格式.docx》由会员分享,可在线阅读,更多相关《信道编码LDPC和Turbo文档格式.docx(11页珍藏版)》请在冰豆网上搜索。
LTEusesaturbocoderasachannelcoder.Researchtheliteraturetoexplainthischoice.Whatisyourpersonalviewonthischoice?
(maximumlength1000words).
Turbocodingisanevolutionoftheconvolutionalcodingtechnologyusedinallpreviousstandardswithimpressivenear-channelcapacityperformance.ManyfactorsledtothechoiceofturbocodinginLTE.Thefirstisthenear-Shannon-boundperformanceofturbocoders.Givenasufficientnumberofiterationsinturbodecoding,turbocodescanhaveaBERperformancefarinexceedsofthoseofconventionalconvolutionalcoders.Furthermore,theylendthemselvestoadaptation,duetotheuseofaninnovativerate-matchingmechanism.
Inmyopinion,thisisawisechoice.TheLTEisdesignedtoprovidehigherdatarates,improvedpowerefficiency,lowlatencyandbetterqualityofservice.Thisrequestsanexcellent
channelcodingmethod.Turbohasanear-Shannon-boundperformanceanditcanprovideavarietyofcodingrates.Withthecontinuousoptimizationofthedecodingalgorithmandthecontinuousimprovementofhardwareperformance,turbodecodingspeedbecomesfasterandfaster.SoturboisverysuitableforLTE.
Appendix1:
main.m
clear
clc
%%Task3
%WriteascriptthatusesthefunctiontoplotthesimulatedBERofthetransceiver
%asafunctionoftheenergyperbittonoisepowerspectraldensityratio(Eb/N0).
EbNoTask3=0:
0.5:
2.5;
%SettheEbNoforsimulation
maxNumErrs=0.5*10^7;
%Setthemaximumnumberoferrorbits
maxNumBits=10^7;
%Setthenumberofsimulationbits
ber_all=zeros(length(EbNoTask3),1);
%Initializeber
forii=1:
length(EbNoTask3)
EbNo=EbNoTask3(ii);
%GetthecurrentEbNo
[ber,bits]=qpsk_turbo(EbNo,maxNumErrs,maxNumBits);
%Callthefunction
ber_all(ii)=ber;
%Recordtheber
end
%Plot
figure
(1)
semilogy(EbNoTask3,ber_all,'
-r*'
'
lineWidth'
2);
legend('
Turbo,NumIteration=2'
0);
xlabel('
Eb/N0(dB)'
);
ylabel('
BER'
title('
Task3'
gridon;
%%Task4
%Increasethenumberofiterationsintheturbodecoder(usethreeadditionalvalues).
EbNoTask4=0:
0.3:
1.2;
iteration=2:
5;
%Setiteration
ber_ite=zeros(length(EbNoTask4),length(iteration));
length(iteration)
forjj=1:
length(EbNoTask4)
EbNo=EbNoTask4(jj);
[ber,bits]=qpsk_turbo_ite(EbNo,maxNumErrs,maxNumBits,iteration(ii));
ber_ite(jj,ii)=ber;
end
figure
(2)
semilogy(EbNoTask4,ber_ite(:
1),'
-bs'
EbNoTask4,ber_ite(:
2),'
-go'
3),'
-k+'
4),'
NumIteration=2'
NumIteration=3'
NumIteration=4'
NumIteration=5'
Task4'
%%Task5
%ReplacetheturbocoderbyanLDPCcoder.
EbNoTask5=-0.2:
0.2:
0.4;
maxNumBits1=[10^5,10^6,10^6,10^7];
ber_ldpc=zeros(length(EbNoTask5),1);
length(EbNoTask5)
EbNo=EbNoTask5(ii);
[ber,bits]=qpsk_ldpc(EbNo,maxNumErrs,maxNumBits1(ii));
ber_ldpc(ii)=ber;
figure(3)
semilogy(EbNoTask5,ber_ldpc,'
-g+'
LDPC'
Task5'
Appendix2:
qpsk_turbo.m
function[ber,bits]=qpsk_turbo(EbNo,maxNumErrs,maxNumBits)
%%Constants
FRM=2048;
%Sourcebitsforonce
Trellis=poly2trellis(4,[1315],13);
%Convertconvolutionalcodepolynomialstotrellisdescriptionforturbo
Indices=randperm(FRM);
%Generatearandominterleavingtableforturbo
M=4;
k=log2(M);
%Modulationorderandmodulationbits
R=FRM/(3*FRM+4*3);
%Coderateis1/3and'
4*3'
isthelengthoftailbit.
snr=EbNo+10*log10(k)+10*log10(R);
%CalculatetheSNR.SNR=EbNo+10*log10(Rb/Rs)=EbNo+10*log10(k)+10*log10(R)
noise_var=10.^(-snr/10);
%Calculatethenoisepower
%%Initializations
persistentModulatorAWGNDeModulatorBitErrorTurboEncoderTurboDecoder%Definepersistentvariable
ifisempty(Modulator)%If'
Modulator'
hasnotdefined.
Modulator=comm.QPSKModulator('
BitInput'
true);
%GettheQPSKmodulatorhandleandsetinputdataasbits
AWGN=comm.AWGNChannel;
%GettheAWGNchannelhandle
DeModulator=comm.QPSKDemodulator('
BitOutput'
true,...%GettheQPSKdemodulatorhandleandsetoutputdataasbits
'
DecisionMethod'
Log-likelihoodratio'
...%DecisionMethodisLog-likelihoodratio
VarianceSource'
'
Inputport'
%Specifythesourceofthenoisevarianceas'
Inputport'
BitError=comm.ErrorRate;
%GetErrorRatehandle.
TurboEncoder=comm.TurboEncoder(...%Gettheturboencoderhandle
TrellisStructure'
Trellis,...%Setthepolynomials
InterleaverIndices'
Indices);
%Settheinterleavingtable
TurboDecoder=comm.TurboDecoder(...%Gettheturbodecoderhandle
Indices,...%Settheinterleavingtable
NumIterations'
%Specifethenumberofdecodingiterations
%%Processsingloopmodelingtransmitter,channelmodelandreceiver
AWGN.EbNo=snr;
%Setthesignal-to-noiseratioofthechannel
numErrs=0;
numBits=0;
results=zeros(3,1);
%Initializethenumberoferrorbits,thenumberofsimulatedbits,andthesimulationresults
while((numErrs<
maxNumErrs)&
&
(numBits<
maxNumBits))%WhenthenumberoferrorbitsislessthanmaxNumErrsandthenumberofsimulatedbitsislessthanmaxNumBits
%Transmitter
u=randi([01],FRM,1);
%Randombitsgenerator
encoded=TurboEncoder.step(u);
%TurboEncoder
mod_sig=Modulator.step(encoded);
%QPSKModulator
%Channel
rx_sig=AWGN.step(mod_sig);
%AWGNchannel
%Receiver
demod=DeModulator.step(rx_sig,noise_var);
%Soft-decisionQPSKDemodulator
decoded=TurboDecoder.step(-demod);
%TurboDecoder
y=decoded(1:
FRM);
%Computeoutputbits
results=BitError.step(u,y);
%UpdateBER
numErrs=results
(2);
%Updatethenumberoferrorbits
numBits=results(3);
%Updatethenumberofsimulatedbits
%%Cleanup&
collectresults
ber=results
(1);
bits=results(3);
%Returntheresults
reset(BitError);
Appendix3:
qpsk_turbo_ite.m
function[ber,bits]=qpsk_turbo_ite(EbNo,maxNumErrs,maxNumBits,numIteration)
TurboDecoder=comm.TurboDecoder(...%Get
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 信道编码 LDPC Turbo