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

📄 fangzhenpsk.m

📁 信号检测与估计中MATALAB仿真psk的源代码程序
💻 M
字号:
L=10000;
randn('state',sum(500*clock));
t=0:pi/13:2*pi;                                  %取26个取样点
SNR=-12:0.5:3;
snr=SNR/10;
for ii=1:length(SNR)
    A(ii)=1/sqrt(2*(10^snr(ii)));                    %噪声的方差
    n11=0;n12=0;n13=0;n21=0;n22=0;n23=0;
    S=randint(1,L);
    for k=1:L
        n=A(ii)*randn(1,length(t));
        for i=1:length(t)
            s11(i)=cos(t(i));s12(i)=-cos(t(i));                         %2PSK
            s21(i)=cos(3*t(i));s22(i)=cos(5*t(i));                      %2FSK
            s31(i)=cos(t(i));s32(i)=0;                                %2ASK
        end
        jun11=sum(s11.^2);jun12=sum(s12.^2);
        s11=s11/sqrt(jun11);s12=s12/sqrt(jun12);
        x11=s11+n;x12=s12+n ;                                     %2PSK
        jun21=sum(s21.^2);jun22=sum(s22.^2);
        s21=s21/sqrt(jun21);s22=s22/sqrt(jun22);
        x21=s21+n;x22=s22+n;                                      %2FSK
        jun31=sum(s31.^2);
        s31=s31/sqrt(jun31);
        x31=s31+n;x32=s32+n;                                      %2ASK
        if  S(k)==0
            ss11=0;ss21=0;ss31=0;men=0;men1=0;men2=0;men3=0;
            for i=1:length(t)
                ss11=ss11+x11(i)*(s12(i)-s11(i));               %累加求和
                ss21=ss21+x21(i)*(s22(i)-s21(i));
                ss31=ss31+x31(i)*(s32(i)-s31(i));
                men1=men1+(s12(i)^2-s11(i)^2)/2;             %门限
                men2=men2+(s22(i)^2-s21(i)^2)/2;
                men3=men3+(s32(i)^2-s31(i)^2)/2;
            end
            if ss11>men1
                n11=n11+1;
            end
            if ss21>men2
                n12=n12+1;
            end
            if ss31>men3
                n13=n13+1;
            end
        else
            ss11=0;ss21=0;ss31=0;men=0;men1=0;men2=0;men3=0;
            for i=1:length(t)
                ss11=ss11+x12(i)*(s12(i)-s11(i));
                ss21=ss21+x22(i)*(s22(i)-s21(i));
                ss31=ss31+x32(i)*(s32(i)-s31(i));
                men1=men1+(s12(i)^2-s11(i)^2)/2;
                men2=men2+(s22(i)^2-s21(i)^2)/2;
                men3=men3+(s32(i)^2-s31(i)^2)/2;
             end
            if ss11<men1
                n21=n21+1;
            end
            if ss21<men2
                n22=n22+1;
            end
            if ss31<men3
                n23=n23+1;
            end
        end
    end
    pe1(ii)=(n11+n21)/L;
    pe2(ii)=(n12+n22)/L;
    pe3(ii)=(n13+n23)/L;
end
figure;
semilogy(SNR,pe1,' -o');hold on;
semilogy(SNR,pe2,'-*');hold on;
semilogy(SNR,pe3,'-^');hold on;     
legend('2PSK','2FSK','2ASK');      
grid on;
xlabel('信噪比');ylabel('误码率');
title('误码率随信噪比的变化情况');

⌨️ 快捷键说明

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