使用马尔可夫链评估熵噪声源的MATLAB代码

时间:2015-06-18 00:16:31

标签: matlab math random markov-chains

我正在尝试将此PDF的第68页集成到MATLAB代码中:

http://csrc.nist.gov/publications/drafts/800-90/draft-sp800-90b.pdf#page=68

我已将这些说明作为图像包含在此处:

由于我对Markov链条一无所知或很少知道,我首先对指示o i 是什么的指令感到困惑。 " o i 表示样本"中状态 i 的次数。什么是州

步骤4可能是其中最困难的一步。我不知道如何计算S或类似的东西。

这是我的开始代码:

function minEntropy = markovTest(points, bitSize)
if bitSize > 6
    err('Maximum of 6 bits are allowed for Markov test, re-map inputs as in 7.2')
end
k = 128;
alpha = 0.05;
alpha = min(alpha^(bitSize^2),alpha^k);
% Estimate the initial state probability distribution:
e = sqrt(log(1./(1-alpha))./(2*N));
N = length(points);
oi == ?
Pi = min(1, oi./N + e);
??? Hat to do next?
end

1 个答案:

答案 0 :(得分:0)

NIST已将所有这些测试集成到一个漂亮的Python库中,该库可以在GitHub上找到。如果由于某种原因图书馆已经消失,您可以尝试联系NIST的Tim Hall,他也将此库移植到C代码,如果这样更适合您。 tim.hall@NIST.gov