(完整版)MATLAB模拟2ASK调制误码率与信噪比关系曲线的程序
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 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('模拟结果','理论值');。