Math 簡單產生白雜訊的演算法

2021-06-28 15:53:02 字數 628 閱讀 5082

在音訊中有時候用白雜訊作為測試訊號,下面是乙個具體的簡單白雜訊產生演算法。

演算法參考文獻:

下面code的演算法使用的是「線性混合同餘法」。

x(i) = (a x(i-1) + c) mod (m)

m = 2^k

a選優質的乘子589

c和x(i-1)選能夠讓白雜訊剛開始產生訊號比較小的值。

x(i-1) = 27

c = 481

在16bit中選k=16.

由此得到如下產生16bits 白雜訊訊號的簡單演算法。

long igenwhitenoisemlcg16bitslite(short *pdat, long samples)

}return s;

}

測試結果如下

按16bits pcm格式開啟的波形如下:

對應的頻譜圖如下:

看來結果還是可以滿足基本白雜訊要求的。

做最簡單產品

谷歌是近十年來最為成功的科技公司,美國科技部落格businessinsider周四撰文分析了創始人謝爾蓋.布林 sergey brin 和拉里.佩奇 larry page 讓谷歌成為科技巨頭的13種妙招。過去十年,谷歌成為了眾多公司攻擊的物件。谷歌連續多年蟬聯最佳雇主,成為年輕專業人士最嚮往的公司,...

Math類的簡單使用

package cn.test import sun.nio.cs.ext.machebrew 介紹math類的常用方法 均是靜態方法!double pow double a,double b 計算a的b次方 double sqrt double a 計算a的正平方根 int abs double ...

Matlab 產生白雜訊和有色雜訊序列

一 白雜訊和有色雜訊定義 1.白雜訊 white noise 系統辨識中所用到的資料通常都是含有雜訊的。從工程實際出發,這種雜訊往往可以視為具有有理譜密度的平穩隨機過程。白雜訊是一種最簡單的隨機過程,是有一系列不相關的隨機變數組成的理想化隨機過程。其自相關函式為dirac函式。2.有色雜訊 colo...