我研究了很長一段時間在Android上產生的正弦波,並且我在網上找到了一些示例代碼。但是,當我自己編碼時,我仍然困惑不解。 我使用的代碼等下列當我用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);
}
- 我有太多噪聲,當我玩由式「Math.sin生成的正弦波緩衝液((2.0 * Math.PI * I)/ sampleInterval) 」。我不知道它是Android或我的編碼Java &的問題。在模擬器和我真正的索尼手機都顯示噪音。但是在我的同學的筆記本電腦上使用Matlab的相同公式可以很好地工作。 我也嘗試在桌面java代碼中使用DataSourceLine。噪音也存在。
2.產生的聲音往往是不穩定的,有時是連續的,但有時它可能是斷斷續續的,伴隨着明顯的經常起伏。
如何提高代碼的穩定性和準確性?
[生成的Java正弦波時,在背景噪聲(的可能的複製http://stackoverflow.com/questions/740619/noise-in-background-when做-generating-sine-wave-in-java) –