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

📄 bperuncode8psk.m

📁 无线通信系统中的空时编码的仿真程序。多天线发送
💻 M
字号:
function [pb,ps]=bperuncode8psk(snr_in_dB,N)
E=1;                                           %energy per symbol
snr=10^(snr_in_dB/10);
numan=1;                                       %the number of transmit antennas
M=8;
L=log(M)/log(2);
sgman=sqrt(E*numan/(2*snr));                   %noise variance
sgmaa=sqrt(0.5);
for k=1:N,
    temp=rand;
    dsource(k)=1+floor(M*temp);                % a integer number between 1 and M, uniform       
end;
mappingbits=[0 0 0;
            0 0 1;
            0 1 0;
            0 1 1;
            1 0 0;
            1 0 1;
            1 1 0;
            1 1 1];
mapping=[cos(pi/8)+sin(pi/8).*i;
     cos(3*pi/8)+sin(3*pi/8).*i;
     cos(7*pi/8)+sin(7*pi/8).*i;
     cos(5*pi/8)+sin(5*pi/8).*i;
     cos(15*pi/8)+sin(15*pi/8).*i;
     cos(13*pi/8)+sin(13*pi/8).*i;
     cos(9*pi/8)+sin(9*pi/8).*i;
     cos(11*pi/8)+sin(11*pi/8).*i];           %8PSK
 for k=1:N,
     epsk_sig(k)=mapping(dsource(k));
     dsourcebits(k,:)=mappingbits(dsource(k),:);
 end;
 for k=1:N,                                     %received signal
     [a(1) a(2)]=gngauss(sgmaa);                %path gain
     [n(1) n(2)]=gngauss(sgman);                %noise
     r(k)=epsk_sig(k).*(a(1)+a(2).*i)+(n(1)+n(2).*i);
     for j=1:M,
         s(k,j)=mapping(j).*(a(1)+a(2).*i);
     end;
 end;
 numofsymbolerror=0;
 numofbiterror=0;
 for k=1:N,
     for j=1:M,
         metrics(j)=abs(r(k)-s(k,j));
     end;
     [min_metric decis]=min(metrics);
     decisbits(k,:)=mappingbits(decis,:);
     for l=1:L,
         if (decisbits(k,l)~=dsourcebits(k,l)),
             numofbiterror=numofbiterror+1;
         end;
     end;
     if (decis~=dsource(k)),
         numofsymbolerror=numofsymbolerror+1;
     end;
 end;
 ps=numofsymbolerror/N;
 pb=numofbiterror/(L*N);     

⌨️ 快捷键说明

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