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

📄 pr9_24.m

📁 Spread Spectrum and CDMA Principles and Applications 书籍和代码
💻 M
字号:
%Problem 9.24;
%error detecting by CRC; 

clear all;
n=65; %specify length n<2^16;
m=ceil(log2(n+1)); %degree of primitive polynomial;
g1=primpoly(m,'nodisplay'); %primitive polynomial of degree m;
g1b=de2bi(g1); %converts polynomial to binary vector;
g=gfconv([1,1],g1b); %generator polynomial ready;
erweight=unidrnd(3,1,1); %weight 1, 2 or 3 of error vector;
erpat=randerr(1,n,erweight); %error vector of weight 1, 2 or 3;
[q,r]=gfdeconv(erpat,g); %division by generator polynomial;
fprintf('\n'); fprintf(['generator polynomial g= ',num2str(g)]); fprintf('\n');
fprintf(['error vector e= ',num2str(erpat)]); fprintf('\n');
fprintf(['syndrome r= ',num2str(r)]); fprintf('\n');
k=n-length(g)+1; erp1=unidrnd(2^k-1,1,1); erp=de2bi(erp1); %binary vector to come to undetected error;
erpat1=gfconv(g,erp); %error vector coinciding with codeword;
[q,r]=gfdeconv(erpat1,g); %division by generator polynomial;
fprintf('\n'); fprintf(['error vector e= ',num2str(erpat1)]); fprintf('\n');
fprintf(['syndrome r= ',num2str(r)]); fprintf('\n');
pr=0; N=10000; %initialize probability of error non-detecting;
for k=1:N
    erpat=unidrnd(2,1,n)-1; %error vector;
    [q,r]=gfdeconv(erpat,g); 
    if any(r)==0 pr=pr+1; end;
end;
prex=pr/N; prth=2^(-m-1); %experimental and predicted probabilities of error non-detecting;
fprintf('\n'); disp(['  P_{nd,ex} P_{nd,th}']); fprintf('\n');
disp([prex,prth]); fprintf('\n');

⌨️ 快捷键说明

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