• 締切済み

正弦波の波形について

#include<math.h> #define M 1000 #define T 20 #difine PI 3.1415926 int i; double sig[M]; main(){ for(i=0;i<M;i++){ sig[i]=sin(((double)i/M)*T*2*PI); } } この正弦波の波形を8ビット、16ビットに直したいのですが 分かりません。教えて下さい。お願いします。

みんなの回答

  • shigatsu
  • ベストアンサー率26% (511/1924)
回答No.3

し、しまった・・・(^^; 補足ありがとうございました。>tatimiさん 最近あんまりプリミティブなことしてないので・・言い訳。

  • tatimi
  • ベストアンサー率34% (19/55)
回答No.2

すっ、すいません。shigatsuさんへ。  sinの範囲は-1~+1です。  符号なし8bitの範囲は0~255です。 という事で、 (符号付き)8bit(signed char)の範囲は-128~+127、 (符号付き)16bit(signed short)の範囲は-32768~+32767です。 -128や-32768という値は使わないように範囲を変換してください。

  • shigatsu
  • ベストアンサー率26% (511/1924)
回答No.1

「波形を?ビットに直す」ってのはどういう処理を期待しているのでしょうか? 最大幅を?ビットにしたいってことですかね? sin() の発生範囲は確か0~1の間ですよね?欲しい範囲が例えば符号無し8ビットとして0~256。この辺からどうすれば良いか見えてきませんか?

関連するQ&A