0

我还没有找到任何关于这个主题的文献。

4

3 回答 3

1

下面的函数将在 Java 中生成一个 16 位、有符号、线性 PCM、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);
于 2009-10-01T15:29:58.577 回答
0

“DTMF“触摸”音在 CCITT 第 VI 卷中定义:关于电话交换和信令的一般建议建议 Q.23:按钮电话机的技术特性。”。本文档及其相关标准文档将告诉您比您想知道的更多有关 DTMF 音调的信息。"

这句话来自这里。该网页涵盖了所有基础知识。

于 2009-04-18T22:44:50.407 回答
0

DTMF仅涵盖数字0to9和 字母#, *, A, B, C,D. 因此,如果您的问题是是否存在任何支持 D 之后的字母的东西,那么答案是否定的。

于 2009-04-18T23:24:45.270 回答