MATLAB模拟2ASK调制误码率与信噪比关系曲线的程序

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

%模拟2ASK

% Pe=zeros(1,26);

jishu=1;

for snr=-10:0.5:15

max = 10000;

s=round(rand(1,max));%长度为max的随机二进制序列

f=100;%载波频率

nsamp = 1000;每个载波的取样点数

tc=0:2*pi/999:2*pi;tc的个数应与nsamp相同

cm=zeros(1,nsamp*max);

cp=zeros(1,nsamp*max);

mod=zeros(1,nsamp*max);

for n=1:max;

if s(n)==0;

m=zeros(1,nsamp);

b=zeros(1,nsamp);

else if s(n)==1;

m=ones(1,nsamp);

b=ones(1,nsamp);

end

end

c = sin(f*tc);

cm((n-1)*nsamp+1:n*nsamp)=m;

cp((n-1)*nsamp+1:n*nsamp)=b;

mod((n-1)*nsamp+1:n*nsamp)=c;

end

tiaoz=cm.*mod;%2ASK调制

t = linspace(0,length(s),length(s)*nsamp);

tz=awgn(tiaoz,snr);%信号tiaoz中加入白噪声,信噪比为SNR=10dB jiet = 2*mod.*tz; %相干解调

[N,Wn]=buttord(0.2,0.3,1,15);

[b,a]=butter(N,Wn);

dpsk=filter(b,a,jiet);%低通滤波

% 抽样判决,判决门限为0.5

depsk = zeros(1,nsamp*max);

for m = nsamp/2:nsamp:nsamp*max;

if dpsk(m) < 0.5;

for i = 1:nsamp

depsk((m-500)+i) = 0;

end

else if dpsk(m) >= 0.5;

for i = 1:nsamp

depsk((m-500)+i) = 1;

end

end

end

end

wrong=0;

for i=1:length(cp);

if cp(i)~=depsk(i);

wrong=wrong+1;

end

end

Pe(jishu)=wrong/length(cp);

jishu=jishu+1;

end

snr=-10:0.5:15;

semilogy(snr,Pe,'*');

%理论计算

snr=-10:0.1:15;

Pet=0.5*erfc((10.^(snr/10)/4).^0.5); hold on;

semilogy(snr,Pet);

xlabel('SNR/dB');ylabel('P_e');

legend('模拟结果','理论值');

相关文档
最新文档