试图产生指数流量

时间:2015-05-17 23:38:24

标签: matlab

我正在尝试在MATLAB中为家庭作业项目模拟光网络算法。其中大部分已经完成,但我遇到的图表存在问题。

在模拟中,我正在产生指数流量,但是,对于低λ值(0.1),我的丢包率非常高(99%)。我在这里写了一个示例,它非常接近我在模拟器上运行的测试平台。

% Run the simulation 10 times, with different lambda values
l = [1 2 3 4 5 6 7 8 9 10];

    for i=l(1):l(end)
        X = rand();
        % In the 'real' simulation the following line defines the time
        % when the next packet generation event will occur. Suppose that
        % i is the current time
        t_poiss = i + ceil((-log(X)/(i/10)));
        distr(i)=t_poiss;
    end

    figure, plot(distr)
    axis square
    grid on;
    title('Exponential test:')

生成的图像是

enter image description here

我在这个样本中得到的图表对于我得到的丢弃率/λ的图表是IDENTICAL。所以我想问一下我做错了什么或错过了什么?这是正确的期待吗?

1 个答案:

答案 0 :(得分:0)

所以问题来自可能是一个数字问题。由于您为X生成了一个随机数,因此该数字可能非常小 - 比如接近于零。如果你的数字接近零,那么log(X)将是巨大的。因此,t_poiss的计算量很大。我建议做X = rand() + 1这样的事情,以确保X永远不会接近于零。