信號檢測與估計中,在不同信噪比下對比2ASK 2PSK 2FSK三種不同調(diào)制方式的誤碼性能對比
采用相干解調(diào)時,在誤碼率 相同的情況下,所需要的信噪比2ASK比2FSK高3dB,2FSK比2PSK高3dB,2ASK比2PSK高6dB。反過來,若信噪比r相同,2PSK系統(tǒng)的誤碼率比2FSK的小,2FSK系統(tǒng)的誤碼率比2ASK的小,相干解調(diào)的2PSK系統(tǒng)的誤碼率最小。由此看來,在抗加性高斯白噪聲方面,相干2PSK性能最好,2FSK次之,2ASK最差。
源程序:
- clear,clc;
- L=10000;
- t=0:0.01*pi:2*pi;
- SNR=-4:0.5:10;
- snr=SNR/10;
- for ii=1:length(snr)
- Sigma(ii)=1/sqrt(2*(10^snr(ii)));%標準差
- psk_error1=0; fsk_error1=0; ask_error1=0; %誤碼數(shù)初始值為0
- psk_error2=0; fsk_error2=0; ask_error2=0;
- S=randi(L);
- for k=1:L
- n=Sigma(ii)*randn(1,length(t)); %一定信噪比下的高斯白噪聲
- for i=1:length(t)
- psk1(i)=sin(t(i)); psk2(i)=-sin(t(i)); %2PSK的S0(t)和S1(t)
- fsk1(i)=sin(3*t(i)); fsk2(i)=sin(5*t(i)); %2FSK的S0(t)和S1(t)
- ask1(i)=sin(t(i)); ask2(i)=0; %2ASK的S0(t)和S1(t)
- end
- %------------------2PSK
- overlay11=sum(psk1.^2); overlay12=sum(psk2.^2);
- psk1=psk1/sqrt(overlay11); psk2=psk2/sqrt(overlay12);%進行歸一化
- xp1=psk1+n; %接收信號(含有噪聲的)
- xp2=psk2+n ;
- %-----------------2FSK
- overlay21=sum(fsk1.^2); overlay22=sum(fsk2.^2);
- fsk1=fsk1/sqrt(overlay21); fsk2=fsk2/sqrt(overlay22);
- xf1=fsk1+n;
- xf2=fsk2+n;
- %-----------------2ASK
- overlay31=sum(ask1.^2);
- ask1=ask1/sqrt(overlay31);
- xa1=ask1+n;
- xa2=ask2+n;
- if S[k]==0 % 假設為H0的情況下
- p1=0; f1=0; a1=0;
- men1=0; men2=0; men3=0;
- for i=1:length(t)
- p1=p1+xp1(i)*(psk2(i)-psk1(i));
- f1=f1+xf1(i)*(fsk2(i)-fsk1(i));
- a1=a1+xa1(i)*(ask2(i)-ask1(i));
- men1=men1+(psk2(i)^2-psk1(i)^2)/2;
- men2=men2+(fsk2(i)^2-fsk1(i)^2)/2;
- men3=men3+(ask2(i)^2-ask1(i)^2)/2;
- end
- if p1>men1
- psk_error1=psk_error1+1;
- end
- if f1>men2
- fsk_error1=fsk_error1+1;
- end
- if a1>men3
- ask_error1=ask_error1+1;
- end
- else %假設為 H1的情況下
- p2=0; f2=0; a2=0; men1=0; men2=0; men3=0;
- for i=1:length(t)
- p2=p2+xp2(i)*(psk2(i)-psk1(i));
- f2=f2+xf2(i)*(fsk2(i)-fsk1(i));
- a2=a2+xa2(i)*(ask2(i)-ask1(i));
- men1=men1+(psk2(i)^2-psk1(i)^2)/2;
- men2=men2+(fsk2(i)^2-fsk1(i)^2)/2;
- men3=men3+(ask2(i)^2-ask1(i)^2)/2;
- end
- if p2<men1
- psk_error2=psk_error2+1;
- end
- if f2<men2
- fsk_error2=fsk_error2+1;
- end
- if a2<men3
- ask_error2=ask_error2+1;
- end
- end
- end
- %誤碼率
- psk_pe(ii)=(psk_error1+psk_error2)/L;
- fsk_pe(ii)=(fsk_error1+fsk_error2)/L;
- ask_pe(ii)=(ask_error1+ask_error2)/L;
- end
- semilogy(SNR,psk_pe,'*'); hold on;
- semilogy(SNR,fsk_pe,'+'); hold on;
- semilogy(SNR,ask_pe,'o'); hold on;
- %理論值
- snr1=10.^(SNR/10);
- psk_pe_ideal=0.5*erfc(sqrt(snr1));
- fsk_pe_ideal=0.5*erfc(sqrt(0.5*snr1));
- ask_pe_ideal=0.5*erfc(sqrt(0.25*snr1));
- semilogy(SNR,psk_pe_ideal,'-b'); hold on;
- semilogy(SNR,fsk_pe_ideal,'-m'); hold on;
- semilogy(SNR,ask_pe_ideal,'-k'); hold on;
- axis([-4 10 10^(-5) 1]);
- legend('2PSK','2FSK','2ASK','2PSK-ideal','2FSK-ideal','2ASK-ideal');
- grid off;
- xlabel('E/n_0 dB');ylabel('P_e 誤碼率');
- title('不同信噪比下三種調(diào)制方式誤碼性能仿真');
復制代碼
完整的Word格式文檔51黑下載地址:
MATLAB仿真程序.zip
(47.72 KB, 下載次數(shù): 26)
2018-3-18 21:53 上傳
點擊文件名下載附件
|