Androidで生成される正弦波を長年研究していて、サンプルコードをオンラインで手に入れました。しかし、自分でコードを書くときにはまだ混乱しています。 私は式によって生成された正弦波のバッファを再生するときIあまりノイズがMath.sin((2.0 *にMath.PI * I)/ sampleInterval)」があるJavaでAndroidで正弦波を生成するとノイズが多い
double[] buf = new double[(int) sampleRate];
byte[] buffer = new byte[(int) sampleRate];
double sampleInterval = sampleRate/frequency;
for(int i=0; i<sampleRate;i++){
buf[i] = (Math.sin((2.0*Math.PI*i)/sampleInterval));
buffer[i] = (byte)(buf[i]*Byte.MAX_VALUE);
}
while(flag) {
audioTrack.write(buffer, 0, buffer.length);
}
- を以下のようなコードを使用"私はそれがJavaの問題であることを知らない& Androidまたは私のコーディング。シミュレーターと私の実際のSony Phoneの両方がノイズを示しました。しかし、私のクラスメートのラップトップでMatlabと同じ公式はうまくいくことができます。 私はまた、デスクトップJavaコードでDataSourceLineを使用しようとしました。ノイズも存在します。
2.音は不安定になることがありますが、時には連続的ですが、時には音の明白な規則的な浮き沈みで断続的になることがあります。
コードを安定して正確にするためにコードを改善するにはどうすればよいですか?
の可能性のある重複した([バックグラウンドのノイズJavaで正弦波を生成] http://stackoverflow.com/questions/740619/noise-in-background-whenでそれを行うことができます-generating-sine-wave-in-java) –