logo资料库

二元调制最佳接收机的MATLAB仿真程序.docx

第1页 / 共3页
第2页 / 共3页
第3页 / 共3页
资料共3页,全文预览结束
二元调制最佳接收机的MATLAB仿真程序
二元调制最佳接收机的 MATLAB 仿真程序 %bicomsim.m close all clear all %P0 = 0.5; %P1 = 0.5; %fs = N/Tb N = 10; L = 1000; k0 = 2; Th1 = 0; A = 1; rand('state',sum(100*clock)); for db = -5:15, r = 10^(db/10); sigma = 0.5*A*sqrt(N)/10^(db/20); i0 = db+6; Pe0PSK(i0) = 0.5*erfc(sqrt(r)); Pe0ASKa(i0) = 0.5*erfc(sqrt(r/2)); Pe0ASKb(i0) = 0.5*erfc(sqrt(r/4)); Pe0FSK(i0) = Pe0ASKa(i0); Th = 0.5*0.5*A^2*N;%2ASK count = 0; j=1:L; for for i=1:N, NN(i) = sigma*randn(1,1); s0(i) = 0; s1(i) = A*sin(2*pi*k0*i/N); x0(i) = s0(i) + NN(i); x1(i) = s1(i) + NN(i); %N(m, sigma) end summ0 = 0; for i=1:N, summ0 = summ0 + x0(i)*s1(i); end summa = summ0; summa > Th, if count = count + 1; end summ0 = 0; i=1:N, for summ0 = summ0 + x1(i)*s1(i); end summb = summ0;
if summb < Th, count = count + 1; end end PeASK(i0) = 0.5*count/L; Th = 0; %2PSK count = 0; j=1:L; for for i=1:N, NN(i) = sigma*randn(1,1); s0(i) = A*sin(2*pi*k0*i/N); Th = 0; s1(i) = -A*sin(2*pi*k0*i/N); %2PSK x0(i) = s0(i) + NN(i); x1(i) = s1(i) + NN(i); end summ0 = sum(x0.*s0); summ1 = sum(x0.*s1); summa = summ0 - summ1; sma(j) = summa; if summa < Th, count = count + 1; end summ0 = sum(x1.*s0); summ1 = sum(x1.*s1); summb = summ0 - summ1; smb(j) = summb; if s ummb > Th, count = count + 1; end end PePSK(i0) = 0.5*count/L; Th = 0.5*0.5*A^2*N; %2FSK count = 0; j=1:L; for for i=1:N, NN(i) = sigma*randn(1,1); s0(i) = A*sin(2*pi*k0*i/N); Th = 0; s1(i) = A*sin(2*pi*(k0+1)*i/N); x0(i) = s0(i) + NN(i); x1(i) = s1(i) + NN(i); end summ0 = sum(x0.*s0); summ1 = sum(x0.*s1); summa = summ0 - summ1;
sma(j) = summa; if summa < Th, count = count + 1; end summ0 = sum(x1.*s0); summ1 = sum(x1.*s1); summb = summ0 - summ1; smb(j) = summb; summb > Th, if count = count + 1; end end PeFSK(i0) = 0.5*count/L; end i=1:21; i2=i-6; semilogy(i2,Pe0PSK,'b',i2,Pe0ASKb,'b',i2,Pe0FSK,'b'); hold on semilogy(i2,PePSK,'r*',i2,PeASK,'ro',i2,PeFSK,'r+') axis([-5 15 1.0e-06 1.0e0])
分享到:
收藏