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

📄 ber_apsk.m

📁 16apsk通讯系统的信噪比与误码率计算并绘图
💻 M
字号:
N=10000; 
R=3;  
M=16; 
v=sqrt(-1); 
x=randint(1,N,M)+1;  
s_16apsk=[R*exp(v*2*pi*3/24); 
       R*exp(v*2*pi*21/24); 
       R*exp(v*2*pi*9/24); 
       R*exp(v*2*pi*15/24); 
       R*exp(v*2*pi*1/24); 
       R*exp(v*2*pi*23/24); 
       R*exp(v*2*pi*11/24); 
       R*exp(v*2*pi*13/24); 
       R*exp(v*2*pi*5/24); 
       R*exp(v*2*pi*19/24); 
       R*exp(v*2*pi*7/24); 
       R*exp(v*2*pi*17/24); 
       1/3*2.^0.5*R*exp(v*2*pi*3/24); 
       1/3*2.^0.5*R*exp(v*2*pi*21/24); 
       1/3*2.^0.5*R*exp(v*2*pi*9/24); 
       1/3*2.^0.5*R*exp(v*2*pi*15/24)].'; 
   
for n=1:N ;
    x_16apsk(n)=s_16apsk(x(n)); 
end 
figure(1); 
plot(real(x_16apsk),imag(x_16apsk),'.');title('16apsk信号星座图');grid; 
for i=1:30
    x_16apsknoisy=awgn(x_16apsk,i,'measured'); 
    r_16apsk=abs(x_16apsknoisy);
    q_16apsk=angle(x_16apsknoisy); 
    for n=1:N
        if r_16apsk(n)>=(1/3*2.^0.5+1)/2*R
            if q_16apsk(n)<=4*pi/12&q_16apsk(n)>2*pi/12 
                x_de16apsk(n)=s_16apsk(1); 
            elseif q_16apsk(n)<=-2*pi/12&q_16apsk(n)>-4*pi/12 
                x_de16apsk(n)=s_16apsk(2); 
            elseif q_16apsk(n)<=10*pi/12&q_16apsk(n)>8*pi/12 
                x_de16apsk(n)=s_16apsk(3); 
            elseif q_16apsk(n)<=-8*pi/12&q_16apsk(n)>-10*pi/12 
                x_de16apsk(n)=s_16apsk(4); 
            elseif q_16apsk(n)<=2*pi/12&q_16apsk(n)>0*pi/12 
                x_de16apsk(n)=s_16apsk(5); 
            elseif q_16apsk(n)<=0*pi/12&q_16apsk(n)>-2*pi/12 
                x_de16apsk(n)=s_16apsk(6); 
            elseif q_16apsk(n)<=12*pi/12&q_16apsk(n)>10*pi/12 
                x_de16apsk(n)=s_16apsk(7); 
            elseif q_16apsk(n)<=-10*pi/12&q_16apsk(n)>-12*pi/12 
                x_de16apsk(n)=s_16apsk(8); 
            elseif q_16apsk(n)<=6*pi/12&q_16apsk(n)>4*pi/12 
                x_de16apsk(n)=s_16apsk(9); 
            elseif q_16apsk(n)<=-4*pi/12&q_16apsk(n)>-6*pi/12 
                x_de16apsk(n)=s_16apsk(10); 
            elseif q_16apsk(n)<=8*pi/12&q_16apsk(n)>6*pi/12 
                x_de16apsk(n)=s_16apsk(11); 
            elseif q_16apsk(n)<=-6*pi/12&q_16apsk(n)>-8*pi/12 ;
                x_de16apsk(n)=s_16apsk(12); 
            end
        elseif r_16apsk(n)<(1/3*2.^0.5+1)/2*R
            if q_16apsk(n)<=pi/2&q_16apsk(n)>0*pi/4 
                x_de16apsk(n)=s_16apsk(13); 
            elseif q_16apsk(n)<=0&q_16apsk(n)>-pi/2 
                x_de16apsk(n)=s_16apsk(14); 
            elseif q_16apsk(n)<=pi&q_16apsk(n)>pi/2 
                x_de16apsk(n)=s_16apsk(15); 
            else 
                x_de16apsk(n)=s_16apsk(16); 
            end 
        end 
    end 
    [num,rt]=symerr(x_16apsk,x_de16apsk); 
    ber_16apsk(i)=rt; 
end
n=1:30;
figure(2); 
semilogy(n,ber_16apsk,'*');  
hold on
semilogy(n,ber_16apsk,'-'); 
title('16apsk信噪比与误码率的关系曲线'); 
grid; 

⌨️ 快捷键说明

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