2009-04-18 162 views

回答

0

DTMF只涵蓋數字09和字母#, *, A, B, C,D。所以,如果你的問題是不存在任何d後支持信,那麼答案是否定的。

0

「DTMF」Touch「音調在CCITT第VI卷:關於電話交換和信令的一般建議:建議Q.23:按鈕式電話機的技術特性中定義。」。本文檔及其相關標準文檔將告訴您比您想要了解的有關DTMF音調更多的信息。 「

這句話是從here。該網頁涵蓋了所有的基本知識。

1

那麼下面的函數將生成一個16位有符號,線性PCM,在Java DTMF音。

public byte[] generateTone(float a, float b) 
{ 
    byte samples[] = new byte[16000]; // Tone data buffer. 
    int frames = samples.length/2;  // Number of frames that fit in the buffer. 

    /* Fill the buffer with the tone data. */ 
    for(int i = 0; i < frames; i++) 
    { 
     /* The 8000 value is the sample rate. */ 
     short value = (short)(32768 + 63 * Math.sin(i * 2 * Math.PI * a/8000) + 63 * Math.sin(i * 2 * Math.PI * b/8000)); 
     samples[i + i] = (byte)(value >>> 8); 
     samples[i + (i + 1)] = (byte)value; 
    } 

    return samples; 
} 

我希望這有助於......只需插入兩個頻率作爲參數a和b,然後得到一個音調。例如,第一個將生成爲:

byte tone[] = generateTone(697, 1209);