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

📄 matlab做误码率.txt

📁 可以实现单极性双极性在不同信噪比的条件下对误码率的比较。
💻 TXT
字号:


     可以实现单极性双极性在不同信噪比的条件下对误码率的比较。

%生成单极性方波
function x=randn_ab(N); 
N=10000;
x=randint(1,N); 
for i=1:length(x);
    fs=100;
     t=0:1/fs:length(x);
     j=1:fs;
       if(x(i)==1);
         y1((i-1)*fs+j)=1;
       else
         y1((i-1)*fs+j)=0;
       end;
   end
 y1=[y1,x(i)]; 


    
 %高斯白躁声与原信号叠加
 SNR=1:1:10; 
 for k=1:1:length(SNR);
  n1=awgn(y1,SNR(k));
 

%加入判决电平恢复信号
 fs=100;
for i=1:length(x);
    for j=1:fs;
       g1(i)=mean(n1((i-1)*fs+j));
      if(g1(i)>=0.5); 
           for j=1:fs;
            z1((i-1)*fs+j)=1;
           end
      else
           for j=1:fs;
           z1((i-1)*fs+j)=0;
           end
      end
    end 
end      
z1=[z1,g1(i)];              

%判断误码率
for i=1:length(x);
   if(g1(i)>=0.5); 
      g1(i)=1;
   else
      g1(i)=0;
   end
end;
d=xor(x,g1);
r=0;
h1=0;
for i=1:length(d);
    if(d(i)==1);
     r=r+1;  
    end
end
h1=h1+r     %h为误码个数
p1(k)=h1/N     %p为误码率

 end
 


 %生成双极性方波
N=10000;
x=randint(1,N); 
for i=1:length(x);
    fs=100;
     t=0:1/fs:length(x);
     j=1:fs;
       if(x(i)==1);
         y2((i-1)*fs+j)=1;
       else
         y2((i-1)*fs+j)=-1;
       end;
   end
 y2=[y2,x(i)];
 
  %高斯白躁声与原信号叠加
 SNR=1:1:10; 
 for k=1:1:length(SNR)
  n2=awgn(y2,SNR(k));
 
 %加入判决电平
 fs=100;
for i=1:length(x);
    for j=1:fs;
        g2(i)=mean(n2((i-1)*fs+j));
      if(g2(i)>=0); 
           for j=1:fs;
            z2((i-1)*fs+j)=1;
           end
      else
           for j=1:fs;
           z2((i-1)*fs+j)=-1;
           end
      end
    end 
end      
z2=[z2,g2(i)];              

%判断误码率
for i=1:length(x);
   if(g2(i)>=0); 
      g2(i)=1;
   else
      g2(i)=0;
   end
end;
d=xor(x,g2);
r=0;
h2=0;
for i=1:length(d)
     if(d(i)==1);
        r=r+1;  %r为误码个数
     end
end
h2=h2+r   %h为误码个数
p2(k)=h2/N  %p为误码率

 end

semilogy(SNR,p1,'b',SNR,p2,'r') 

⌨️ 快捷键说明

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