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

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

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


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

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

iPhone 上拨号键盘的发音规律的更多相关文章

  1. 去掉iphone上拨号弹出框

    1.常规的方法可以直接去除默认事件event.preventDefault() 2.使用vue的话可以: <div @click.stop.prevent=</div> //或者 & ...

  2. 英语发音规则---字母组合oo的发音规律

    英语发音规则---字母组合oo的发音规律 一.总结 一句话总结:在英语单词中,字母组合oo多数读长音/u:/,少数读短音/ʊ/.另外,还有极少数的特殊情况读/ʌ/, 在英语单词中,字母组合oo多数读长 ...

  3. 三种经典iPhone上网络抓包方法详解

    此文章来自:听云博客 很多时候需要网络抓包分析,在iPhone上抓包稍有不同,下面介绍三种常用的方式.分析工具以wireshark为例. 一.最简单的方式:用PC作为热点,在PC上抓包 优点:简单 缺 ...

  4. 在iphone上安装多个微信 【微信营销必备】

    做微信营销有很多因素会影响,xmyanke认为微信消息的活跃度会让你的微信公众号在微信搜索排名靠前,既然那样,我们可以通过运营几个小号来达到目的.每每当你在几个微信小号之间切换的时候有没要奔溃的赶脚? ...

  5. 解决iPhone上select时常失去焦点,随意跳到下一个输入框,影响用户操作

    window.addEventListener('load', function() { FastClick.attach(document.body); }, false); //300s延迟,解决 ...

  6. 通过Mouse Without Borders在多台机器上共享键盘鼠标

    博客搬到了fresky.github.io - Dawei XU,请各位看官挪步.最新的一篇是:通过Mouse Without Borders在多台机器上共享键盘鼠标.

  7. ios:如何将自己编写的软件放到真正的iPhone上运行(转)

    想要将自己编写的软件放到真正的iPhone上去运行,首先你需要成为Apple Developer计划的成员.其次,你需要设置程序ID和认证书,在这之后你就可以在你指定的iPhone上运行你的程序了.下 ...

  8. iphone上click事件不触发的问题解决。

    iphone上click事件不触发的问题解决. //在ID为jsProvince上有这么一个事件: $('body').on('click', '#jsProvince', function(e){ ...

  9. iPhone 上显示桌面版页面

    在用智能电话的浏览器打开页面时,很多网站会根据浏览器的屏幕大小自动调整显示布局,或跳转到移动设备使用的专用面上来优化显示.一些情况下,这种优化可能不是用户希望的,比如优化后的页面缺少桌面版的功能. 这 ...

随机推荐

  1. 5种JavaScript和CSS交互的方法

      分享   分享   分享   分享   分享   随着浏览器不断的升级改进,CSS和JavaScript之间的界限越来越模糊.本来它们是负责着完全不同的功能,但最终,它们都属于网页前端技术,它们需 ...

  2. Hibernate中的一对一映射

    1.需求 用户和身份证是一一对应的关系. 有两种对应方式: 用户id作为身份证表的外键,身份证号作为主键: 用户id作为身份证表的主键: 2.实体Bean设计 User: public class U ...

  3. SharePoint安全 - 在Goolge和Bing中查找SharePoint相关内容

    博客地址 http://blog.csdn.net/foxdave 本篇提供两个查询串字典,分别对应Google和Bing的搜索,用来查询SharePoint网站的相关内容 Google ShareP ...

  4. YAML 语言语法

    发现很多开源的软件的配置文件都使用了这种语言来描述,据说是简单强大,很不巧,ansible也使用了这种语言来描述配置,学习ansible之前,先学习一下YAML语言. YAML基本语法规则如下: 大小 ...

  5. pyqt5 笔记(三)py2exe 实现代码打包exe

    python3.4 安装64位的版本 py2exe 下载地址: https://pypi.python.org/pypi/py2exe/0.9.2.0#downloads cmd——>进入pyf ...

  6. ajax 中的一些方法应用

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  7. C++数据结构之Queue(队列)

    Queue,队列,和我们日常生活中的队列是同样的规则,"先进先出",从尾入,从首出. Queue,主要有三种基本操作,append(添加元素至队尾):serve(队首元素出列):r ...

  8. hdu 2054

    Ps:WA了无数次,,简直成了心病..今天终于AC了..先取整数部分,去零,判断位数相等否,再比较.如果相等,再取小数部分,去零,比较,输出....好烦... 代码; #include "s ...

  9. 针对电信乌龙事件的深度测试: 广州电信错误将深圳地区189的号码在3G升级4G申请时从广州网厅发货,造成深圳用户收到4G卡后无法激活,深圳电信找不到订单

    广州电信错误将深圳地区189的3G升级4G申请从中国电信广州网厅发货(智能卡号:8986 1114 9002 0851  742X S  电话号码 189),造成用户收到4G卡后无法激活,深圳电信找不 ...

  10. 将salt取到的数据处理

    #!/usr/bin/env python #coding:utf-8 import json with open('minfo') as f,open('minfoMiddle','w') as f ...