2015-09-19 235 views
-2

這裏的總noob。有人能給我一個例子,說明如何生成一個2kHz正弦波陣列,其C方差爲0.01的白噪聲?這是我到目前爲止有:用C語言生成正弦波陣列

#include <stdio.h> 
#include <math.h> 
#include <stdlib.h> 
#define PI 3.141592653589793 

int main() { 
    int i; 
    double buffer[10000]; 

    for(i = 0; i < 10000; i++) 
    { 
     buffer[i] = sin(2000 * (2 * PI) * i/6000) + sqrt(0.01)rand; 
    } 

    return 0; 
} 
+0

什麼是你的代碼的問題? –

+0

不知道如何用蘭德函數添加白噪聲:S – rwar

+0

(除了丟失的隨機種子和在sqrt(0.01)rand上的拼寫錯誤) –

回答

0

(僅供參考)

你首先要種子,通過srand()隨機數發生器,以及應在每次程序運行通過一個獨特的價值。

您的代碼,修改後的正確性:

#include <math.h> 
#include <stdlib.h> 
#include <time.h> 

int main() { 
    srand((unsigned)time(NULL)); 

    int i; 
    double buffer[10000]; 

    for(i = 0; i < 10000; i++) 
    { 
     buffer[i] = sin(2000 * (2 * M_PI) * i/6000) + sqrt(0.01) * rand(); 
    } 

    /* ... */ 

    return 0; 
}