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

📄 lsb_error_pam.m

📁 Hierarchical-QAM的程序
💻 M
字号:
function [err_value] = lsb_error_pam(d_input_vector, snr)% This function calculates the BER for the LSB.m=length(d_input_vector);%%%%% Calculate the actual coordinate vectors (x).x=zeros(2^(m), 1);d_0=zeros(2^(m-1), 1);d_1=zeros(2^(m-1), 1);B=zeros(2^(m-1), 1);for i=2^(m-1):2^(m)-1    index=i;    mult=zeros(1,m);    for j=m:-1:1        mult(j)=2*mod(index,2)-1; % The 'for' loop generates b_{i,k} in (1)        index=floor(index/2);    end;    x(i+1)=sum(mult .* d_input_vector); end;for i=1:2^(m-1)    x(i)=-x(2^(m)+1-i);end;%%% Generate d_0d_0(1)=x(1);d_0(2^(m-1))=x(2^m);for i=2:2:2^(m-1)-1	d_0(i)=x(2*i);	d_0(i+1)=x(2*i+1);   %%% Note that x(2(i+1)-1)= x(2i+1)end;%%% Generate d_1 nowfor i=1:2:2^(m-1)	d_1(i)=x(2*i);	d_1(i+1)=x(2*i+1);  %%% Again x(2(i+1)-1)=x(2i+1)end;%%% Now generate the B vectorfor j=1:2^(m-1)	B(j)=0.5*( x(2*j-1) + x(2*j) );end;B;d_0;d_1;%%%%% Now B, d_0 and d_1 vectors are ready. Calculate the Errorerr=0;for i=1:1:2^(m-1)    for j=1:2^(m-1)          err=err+((-1)^(j+1))*0.5*erfc((B(j,1)-d_0(i,1))/snr);    end;    err;end;for i=1:1:2^(m-1)    for j=1:2^(m-1)        err=err+ ((-1)^(j))*0.5*erfc((B(j,1)-d_1(i,1))/snr);    end;    err=err+1;end;err_value=err/(2^(m));

⌨️ 快捷键说明

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