1.算法描述
在数字通信的三种调制方式(ASK、FSK、PSK)中, 就频带利用率和抗噪声性能(或功率利用率)两个方面来看,一般而言,都是PSK系统最佳。所以PSK在 中、高速数据传输中得到了广泛的应用。
ASK: 幅度键控可以通过乘法器和开关电路来实现。载波在数字信号1或0的控制下通或断,在信号为1的状态载波接通,此时传输信道上有载波出现;在信号为0的状态下,载波被关断,此时传输信道上无载波传送。那么在接收端我们就可以根据载波的有无还原出数字信号的1和0。
2-ASK信号功率谱密度的特点如下:
(1)由连续谱和离散谱两部分构成;连续谱由传号的波形g(t)经线性调制后决定,离散谱由载波分量决定;
(2)已调信号的带宽是基带脉冲波形带宽的二倍。
FSK:频移键控是利用两个不同频率f1和f2的振荡源来代表信号1和0,用数字信号的1和0去控制两个独立的振荡源交替输出。对二进制的频移键控调制方式,其有效带宽为B=2xF+2Fb,xF是二进制基带信号的带宽也是FSK信号的最大频偏,由于数字信号的带宽即Fb值大,所以二进制频移键控的信号带宽B较大,频带利用率小。
2-FSK功率谱密度的特点如下:
(1) 2FSK信号的功率谱由连续谱和离散谱两部分构成,离散谱出现在f1和f2位置;
(2) 功率谱密度中的连续谱部分一般出现双峰。若两个载频之差|f1 -f2|≤fs,则出现单峰。
PSK:在相移键控中,载波相位受数字基带信号的控制,如在二进制基带信号中为0时,载波相位为0或π,为1时载波相位为π或0。载波相位和基带信号有一一对应的关系,从而达到调制的目的。
2-PSK信号的功率密度有如下特点:
(1) 由连续谱与离散谱两部分组成;
(2) 带宽是绝对脉冲序列的二倍;
(3) 与2ASK功率谱的区别是当P=1/2时,2PSK无离散谱,而2ASK存在离散谱。
2.仿真效果预览
matlab2022a仿真结果如下:
3.MATLAB核心程序
%ASK sa1=sin(2*pi*f1*t); E1=sum(sa1.^2); sa1=sa1/sqrt(E1); %unit energy sa0=0*sin(2*pi*f1*t); %FSK sf0=sin(2*pi*f1*t); E=sum(sf0.^2); sf0=sf0/sqrt(E); sf1=sin(2*pi*f2*t); E=sum(sf1.^2); sf1=sf1/sqrt(E); %PSK sp0=-sin(2*pi*f1*t)/sqrt(E1); sp1=sin(2*pi*f1*t)/sqrt(E1); .......................................................... figure(1) subplot(411) stairs(0:10,[b(1:10) b(10)],'linewidth',1.5) axis([0 10 -0.5 1.5]) title('Message Bits');grid on subplot(412) tb=0:1/30:10-1/30; plot(tb, ask(1:10*30),'b','linewidth',1.5) title('ASK Modulation');grid on subplot(413) plot(tb, fsk(1:10*30),'r','linewidth',1.5) title('FSK Modulation');grid on subplot(414) plot(tb, psk(1:10*30),'k','linewidth',1.5) title('PSK Modulation');grid on xlabel('Time');ylabel('Amplitude') %AWGN for snr=0:20 askn=awgn(ask,snr); pskn=awgn(psk,snr); fskn=awgn(fsk,snr); ......................................................... %BER errA=0;errF=0; errP=0; for i=1:n if A(i)==b(i) errA=errA; else errA=errA+1; end if F(i)==b(i) errF=errF; else errF=errF+1; end if P(i)==b(i) errP=errP; else errP=errP+1; end end BER_A(snr+1)=errA/n; BER_F(snr+1)=errF/n; BER_P(snr+1)=errP/n; end figure(2) subplot(411) stairs(0:10,[b(1:10) b(10)],'linewidth',1.5) axis([0 10 -0.5 1.5]);grid on title('Received signal after AWGN Channel') subplot(412) tb=0:1/30:10-1/30; plot(tb, askn(1:10*30),'b','linewidth',1.5) title('Received ASK signal');grid on subplot(413) plot(tb, fskn(1:10*30),'r','linewidth',1.5) title('Received FSK signal');grid on subplot(414) plot(tb, pskn(1:10*30),'k','linewidth',1.5) title('Received PSK signal');grid on figure(3) semilogy(0:20,BER_A, 'b','linewidth',2) title('BER Vs SNR') grid on; hold on semilogy(0:20,BER_F,'r','linewidth',2) semilogy(0:20,BER_P, 'k','linewidth',2) xlabel('Eo/No(dB)') ylabel('BER') hold off legend('ASK','FSK','PSK');
标签:误码率,PSK,FSK,10,30,linewidth,1.5 From: https://www.cnblogs.com/51matlab/p/17274150.html