2

这更多的是一个理论问题。先说明一下情况:

我们有系统可以拨打另一个系统并发送 dtmf 音(如果您不熟悉 dtmf 音,假设它发送像 0、1、2 之类的数字...)。根据收到的 dtmf 音,接收端组成整个数字,然后执行一些动作。

但是,对于较长的数字,例如 423121212121 ,它有 13 个 dtmf 音调,这需要很长时间才能传输。

我想知道是否有人熟悉任何可以将这 13 位数字压缩成更小尺寸的数学公式或算法,将其发送过来然后在另一端提取?

4

1 回答 1

4

在成熟的 DTMF 方案中,有四个“位”数据,即 16 个组合。如果所有 16 个组合都可用,那么解决您的问题的最明显方法是将您的号码编码为十六进制数字并传输十六进制。这将使您的 13 位数字减少到 10 或 11 位——不是大幅减少,但可能是您能做的最好的。

我能想到的唯一另一件事是利用数字中的模式并用单个数字替换例如“流行”前缀代码(要求不太常见的前缀前面有一个额外的标记数字来识别它们)。这是霍夫曼编码的穷人版本。或者可以采用成熟的霍夫曼编码,或类似的方案。

于 2012-09-22T13:33:02.573 回答