www.gusucode.com > MPSK,误码率性能仿真源码程序 > MPSK,误码率性能仿真源码程序/IET_MATLAB/functions/Pb_floor.m
% computing Error Floor function Pf=Pb_floor(M,fsr,frd,ch_dis) % inputs % M : constellation size % fsr,frd : Doppler shifts % ch_dis: distance between two channel uses alfa1=besselj(0,2*pi*fsr*ch_dis); alfa2=besselj(0,2*pi*frd*ch_dis); alfa=alfa1*alfa2; if M==2 % defining a b according to paper by M. Simon, equation 25 a=0; b=sqrt(2); elseif M==4 %defining a b according to paper by M. Simon, equation 25 a=sqrt(2-sqrt(2)); b=sqrt(2+sqrt(2)); end % defining beta, alfa(teta), f(teta) beta=a/b; q= @ (teta) b^2*(1+2*beta*sin(teta)+beta^2)/log2(M); g_teta= @(teta) (1-beta^2)/(1+2*beta*sin(teta)+beta^2); J2= @ (teta) (1-alfa^2)/(alfa^2*q(teta)+1-alfa^2); I2= @ (teta) g_teta(teta)*J2(teta); L=1; Pf=int_num(I2,-pi,pi,1000)/(2^(2*L)*pi); end