2
我的目標信號是產生正弦,正方形,三角形和鋸齒信號與Android的AudioTrack類。生成正弦波,方波,三角波,鋸齒波的音頻使用Android的AudioTrack類
我已經根據tutorial進行了嘗試。雖然我並不總能確定所產生的頻率與目標頻率的相符程度,但它工作得相當好。
我想做正方形,三角形等功能。該教程僅實現正弦。因此,我的問題是:
究竟怎麼樣工作
new Thread(new Runnable()
{
public void run()
{
final float frequency = 440;
float increment = (float)(2*Math.PI) * frequency/44100; // angular increment for each sample
float angle = 0;
AudioDevice device = new AndroidAudioDevice();
float samples[] = new float[1024];
while(true)
{
for(int i = 0; i < samples.length; i++)
{
samples[i] = (float)Math.sin(angle);
angle += increment;
}
device.writeSamples(samples);
}
}
}).start();
我可以做正弦到像如下方(用符號函數)?
samples[i] = (float)Math.signum(Math.sin(angle));
基本上,我想從根本上理解被寫入的樣品,這樣我就可以產生各種信號,也最終疊加他們。
謝謝你的時間!