• 締切済み

BASICでの波形合成

学校でのBASICの宿題で、複数のSIN波を合成する問題で 100 CLS 3:LINE(0,240)-(640,240),7 110 INPUT"基本波の周期は";C 120 INPUT"基本波の振幅は";W 130 INPUT"基本波の移送は";F 140 INPUT"第何倍音まで計算する";N:DIM A(N),B(N) 150 FOR I=1 TO N 160 PRINT I;:INPUT "番目の倍音の振幅は";A(I) 170 PRINT I;:INPUT "番目の倍音の移送は";B(I) 180 NEXT I 190 FOR K=0 TO 360/C*2*3.14159# STEP 3.14159#/90 200 X=C*K-F:Y=-(W*SIN(K))+240:LINE-(X,Y),4 210 NEXT K 220 FOR G=1 TO N:PSET(0,240),3 230 FOR H=0 TO 360/C*2*3.14159# STEP 3.14159#/90 240 X=C/(G+1)*H-B(G):Y=-((A(G))*SIN(H))+240:LINE-(X,Y),3 250 NEXT H,G ここで描いたSIN波を合成した波を描く方法が分からない状態です。 どうにも解決できないのでここに質問しました。どなたか分かる方がいたら教えてください。

みんなの回答

  • redfox63
  • ベストアンサー率71% (1325/1856)
回答No.1

元の波形の振幅と倍音の振幅の和を描画すればいいのですが ・・・ 描画する範囲が 0から2PIを180等分しているので 元の波形描画の段階でX,Yを配列に代入して置く 倍音の波形も同じように配列に代入しながら描画する 合成波形は自分より低次の倍音までのデータの和で描画する といった手順を踏めばいいでしょう 『移送』は『位相』ですよ ・・・

languebird
質問者

お礼

なるほど。ありがとうございます。 先に進むことが出来ました。

関連するQ&A