电话拨号音的合成与识别
实验题目:电话拨号音的合成与识别
课程简要信息
课程名称:信号与系统仿真实验
课程学时:16课时
项目学时:课内
适用专业:电子信息工程、通信工程
学生年级:大三
实验内容与任务(限500字,可与“实验过程及要求”合并)
项目需要完成的任务(如需要观察的现象,分析某种现象的成因、需要解决的问题等);是否设计有不同层次的任务。
(1)图形电话拨号面板制作 :利用MATLAB中 GUI 图形用户界面设计工具制作电话拨号面板,把 DTMF 信号和电话机的键盘矩阵对应起来。
要求:界面整洁美观。

- DTMF 信号合成 :对图形电话拨号面板上的各控件单位的动作和变化进行设置,完成回调函数。使对应的按键按照规定的频率组合产生相应的拨号音,完成对应行频及列频的叠加输出。
要求:按键的号码数字正确显示在拨号显示窗口中,并能用耳机测试出不同按键产生的拨号音。
- DTMF 信号检测识别 :采用 FFT 算法对信号进行解码分析,首先对接收到的数字信号作 FFT 分析,计算出其幅度谱,进而得到功率谱,组成输入信号的频率必定对应功率谱的峰值,从而确定 DTMF 信号所代表的数字或功能。
要求:识别通信录,模拟展示来电显示。
- 拓展任务:对拨号音信号进行加噪和识别,对给定的拨号音信号添加白噪声,通过控制信噪比参数,实现不同噪声强度对加噪后的拨号音进行时频分析,以及号码识别尝试记录能够正确识别的最低信噪比。
要求:GUI界面展示加噪拨号音时域和频域波形。
相关知识及背景(限150字)
项目涉及所需的知识方法、实践技能、应用背景、工程案例。
早期的脉冲拨号电话系统需要大量的操作员手工完成长途接续(效率低、易出错)。贝尔实验室的科学家们发明了双音多频(Dual Tone Multi-Frequency,DTMF,用两个特定的单音频率信号的组合来代表数字或功能,目的是为了能让电话系统自动接收号码然后完成呼叫),包括模数转换过程,是电话通信系统中的基础技术,拨号音的合成与识别涉及到信号的时域和频域分析。
表1 DTMF对应频率表
FH(Hz) FL(Hz) |
1209 | 1336 | 1477 | 1633 |
| 697 | 1 | 2 | 3 | A |
| 770 | 4 | 5 | 6 | B |
| 852 | 7 | 8 | 9 | C |
| 941 | * | 0 | # | D |
实验环境条件
项目实施需要实验资源,包括实验装置功能、实验仪器设备、设计软件工具、主要电子元器件等。
硬件设备 :计算机、声卡、耳机或音箱等音频输出设备。
软件平台 :MATLAB 软件,用于制作GUI界面,并编写程序实现电话拨号音的合成与识别。
教学目标与目的(限150字)
如学习、运用知识、技术、方法等;培养、提升技能、能力、素质等。
知识目标 :学生能够描述电话拨号音的合成与识别的产生过程,理解模拟信号和数字信号的转换原理。
能力目标 :学生能够利用MATLAB中的图形用户界面GUI制作简单直观的模拟界面,并能灵活利用MATLAB软件以及FFT算法实现对电话通信系统中拨号音的合成与识别。
素养目标 :学生能够认识到通信技术在日常生活中的重要性,培养对专业的认同感和学习成就感,提高对工程应用、科学研究的积极性和主动性。
教学设计与实施进程
课堂知识讲解、方法引导、背景解释;实验中的方法指导,问题设置、思路引导等。教学模式、实验渠道、研讨主题、观察节点、验收重点、质询问题等方面设计等。实验实施进程的各个环节(如任务安排、预习自学、现场教学、分组研讨、现场操作、结果验收、总结演讲、报告批改等)中教学设计的思路、目的,教师、学生各自需要完成的工作任务,需要关注的重点与细节。
本实验的过程是一个比较完整的实践工程,需要经历学习研究、界面设计、回调函数调试、测试效果、设计总结等过程。在实验教学中,应在以下几个方面加强对课堂教学的设计。
设计思路:
实验设计突出“原理性”、“趣味性”、“综合性”和“实用性”。从学生感兴趣的角度(新闻事件)导入实验内容;拓展学习内容(电话拨号系统的发展历程、各类密码保护技术等);分析回顾时域抽样定理、信号傅里叶分析;阐述双音多频的实验原理;学生动手设计、优化、调试、讨论、总结提升。实验过程中注重师生互动。

从教学痛点出发,丰富教学内容,优化教学手段,改进教学方法,提升学生的学习兴趣和注意力,充分调动学生的实验课堂的参与度,加强学习效果。学生通过设计电话拨号GUI界面(app)并编程实现电话拨号音的合成和识别,初步建立了工程设计的系统思维并提升了编程能力;学生通过计算拨号音的数字频率、利用傅里叶变换对实际信号进行频谱分析,并绘制拨号音的频谱图,加深了对信号与系统理论知识的理解。通过课堂教学使学生掌握了“双音多频”、“白噪声”、“信噪比”等通信、信号处理中的基本概念;通过课堂讨论密码保护技术,拓展了学生的知识面,锻炼了学生多元化思维;通过生活场景的对接,使学生感受到科学技术服务于生活,并引出“科技是双刃剑”的思政元素,强调科技工作者、工程设计者正确价值观的重要性。
实施步骤:五星教学法
案例导入:提升课程的实用性和趣味性,调动学生的关注度。
90后大学生仅凭声音破解360老总的手机,后被邀请进入360工作! (sohu.com)

课堂讲授:教师通过讲解,使学生了解电话拨号音的基本原理和产生机制,包括如何在Matlab中设计GUI界面和回调函数的编写、双音多频 DTMF 信号的原理、模拟信号与数字信号转换等知识。
实验操作:学生一人一组,在教师的指导下,按照实验内容和步骤,利用 MATLAB 软件进行电话拨号音合成与识别的实验操作。包括制作图形电话拨号面板、合成拨号音、检测识别拨号音等。
小组讨论:学生进行小组讨论,交流实验过程中遇到的问题和解决方案,教师进行巡视指导,引导学生主动思考和探索,提高学生的分析和解决问题的能力。
拓展学习:分析了解白噪声的频谱特性,通过添加白噪声,直观了解信噪比的概念,探讨发出拨号音从而拨通电话的可行性,了解人类语音信号的特点。了解银行内按键音与双音多频的区别,以及手机银行密码按键音演进的原因以及各类密码保护技术等。
总结归纳:教师对学生的实验结果进行考评和归纳总结,强调实验中的重点和难点,解答学生在实验过程中存在的疑问,使学生对电话拨号音合成与识别的原理和方法有更深入的理解。

在设计中,要注意学生设计和编程的规范性;如按键标号的顺序和回调函数的对应,拨号音行频和列频的计算;要注意学生界面设计的美观性;在调试分析中,要细致耐心,不只是追求结果,重视实验过程和排错的总结。
课后为学有余力的同学创设实验条件,鼓励有需求的学生继续独立或者合作完成开放实验,加入噪声信号之后,实现界面的优化和信号的提取。

实验原理及方案
实验的基本原理、设计依据、完成任务的思路方法,可能采用的方法、技术、电路、器件。
信号合成原理:根据 DTMF 信号的频率组合规则,利用正弦函数生成对应的低频和高频信号,然后将两者相加,即可得到拨号音信号。例如,按下数字键 “1” 时,会产生 697Hz 和 1209Hz 两个频率的正弦波信号,将这两个信号相加,就得到了代表数字 “1” 的拨号音信号。
鉴于 CCITT 对 DTMF 信号规定的指标,这里每个数字信号取 1000 个采样点模拟按键信号,并且每两个数字之间用 100 个 0 来表示间隔来模拟静音。以便区别连续的两个按键信号。间隔的静音信号也是在按键时产生的。
模拟信号数字化:DTMF最高频率1633Hz,选择采样率8192Hz满足时域抽样定理。

频率的换算关系(以数字0键为例):
由表 1 中 0 键对应的
,
计算得出,
已知声音取样频率
,
则取样后
,
d0=sin(0.7217*n)+sin(1.0247*n)
% 按键 0 的响应函数
function varargout = pushbutton0_Callback(h, eventdata, handles, varargin)
n=[1:1000]; % 每个数字 1000 个采样点表示
d0=sin(0.7217*n)+sin(1.0247*n); % 对应行频列频叠加
n0=strcat(get(handles.edit1,'string'),'0'); % 获取数字号码
set(handles.edit1,'string',n0); % 显示号码
space=zeros(1,100); %100 个 0 模拟静音信号
global NUM
phone=[NUM,d0];
NUM=[phone,space]; % 存储连续的拨号音信号
wavplay(d0,8192); % 产生拨号音
依此类推,算出其他按键的数字频率并编写回调函数。
对于保留的两个功能键“ *”和“#”,按照现行键盘式拨号电话的习惯,将“ *”作为删除键,“#”作为确认键。“ *”删除键的作用是将前面拨错的号码删除退回,表现为将显示窗口已经显示的错误号码退回一位数字,并且将连续拨号音信号的存储单元 NUM 中退回一位拨号音信号和静音信号。删除可以进行连续的操作。“#”确认键的作用是将前面拨过的号码进行确认保留,意味着此时连续拨号音信号的存储单元 NUM 中的信号即为最后用于识别的连续拨号音 DTMF 信号,并在显示窗口中显示“#”号作为标记。
信号识别原理:要实现电话拨号音( DTMF )信号的检测识别,可以通过直接计算傅里叶变换得到输入信号的组成频率。这里采用 FFT 算法对信号进行解码分析。首先对接收到的数字信号作 FFT 分析,计算出其幅度频谱,进而得到功率谱,组成输入信号的频率对应功率谱的峰值。对于连续的双音多频( DTMF )信号,需要把有效的数字拨号信号从静音间隔信号中分割提取出来,然后再用 FFT 算法对信号进行解码分析。
信号在频域能够呈现出时域不易发现的性质和规律,傅里叶变换能够将信号从时域变换到频域,便于在频域对信号的特性进行分析。
时域离散信号x(n)的傅里叶变换定义如下:

在实际中,傅里叶变换通常使用快速傅里叶变换FFT实现,而FFT实则用离散傅里叶变换(DFT)的快速算法。x[n]的DFT定义如下

因此实际中使用FFT对信号进行频域傅里叶分析时,必须遵循DFT应用的要求,即FFT的点数应大于等于信号的序列长度。在程序设计中应留意这一点。
确定行频和列频的数值范围是通过计算得出的:已知输入信号的取样频率
,而做FFT的N=2048,则频谱分辨率为
,由此可算出频谱图上任意点对应的频率
。例如,数字8的高、低端频率为
,则在谱图上对应的点
。
实验报告要求
需要学生在实验报告中反映的工作(如:实验需求分析、实现方案论证、理论推导计算、设计仿真分析、电路参数选择、实验过程设计、数据测量记录、数据处理分析、实验结果总结等等),如:
实验报告需要反映以下工作:
实验目的 :简要说明本次实验的目的和意义。
实验原理 :阐述电话拨号音合成与识别的基本原理,包括 DTMF 信号的产生和检测方法。
实验内容 :详细描述实验的具体内容和步骤,包括图形电话拨号面板的制作、拨号音的合成与识别过程等。
实验结果 :给出实验中得到的拨号音信号波形图、频谱图等结果,并对结果进行分析和讨论,说明实验结果是否符合预期,以及出现的问题和解决方案。
实验总结 :总结本次实验的收获和体会,包括对电话拨号音合成与识别原理的理解、实验技能的提高等方面。
考核要求与方法(限300字)
考核的节点、时间、标准及考核方法。
课堂表现:评估学生在课堂上的参与度、提问回答、小组讨论等,以考察学生的学习态度和积极性。
评分标准:不做其他无关事情跟着老师的节奏完成任务(80+);积极思考、及时回答老师的提问(85+);充分参与小组讨论并发表见解(90+);能完成拓展任务(95+);其他被动参与的表现老师视情况给予评分(80-)。
实验报告:根据学生提交的实验报告的完整性和准确性,评估学生对实验内容的掌握程度和分析问题的能力。
评分标准:根据学生现场操作熟练度、代码和界面布局规范、结果是否正确、问答是否流畅给予评分。
表2 实验报告考核标准
| 分数范围 | 描述 |
|---|---|
| 90-100 | 按时独立完成,代码和界面布局规范,结果正确,文字处理工整。 |
| 80-89 | 按时完成,代码和界面布局比较规范,结果无误,报告整洁。 |
| 70-79 | 在提示下完成,代码和界面能实现功能,结果无明显误差,内容完整。 |
| 60-69 | 在帮助下完成,代码和界面需修改后才能运行,结果部分正确。 |
| <60 | 无法完成仿真任务,报告不完整。 |
本次实验总成绩:课堂操作表现成绩*50%+报告成绩*50%。
项目特色或创新(可空缺,限150字)
项目的特色在于:项目背景的工程性,知识应用的综合性,实现方法的多样性。
实践性强:利用 MATLAB 软件进行仿真实验,使实验更加直观、生动,让学生亲身体验电话拨号音的合成与识别过程,提高了学生的学习兴趣和实践动手能力。
学科交叉融合:融合信号与系统、通信技术、APP设计等知识,让学生拓展了知识面,增强了专业认同感,为今后从事相关工作打下了基础。
五星教学法:提高了课堂效率,促进了学生积极参与、深层思考和规范描述。