信号检测与估值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);%非相干移频键控系统(瑞利衰落)endsemilogy(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));二、仿真结果0246810121416182010-710-610-510-410-310-210-1100Es/No或平均Es/No(dB)最小平均错误概率Pe二元移频信号检测性能曲线相干移频非相干移频(无衰落)非相干移频(瑞利衰落)作业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),%simulatederrorratesmld_err_prb(i)=sm_BPSK(SNRindB1(i));end;fori=1:length(SNRindB2),EsN0=exp(SNRindB2(i)*log(10)/10);%theoreticalerrorratetheo_err_prb(i)=Qfunct(sqrt(2*EsN0));end;%Plottingcommandsfollowsemilogy(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);%signaltonoiseratiosgma=Es/sqrt(2*EsN0);%sigma,standarddeviationofnoiseN=10^7;%统计量%产生二进制数据源dsource=zeros(1,N);fori=1:N,temp=rand;%auniformrandomvariableover(0,1)if(temp0.5),dsource(i)=0;%withprobability1/2,sourceoutputis0elsedsource(i)=1;%withprobability1/2,sourceoutputis1endend;numoferr=0;fori=1:N,%接收信号(信号映射,加性高斯白噪声)if(dsource(i)==0),r=-Es+gngauss(sgma);%ifthesourceoutputis0elser=Es+gngauss(sgma);%ifthesourceoutputis1end;%信号判决if(r0),decis=0;%decisionis0elsedecis=1;%decisionis1end;%计算误符号率=误比特率if(decis~=dsource(i)),%ifitisanerror,increasetheerrorcounternumoferr=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、仿真结果01234567891010-610-510-410-310-210-1Es/No(dB)误码率BPSK调制信号在AWGN下的蒙特卡罗仿真仿真误码率理论误码率二、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/N0theo_bit_err_prb(i)=Qfunct(sqrt(SNR));%计算理论误比特率theo_symbol_err_prb(i)=2*Qfunct(sqrt(SNR));%计算理论误符号率end;semilogy(SNRindB1,smld_bit_err_prb,'o');%画图holdonsemilogy(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(temp0.25),ds

1 / 11
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功