NIST测试结果分析
最近學習需要做了一些關于NIST的工作,便于學習交流,將一些對結果分析的過程做一些總結。
我用的NIST版本(點擊打開鏈接)
前序的如何仿真的過程就不講了,很多博客又提到,而且NIST的 user guider (點擊打開鏈接)講得很清楚(下圖就是文檔里的例子)。
以上只是仿真的過程,接下來進入正題。
一.結果文件都在哪。
二.怎么樣才有正確的結果。
三.這些數據之間是什么關系。
一.結果文件在什么地方
仿真結束后會在experiment這個文件夾里面有關于每一項測試的一個單獨的文件夾和finalanalysisreport這個文件(后者是講所有的數據報告整合在一起的一個相對簡介的報告文件)
二.怎么樣才有正確的結果
? ? 當然很有可能你打開finalanalysisreport.txt這個文件的時候是這樣的。
根據我的經驗,這是兩個原因導致的。1.沒有足夠多的數據量。2.在運行NIST的時候的how many streanms后面的提示輸入的數據不應該是1,感覺數據量足夠多的話,保證這個數大于10比較靠譜。
如果你的數據量實在不夠,就只能修改一些參數了!比如我就是這樣,
我只有10000個數據,這樣我雖然可以在finalanalysisreport.txt里面得到具體的p-value值,但是我全測所有測試項時,在這個文件里面并沒有serial和approxiamteEntropy的數據,這我就納悶了!最后在experiment這個文件夾里找到serial和approxiamteEntropy的單獨的數據報告文件,看了里面的state這個文件,才知道,也是數據量不夠的問題,當然只是針對當前的仿真參數而言的(我用的默認的仿真參數)。
于是我就修改了仿真參數。很幸運,得到了數據結果(下圖以approxiamteEntropy的修改為例)。
三.finalanalysisreport.txt這個文件里面的數據都是什么關系。
以上圖為例進行說明。
這里的數據組為10(也就是how many streams后我輸入的是10),這樣由于P-value的取值區間是0-1的,于是將這個區間等分成10個區間,在仿真的時候會得到10個P-value值,所以C1-C10的數值就是這10個P-value落在相應區間的數量(可以在每一個測試對應的文件夾里面找到這些P-value值進行驗證)。
那finalanalysisreport.txt的P-value和各測試項報告文件里的10個p-value有什么關系了!
其實finalanalysisreport.txt的P-value只是衡量這10個p-value分布均勻性的一種指標而已,是利用卡方分布進行統計的!
當然,我雖然知道了這些,但是我數據量不夠,在finalanalysisreport.txt里面還是沒有serial和approximateEntropy的結果,于是我就只能自己手算了。
找到serial和approximateEntropy在experimens文件夾里的報告文件,里面的result的數據就是我需要的數據(當然你得先保證這些數據是有效的,看state里面是否通過測試,通過了說明數據有效),接下來就是根據上圖的公式進行手算了!
算出X^2這個值不難,根據數據將分布表寫出來,直接就可以計算了!問題是igamc這個函數,就沒有辦法了!于是我利用了matlab計算,matlab里面的這個函數是gammainc(x,a),也就是不完全gamma函數。雖然可以得到結果,但是我利用測得的frequence的P-value(finalanalysisreport.txt里的值)利用這個公式在matlab里進行驗證,結果并不是完全相同。
于是我只能利用最后一招了!
得出serial和approximateEntropy的P-value值分布后,直接在finalanalysisreport.txt里面找和這兩個有相同分布的數據項,這樣兩者的P-valueT肯定是相同的。從X^2的計算來看,這種分布相同只要具有相同的比重量就可以,沒有必要C1-C10的分布比重完全一樣。看倒數第二圖里面的blockfrequence和第一個cumulativesums,他們的P-valueT是相同,但是再看他們的分布,只是都是三個2,四個1,和三個0,而已。
終于寫完了!希望對各位有所幫助,其實如果你的數據量夠多,有幾十萬個那么,其實就簡單了很多,省去了很多沒有必要的麻煩,我剛剛開始就是很納悶為什么會得不到所有的數據項的結果報告,都是數據量的問題!還有就是user guider真的很有必要好好看一下!
總結
以上是生活随笔為你收集整理的NIST测试结果分析的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 1599-卡斯丁狗的炉石传说 ZCMU
- 下一篇: Simulink移动机器人仿真学习--T