信号检测与估值matlab仿真报告Word格式文档下载.docx
《信号检测与估值matlab仿真报告Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《信号检测与估值matlab仿真报告Word格式文档下载.docx(11页珍藏版)》请在冰豆网上搜索。
![信号检测与估值matlab仿真报告Word格式文档下载.docx](https://file1.bdocx.com/fileroot1/2022-10/28/5b4e539c-17e3-4bfe-8236-c96011becf75/5b4e539c-17e3-4bfe-8236-c96011becf751.gif)
%FSK_theo.m
clearall;
clc;
SNRindB=0:
1:
20;
Pe_CFSK=zeros(1,length(SNRindB));
Pe_NCFSK=zeros(1,length(SNRindB));
Pe_NCFSK_Rayleigh=zeros(1,length(SNRindB));
fori=1:
length(SNRindB)
EsN0=exp(SNRindB(i)*log(10)/10);
Es_aveN0=exp(SNRindB(i)*log(10)/10);
Pe_CFSK(i)=Qfunct(sqrt(EsN0));
%相干移频键控系统
Pe_NCFSK(i)=0.5*exp(-EsN0/2);
%非相干移频键控系统(无衰落)
Pe_NCFSK_Rayleigh(i)=1/(2+Es_aveN0);
%非相干移频键控系统(瑞利衰落)
end
semilogy(SNRindB,Pe_CFSK,'
-o'
SNRindB,Pe_NCFSK,'
-*'
SNRindB,Pe_NCFSK_Rayleigh,'
-'
);
xlabel('
Es/No或平均Es/No(dB)'
ylabel('
最小平均错误概率Pe'
legend('
相干移频'
'
非相干移频(无衰落)'
非相干移频(瑞利衰落)'
title('
二元移频信号检测性能曲线'
axis([02010^-71]);
gridon;
2、调用子函数
%Q函数
%Qfunct.m
function[y]=Qfunct(x)
%[y]=Qfunct(x)
%QFUNCTevaluatestheQ-function.
%y=1/sqrt(2*pi)*integralfromxtoinfofexp(-t^2/2)dt.
%y=(1/2)*erfc(x/sqrt
(2)).
y=(1/2)*erfc(x/sqrt
(2));
二、仿真结果
作业2
试编写程序,仿真BPSK,4PSK调制信号在高斯信道下的性能,画出误码率(误比特和误符号)的性能曲线,并与理论分析结果相比。
一、BPSK脚本文件及仿真结果
%BPSK调制信号在AWGN下的蒙特卡罗仿真
%BPSK_MC.m
SNRindB1=0:
10;
SNRindB2=0:
0.5:
smld_err_prb=zeros(1,length(SNRindB1));
theo_err_prb=zeros(1,length(SNRindB2));
length(SNRindB1),
%simulatederrorrate
smld_err_prb(i)=sm_BPSK(SNRindB1(i));
end;
length(SNRindB2),
EsN0=exp(SNRindB2(i)*log(10)/10);
%theoreticalerrorrate
theo_err_prb(i)=Qfunct(sqrt(2*EsN0));
%Plottingcommandsfollow
semilogy(SNRindB1,smld_err_prb,'
*'
SNRindB2,theo_err_prb,'
Es/No(dB)'
误码率'
BPSK调制信号在AWGN下的蒙特卡罗仿真'
仿真误码率'
理论误码率'
%计算BPSK的仿真误码率(误符号率=误比特率)
%sm_BPSK.m
function[p]=sm_BPSK(snr_in_dB)
%[p]=sm_BPSK(snr_in_dB)
%sm_BPSKsimulatestheprobabilityoferrorfortheparticular
%valueofsnr_in_dB,signaltonoiseratioindB.
Es=1;
EsN0=exp(snr_in_dB*log(10)/10);
%signaltonoiseratio
sgma=Es/sqrt(2*EsN0);
%sigma,standarddeviationofnoise
N=10^7;
%统计量
%产生二进制数据源
dsource=zeros(1,N);
N,
temp=rand;
%auniformrandomvariableover(0,1)
if(temp<
0.5),
dsource(i)=0;
%withprobability1/2,sourceoutputis0
else
dsource(i)=1;
%withprobability1/2,sourceoutputis1
end
numoferr=0;
%接收信号(信号映射,加性高斯白噪声)
if(dsource(i)==0),
r=-Es+gngauss(sgma);
%ifthesourceoutputis"
0"
r=Es+gngauss(sgma);
1"
end;
%信号判决
if(r<
0),
decis=0;
%decisionis"
decis=1;
%计算误符号率=误比特率
if(decis~=dsource(i)),%ifitisanerror,increasetheerrorcounter
numoferr=numoferr+1;
p=numoferr/N;
%probabilityoferrorestimate
%******************************************************
%产生加性高斯白噪声
%gngauss.m
function[gsrv1,gsrv2]=gngauss(m,sgma)
%[gsrv1,gsrv2]=gngauss(m,sgma)
%[gsrv1,gsrv2]=gngauss(sgma)
%[gsrv1,gsrv2]=gngauss
%GNGAUSS产生两个均值为m、标准差为sgma的、互相独立的
%高斯随机变量。
如果缺少其中一个输入参数,则取均值
%为0。
如果既没有给出均值也没有给出方差,本函数将
%产生两个标准高斯随机变量。
ifnargin==0,
m=0;
sgma=1;
elseifnargin==1,
sgma=m;
m=0;
u=rand;
%在区间(0,1)内的均匀随机变量
z=sgma*(sqrt(2*log(1/(1-u))));
%瑞利分布随机变量
gsrv1=m+z*cos(2*pi*u);
gsrv2=m+z*sin(2*pi*u);
3、仿真结果
二、QPSK脚本文件及仿真结果
%QPSK调制信号在AWGN下的蒙特卡罗仿真
%QPSK_MC.m
14;
%设置仿真信噪比范围
0.1:
%理论计算信噪比范围
smld_bit_err_prb=zeros(1,length(SNRindB1));
smld_symbol_err_prb=zeros(1,length(SNRindB1));
theo_bit_err_prb=zeros(1,length(SNRindB2));
theo_symbol_err_prb=zeros(1,length(SNRindB2));
[pb,ps]=sm_QPSK(SNRindB1(i));
%仿真比特和符号错误概率
smld_bit_err_prb(i)=pb;
%pb表示误比特率
smld_symbol_err_prb(i)=ps;
%ps表示误符号率
SNR=exp(SNRindB2(i)*log(10)/10);
%信噪比SNR=Es/N0
theo_bit_err_prb(i)=Qfunct(sqrt(SNR));
%计算理论误比特率
theo_symbol_err_prb(i)=2*Qfunct(sqrt(SNR));
%计算理论误符号率
semilogy(SNRindB1,smld_bit_err_prb,'
o'
%画图
holdon
semilogy(SNRindB1,smld_symbol_err_prb,'
semilogy(SNRindB2,theo_bit_err_prb,'
)