⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 plotconprob.m

📁 压缩文件中是Error Correction Coding - Mathematical Methods and Algorithms(Wiley 2005)作者:(Todd K. Moon )的配
💻 M
字号:
% plot the bounds on performance for a convolutianal code.% use T(D,N) = D^5 N/(1-2DN),  so T(D) = D^5/(1-2D)% dTdN = D^5/(1-2DN)^2   so dTdN_N=1  = D^5/(1-2D)^2% for a R=1/2 code with dfree = 5;% Copyright 2004 by Todd K. Moon% Permission is granted to use this program/data% for educational/research only% describe the codek = 1;n = 2;R = k/n;dfree = 5;anfree = 1;  % number of paths of this lengthNfree = 1;  % number of nonzero input bits on shortest path% plot rangeEbN0dB = 4:16;% Initialize the plot arraysuncoded = [];							% uncoded performancePehard = [];							% node error for hard decodingPbhard = [];							% bit error for hard decodingPbhardlower = [];						% lower bound for hard decodingPesoft1 = [];							% node error for soft decoding, bound 1Pesoft2 = [];							% node error for soft decoding, bound 2Pbsoft1 = [];							% bit error for soft decoding, bound 1Pbsoft2 = [];							% bit error for soft decoding,bound 2Pbsoftlower = [];						% lower bound for soft decoding  for e = EbN0dB;							% loop over each SNR  EbN0 = 10^(e/10);  % convert back from dB  uncoded = [uncoded qf(sqrt(2*EbN0))];  EcN0 = R*EbN0;  pc = qf(sqrt(2*EcN0));  % determine equivalent BSC crossover probability  % Hard decision upper bounds  Z = sqrt(4*pc*(1-pc));  Pehard = [Pehard (Z^5/(1-2*Z))];  Pbhard = [Pbhard ((Z^5)/(1-2*Z)^2)/k];  % compute Pdfree  if(mod(dfree,2) == 0) 				% even dfree	Pdfree = 0.5*nchoosek(dfree,dfree/2)*pc^(dfree/2)*(1-pc)^(dfree/2);	for k1=dfree/2+1:dfree	  Pdfree = Pdfree + nchoosek(dfree,k1)*pc^k1*(1-pc)^(dfree-k);	end  else									% odd dfree	Pdfree = 0;	for k1=(dfree+1)/2:dfree	  Pdfree = Pdfree + nchoosek(dfree,k1)*pc^k1*(1-pc)^(dfree-k);	end  end  % Hard decision lower bound  Pbhardlower = [Pbhardlower Nfree*anfree*Pdfree/k];  % soft decision upper bounds  Z = exp(-EcN0);  Pesoft1 = [Pesoft1 0.5*(Z^5/(1-2*Z))];  Pesoft2 = [Pesoft2 exp(dfree*EcN0)*qf(sqrt(2*dfree*EcN0))*(Z^5)/(1-2*Z)];  Pbsoft1 = [Pbsoft1 (0.5*Z^5/(1-2*Z)^2)/k];  Pbsoft2 = [Pbsoft2 (exp(dfree*EcN0)*qf(sqrt(2*dfree*EcN0))*Z^5/(1-2*Z)^2)/k];  % Soft decision lower bounds  Pbsoftlower = [Pbsoftlower Nfree*anfree*qf(sqrt(2*dfree*EcN0))/k];endclfsemilogy(EbN0dB,uncoded);hold on;semilogy(EbN0dB,Pbhard,'--');xlabel('E_b/N_0 (dB)');ylabel('Probability of bit error (bound)');semilogy(EbN0dB,Pbhardlower,'--');semilogy(EbN0dB,Pbsoft2,':');semilogy(EbN0dB,Pbsoft1,'r:');semilogy(EbN0dB,Pbsoftlower,':');legend('Uncoded','Hard decision bounds', 'Soft decision bounds');

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -