www.gusucode.com > 基于可移动边界动态信道分配策略的TD-SCDMA系统业务进行性能分析 > code4/基于可移动边界动态信道分配策略的TD-SCDMA系统业务进行性能分析/MakovChainSolver.m
function [PAI] = MakovChainSolver(Z) %This function is used to solve the markov chain. %Input z for the transition probability of the chain. %Output PAI is the probability distribution. %Size of the input matrix. [dx,dy] = size(Z); if (dx~=dy) error('The input matrix should be a square matrix!'); end %Find the minimum element of the matrix on the i,i position min_ii=Z(1,1); for i=1:dx if (Z(i,i)<min_ii) min_ii=Z(i,i); end end %Difine matrix R R=eye(dx)+Z/min_ii; % U is the arbitrary row of matrix R U=R(1,:);%% temp=(eye(dx)-R+ones(dx,1)*U)^-1; % using the equation, get probability distribution PAI PAI=U*temp; %语音业务参数 a1=[0,60/3600,120/3600,180/3600,240/3600,300/3600]; a2=[0,60,120,180,240,300]; u1=1/120; %数据业务参数 b1=[20,40,60,80,100,120]; u2=1/0.0267; h1=100;%数据业务缓冲区大小 for m=1:6 a=a1(m); for n=1:6 b=b1(n); A0=matrix_A0(a,u1,b); A1=b*eye(17); A2=u2*eye(17); A3=matrix_A3(a,u1,b,u2); A4=matrix_A4(u2); A5=matrix_A5(a,u1,b,u2); A6=matrix_A6(u2); A7=matrix_A7(a,u1,b,u2); A8=matrix_A8(a,u1,u2); Z=cell(h1+1,h1+1);%细胞矩阵 Z{1,1}=A0; Z{1,2}=A1; Z{2,1}=A2; Z{2,2}=A3; Z{3,2}=A4; Z{3,3}=A5; for i=4:1:h1+1%填A1,A6,A7 Z{i,i-1}=A6; end for i=2:1:h1 Z{i,i+1}=A1; end for i=4:1:h1 Z{i,i}=A7; end Z{h1+1,h1+1}=A8; for i=1:h1+1%为了把空白的地方全填上0 for j=1:h1+1 if isempty(Z{i,j}) Z{i,j}=zeros(17,17); end end end Z1=cell2mat(Z);%将细胞矩阵转化为矩阵 PAI = MakovChainSolver(Z1);%求解稳态概率 Sum(m,n)=0; for i=1:1:(h1+1)*17%验证矩阵是否正确,sum=1正确 Sum(m,n)=Sum(m,n)+PAI(1,i); end %性能指标 %语音业务阻塞概率 sumv=0; for i=17:17:(h1+1)*17 sumv=sumv+PAI(i); end PLv(m,n)=sumv; %数据业务阻塞概率 sumd=0; for i=h1*17+1:(h1+1)*17 sumd=sumd+PAI(i); end PLd(m,n)=sumd; %系统总的信道利用率 av=a/u1;ad=b/u2; yita(m,n)=(2*av*(1-sumv)/16+ad*(1-sumd))/3; %数据包平均等待时间 %由于服务速率是可变的,借助于吞吐量和平均队长来求 %数据业务 k=1; for i=1:17:h1*17+1 result(k)=0; for j=0:16 result(k)=result(k)+PAI(i+j); end k=k+1; end Ld=0; for i=1:h1+1 Ld=Ld+(i-1)*result(i); end %吞吐量 T1=result(2)*u2; T2=sum(PAI(18:26))*2*u2+sum(PAI(27:30))*u2+sum(PAI(31:34))*u2; T3=sum(PAI(35:17:(h1+1)*17))*3*u2+sum(PAI(36:17:(h1+1)*17))*2*u2+sum(PAI(37:17:(h1+1)*17))*2*u2+sum(PAI(38:17:(h1+1)*17))*2*u2+sum(PAI(39:17:(h1+1)*17))*2*u2+sum(PAI(40:17:(h1+1)*17))*2*u2+sum(PAI(41:17:(h1+1)*17))*2*u2+sum(PAI(42:17:(h1+1)*17))*2*u2+sum(PAI(43:17:(h1+1)*17))*2*u2+sum(PAI(44:17:(h1+1)*17))*1*u2+sum(PAI(45:17:(h1+1)*17))*1*u2+sum(PAI(46:17:(h1+1)*17))*1*u2+sum(PAI(47:17:(h1+1)*17))*1*u2+sum(PAI(48:17:(h1+1)*17))*u2+sum(PAI(49:17:(h1+1)*17))*u2+sum(PAI(50:17:(h1+1)*17))*u2+sum(PAI(51:17:(h1+1)*17))*u2; T=T1+T2+T3; Wd(m,n)=Ld/T; n=n+1; end m=m+1; end