2017-04-30 2 views
0

私はサイン波を描く次のコードを持っています。 以下の私のコードを参照してください。周波数処理が増加するサイン波を描く

float x, y; 
float prevX=0.0, prevY=0.0; 
int numOfWaves = 6; 
float angle = 0; 

void setup() 
{ 
    size(360, 360); 
    background(0); 
    smooth(); 
    stroke(255); 
} 

void draw() 
{ 
    translate(0, height/2); 
    scale(1, -1); 

    for(int count=0; count < 360; ++count){ 
    x = count; 

    angle = radians(count); 
    y = sin(angle*(numOfWaves/2.0)); 

    y = map(y,-1,1,-height/2,height/2); 

    line(prevX, prevY, x, y); 

    prevX = x; 
    prevY = y; 
    } 

    prevX = prevY = 0.0; 
} 

をしかし、私は正弦波の周波数は距離を増加したいと思います。 これは私が手に現在の正弦波である:

enter image description here

しかし、私はそれがこのように見えるようにしたい: enter image description here

私はこれをどのように行うのでしょうか?

+1

最後の図では、左から右に移動すると周波数*が減少し、波長が増加します。それはあなたが望むものなのですか、あるいは周波数を右に上げたいのですか、グラフィックの端を超えて何かが起こっていますか? –

答えて

1

プロットする方法を知っていますsin(2*π*f*t)f(t)は、線形二次、またはあなたが選ぶ他に何もすることができ

y(t) = A*sin(2*π*f(t)*t) 

A「チャープは、」時間の関数自体の周波数を持つことになります。

+0

お返事ありがとう!しかし、私は実際に数学についてはほとんど分かっていません:(これを実装する方法のコード例を教えてもらえますか? – FutureCake

+0

ここに役立つものがあります:https://www.mathworks.com/help/signal/ref/chirp.html? – duffymo

+0

ok申し訳ありませんが、実際にはxとy座標に変換する方法... – FutureCake