1. XenForo 1.5.14 中文版——支持中文搜索!现已发布!查看详情
  2. Xenforo 爱好者讨论群:215909318 XenForo专区

拨号码的声音滴滴答答,试着用电脑破解一下

本帖由 漂亮的石头2015-04-03 发布。版面名称:知乎日报

  1. 漂亮的石头

    漂亮的石头 版主 管理成员

    注册:
    2012-02-10
    帖子:
    486,020
    赞:
    46
    iPhone 上拨号键盘的发音有何规律?

    [​IMG] 知乎用户,KK4SBB,衣带渐宽,闻道日肥

    上个学期在信号处理课上选做的题目和这个问题正好相关。

    如焕杰同学所说,iPhone 拨号音是使用双音多频信号(DTMF)。双音多频信号是贝尔实验室发明的,通常用于发送被叫号码,它取代了早起的脉冲拨号方法。和 DTMF 配合使用的是 DTMF 键盘,标准的是 4X4 的键盘,但是通常电话不需要 16 个按键,只有 12 个按键。每个按键都有一个横坐标和一个纵坐标,分别对应一个频率。传统的 DTMF 信号是用来在固话网络上在带内(跟语音通话公用信道)传输信息的。比如被叫号码或者其它信令(网上银行输入卡号密码等)。 而手机的类似信令由带外(跟语音信号分别传输)传输,相比较而言,更精确,也更安全(不存在被录音后破解的情况)。 为了延续用户习惯,iPhone 拨号时仍旧模拟 DTMF 音播放给用户听,在实际通话中没有实际作用。用户拨完号按“发射”键时,手机会生成一组数字信号,由带外传输至交换机。(感谢@Morgan Wang 更正)

    [​IMG]

    也就是说,当我们按下数字‘1’的时候,我们听到的声音是一个单纯的 697Hz 的信号和一个单纯 1209Hz 的信号的叠加(不知道为了声音悦耳,设计师有没有加进去谐波成分)。其他 9 个数字和星号键、井号键也分别由这样两个信号叠加。

    [​IMG]

    如果把它们放在频域上看,不同数字就很容易区分了。我当时用 Matlab,根据标准频率做了一组信号,模拟拨号“1234567890”的拨号音,每个按键 0.5 秒,做短时傅里叶变换,纵坐标是归一化的频率。从图上可以看出,每一条黄色柱子表示一个数字,中间两段红色的粗线就是它对应的两个频率。

    下面是我用自己手机拨打自己号码,用电脑声卡采集,然后用 Matlab 做 STFT 得到的结果。

    [​IMG]

    [​IMG]

    上图是拨号音的时域波形。我边想边拨,花了 10 秒钟才拨完,拨号节奏有快有慢,只看波形你并不知道我的号码是多少。但是如果在频域上看,结果就比较清楚了,如下图。

    查看知乎原文
     
正在加载...