資源簡介
兩個噪聲生成函數,可以分別生成高斯白噪聲和有色噪聲,原理是分別基于隨機數生成和描述時間序列的ARMA模型,特點是簡單實用。
代碼片段和文件信息
/******************兩種簡單噪聲生成程序***********************/
//高斯噪聲方差和均值設置
const?double DX=0.01;
const?double EX=0;
//有色噪聲設置
const?int ARMA_N=2;
const?int ARMA_M=1;
const?double fai_n[2]={0.9571-0.1107};
const?double sita_m[1]={0.05612};
//Gauss白噪聲
double?gauss()
{
double?m1m2mem;
static?int?value=1;
value=(5*value+1)%65535; //?value=(A*value+C)%M;??生成隨機數
if(value>65535||value<=0)
{
printf(“錯誤!隨機數生成參數設置不當!\n“);
abort();
}
m1=(double)value/65535; //和系統函數rand()共用,盡可能獨立
m2=(double)rand()/32768;
mem=sqrt(-2*log(m1))*cos(m2*2*PAI)*sqrt(DX)+EX;
return?mem;
}
評論
共有 條評論