2014-10-20 145 views
1

在「講義8,白噪聲和功率譜密度」的第3頁中提到randrandn創建了僞隨機數。如果我錯了,請糾正我的錯誤:一個隨機數序列是對於同一個種子,兩個序列永遠不會是真正的準確。生成隨機數的正確方法

然而,僞隨機數是確定性的,即如果從相同種子產生兩個序列是相同的。

如何創建隨機數而不是僞隨機數,因爲我的印象是Matlab的randrandn函數用於生成相同獨立的隨機數?但是,幻燈片提到他們創建了僞隨機數。谷歌搜索創建隨機數返回randrandn()函數。

區分隨機數和僞隨機數的原因是我需要比較具有白噪聲特性的密碼學(A)隨機性和具有白噪聲特性的(B)僞隨機信號的性能。所以,(A)必須與(B)不同。對於任何代碼和生成隨機數字和僞隨機數字的正確方法,我將不勝感激。

+0

這不就是'蘭特(N)'命令例如'randomGenerator =蘭特(2)' – KRUKUSA 2014-10-20 08:36:05

+7

我不認爲這是可能產生與Matlab軟件...僞隨機信號發生器的實際隨機數將具有白噪聲特性,並且大多數統計軟件模擬使用僞隨機數。因此'rand'和'randn' *是在Matlab中生成隨機數的正確方法。 – Dan 2014-10-20 08:36:07

+1

您是否需要使用「真正的」RNG與僞RNG,還是僞RNG與準隨機RNG? – Kostya 2014-10-20 08:47:34

回答

1

如上所述,用計算機軟件創建真正的隨機數真的很困難(可能不可能)。互聯網上有許多項目提供真實的隨機數字,這些數字是由物理過程產生的(例如Kostya提到的那個)。一個特別有趣的是來自HU Berlin的this

這就是說,對於像你想要執行的那樣的實驗來說,Maltab的psedo RNG更是不錯。 Matlab的算法包括Mersenne Twister,它是最着名的僞RNG之一(我建議你google Mersenne Twister的屬性)。參見Maltab rng文檔here

由於您沒有提到您想要模擬哪種類型的系統,因此解決您的問題的一種簡單方法是對流程A使用良好的RNG(Mersenne Twister),對流程B使用不好的RNG(Mersenne Twister)。

+0

感謝您指出Matlab用於Psuedo RNG的算法。 – SKM 2014-10-20 15:26:05

+0

在本文「非線性系統辨識:PRBS與蒸汽蒸餾試驗工廠的隨機高斯擾動之間的比較」,2013年IEEE第三屆國際系統工程與技術COnference,2013年8月19-20日,馬來西亞「作者比較了隨機高斯白色信號和僞隨機二進制序列。因此,可能有辦法從rand(),randn()產生隨機高斯信號和僞隨機。我處於兩難境地。你能否建議一個出路來產生這些? – SKM 2014-10-20 16:59:53

+0

@SKM不幸的是,這張紙被支付了,我看不懂它。看看這個matlab函數[awgn](http://www.mathworks.com/help/comm/ref/awgn.html?refresh=true)。希望能幫助到你。 – gire 2014-10-21 07:12:24

3

「真實」隨機數的產生是一項棘手的工作,您可以在維基百科上檢查RNG和隨機性測試(http://en.wikipedia.org/wiki/Random_number_generation)。該鏈路提供基於大氣噪聲的RNG(http://www.random.org/)。

+0

對於http://www.random .org /我認爲提供一個提供TRNG的webservice是購買硬件專用於該任務的唯一選擇。 – Dan 2014-10-20 15:23:47

+0

@Kostya:在你提供的鏈接中,右側有一個工具,可以在一定範圍內輸出一個隨機數。我應該怎樣做才能得到一系列隨機數字? – SKM 2014-10-20 15:29:39

+1

@SKM:看一下網頁上的Numbers部分,列出了幾個選項 – Kostya 2014-10-20 17:25:26