1、信号检测与估值matlab仿真报告信号检测与估值仿真报告作业1试编写程序,画出相干移频键控、非相干移频键控(无衰落)和瑞利衰落信道下非相干移频键控的性能曲线。(1)根据理论分析公式画性能曲线;(2)信噪比范围(0dB-10dB),间隔是1dB;(3)信噪比计算SNR=10lg(Es/N0)一、脚本文件1、主程序%*%二元移频信号检测性能曲线(理论分析)%FSK_theo.m%*clear all;clc;SNRindB=0:1:20;Pe_CFSK=zeros(1,length(SNRindB);Pe_NCFSK=zeros(1,length(SNRindB);Pe_NCFSK_Rayleig
2、h=zeros(1,length(SNRindB);for i=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_NC
3、FSK,-*,SNRindB,Pe_NCFSK_Rayleigh,-);xlabel(Es/No或平均Es/No(dB);ylabel(最小平均错误概率Pe);legend(相干移频,非相干移频(无衰落),非相干移频(瑞利衰落);title(二元移频信号检测性能曲线);axis(0 20 10-7 1);grid on;2、调用子函数%*%Q函数%Qfunct.m%*function y=Qfunct(x)% y=Qfunct(x)% QFUNCT evaluates the Q-function. % y = 1/sqrt(2*pi) * integral from x to inf of
4、exp(-t2/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%*clear all;clc;SNRindB1=0:1:10;SNRindB2=0:0.5:10;smld_err_prb=zeros(1,length(SNRindB1);theo_err_prb=zeros(1,
5、length(SNRindB2);for i=1:length(SNRindB1), % simulated error rate smld_err_prb(i)=sm_BPSK(SNRindB1(i); end;for i=1:length(SNRindB2), EsN0=exp(SNRindB2(i)*log(10)/10); % theoretical error rate theo_err_prb(i)=Qfunct(sqrt(2*EsN0); end;% Plotting commands followsemilogy(SNRindB1,smld_err_prb,*,SNRindB2
6、,theo_err_prb,-);xlabel(Es/No(dB);ylabel(误码率);title(BPSK调制信号在AWGN下的蒙特卡罗仿真);legend(仿真误码率,理论误码率);grid on;2、调用子函数%*%计算BPSK的仿真误码率(误符号率=误比特率)%sm_BPSK.m%*function p=sm_BPSK(snr_in_dB)% p=sm_BPSK(snr_in_dB)% sm_BPSK simulates the probability of error for the particular% value of snr_in_dB, signal to noise
7、ratio in dB.Es=1;EsN0=exp(snr_in_dB*log(10)/10); % signal to noise ratiosgma=Es/sqrt(2*EsN0); % sigma, standard deviation of noiseN=107;%统计量%产生二进制数据源dsource=zeros(1,N);for i=1:N, temp=rand; % a uniform random variable over (0,1) if (temp0.5), dsource(i)=0; % with probability 1/2, source output is 0
8、else dsource(i)=1; % with probability 1/2, source output is 1 endend;numoferr=0;for i=1:N, %接收信号(信号映射,加性高斯白噪声) if (dsource(i)=0), r=-Es+gngauss(sgma); % if the source output is 0 else r=Es+gngauss(sgma); % if the source output is 1 end; %信号判决 if (r0), decis=0; % decision is 0 else decis=1; % decisio
9、n is 1 end; %计算误符号率=误比特率 if (decis=dsource(i), % if it is an error, increase the error counter numoferr=numoferr+1; end;end;p=numoferr/N; % probability of error estimate%*% 产生加性高斯白噪声% gngauss.m%*functiongsrv1,gsrv2=gngauss(m,sgma) % gsrv1,gsrv2=gngauss(m,sgma) % gsrv1,gsrv2=gngauss(sgma) % gsrv1,gsr
10、v2=gngauss % GNGAUSS产生两个均值为m、标准差为sgma的、互相独立的 % 高斯随机变量。如果缺少其中一个输入参数,则取均值 % 为0。如果既没有给出均值也没有给出方差,本函数将 % 产生两个标准高斯随机变量。 if nargin=0, m=0;sgma=1; elseif nargin=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
11、(2*pi*u); 3、仿真结果二、QPSK脚本文件及仿真结果1、主程序%*%QPSK调制信号在AWGN下的蒙特卡罗仿真%QPSK_MC.m%*clear all;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
12、,length(SNRindB2);for i=1:length(SNRindB1), pb,ps=sm_QPSK(SNRindB1(i); % 仿真比特和符号错误概率 smld_bit_err_prb(i)=pb; % pb表示误比特率 smld_symbol_err_prb(i)=ps; % ps表示误符号率end;for i=1:length(SNRindB2), SNR=exp(SNRindB2(i)*log(10)/10); % 信噪比SNR=Es/N0 theo_bit_err_prb(i)=Qfunct(sqrt(SNR); % 计算理论误比特率 theo_symbol_err_
13、prb(i)=2*Qfunct(sqrt(SNR); % 计算理论误符号率end;semilogy(SNRindB1,smld_bit_err_prb,o); % 画图hold onsemilogy(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(仿真误比特率,仿真误符号率,理论误比特率,理论
14、误符号率);grid on;2、调用子函数%*%计算QPSK的仿真误码率(包括误符号率和误比特率)%sm_QPSK.m%*functionpb,ps=sm_QPSK(snr_in_dB)N=107;Es=1;snr=10(snr_in_dB/10);sgma=sqrt(Es/snr/2);%QPSK信号映射(Gray码)s00=1 0;s01=0 1;s11=-1 0;s10=0 -1;%产生四进制数据源dsource1=zeros(1,N);dsource2=zeros(1,N);for i=1:N, temp=rand; if(temp0.25), dsource1(i)=0; dsour
15、ce2(i)=0; elseif(temp0.5), dsource1(i)=0; dsource2(i)=1; elseif(temp0.75), dsource1(i)=1; dsource2(i)=0; else dsource1(i)=1; dsource2(i)=1; end;end;numofsymbolerror=0;numofbiterror=0;for i=1:N, %产生复加性高斯白噪声 n(1)=gngauss(sgma); n(2)=gngauss(sgma); %接收信号,即信道输出的加噪信号 if(dsource1(i)=0) & (dsource2(i)=0),
16、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(c00 c01 c10 c11); if(c00=c_max) decis1=0;decis2=0; elseif(c01=c_max) decis1=0;decis2
17、=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