こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

締切り済みの質問

javaで三角波を合成

javaでbyte配列を使って
for(int i=0;i<triangle_wave.length;i++){
double s=0;
for(int j=0;j<=2;j++){

double a = (2*j+1)*i*F0*Math.PI*2/Fs;(Math.sin((2*j+1)*i*F0*Math.PI*2/Fs)/(Math.pow((2*j+1),2))));
s += (double)(Math.pow((-1),j)*(Math.sin(a)/(Math.pow((2*j+1),2))));
}
triangle_wave[i]= (byte)(110*8*s/(Math.pow(Math.PI,2)));
}
AudioFormat format = new AudioFormat((float)Fs,16,1,true,false);
InputStream bytefile = new ByteArrayInputStream(triangle_wave);
File file = new File("test.wav");
AudioInputStream inputstreem = new AudioInputStream(bytefile,format,wave.length);
AudioSystem.write(inputstreem,AudioFileFormat.Type.WAVE,file);

のような感じで三角波を作ったのですが、これをwavファイルに出力してSonicVisualiserでスペクトルを見ると基本周波数が出てきません。これはどうしてでしょうか?
また、量子化ビット数を16から8にするとスペクトルに基本周波数が出てきます。量子化ビット数を2倍にすると周波数も2倍になるということなのでしょうか?

投稿日時 - 2014-07-25 19:31:33

QNo.8692155

すぐに回答ほしいです

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(1)

ANo.1

ソースは読んでませんが、周波数以前に波形を見ればわかるのではありませんか?

投稿日時 - 2014-08-02 00:45:33

あなたにオススメの質問