数字信号处理
课程设计
题目数字信号处理在双音多频拨号系统中的应用学校南昌航空大学科技学院
专业 自动化
班级:1 182022
学号 27
姓名: 吴哲祺
2014年1月13日2014年1月17日
设计任务
设计程序 读入8位电话号码 根据键入的 8位电话号码产生时域离散双音多频DTMF信号并连续发出 8位号码对应的双音频声音。对时域离散 DTMF信号进行频率检测画出幅度谱。根据幅度谱的两个峰值 分别查找并确定输入 8位电话号码并将其输出。
设计步骤
1) 初步完成总体设计搭好框架确定人机对话的界面确定输入输出函
数的接口
2) 编写主要程序包括戈泽尔算法和 N点D FT
3) 编写实现输入输出功能的程序
4) 编写波形输出程序
5) 用matlab的相应函数进行检验。
要求
1) 用结构化设计方法。一个程序划分成若干模块每一个模块的函数功能
要划分好总体设计应画出流程图
2) 输入输出界面要友好
3) 源程序书写要规范加必要的注释
4) 要提供通过 Matlab函数进行检验的结果
5) 程序一定要要能运行起来。
一、 原理
双音多频 Dual Tone Multi Frequency,DTMF 信号是音频电话中的拨号信号 由美国 AT&T贝尔公司实验室研制并用于电话网络中。这种信号制式具有很高的拨号速度 且容易自动监测识别 很快就代替了原有的用脉冲计数方式的拨号制式。 这种双音多频信号制式不仅用在电话网络中 还可以用于传输十进制数据的其它通信系统中 用于电子邮件和银行系统中。 这些系统中用户可以用电话发送DTMF信号选择语音菜单进行操作。
DTMF信号系统是一个典型的小型信号处理系统它要用数字方法产生模拟信
号并进行传输 其中还用到了 D/A变换器 在接收端用 A/D变换器将其转换成数字信号并进行数字信号处理与识别。为了系统的检测速度并降低成本还开发一种特殊的 DFT算法称为戈泽尔(Goertzel) 算法这种算法既可以用硬件 专用芯片实现也可以用软件实现。下面首先介绍双音多频信号的产生方法和检测方法包括戈泽尔算法最后进行模拟实验。下面先介绍电话中的 DTMF信号的组成。
1. 电话中的DTMF信号的组成
在电话中数字 0-9 的中每一个都用两个不同的单音频传输所用的 8个频率分成高频带和低频带两组低频带有四个频率 679Hz,770Hz,852Hz和941Hz高频带也有四个频率 1209Hz,1336Hz,1477Hz和1633Hz. 。每一个数字均由高、低频带中各一个频率构成 例如 1 用 697Hz和 1209Hz两个频率 信号用sin(2 f1t) sin(2 f2t)表示其中 f1 679Hz f2 1209Hz。这样8个频率形成 16种不同的双频信号。 具体号码以及符号对应的频率如表 1所示。表中最后一列在电话中暂时未用。
表1双频拨号的频率分配
DTMF信号在电话中有两种作用一个是用拨号信号去控制交换机接通被叫的用户电话机另一个作用是控制电话机的各种动作如播放留言、语音信箱等。
2. 电话中的双音多频 DTMF信号的产生与检测
1 双音多频信号的产生
假设时间连续的 DTMF信号用x(t) sin(2 f1t) sin(2 f2t)表示式中 f1和f2是
进行频谱分析的问题。 根据第三章用 DFT对模拟信号进行谱分析的理论 确定三个参数 1 采样频率Fs 2 DFT的变换点数N 3需要对信号的观察时间的长度Tp 。这三个参数不能随意选取要根据对信号频谱分析的要求进行确定。这里对信号频谱分析也有三个要求 1频率分辨率 2谱分析的频谱范围 3检测频率的准确性。
1 频谱分析的分辨率
观察要检测的 8个频率相邻间隔最小的是第一和第二个频率 间隔是73Hz要求DFT最少能够分辨相隔 73Hz的两个频率 即要求 Fmin 73Hz。 DFT的分辨率和对信号的观察时间 Tp有关 Tpmin 1 /F 1/73 13.7ms 。考虑到可靠性留有富裕量要求按键的时间大于 40ms。
2 频谱分析的频率范围
要检测的信号频率范围是 6971633Hz但考虑到存在语音干扰除了检测这8个频率外 还要检测它们的二次倍频的幅度大小 波形正常且干扰小的正弦波的二次倍频是很小的如果发现二次谐波很大则不能确定这是 DTMF信号。这样频谱分析的频率范围为 6973266Hz。按照采样定理最高频率不能超过折叠频率 即0.5Fs 3622Hz 由此要求最小的采样频率应为 7.24KHz。因为数字电话总系统已经规定 Fs8KHz 因此对频谱分析范围的要求是一定满足的。按照Tpmin 13.7ms
3 检测频率的准确性
这是一个用 DFT检测正弦波频率是否准确的问题。序列的 N点DFT是对序列频谱函数在 02 区间的 N点等间隔采样如果是一个周期序列截取周期序列的整数倍周期进行 DFT其采样点刚好在周期信号的频率上 D F T的幅度最大处就是信号的准确频率。 分析这些DTMF信号 不可能经过采样得到周期序列因此存在检测频率的准确性问题。
DFT的频率采样点频率为 k 2 k/N k=0,1,2,---,N-1 相应的模拟域采样点频率为 fk Fsk/N k=0,1,2,---,N-1 希望选择一个合适的 N使用该公式算出的代入公式f ' Fk/Nk s 中时得到的 k值最接近整数值这样虽然用幅度最大点检测的频率有误差但可以准确判断所对应的 DTMF频率 即可以准确判断所对应的数字或符号。经过分析研究认为 N205是最好的。按照 Fs8KHz N205算出8个频率及其二次谐波对应 k值和k取整数时的频率误差见表 2。
通过以上分析确定 F s8KHz N205。
4.DTMF信号的产生与识别仿真实验
下面先介绍 MATLAB工具箱函数 g oertzel 然后介绍 DTMF信号的产生与识别仿真实验程序。 Goerztel 函数的调用格式为
Xg k=goertzel(xn,K)xn是被变换的时域序列用于 DTMF信号检测时 xn就是DTMF信号的205个采样值。 K是要求计算的 D FT[xn]的频点序号向量用 N表示xn的长度则要求 1≤K≤N。 由表2可知如果只计算 DTMF信号8个基频时
K=[18 20 22 24 31 34 38 42]
如果同时计算 8个基频及其二次谐波时
K=[18 20 22 24 31 34 35 38 39 42 43 47 61 67 74
82] 。
Xgk是变换结果向量 其中存放的是由 K指定的频率点的 DFT[x(n)] 的值。设X(k)=DFT[x(n)] 则Xgk(i) X(K(i )), i 1,2,L , length(K)。
DTMF信号的产生与识别仿真实验在 MATLAB环境下进行编写仿真程序运行程序送入 8位电话号码程序自动产生每一位号码数字相应的 DTMF信号并送出双频声音再用 D FT进行谱分析显示每一位号码数字的 DTMF信号的 DFT幅度谱 安照幅度谱的最大值确定对应的频率 再安照频率确定每一位对应的号码数字最后输出 8位电话号码。
二、 设计过程
1. 设置参数并读入 8位电话号码。设置每位电话号码所对应的高频分
量和低频分量。
2.根据键入的 8位电话号码产生相应的时域离散 DTMF信号添加程序
连续发出 8位电话号码对应的双频声音。
3.对时域离散 DTMF信号进行频率检测画出幅度谱。
4.根据幅度谱的两个峰值分别查找并确定输入 8位电话号码。
5.将8位电话号码表示成一个 8位数并输出。
三、 结果与验证
1 运行结果
键入8位电话号码: 12345678
接收端接检测的号码为 12345678
对时域离散 DTMF信号进行频率检测幅度谱图如下
六位的幅度谱图如下 与八位对比
昨天有在"盘点2021年主流云服务器商家618年中大促活动"文章中整理到当前年中大促618活动期间的一些国内国外的云服务商的促销活动,相对来说每年年中和年末的活动力度还是蛮大的,唯独就是活动太过于密集,而且商家比较多,导致我们很多新人不懂如何选择,当然对于我们这些老油条还是会选择的,估计没有比我们更聪明的进行薅爆款新人活动。有网友提到,是否可以整理一篇当前的这些活动商家中的促销产品。哪些商家哪款产...
这几天有几个网友询问到是否有Windows VPS主机便宜的VPS主机商。原本他们是在Linode、Vultr主机商挂载DD安装Windows系统的,有的商家支持自定义WIN镜像,但是这些操作起来特别效率低下,每次安装一个Windows系统需要一两个小时,所以如果能找到比较合适的自带Windows系统的服务器那最好不过。这不看到PacificRack商家有提供夏季促销活动,其中包括年付便宜套餐的P...
IT狗为用户提供 在线ping、在线tcping、在线路由追踪、域名被墙检测、域名被污染检测 等实用工具。【工具地址】https://www.itdog.cn/【工具特色】1、目前同类网站中,在线ping 仅支持1次或少量次数的测试,无法客观的展现目标服务器一段时间的网络状况,IT狗Ping工具可持续的进行一段时间的ping测试,并生成更为直观的网络质量柱状图,让用户更容易掌握服务器在各地区、各线...