信号检测与估值matlab仿真报告.docx

上传人:b****6 文档编号:13590430 上传时间:2023-06-15 格式:DOCX 页数:13 大小:53.53KB
下载 相关 举报
信号检测与估值matlab仿真报告.docx_第1页
第1页 / 共13页
信号检测与估值matlab仿真报告.docx_第2页
第2页 / 共13页
信号检测与估值matlab仿真报告.docx_第3页
第3页 / 共13页
信号检测与估值matlab仿真报告.docx_第4页
第4页 / 共13页
信号检测与估值matlab仿真报告.docx_第5页
第5页 / 共13页
信号检测与估值matlab仿真报告.docx_第6页
第6页 / 共13页
信号检测与估值matlab仿真报告.docx_第7页
第7页 / 共13页
信号检测与估值matlab仿真报告.docx_第8页
第8页 / 共13页
信号检测与估值matlab仿真报告.docx_第9页
第9页 / 共13页
信号检测与估值matlab仿真报告.docx_第10页
第10页 / 共13页
信号检测与估值matlab仿真报告.docx_第11页
第11页 / 共13页
信号检测与估值matlab仿真报告.docx_第12页
第12页 / 共13页
信号检测与估值matlab仿真报告.docx_第13页
第13页 / 共13页
亲,该文档总共13页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

信号检测与估值matlab仿真报告.docx

《信号检测与估值matlab仿真报告.docx》由会员分享,可在线阅读,更多相关《信号检测与估值matlab仿真报告.docx(13页珍藏版)》请在冰点文库上搜索。

信号检测与估值matlab仿真报告.docx

信号检测与估值matlab仿真报告

信号检测与估值仿真报告

作业1

试编写程序,画出相干移频键控、非相干移频键控(无衰落)和瑞利衰落信道下非相干移频键控的性能曲线。

(1)根据理论分析公式画性能曲线;

(2)信噪比范围(0dB-10dB),间隔是1dB;

(3)信噪比计算SNR=10lg(Es/N0)

一、脚本文件

1、主程序

%********************************************************

%二元移频信号检测性能曲线(理论分析)

%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脚本文件及仿真结果

1、主程序

%********************************************************

%BPSK调制信号在AWGN下的蒙特卡罗仿真

%BPSK_MC.m

%********************************************************

clearall;

clc;

SNRindB1=0:

1:

10;

SNRindB2=0:

0.5:

10;

smld_err_prb=zeros(1,length(SNRindB1));

theo_err_prb=zeros(1,length(SNRindB2));

fori=1:

length(SNRindB1),

%simulatederrorrate

smld_err_prb(i)=sm_BPSK(SNRindB1(i));

end;

fori=1:

length(SNRindB2),

EsN0=exp(SNRindB2(i)*log(10)/10);

%theoreticalerrorrate

theo_err_prb(i)=Qfunct(sqrt(2*EsN0));

end;

%Plottingcommandsfollow

semilogy(SNRindB1,smld_err_prb,'*',SNRindB2,theo_err_prb,'-');

xlabel('Es/No(dB)');

ylabel('误码率');

title('BPSK调制信号在AWGN下的蒙特卡罗仿真');

legend('仿真误码率','理论误码率');

gridon;

2、调用子函数

%********************************************************

%计算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);

fori=1:

N,

temp=rand;%auniformrandomvariableover(0,1)

if(temp<0.5),

dsource(i)=0;%withprobability1/2,sourceoutputis0

else

dsource(i)=1;%withprobability1/2,sourceoutputis1

end

end;

numoferr=0;

fori=1:

N,

%接收信号(信号映射,加性高斯白噪声)

if(dsource(i)==0),

r=-Es+gngauss(sgma);%ifthesourceoutputis"0"

else

r=Es+gngauss(sgma);%ifthesourceoutputis"1"

end;

%信号判决

if(r<0),

decis=0;%decisionis"0"

else

decis=1;%decisionis"1"

end;

%计算误符号率=误比特率

if(decis~=dsource(i)),%ifitisanerror,increasetheerrorcounter

numoferr=numoferr+1;

end;

end;

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;

end;

u=rand;%在区间(0,1)内的均匀随机变量

z=sgma*(sqrt(2*log(1/(1-u))));%瑞利分布随机变量

u=rand;%在区间(0,1)内的均匀随机变量

gsrv1=m+z*cos(2*pi*u);

gsrv2=m+z*sin(2*pi*u);

3、仿真结果

二、QPSK脚本文件及仿真结果

1、主程序

%********************************************************

%QPSK调制信号在AWGN下的蒙特卡罗仿真

%QPSK_MC.m

%********************************************************

clearall;

clc;

SNRindB1=0:

1:

14;%设置仿真信噪比范围

SNRindB2=0:

0.1:

14;%理论计算信噪比范围

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));

fori=1:

length(SNRindB1),

[pb,ps]=sm_QPSK(SNRindB1(i));%仿真比特和符号错误概率

smld_bit_err_prb(i)=pb;%pb表示误比特率

smld_symbol_err_prb(i)=ps;%ps表示误符号率

end;

fori=1:

length(SNRindB2),

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));%计算理论误符号率

end;

semilogy(SNRindB1,smld_bit_err_prb,'o');%画图

holdon

semilogy(SNRindB1,smld_symbol_err_prb,'*');

semilogy(SNRindB2,theo_bit_err_prb,'-');

semilogy(SNRindB2,theo_symbol_err_prb,'-.');

xlabel('Es/No(dB)');

ylabel('误码率');

title('QPSK调制信号在AWGN下的蒙特卡罗仿真');

legend('仿真误比特率','仿真误符号率','理论误比特率','理论误符号率');

gridon;

2、调用子函数

%********************************************************

%计算QPSK的仿真误码率(包括误符号率和误比特率)

%sm_QPSK.m

%********************************************************

function[pb,ps]=sm_QPSK(snr_in_dB)

N=10^7;

Es=1;

snr=10^(snr_in_dB/10);

sgma=sqrt(Es/snr/2);

%QPSK信号映射(Gray码)

s00=[10];

s01=[01];

s11=[-10];

s10=[0-1];

%产生四进制数据源

dsource1=zeros(1,N);

dsource2=zeros(1,N);

fori=1:

N,

temp=rand;

if(temp<0.25),

dsource1(i)=0;

dsource2(i)=0;

elseif(temp<0.5),

dsource1(i)=0;

dsource2(i)=1;

elseif(temp<0.75),

dsource1(i)=1;

dsource2(i)=0;

else

dsource1(i)=1;

dsource2(i)=1;

end;

end;

numofsymbolerror=0;

numofbiterror=0;

fori=1:

N,

%产生复加性高斯白噪声

n

(1)=gngauss(sgma);

n

(2)=gngauss(sgma);

%接收信号,即信道输出的加噪信号

if((dsource1(i)==0)&&(dsource2(i)==0)),

r=s00+n;

elseif((dsource1(i)==0)&&(dsource2(i)==1)),

r=s01+n;

elseif((dsource1(i)==1)&&(dsource2(i)==0)),

r=s10+n;

else

r=s11+n;

end;

%信号判决

c00=dot(r,s00);

c01=dot(r,s01);

c10=dot(r,s10);

c11=dot(r,s11);

c_max=max([c00c01c10c11]);

if(c00==c_max)

decis1=0;decis2=0;

elseif(c01==c_max)

decis1=0;decis2=1;

elseif(c10==c_max)

decis1=1;decis2=0;

else

decis1=1;decis2=1;

end;

%计算误符号率和误比特率

symbolerror=0;

if(decis1~=dsource1(i)),

numofbiterror=numofbiterror+1;

symbolerror=1;

end;

if(decis2~=dsource2(i)),

numofbiterror=numofbiterror+1;

symbolerror=1;

end;

if(symbolerror==1),

numofsymbolerror=numofsymbolerror+1;

end;

end;

ps=numofsymbolerror/N;

pb=numofbiterror/(2*N);

 

3、仿真结果

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 医药卫生 > 基础医学

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2