爱尔兰B公式和爱尔兰C公式的计算

1.话务量定义

话务量指在一特定时间内呼叫次数与每次呼叫平均占用时间的乘积。

话务量反映了电话负荷的大小,与呼叫强度和呼叫保持时间有关。呼叫强度是单位时间内发生的呼叫次数,呼叫保持时间也就是占用时间。
 

话务量计算方法

话务量公式为:A=C * t。

  • A是话务量,单位为erl(爱尔兰);

  • C是呼叫次数,单位是次/小时;

  • t是每次呼叫平均占用时长,单位是小时/次。

单位时间内的话务量等于使用相同时间单位的呼叫强度呼叫保持时间之乘积,其单位为爱尔兰( Erlang)。例如:呼叫强度=1800次/小时,呼叫保持时间=(1/60)小时/次,则话务量=1800次/小时 X (1/60)小时/次=30 Erl。

一般话务量又称小时呼,统计的时间范围是1个小时。由此可以看出,爱尔兰Erl是一个无量纲的量,只是为纪念爱尔兰这个人而设立的单位。

在移动电话系统中,话务量可分为流入话务量完成话务量。流入话务量取决于单位时间内发生的平均呼叫次数与每次呼叫平均占用无线波道的时间,在系统流入的话务量中,完成接续的那部分话务量称作完成话务量,未完成接续的那部分话务量称做损失话务量,损失话务量与流入话务量之比称为呼损率。(当多个信道共用时,通常总是用户数大于信道数,当多个用户同时要求服务而信道数不够的时候,只能让一部分用户先通话,另一部分用户等信道空闲的时候再通话。后一部分用户因无空闲信道而不能通话,即为呼叫失败,简称呼损)。

流入话务量=完成话务量+损失话务量;

损失话务量=流入话务量 * 呼叫损失率(呼损率)

2.爱尔兰B公式和爱尔兰C公式的计算

计算爱尔兰即时拒绝系统的时间阻塞率的爱尔兰B公式表示为

s表示系统中继线的数目,a表示到达系统的呼叫量。


计算爱尔兰等待制系统的呼叫等待概率的爱尔兰C公式表示为


给出两个公式的Matlab实现代码

爱尔兰B公式:

function p=Erlang_B_Formula(s,a);
sum=0;
for r=0:s          %用一个for循环实现求和
    sum=sum+a^r/factorial(r);
end
p=a^s/(sum*factorial(s));

爱尔兰C公式:

function p=Erlang_C_Formula(s,a);
sum=a^s/(factorial(s)*(1-a/s));
for k=0:s-1      %用for循环实现求和
    sum=sum+a^k/factorial(k);
end
p=a^s/(factorial(s)*(1-a/s)*sum);

简单方法:

爱尔兰B公式:

function p=Erlang_B_Formula_1(s,a)

p=a^s/(factorial(s)*sum(a.^[0:s]./factorial([0:s])));

爱尔兰C公式:

function p=Erlang_C_Formula_1(s,a)

p=a^s/(factorial(s)*((1-a/s)*sum(a.^[0:s-1]./factorial([0:s-1]))+a^s/factorial(s)));

另外,已知B(s,a),a或C(s,a),a,可以反推s。

  • 11
    点赞
  • 53
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
好的,以下是一个简单的 MATLAB 代码,用于生成爱尔兰B表格,并输出到命令窗口: ```matlab clc; clear; % 设置参数 num_channels = 20; % 信道数 min_loss = 1; % 最小呼损率 max_loss = 50; % 最大呼损率 loss_step = 10; % 呼损率步长 % 生成呼叫次数 num_calls = 10000; % 初始化表格 table = zeros(max_loss / loss_step + 1, num_channels + 1); % 遍历呼损率和信道数 for loss = min_loss:loss_step:max_loss for channels = 1:num_channels % 计算呼叫成功率 success_rate = 1 - (1 - 1/channels)^loss; % 模拟呼叫 calls = rand(num_calls, channels) < success_rate; % 计算呼叫失败率 failure_rate = sum(sum(calls) == 0) / num_calls; % 存储结果到表格 row = (loss - min_loss) / loss_step + 1; col = channels + 1; table(row, 1) = loss; table(row, col) = failure_rate; end end % 输出表格 fprintf("信道数\t"); for i = 1:num_channels fprintf("%d\t", i); end fprintf("\n"); for row = 1:size(table, 1) fprintf("%d%%\t", table(row, 1)); for col = 2:size(table, 2) fprintf("%.4f\t", table(row, col)); end fprintf("\n"); end ``` 代码中,我们使用两个嵌套的 for 循环,遍历呼损率和信道数,对于每组参数,我们都进行如下操作: 1. 计算呼叫成功率。 2. 模拟 $10,000$ 次呼叫,计算呼叫失败率。 3. 将结果存储到表格中。 最后,我们使用 fprintf 函数输出表格,格式化输出每个呼损率下的呼叫失败率,其中第一列为呼损率,后面的列为信道数。 注意:这只是一个简单的示例代码,实际情况下需要根据具体需求进行修改。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值