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

📄 new_error_rate.m

📁 用matlab分析bPSK和qpsk的误码率
💻 M
字号:
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%求得误码率和误比特率随信噪比的变化曲线%
%在不通的信噪比下进行仿真,并且在同一信噪比下经过多次仿真求平均值%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
display('程序正在执行。。。');
clear;
n=100;                            %每次仿真信源产生的二进制个数
%先进行BPSK仿真
format long e;

z=10;                           %对每个信噪比仿真次数
index=1;
cer1=zeros(11,z);
ber1=zeros(11,z);
kk=0;
for SNR=0:1:10                %信噪比从0到10db仿真
    kk=kk+1;
    for jj=1:1:z                 %对每个信噪比仿真z次求平均值
        [cer,ber]=new_psk_performance(n,index,SNR);
        cer1(kk,jj)=cer;
        ber1(kk,jj)=ber;
    end;
end;
kk=0;
 cer_average1=zeros(1,11);
 ber_average1=zeros(1,11);
for SNR=0:1:10
    kk=kk+1;
    cer_average1(kk)=sum(cer1(kk,:))/z;
    ber_average1(kk)=sum(ber1(kk,:))/z;
end;
%display(kk);
display(cer_average1);
%display(ber_average1);
SNR=0:1:10;
%下面求理论误码率    在BPSK下误码率和误比特率相等
format long e;
d=sqrt(8*SNR);         %求偏移系数d,在BPSK下两个信号反相,相关系数等于-1
                       %Pe=Q(d/2)
%display(d);
pe=0.5*erfc((d/2)/sqrt(2));             %理论误码率,Q函数Q(x)=0.5*erfc(x/sqrt(2));
display(pe);
subplot(121);
semilogy(SNR,cer_average1,'-',SNR,pe,'--');
grid on;
title('BPSK信号检测的误码率和理论误码率曲线');
xlabel('SNR/dB');
ylabel('Pe');
legend('-检测误码率曲线','--理论误码率曲线');
axis([0,10,0.0000001,1]);

clear;
n=100;
index=2;                         %QPSK仿真,求得误码率和误比特率曲线
format long e;
z=10;                          %对每个信噪比仿真次数

cer2=zeros(15,z);
ber2=zeros(15,z);
kk=0;
for SNR=0:1:14               %信噪比从0到14db仿真
    kk=kk+1;
    for jj=1:1:z                 %对每个信噪比仿真z次求平均值
        [cer,ber]=new_psk_performance(n,index,SNR);
        cer2(kk,jj)=cer;
        ber2(kk,jj)=ber;
    end;
end;
kk=0;
 cer_average2=zeros(1,15);
 ber_average2=zeros(1,15);
for SNR=0:1:14
    kk=kk+1;
    cer_average2(kk)=sum(cer2(kk,:))/z;
    ber_average2(kk)=sum(ber2(kk,:))/z;
end;
%display(kk);
display(cer_average2);
display(ber_average2);
SNR=0:1:14;
%下面求理论误码率    
d=sqrt(8*SNR);         %求偏移系数d,在BPSK下两个信号反相,相关系数等于-1
%display(d);
pe=0.5*erfc((d/2)/sqrt(2));             %理论误码率,Q函数Q(x)=0.5*erfc(x/sqrt(2));
display(pe);
subplot(122);
semilogy(SNR,cer_average2,'-',SNR,ber_average2,'.',SNR,pe,'--');
grid on;
title('QPSK信号检测的误码率与误比特率和理论误码率曲线');
xlabel('SNR/dB');
ylabel('Pe');
legend('-检测误码率曲线','...检测误比特率','--理论误码率曲线');
axis([0,14,0.0000001,1]);
format;




⌨️ 快捷键说明

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