资源描述:
《matlab信噪比估计程序》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、函数ML_Estimationclc;clearall;Nt=1;%仿真次数M=8;%MPSKNsym=64;%信源仿真符号数Nss=16;%上采样点数Es=1;%每符号能量snr=1:30;%仿真信噪比范围rho=10.A(snr/10);%实际信噪比大小%sigma=sqrt(1/2)(10A(-snr/20));%噪声根方差No=Es./rho;rho_ml=zeros(length(snr),Nt);%估计信噪比存储器,一列对应一次仿真,一行对应一个SNR直fortime=1:Nt%仿真循环Nt次d=randint(1,Nsym,[0M-1]);%a_n=exp(j(2pi/M
2、d+pi/M));%产生Nsym个随机数作为信源符号构成MPS蜩制符号figure(1);plot_astrology(real(a_n),imag(a_n));b_k=zeros(1,NssNsym);n=1:Nss:length(b_k);b_k(n)=a_n;%b_k=upsample(a_n,Nss);%上采样,每符号取Nss个采样点%hrcos=firrcos(256,1,1,16,'sqrt');%成型滤波器,采用RR明式,阶数127,滚将系数%gk=conv(hrcos,hrcos);hrcos=rcosflt(1,1,16,'sqrt',,3);sum3=0;fori=
3、1:length(hrcos)sum3=sum3+hrcos(i)A2;endh_k=hrcos/sqrt(sum3);m_k=conv(b_k,h_k);%序列成型L=length(m_k);%成型后的数据总长度K=NssNsym;%s1=0;s2=0;fork=1:length(snr)%计算每个信噪比对应的信噪比估计值%r_k=m_k+No(k)(randn(1,L)+jrandn(1,L));%r_k=m_k+nb(k)/sqrt(2)(randn(1,L)+jrandn(1,L));往信号中加入高斯%r_k=sqrt(Es)m_k+sqrt(No(k))/sqrt(2)(ra
4、ndn(1,L)+jrandn(1,L));%白噪声r_k=awgn(m_k,snr(k),'measured');y_k=conv(r_k,h_k);y_n=y_k(112+1:Nss:(length(y_k)-112));figure(2);plot_astrology(real(y_n),imag(y_n));s1=0;s2=0;forl=1:K%公式中两个求和因子计算s1=s1+real(conj(r_k(l))m_k(l));s2=s2+abs(r_k(l))A2;代入公式计算信噪比估计值endrho_ml(k,time)=(NssA2)(s1A2)/(KA2)/(s2/-(
5、Nss(s1A2)/K/));%%Pe=[Pemean((rho_ml-rho(k)).A2)/(rho(k).A2)];endendNMSE=2./rho/Nsym+1/Nss/Nsym;%克拉美罗界计算CRBfigure(3);semilogy(snr,NMSE,'-b');holdon,gridon;fori=1:length(snr)sum1=0;forj=1:Ntsum1=sum1+(rho_ml(i,j)-rho(i)).A2;endpe(i)=sum1./(rho(i).A2)/Nt/K;%归一化均方误差NMSEendsemilogy(snr,pe,'-r');grido
6、n;