Code/Resource
Windows Develop
Linux-Unix program
Internet-Socket-Network
Web Server
Browser Client
Ftp Server
Ftp Client
Browser Plugins
Proxy Server
Email Server
Email Client
WEB Mail
Firewall-Security
Telnet Server
Telnet Client
ICQ-IM-Chat
Search Engine
Sniffer Package capture
Remote Control
xml-soap-webservice
P2P
WEB(ASP,PHP,...)
TCP/IP Stack
SNMP
Grid Computing
SilverLight
DNS
Cluster Service
Network Security
Communication-Mobile
Game Program
Editor
Multimedia program
Graph program
Compiler program
Compress-Decompress algrithms
Crypt_Decrypt algrithms
Mathimatics-Numerical algorithms
MultiLanguage
Disk/Storage
Java Develop
assembly language
Applications
Other systems
Database system
Embeded-SCM Develop
FlashMX/Flex
source in ebook
Delphi VCL
OS Develop
MiddleWare
MPI
MacOS develop
LabView
ELanguage
Software/Tools
E-Books
Artical/Document
shenpowerallo.m
Package: shenpowerallo.zip [view]
Upload User: lgs139
Upload Date: 2019-12-15
Package Size: 2k
Code Size: 2k
Category:
Communication Document
Development Platform:
Matlab
- function [p,outage]= shenpowerallo(channel,suballo,N,K,Ptot,noise,gamma)
- for i=1:K
- n(i)=sum(suballo(i,:));
- end
- for user=1:K
- used=[];
- for j=1:N
- if suballo(user,j)>0
- used=[used channel(user,j)];
- end
- end
- usedlength=length(used);
- for i=1:length(used)
- [minvalue minindex]=min(used);
- usedordered(user,i)=minvalue;
- used=[used(1:minindex-1) used(minindex+1:length(used))];
- end
- usedordered(user,:)=usedordered(user,:)/noise;
- h(user)=usedordered(user,1);
- vtemp=0;
- for m=2:usedlength
- vtemp=vtemp+(usedordered(user,m)-usedordered(user,1))/(usedordered(user,1)*usedordered(user,m));
- end
- v(user)=vtemp;
- ytemp=1;
- for m=2:usedlength
- ytemp=ytemp*usedordered(user,m)/usedordered(user,1);
- end
- y(user)=ytemp;
- end
- coef(1)=1;
- power(1)=1;
- for i=2:K
- coef(i)=n(i)/(h(i)*y(i)^(1/n(i)))*(h(1)*y(1)^(1/n(1))/n(1))^(n(1)*gamma(i)/(n(i)*gamma(1)));
- power(i)=n(1)*gamma(i)/(n(i)*gamma(1));
- end
- infcheck=0;
- for i=1:K
- if coef(i)==inf
- infcheck=1;
- end
- end
- if (infcheck==1)
- for i=1:K
- p(i)=Ptot/N*n(i);
- end
- outage=1;
- return;
- end
- fun=['x'];
- for i=2:K
- fun=[fun,'+',num2str(coef(i)),'*x^',num2str(power(i))];
- end
- for i=1:101
- guessx=0.01*(i-1)*Ptot;
- guess(i)=guessx;
- for j=2:K
- guess(i)=guess(i)+coef(j)*guessx^power(j);
- end
- guess(i)=guess(i)-Ptot;
- end
- [guessvalue,guessindex]=min(abs(guess));
- fun=[fun,'-',num2str(Ptot)];
- p(1)=fzero(fun,0.01*(guessindex-1)*Ptot);
- if isnan(p(1))==1
- for i=1:K
- p(i)=Ptot/N*n(i);
- end
- outage=1;
- else
- for i=2:K
- p(i)=coef(i)*p(1)^power(i);
- end
- outage=0;
- end