当前位置:文档之家› 电话拨号音的合成与识别

电话拨号音的合成与识别

电话拨号音的合成与识别
电话拨号音的合成与识别

电话拨号音的合成与识别

双音多频 DTMF( Dual Tone Multi-Frequency )信号,是用两个特定的单音频率信号的组合来代表数字或功能。在 DTMF 电话机中有 16 个按键,其中 10 个数字键0 — 9 , 6 个功能键 * 、 # 、 A 、 B 、 C 、 D 。其中 12 个按键是我们比较熟悉的按键,另外由第 4 列确定的按键作为保留,作为功能键留为今后他用。根据CCITT 建议,国际上采用 697Hz 、 770Hz 、 852Hz 、 94lHz 低频群及 1209Hz 、1336Hz 、 1477Hz 、 1633Hz 高频群。从低频群和高频群任意各抽出一种频率进行组合,共有 16 种组合,代表 16 种不同的数字键或功能,每个按键唯一地由一组行频和列频组成,如下表所示。

利用 MATLAB 软件能够利用矩阵不同的基频合成 0 - 9 不同按键的拨号音,并能够对不同的拨号音加以正确的识别,实现由拨号音解析出电话号码的过程。进一步利用MATLAB 中的图形用户界面GUI 做出简单的图形操作界面。从而实现对电话拨号音系统的简单的实验仿真。

具体实现步骤如下:

(1)图形电话拨号面板的制作

创建GUI步骤:在主界面菜单栏上点击File - New - GUI,选择Blank GUI(Default),即可进入GUI 图形用户界面。

利用 GUI 图形用户界面设计工具制作电话拨号面板,把 DTMF 信号和电话机的键盘矩阵对应起来。其中选用我们熟悉的 10 个数字键0 — 9 , 2 个功能键“ * ”、“#”,另外为了方针方便,添加信号识别键和复位键。每个按键可用( Push Button )添加。

最终利用 GUI 图形用户界面设计工具生成的图形电话拨号面板用于拨号音的合

成产生部分,如下图所示。这里将其保存为Untitle.fig文件。

(2)DTMF 信号的产生合成

现在将对上节制作的图形电话拨号面板上的各控件单位的动作和变化进行设置,即对Untitle.m 文件进行编辑。其主要的功能是使对应的按键,按照表中的对应关系产生相应的拨号音,完成对应行频及列频的叠加输出。此外,对于图形界面的需要,还要使按键的号码数字显示在拨号显示窗口中。

鉴于 CCITT 对 DTMF 信号规定的指标,这里每个数字信号取 1000 个采样点模拟按键信号,并且每两个数字之间用 100 个 0 来表示间隔来模拟静音。以便区别连续的两个按键信号。间隔的静音信号也是在按键时产生的。

以按键 0 为例,简单介绍拨号音产生的过程:

% 按键 0 的响应函数

function pushbutton_Callback(hObject, eventdata, handles)

global string;

if length(strfind(string,'#'))>0 % '#'为确认键

msgbox('请不要重复输入!','MATALB','warn')

else

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); % 产生拨号音

string=n0;

end

程序解释:

NUM 为定义的全局变量,用于存储连续的拨号音( DTMF )信号,包括数字信号音以及静音信号。

d0=sin(0.7217*n)+sin(1.0247*n)

其中的行频与列频是由表 1 中 0 键对应的

Hz f L 941=,Hz f H 1336=

计算得出,已知声音取样频率

Hz f s 8192=

则取样后

7217.0/2==s L L f f πω,0247.1/2==s H H f f πω

对于保留的两个功能键“ * ”、“#”,按照现行键盘式拨号电话的习惯,将“ * ”作为删除键,“#”作为确认键。“ * ”删除键的作用是将前面拨错的号码删除退回,表现为将显示窗口已经显示的错误号码退回一位数字,并且将连续拨号音信号的存储单元 NUM 中退回一位拨号音信号和静音信号。删除可以进行连续的操作。“#”确认键的作用是将前面拨过的号码进行确认保留,意味着此时连续拨号音信号的存储单元 NUM 中的信号即为最后用于识别的连续拨号音 DTMF 信号,并在显示窗口中显示“#”号作为标记。具体我是这样设置其功能的:

1.若没有输入任何数字,则不能进行信号识别,提示

2.若有输入数字,但不是以“#”号结束,则亦不能进行信号识别,提示

3.若输入数字已经以“#”号结束,则亦不能再进行任何输入,否则提示

当然大家可以根据自己的需要自行设定其具体实现功能。

% 删除键的响应函数

function pushbutton_Callback(hObject, eventdata, handles)

global string;

n=[1:1000];

num=get(handles.edit1,'string');

l=length(num);

n0=strrep(num,num,num(1:l-1)); %去掉末尾号码在面板上的显示 d0=sin(0.7217*n)+sin(0.9273*n);

set(handles.edit1,'string',n0);

global NUM

L=length(NUM);

NUM=NUM(1:L-1100); %删除末尾号码在拨号音信号中的存储 wavplay(d0,8192);

string=n0;

% # 键的响应函数

function pushbutton_Callback(hObject, eventdata, handles)

global string;

if length(strfind(string,'#'))>0

msgbox('请不要重复输入!','MATALB','warn')

else

n=[1:1000]; % 每个数字 1000 个采样点表示

d0=sin(0.7217*n)+sin(1.1328*n); % 对应行频列频叠加

n0=strcat(get(handles.edit1,'string'),'#'); % 获取数字号码

set(handles.edit1,'string',n0); % 显示号码

space=zeros(1,100); % 100 个 0 模拟静音信号

global NUM

phone=[NUM,d0];

NUM=[phone,space]; % 存储连续的拨号音信号

wavplay(d0,8192); % 产生拨号音

string=n0;

end

另外,复位键的功能是清除显示窗口中的所有字符,并且清除所有全局变量,即清空连续拨号音信号的存储单元 NUM和用于实现“#”键功能的全局字符串变量string。

% 复位键的响应函数

function pushbutton_Callback(hObject, eventdata, handles)

set(handles.edit1,'string',''); % 显示窗口清空

global NUM

NUM=[];

global string;

string='';

(3)DTMF 信号的检测识别

要实现电话拨号音( DTMF )信号的检测识别,可以通过直接计算付里叶变换得到输入信号的组成频率。这里采用 FFT 算法对信号进行解码分析。首先对接收到的数字信号作 FFT 分析,计算出其幅频谱,进而得到功率谱,组成输入信号的频率必定对应功率谱的峰值。对于连续的双音多频( DTMF )信号,需要把有效的数字拨号信号从静音间隔信号中分割提取出来,然后再用 FFT 算法对信号进行解码分析。

原理:利用FFT进行时与连续信号的频谱分析容易造成频谱泄漏,泄漏是由于我们截取有限长信号所造成的,如果在有限长记录样本中,正弦信号的长度不是整数个周期,就会产生泄漏。例如一个周期为N=16的余弦信号x(n)=cos(3πn/8),截取一个周期长度的信号x(n)=cos(3πn/8)R16(n),其16点FFT的频谱如下面左图所示,去截取的长度为13,则其16点FFT的频谱如下面右图所示,可见频谱不再是单一的谱线,它的能量散布到整个频谱的各处。

这里讨论另一种情况,截取长度为13点,并进行13点FFT 变换,则上述余弦序列x(n)=cos(3πn/8)得到的频谱如下面左下图所示。可见也产生了频谱泄漏,能量散布到其它谱线位置。但是通过考察三幅频谱图,我们发现它们都存在一个共同点:即频谱

幅值最大的两点的位置都满足相同的规律1N]2[+=πw k 和1N]2[+-=π

w

N k 。下面将会

看到这是必然的,所以可以通过寻找频谱幅值最大点的位置确定序列的频率特征。

上面已指出可以根据频谱最大值(指其模的最大值,下同)的不同识别数字拨号信号。因为各键的行频(高频)和列频(低频)是不一样的,其FFT 的频谱也不一样,则频谱幅值必定存在一对最大值和一对最小值,我们的任务是找到频谱幅值最大值、最小值的位置和行频、列频的匹配关系。具体方法是:

1.截取连续拨号音信号的存储变量NUM ,每1100个点(每个数字信号包含1000个采样点和100间隔点)为一段,进行FFT 变换,找出每段最大值对应的位置。 2.理论上计算每个数字拨号信号行频和列频频谱的最大值对应的位置。

3.比较实验寻找点与理论计算点,若其误差不超过某一范围,则认为NUM 中截取的该段频谱对应此数字拨号信号。

下面分析如何在理论上计算数字拨号信号频谱的最大值对应的位置。以余弦信号x(n)=cos(wn)为例,计算其离散傅立叶变换

1111[21]

[21

)(2

1)cos()()]

([)()N

2()N

2()N 2(N

2()N

2()N

2

(1

N 2

1

010

N

21

0k

w j N k

w j k w j N k

w j n k

w j n k w j N n nk j jwn

jwn N n N n nk j N n nk

N e

e e e e

e e e e e

wn W n x n x DFT k X ππππππππ+-+

---

+

--

-=---=-=--=--+--=+=+====∑∑∑∑

当0N 2=-k w π时,N 2πw k =,X(k)=N/2;

当ππ2N 2=+k w 时,N 2πw N k -=,X(k)=N/2;

当k 为其它值是,X(k)=0;

根据上述分析结果,每个数字拨号信号行频和列频频谱的最大值对应的位置,由于计算DFT 是从第零个点开始的,而Matlab 计算FFT 是从第一个点开始的,所以必须在DFT 计算得到的最大频谱对应的k 值加1,以减小误差。只考虑第一个频谱最大值点,

则1N 2+=

πw

k ,则112/21N 2+=+=+=

N f f N f f w k s s π

ππ fs=8192;

fh=[1209,1336,1477]; fl=[697,770,852,941]; h=1000*fh/fs+1; l=1000*fl/fs+1;

现在分析数字拨号信号频谱幅值的最大值、次大值与行频、列频的对应关系,通过做频谱图实现,分别测试每个拨号键产生信号的频谱幅值的最大值、次大值的位置是由行频得到的还是由列频得到的。

0键测试

n=1:1000;

x=sin(0.7217*n); % x=sin(1.0247*n); X=fft(x); plot(abs(X));

set(gcf,'Position',[400,200,320,250]) axis([0,1000,0,500]);

左图:,右图,图中可以看出频谱幅值最大值对应行频(高频),频谱幅值次大值对应列频(低频)。

Hz f L 941=Hz f H 1336

=

1键测试

n=1:1000;

x=sin(0.5346*n); % x= sin(0.9273*n); X=fft(x); plot(abs(X));

set(gcf,'Position',[400,200,320,250]) axis([0,1000,0,500]);

左图:,右图,图中可以看出频谱幅值最大值对应列频(低频),频谱幅值次大值对应行频(高频)。

Hz f L 697=Hz f H 1209

=

通过测试,我们得到结论:除了0键频谱幅值最大值对应行频(高频),次大值对应列频(低频),其它键频谱幅值最大值均对应列频(低频),次大值均对应行频(高频)。% 信号识别键的响应函数

function pushbutton10_Callback(hObject, eventdata, handles)

global string;

if length(string)==0

msgbox('请输入电话号码!','MATALB','warn')

elseif string(length(string))~='#'

msgbox('请输入 # 号确认!','MATALB','warn')

else

global NUM

wavplay(NUM(1:length(NUM)-1100),0.9*8192);

% wavplay(NUM,8192);

%% 输入为采样频率和采样长度

fs=8192;

fh=[1209,1336,1477];

fl=[697,770,852,941];

h=1000*fh/fs+1;

l=1000*fl/fs+1;

N=length(NUM)/1100;

for i=1:N

X=abs(fft(NUM(1100*(i-1)+1:1100*(i-1)+1000)));

Y=find(X==max(X)); % 寻找频谱最大值对应的位置

Z=find(X==max([X(1:Y(1)-1) X(Y(1)+1:Y(2)-1) X(Y(2)+1:1000)]));

% 寻找频谱次大值对应的位置

if Y(1)

m(i)=Y(1); % 存放列频(低频)频谱的位置

n(i)=Z(1); % 存放行频(高频)频谱的位置

else % 只有0键满足此情形

m(i)=Z(1); % 存放列频(低频)频谱的位置

n(i)=Y(1); % 存放行频(高频)频谱的位置

end

end

clear X Y Z;

% m为列频(低频),n为行频(高频)

for i=1:N % 列频匹配

for j=1:4

if(abs(m(i)-l(j))<1) % 误差不超过一个点

m(i)=fl(j);

end

end

end

for i=1:N % 行频匹配

for j=1:3

if(abs(n(i)-h(j))<1)

n(i)=fh(j);

end

end

end

num='';

for i=1:N

switch m(i)

case 697

switch n(i)

case 1209

num=[num '1']; case 1336

num=[num '2']; case 1477

num=[num '3'];

otherwise

return

end

case 770

switch n(i)

case 1209

num=[num '4']; case 1336

num=[num '5']; case 1477

num=[num '6'];

otherwise

return

end

case 852

switch n(i)

case 1209

num=[num '7']; case 1336

num=[num '8']; case 1477

num=[num '9'];

otherwise

return

end

case 941

switch n(i)

case 1209

num=[num '*']; case 1336

num=[num '0']; case 1477

num=[num '#'];

otherwise

return

end

end

end

num=num(1:length(num)-1);

disp('您所拨打的电话号码是:');

disp(num);

end

测试运行

参考文献

《数字信号处理》:刘顺兰,吴杰编著

作者:叶周(中国海洋大学电子信息科学与技术2006级)E-mail:2008yezhou@https://www.doczj.com/doc/ee3121130.html,

讶究’blog:https://www.doczj.com/doc/ee3121130.html,/zgyz

IT兄弟连论坛:https://www.doczj.com/doc/ee3121130.html,

课程设计——双音多频电话机振铃部分的制作1

& 成绩:分 ××××系 课程设计报告书 课程设计名称电子技术课程设计 : 双音多频电话机振铃部分的制作 题目 学生姓名 专业 班级 { 指导教师 日期: 2010年 7月 5 日 (

摘要:双音多频电话机是当代所流行的电话机,它所使用的套件是目前最新型的面包型电话机套件,具有防雷、防干扰、静音、暂停、重拨功能和特大振铃声音、体积小巧、制作容易等优点。(KA2410)是理想的理工电信类学校及电子爱好者学习制作电话机的理想学习用具。它使用了集成电路ICI(KA2410)为单独的电话机音乐芯片,电声器件如喇叭,蜂鸣片,驻极体可以选用其他型号的但是只要外壳允许好安装即可。三极管Q2,Q3为普通的8050和9014,二极管分为了开关二极管和稳压二极管。 关键字:振铃电路,集成电路ICI,音乐芯片(KA2410) Abstract:The two-tone more frequent in the modern fashion with the telephone, it is the use of the suite is the latest type of bread has a telephone, ray, interference or is muted, pause, the function and the rings, and its compact, easy to the advantages. ( ka2410 ) is the ideal tech telecom kind of schools and study electronics lovers making telephone equipment. it's ideal to learn to use the integrated circuit ici ( ka2410 ) to separate at the music, A superior electro-acoustic devices such as the trumpet and the curtain, in a body can choose other types of but just the right to be allowed to install. q2. q3 for ordinary 8050 and 9014, and into the switch and stability and a diode. Keyword:Rings, the integrated circuit ici, the chip ( ka2410 ) !

DTMF 电话拨号音的合成与识别

辽宁工业大学通信综合设计课程设计(论文)题目:电话拨号音的合成与识别 院(系):电子与信息工程学院 专业班级: 学号:08 学生姓名: 指导教师:杨恭威 教师职称:讲师 起止时间:2011.12.23-2012.01.06

通信综合设计与制作(论文)任务及评语 院(系):电子与信息工程学院教研室:通信工程学号学生姓名专业班级 课程设计 (论文) 题目 电话拨号音的合成与识别 课 程 设计 (论文)任务设计参数为: 1.产生电话拨号数字键“0~9”和电话功能键“#、*” 2.识别电话拨号音中的数字键“0~9”和“#、*” 任务是: 理解并掌握电话拨号音产生的原理; 用MA TLAB实现电话拨号音产生器的仿真设计; 用MA TLAB实现对应电话拨号音识别的仿真设计; 完成本次设计,填写设计指导书。 指导教师 评语及成绩平时成绩(20%): 论文成绩(50%):学生签字: 答辩成绩(30%):指导教师签字: 总成绩:年月日

目录 第1章电话拨号音合成与识别的目的及原理 (1) 1.1电话拨号音合成与识别的目的 (1) 1.2 电话拨号音合成与识别的原理 (1) 第2章图形接口的制作及仿真 (2) 2.1 关于MATLAB (2) 2.2 gui图形接口功能模块的设计与仿真 (2) 2.3 DTMF 信号的产生合成 (3) 2.4 DTMF信号的检测识别仿真 (5) 第3章按键的频率响应 (7) 设计总结: (10) 参考文献: (11)

第1章电话拨号音合成与识别的目的及原理 1.1电话拨号音合成与识别的目的 1876年,贝尔发明电话,对通讯事业的发展做出巨大贡献,被载入史册,电话通讯便注定要成为人们生活中的一部分,而其中最基本的一项功能,拨号该如何来产生呢? 如果只用单一的频率来表示某个按键被按下,那么在以前电子元器件的精度极不稳定的情况下,出现偏差的肯能性极大,即使在今天,也很难达到万无一失,于是这就催生了另外一种想法,如果同时用两种频率来表示一个按键信号,既二维矩阵的模式,增大频率之间的间隔,适当放宽误差范围,那么通过这种方法合成的拨号音,出现拨号音识别错误的可能性便会大大降低。也正是因为这个优点,所以现在国际上普遍采用双音多频(DTMF)的编译码方法,其原理将在下一节中介绍。 1.2 电话拨号音合成与识别的原理 基于对电话通信系统中拨号音合成与识别的仿真实现其主要涉及到电话拨号音合成的基本原理及识别的主要方法,利用 MATLAB 软件以及 FFT 算法实现对电话通信系统中拨号音的合成与识别。能够利用矩阵不同的基频合成 0-9不同按键的拨号音,并能够对不同的拨号音加以正确的识别,实现由拨号音解析出电话号码的过程。进一步利用 GUI 做出简单的图形操作接口,要求接口清楚,画面简洁,易于理解,操作简单。从而实现对电话拨号音系统的简单的计算机仿真。 双音多频 DTMF(Dual Tone Multi Frequency),由高频群和低频群组成,高低频群各包含4个频率。一个高频信号和一个低频信号迭加组成一个组合信号,代表一个数字。DTMF信令有16个编码。利用DTMF信令可选择呼叫相应的对讲机。双音多频信号(DTMF),电话系统中电话机与交换机之间的一种用户信令,通常用于发送被叫号码。 在使用双音多频信号之前,电话系统中使用一连串的断续脉冲来传送被叫号码,称为脉冲拨号。脉冲拨号需要电信局中的操作员手工完成长途接续。 双音多频信号是贝尔实验室发明的,其目的是为了自动完成长途呼叫。 双音多频的拨号键盘是4×4的矩阵,每一行代表一个低频,每一列代表一个高频。每按一个键就发送一个高频和低频的正弦信号组合,比如'1'相当于697和1209赫兹(Hz)。

电话信号音的识别

电话信号音的识别 电话信号音也叫进程音,虽然它并不是为设备通信设计的信令,但在电话增值产品中,特别是自动电话产品中起到了非常重要的作用。如果没有这一单元,就只能采取延时方式处理线路状态和语音的播放,设备就是个傻瓜蛋,可能用户已经挂了机,这边还在没完没了的放语音;可能用户不在服务区,这边已经确认呼叫成功;可能对方占线,这边以为已经通了。。。等等。如果一个设备没有信号音识别,只采取延时方式控制,拿到邮电部计量检测中心就根本过不了。 目前国内的几种电话信号音识别手段我们作了如下的对比: 1。使用MT8880芯片内的CALL模式,只是个滤波器,连鉴频都没有,当信号频率在320-510Hz(实际测试范围更宽)时,IRQ端输出被限幅的方波,后面的MCU要做的工作太多,而且根本没有对付DTMF和语音干扰的硬件手段。 2。使用HT9020B:这是一款电话进程音专用芯片,但遗憾的是它只检测频率包络,并不识别具体信号音的类型,通过我们实验发现,当输入240-720Hz(-30dBm)正弦波信号时,其ENV端都会输出高电平,除非是理想状态的只有信号音没有其他DTMF和语音的情况,否则,没法用。从某种意义上说它甚至不如MT8880,因为后面的MCU根本就没机会再作二次判断了。 3。使用CR6230:这是一款厚膜电路,SIP11脚单列封装。它完整的解决了信号音的频率识别和信号音类型识别,只有在输入频率带宽在430Hz-480Hz时才有效(符合邮电部抖动规范)。对拨号音、回铃音、忙音催挂音的区分识别率达到几乎100%,对DTMF和话音具有屏蔽作用,可以有效避免误识误判,各种信号音的识别结果通过引脚直接输出电平状态,后面的MCU只要读取电平就可以,好比读个开关状态,根本不用再做任何处理。 详细的CR6230资料可以在网页里下载:https://www.doczj.com/doc/ee3121130.html,

基于Matlab分析双音频电话的拨号频谱

1.双音频拨号电话背景 当前,话机从提高集成度到与其他技术结合发展,以提高电话机的功能,并行成各种功能的电话机,如录音电话机,无绳电话机,电视电话机,语音拨号电话机,数字电话机。特别是随着通信与计算机技术的结合,使通讯技术日新月异,名目繁多的新通信业务应运生,随着机电式交换机被数字程控交换机的取代,拨好慢,易错号的老式电话拨号系统早已不再使用,市场上也早已有双音频拨号的电话机。 电话机按种类分别有按键式电话机和拨盘式电话机。其中又有脉冲式电话机(PULSE)和双音频电话机(TONE)。拨盘式电话机属于脉冲式电话机,这类逐步淘汰的产品不宜选用。双音频电话机具有接通速度快、声音清晰等很多优点,而且对于电话新功能的使用来说,双音频电话机是不可缺的。在打这种电话时,按键后听到的不再是1至10个脉冲的“嗒嗒——”声音,而是一种短促悦耳的电子音乐,这种声音从号码0到9都是都是由两个音频信号组成的,因而称为双音频电话。双音频电话拨号系统的应用优点: (1)发号快。 使用双音频电话机,打一电话的拨号时间约为1S,而脉冲拨号系统(拨号式电话机),一般数字较小的7位号码要占用7s左右,如电话号码中数字较大,则拨号时间约为10s.所以,双音频电话机缩短了每个电话在电话网中占用拨号时间,提高了电话网的利用率 (2)双音频拨号抗干扰强,不易错号。 脉冲话机的发号准确性要求脉冲断续比和速率符合标准,否则要错号。有一种老式话机是依靠机械触点式开关的通段产生一系列脉冲电流,就往往易产生错号。 (3)可开展各项电信新业务。 新业务如:缩位拨号,呼叫等待、转移呼叫、叫醒服务、会议电话等。中国电话卡的“200”业务以及“127”自动寻呼的部分自动功能、“388”“460”语音信箱、“800”对方付费业务等,也只限于双音频话机使用电话网是世界最大的通讯网,特别是当人类进入科技信息时代的今天,

实验1 双音多频电话拨号音产生实验报告

沈阳工程学院 学生实验报告 实验室名称:通信实验室课程名称:数字传输技术 实验名称:双音多频电话拨号音产生实验实验日期:2015年11月6日 班级:通信32 姓名:张翼学号:2013312211 指导教师:何思远成绩: 一、实验目的 1. 理解双音多频电话拨号音产生的原理。 2. 掌握使用MATLAB语言产生双音多频电话拨号音的方法。 二、实验原理 电话拨号产生的电话号码是通过双音多频(DTMF)格式从电话机传送给交换机的。所谓双音多频,就是利用两个规定频率的正弦波去代表电话机的某一个按键,当按下某按键时,就发送相应的一组正弦波。交换机一方通过检测这组正弦波的频率来识别相应的号码信息。DTMF规定的电话拨号按键与发送正弦波频率组的对应关系如图1所示。 图1 DTMF规定的电话拨号按键与发送正弦波频率组的对应关系

此外,Matlab也提供了关于电话拨号的演示程序phone。图2为使用phone命令打开的演示窗口。 图2 Matlab中的phone演示窗口 三、实验内容及要求 根据双音多频电话拨号音产生的原理,用一个函数文件(Function File)产生双音多频电话拨号音。要求该函数能够根据输入的电话号码产生拨号音频,每个号码的DTMF音持续时间为0.3秒,拨号间隔为0.1秒。 四、程序代码 function y=myphone(num_str) %输入num_str为电话号码字符串,为1.2.3.4.5.6.7.5.6.0.*.# %输出为相应的拨号音效矩阵 %如果不给出输出变量,则从声卡输出拨号音频 freq_low=[697 770 852 941]; %低频频率 freq_Hgh=[1209 1336 1477]; %高频频率 time_of_num=0.3; %每个号码的DTMF音持续时间 Fs=8000; %信号采集率 wav=inline('0.25*sin(2*pi*p(1)*[1/p(3):1/p(3):p(4)])+0.25*sin(2*pi*p(2)*[1/p(3):1/p(3):p(4)])','p'); %P=[fL,fH,time_of_num] %参数的含义:[高频率,低频率,采样率,持续时间] XX=[]; %提高运行速度 for k=1:length(num_str)

实验3 双音多频信号的合成与检测.

实验三双音多频信号的合成与检测 一实验目的 1.理解电话拨号音的合成与检测的基本原理; 2.深入理解信号频谱分析理论中相关参数的作用和意义; 3.了解频谱分析在实际工程中的应用实例。 二实验基础 双音多频(dual-tone multifrequency, DTMF信号的产生及检测在现代通信系统中有着广泛的应用,家用电话、移动电话以及公共程控交换机(PBX都采用DTMF 信号发送和接收电话拨号号码。本实验要求利用信号的时域分析和频域分析的基本理论实现DTMF 的合成和检测。 1. DTMF信号合成 DTMF 信号由低频组和高频组两组频率信号构成。按键电话上每个按键都由对应的两个频率组成,如表4.1。当按下某个键时,所得到的按键信号是由相应两个频率的正弦信号叠加而成。设x(n为DTMF 信号,产生方式为: x (n =sin (ωH n +sin (ωH n 式中:ωH = f s DTMF 信号的标准是:在传送过程中每个按键字占用100ms ,其中信号必须持续至少40ms ,且不得多于55ms ,100ms 里的其余时间为静音(无信号)。 表4.1按键频率对应表

2. DTMF信号检测 ,ωL = f s f s =8KHz 。 DTMF 信号的检测是将信号的两个频率提取出来,从而确定接收到的DTMF 对应的按键。利用DFT 对DTMF 信号进行N 点的频谱分析,N 的选取决定了频率分辨率以及捕捉N 个样值所需要的时间。根据谱峰出现的频率点位置m 就可以确定DTMF 信号的频率f k: f k =kf s /N 这样计算出的DTMF 信号频率可能与实际的DTMF 信号频率有一定的差别,但可以通过加大N 的选取来减小这种频率差异。然而从另外一方面来考虑,虽然加大N 值会减小检测频率误差,但这势必会带来捕捉N 个样值所需要的时间增加,从而会对检测的效果造成一定影响。 由DTMF 信号频率所具有的特性不难发现要选取一定的N 值使得计算出的频率和真实的DTMF 信号的频率相一致几乎不可能,而实际中也并不需要计算出来的频率值与其真实频率相一致,只需偏差保持在±1.5%即可认为是DTMF 信号的真实频率。国际上通用N=205点或N=106点。当N=205点时,各个频率所对应的DFT 结果X[k]中的序号k 如表4.2。N=106时对应表4.3。

大连理工大学数字信号处理实验二电话拨号音的合成与识别

大连理工大学实验报告 学院(系):电子信息与电气工程专业:电子信息工程班级:姓名:学号:组:___ 实验时间:实验室:实验台:指导教师签字:成绩:实验二、电话拨号音的合成与识别一、实验题目和代码 实现对电话通信系统中拨号音合成与识别的仿真实现。 系统界面设计: 源程序: function varargout = zuoye(varargin) function zuoye_OpeningFcn(hObject, eventdata, handles, varargin) % This function has no output args, see OutputFcn. % hObject handle to figure % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDA TA) % varargin command line arguments to zuoye (see V ARARGIN)

% Choose default command line output for zuoye handles.output = hObject; handles.fs = 8192; handles.DTMFsum=820; handles.DTMFnum = handles.DTMFsum/2; handles.NUM=[]; handles.number = []; function num1_Callback(hObject, eventdata, handles) % hObject handle to num1 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDA TA) n0=strcat(get(handles.numshow,'string'),'1'); % 获取数字号码 set(handles.numshow,'string',n0); % 显示号码 n=[1:handles.DTMFnum]; % 每个数字410 个采样点表示 d0=sin(2*pi*697/handles.fs*n)+sin(2*pi*1209/handles.fs*n); % 对应行频列频叠加space=zeros(1,handles.DTMFnum); %400 个0 模拟静音信号 phone=[handles.NUM,d0]; handles.NUM=[phone,space]; % 存储连续的拨号音信号 guidata(hObject, handles); wavplay(d0,8192); function num10_Callback(hObject, eventdata, handles) % hObject handle to num10 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDA TA) n=[1:1000];

实验六 电话拨号音的合成与识别

实验六电话拨号音的合成与识别 1.实验目的 本实验基于对电话通信系统中拨号音合成与识别的仿真实现,主要涉及到电话拨号音合成的基本原理及识别的主要方法,利用MATLAB 软件以及FFT 算法实现对电话通信系统中拨号音的合成与识别。并进一步利用MATLAB 中的图形用户界面GUI 制作简单直观的模拟界面。使其对电话通信系统拨号音的合成与识别有个基本的了解。 能够利用矩阵不同的基频合成0 -9 不同按键的拨号音,并能够对不同的拨号音加以正确的识别,实现由拨号音解析出电话号码的过程。进一步利用GUI 做出简单的图形操作界面。要求界面清楚,画面简洁,易于理解,操作简单。从而实现对电话拨号音系统的简单的实验仿真。 2.实验原理 双音多频 DTMF( Dual Tone Multi-Frequency )信号,是用两个特定的单音频率信号的组合来代表数字或功能。在 DTMF 电话机中有 16 个按键,其中10 个数字键 0 —9 , 6 个功能键 * 、 # 、 A 、 B 、 C 、 D 。其中 12 个按键是我们比较熟悉的按键,另外由第 4 列确定的按键作为保留,作为功能键留为今后他用。根据 CCITT 建议,国际上采用 697Hz 、 770Hz 、 852Hz 、94lHz 低频群及 1209Hz 、 1336Hz 、 1477Hz 、 1633Hz 高频群。从低频群和高频群任意各抽出一种频率进行组合,共有 16 种组合,代表 16 种不同的数字键或功能,每个按键唯一地由一组行频和列频组成,如表 1 所示。 表 1 : DTMF 的组合功能 3.实验内容 (1).图形电话拨号面板的制作 利用 GUI 图形用户界面设计工具制作电话拨号面板,把 DTMF 信号和电话机的键盘矩阵对应起来。其中选用我们熟悉的 10 个数字键 0 — 9 , 2 个功能键“ * ”、“#”,另四个键省略。按照图 1 电话机键盘矩阵的排列方式制 作四行三列的按键控件。每个按键可用( Push Button )添加。 然后,为了更直观的反映对应的按键号码,可以设置一个编辑框,用于动态

大连理工大学数字信号处理实验二——电话拨号音的合成与识别

大连理工大学实验报告 学院(系):电信专业:电子信息工程班级:电子1204 姓名:梁宇学号:201281001 组:___ 实验时间:实验室:实验台: 指导教师签字:成绩: 实验二、电话拨号音的合成与识别 一、实验题目和代码 实现对电话通信系统中拨号音合成与识别的仿真实现。 系统界面设计:

源程序: function varargout = sy2(varargin) % SY2 MATLAB code for sy2.fig % SY2, by itself, creates a new SY2 or raises the existing % singleton*. % % H = SY2 returns the handle to a new SY2 or the handle to % the existing singleton*. % % SY2('CALLBACK',hObject,eventData,handles,...) calls the local % function named CALLBACK in SY2.M with the given input arguments. % % SY2('Property','Value',...) creates a new SY2 or raises the % existing singleton*. Starting from the left, property value pairs are % applied to the GUI before sy2_OpeningFcn gets called. An % unrecognized property name or invalid value makes property application % stop. All inputs are passed to sy2_OpeningFcn via varargin. % % *See GUI Options on GUIDE's Tools menu. Choose "GUI allows only one % instance to run (singleton)". % % See also: GUIDE, GUIDATA, GUIHANDLES % Edit the above text to modify the response to help sy2 % Last Modified by GUIDE v2.5 03-Jun-2015 23:06:41 % Begin initialization code - DO NOT EDIT gui_Singleton = 1; gui_State = struct('gui_Name', mfilename, ... 'gui_Singleton', gui_Singleton, ... 'gui_OpeningFcn', @sy2_OpeningFcn, ... 'gui_OutputFcn', @sy2_OutputFcn, ... 'gui_LayoutFcn', [] , ... 'gui_Callback', []); if nargin && ischar(varargin{1}) gui_State.gui_Callback = str2func(varargin{1}); end if nargout [varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:});

实验三电话拨号音合成与识别

实验报告 实验课程:数字信号处理实验开课时间:2020—2021 学年秋季学期实验名称:电话拨号音合成与识别实验时间: 2020年11月15日星期三学院:物理与电子信息学院年级:大三班级:182 学号:姓名:

f i =N i ×f sam N (3.3.2) 由于DTMF 信号的解码要求快速、简单、准确, Goertzel 算法比FFT 算法更为有效适用。因为FFT 涉及较多的复数乘法和加法 Goertzel 算法可以将复数运算转化为实数运算,从而减少了计算量,提高了计算速度 Goertzel 算法的基本思想是对DFT 公式进行转换,使其成为一个二阶传输函数 H m (z )=1?W N m z ?1 1?2cos (2πm N )z ?1+z ?2 (3.3.3) 由上式可得系统的模拟框图如图3.3.1所示。从而得出其差分方程 Q m [k ]=2cos (2πm N )Q m [k ?1]?Q m [k ?2]+x[k] (3.3.4) X [m ]=y m [N ]=Q m [N ]?W N m Q m [N ?1] (3.3.5) 初始条件Q m [?1]=Q m [?2]=0; W N m =e ?j 2πN 。 由于对DTMF 信号解码只需其频谱的幅值信息,因而可舍去相位信息,输频谱的幅度平方值,即 |X[m]|2=|y m [N]|2=Q m 2+Q m 2[N ?1]?2cos (2πm N )Q m [N]Q m [N ?1] (3.3.6) 因此, Goertzel 算法中完全避免了复数运算。在识别DTMF 信号时,要求确定抽样点数N,国际上通用N=205点或N=106点。表3.3.2列出了N=205点时,各个频率

电话拨号音识别的报告 123

Hefei University 课程论文(设计)BACH ELOR DISSERTATION 设计名称:电话拨号音的识别 指导教师:胡学友 班级: 12电子专升本 _ 姓名:常琦 ___________ 杨浩 __________ 陶翠玲 ________ 日期: 2013年12月3日

目录 第一章Matlab仿真 1.1简介 1.2基本原理 1.3具体内容 1.3.1 图形电话拨号面板的制作 1.3.2 DTMF信号的产生合成 1.3.3 DTMF信号的检测识别 1.3.4 仿真结果---数字“8”的模拟第二章实际电路 2.1用到的芯片 2.2接线电路 第三章总结 致谢 参考文献 附录

第一章 Matlab仿真 1.1简介 基于对电话通信系统中拨号音识别的仿真实现,主要涉及到电话拨号音识别的基本原理和主要方法,利用 MATLAB 软件以及 FFT 算法实现对电话通信系统中拨号音的识别。实验目的是:能够利用矩阵不同的基频合成 0 - 9 不同按键的拨号音,并能够对不同的拨号音加以正确的识别,实现由拨号音解析出号码数字的过程。进一步利用 GUI 做出简单的图形操作界面。从而实现对电话拨号音系统的简单的计算机仿真。 1.2基本原理 双音多频 DTMF(Dual Tone Multi Frequency),由高频群和低频群组成,高低频群各包含4个频率。一个高频信号和一个低频信号叠加组成一个组合信号,代表一个数字。DTMF信令有16个编码。 双音多频信号是贝尔实验室发明的,其目的是为了自动完成长途呼叫。双音多频的拨号键盘是4×4的矩阵,每一行代表一个低频,每一列代表一个高频。每按一个键就发送一个高频和低频的正弦信号组合,比如'1'相当于697和1209赫兹(Hz)。交换机可以解码这些频率组合并确定所对应的按键。 DTMF编解码器在编码时将击键或数字信息转换成双音信号并发送,解码时在收到的DTMF信号中检测击键或数字信息的存在性。一个DTMF信号由两个频率的音频信号叠加构成。这两个音频信号的频率来自两组预分配的频率组:行频组或列频组。每一对这样的音频信号唯一表示一个数字或符号。电话机中通常有16个按键,其中有10个数字键0~9和6个功能键*、#、A、B、C、D。由于按照组合原理,一般应有8种不同的单音频信号。因此可采用的频率也有8种,故称之为多频,又因它采用从8种频率中任意抽出2种进行组合来进行编码,所以又称之为“8中取2”的编码技术。根据CCITT的建议,国际上采用的多种频率为697Hz、770Hz、852Hz、941Hz、1209Hz、1336Hz、1477Hz和1633Hz等8种。用这8种频率可形成16种不同的组合,从而代表16种不同的数字或功能键,具体组合见下表。

拨号音识别matlab

尝试六电话拨号音的合成与辨认 1.尝试目标本尝试基于对电话通讯体系中拨号音合成与识此外仿真实现,首要涉及到电话拨号音合成的根基道理及识此外首要要领,操作 MATLAB 软件以及 FFT 算法实现对电话通讯体系中拨号音的合成与辨认。并进一步操作 MATLAB 中的图形用户界面 GUI 建造简朴直观的模仿界面。使其对电话通讯体系拨号音的合成与辨认有个根基的相识。可以或许操作矩阵差异的基频合成 0 - 9 差异按键的拨号音,并可以或许对差异的拨号音加以正确的辨认,实现由拨号音理会出电话号码的进程。进一步操作 GUI 做出简朴的图形操纵界面。要求界面清晰,画面简捷,易于领略,操纵简朴。从而实现对电话拨号音体系的简朴的尝试仿真。 2.尝试道理 双音多频 DTMF( Dual Tone Multi-Frequency )信号,是用两个特定的单音频率信号的组合来代表数字或成果。在 DTMF 电话机中有 16 个按键,个中 10 个数字键 0 — 9 , 6 个成果键 * 、 # 、 A 、 B 、C 、 D 。个中 12 个按键是我们较量认识的按键,其它由第 4 列确定的按键作为保存,作为成果键留为此后他用。按照 CCITT 提议,国际上回收 697Hz 、 770Hz 、 852Hz 、 94lHz 低频群及 1209Hz 、1336Hz 、 1477Hz 、 1633Hz 高频群。从低频群和高频群恣意各抽出一种频率举办组合,共有 16 种组合,代表 16 种差异的数字键或成果,每个按键独一地由一组行频和列频构成,如表 1 所示。 表 1 : DTMF 的组合成果 3.尝试内容 (1).图形电话拨号面板的建造操作 GUI 图形用户界面计划器材建造电话拨号面板,把 DTMF 信号和电话机的键盘矩阵对应起来。个中选用我们认识的 10 个数字键 0 — 9 , 2 个成果键“ * ”、“#”,另四个键省略。凭证图 1 电话机键盘矩阵的分列方法建造四行三列的按键控件。每个按键可用( Push Button )添加。 然后,为了更直观的反应对应的按键号码,可以配置一个编辑框,用于动态的表现拨号号码,模仿现实电话的拨号表现窗口。编辑框可用( Edit Text )添加。 其它,为了图形电话拨号面板的简捷雅观,可以添加空缺地区作为配景,并用静态文本框建造笔墨信息。配景可用( Frame )添加,静态文本框可用( Static Text )添加。 最终操作 GUI 图形用户界面计划器材天生的图形电话拨号面板用于拨号音的合成发生部门,如下图所示。这里将其生涯为tu1.fig文件。 (2). DTMF 信号的发生合成此刻将对上节建造的图形电话拨号面板上的各控件单元的举措和变革举办配置,即对 tu1.m 文件举办编辑。其首要的成果是使对应的按键,凭证表 1 的对应相关发生响应的拨号音,完成对应行频及列频的叠加输出。另外,对付图形界面的必要,还要使按键的号码数字表现在拨号表现窗口中。鉴于 CCITT 对 DTMF 信号划定的指标,这里每个数字信号取 1000 个采样点模仿按键信号,而且每两个数字之间用 100 个 0 来暗示隔断来模仿静音。以便区别持续的两个按键信号。隔断的静音信号也是在按键时发生的。 以按键 0 为例,简朴先容拨号音发生的进程: % 按键 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); % 发生拨号音

DSP_实验9_电话拨号音的合成与识别

武汉大学教学实验报告电子信息学院通信工程专业 2015 年_10 月10日实验名称电话拨号音的合成与识别 指导教师卢昕 姓名莫帮杰年级 2013 学号2013301200227 成绩

D 。其中 12 个按键是我们比较熟悉的按键,另外由第 4 列确定的按键作为保留,作为功能键留为今后他用。根据 CCITT 建议,国际上采用 697Hz 、770Hz 、 852Hz 、 94lHz 低频群及 1209Hz 、 1336Hz 、 1477Hz 、1633Hz 高频群。从低频群和高频群任意各抽出一种频率进行组合,共有 16 种组合,代表 16 种不同的数字键或功能,每个按键唯一地由一组行频和列频组成,如表 1 所示。 三、主要仪器设备 MATLAB(软件) 涉及的 MATLAB 函数 1. Set 功能:设置对象属性。 基本调用格式:set(H,'PropertyName',PropertyValue,...) 用属性值'PropertyValue'设置关于用参量 H 标志的对象(一个或个)的属性名'PropertyName'(一个或多个)。H 可以为一句柄的向量。在这种情形下,命令 set 可以设置所有对象的属性值。 2. find 功能:找出矩阵 X 中非 0 项的坐标和取值。

2. DTMF 信号的产生合成 现在将对上节制作的图形电话拨号面板上的各控件单位的动作和变化进行设置,即对 tu1.m 文件进行编辑。其主要的功能是使对应的按键,按照表 1 的对应关系产生相应的拨号音,完成对应行频及列频的叠加输出。此外,对于图形界面的需要,还要使按键的号码数字显示在拨号显示窗口中。 鉴于 CCITT 对 DTMF 信号规定的指标,这里每个数字信号取1000 个采样点模拟按键信号,并且每两个数字之间用 100 个 0 来表示间隔来模拟静音。以便区别连续的两个按键信号。间隔的静音信号也是在按键时产生的。 以按键 0 为例,简单介绍拨号音产生的过程: % 按键 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'); % 获取数字号码

DTMF电话拨号音的合成与识别

题目2: DTMF电话拨号音的合成与识别 1.目的 基于对电话通信系统中拨号音合成与识别的仿真实现,主要涉及到电话拨号 音合成的基本原理及识别的主要方法,利用 MATLAB 软件以及 FFT 算法实现 对电话通信系统中拨号音的合成与识别,可进一步利用 MATLAB 中的图形用 户界面 GUI 制作简单直观的模拟界面。对电话通信系统拨号音的合成与识别有 个基本的了解。 能够利用矩阵不同的基频合成0-9不同按键的拨号音,并能够对不同的拨 号音加以正确的识别,实现由拨号音解析出电话号码的过程。进一步利用 GUI 做出简单的图形操作界面。要求界面清楚,画面简洁,易于理解,操作简单。从 而实现对电话拨号音系统的简单的实验仿真。 2.原理 双音多频DTMF(Dual Tone Multi-Frequency)信号,是用两个特定的单音 频率信号的组合来代表数字或功能。在 DTMF 电话机中有 16 个按键,其中 10 个数字键 0 — 9 , 6 个功能键 * 、 # 、 A 、 B 、 C 、 D 。其中 12 个 按键是我们比较熟悉的按键,另外由第 4 列确定的按键作为保留,作为功能键 留为今后他用。 根据 CCITT 建议,国际上采用 697Hz 、 770Hz 、 852Hz 、 94lHz 低频群及 1209Hz 、 1336Hz 、 1477Hz 、 1633Hz 高频群。从低频群和 高频群任意各抽出一种频率进行组合,共有 16 种组合,代表 16 种不同的数字 键或功能,每个按键唯一地由一组行频和列频组成,如表 1 所示。 f L/f H(Hz)1209 1336 1477 1633 697 1 2 3 A 770 4 5 6 B 852 7 8 9 C 941 * 0 # D 表 1 : DTMF 的组合功能 根据对应的行列频率,按键对应的信号可以表达为: =sin +sin (1) 其中 , 分别是数字或字符按键对应行、列的低频、高频信号的角频率。 3.实验内容 (1). DTMF信号的产生合成 按照表 1 的对应关系产生相应的拨号音,完成对应行频及列频的叠加输出。 此外,对于图形界面的需要,还要使按键的号码数字显示在拨号显示窗口中。 鉴于 CCITT 对 DTMF 信号规定的指标,这里每个数字信号取 1000 个采样

实验3 双音多频信号的合成与检测

实验三 双音多频信号的合成与检测 一 实验目的 1.理解电话拨号音的合成与检测的基本原理; 2.深入理解信号频谱分析理论中相关参数的作用和意义; 3.了解频谱分析在实际工程中的应用实例。 二 实验基础 双音多频(dual-tone multifrequency, DTMF)信号的产生及检测在现代通信系统中有着广泛的应用,家用电话、移动电话以及公共程控交换机(PBX)都采用DTMF 信号发送和接收电话拨号号码。本实验要求利用信号的时域分析和频域分析的基本理论实现DTMF 的合成和检测。 1. DTMF 信号合成 DTMF 信号由低频组和高频组两组频率信号构成。按键电话上每个按键都由对应的两个频率组成,如表4.1。当按下某个键时,所得到的按键信号是由相应两个频率的正弦信号叠加而成。设x(n)为DTMF 信号,产生方式为: x (n )=sin (ωH n )+sin (ωH n) 式中:ωH = 2πf H f s ,ωL = 2πf L f s 分别表示高频和低频频率,电话信号的典型抽样频率为f s =8KHz 。 DTMF 信号的标准是:在传送过程中每个按键字占用100ms ,其中信号必须持续至少40ms ,且不得多于55ms ,100ms 里的其余时间为静音(无信号)。 表4.1按键频率对应表 2. DTMF 信号检测 DTMF 信号的检测是将信号的两个频率提取出来,从而确定接收到的DTMF 对应的按键。利用DFT 对DTMF 信号进行N 点的频谱分析,N 的选取决定了频率分辨率以及捕捉N 个样值所需要的时间。根据谱峰出现的频率点位置m 就可以确定DTMF 信号的频率f k : /k s f kf N = 这样计算出的DTMF 信号频率可能与实际的DTMF 信号频率有一定的差别,但可以通过加大N 的选取来减小这种频率差异。然而从另外一方面来考虑,虽然加大N 值会减小检测频率误差,但这势必会带来捕捉N 个样值所需要的时间增加,从而会对检测的效果造成一定影响。

电话按键音的识别

电话按键音的识别

————————————————————————————————作者:————————————————————————————————日期:

一、 实验目的 1. 本实验的内容基于对电话通信系统中拨号音的识别仿真实验。主要涉及到电话 拨号音识别的基本原理和识别的主要方法。利用matlab 软件以及fft 算法实现对电话通信系统中拨号音的识别。并进一步利用matlab 中的图形用户界面制作简单直观的模拟界面,使其对拨号音的识别有个基本的了解。 2. 能够利用矩阵不同的基频合成0-9不同按键的拨号音,并能够对不同的拨号音 加以正确的识别。进一步画出简单的图形,从而实现对电话拨号音系统的简单的实验仿真。 3.了解学习DTMF (双音多频)相关知识,知道双音多频的信号是用两个特定的单音频率信号的组合来代表数字或功能。 二、实验仪器 安装有MATLAB 软件的计算机一台。 三、实验原理 1. DTMF (双音多频) (1) 基本概念 电话拨号有两种,脉冲和音频,所谓音频也成双音多频(DTMF )信号的拨号方式即是电话拨号时每按一个键,有两个音频频率叠加成一个双音频信号,十六个按键由八个音频频率区分。 (2) 编制规则 具体DTMF 编制规则如表1所示 表1 DTMF 键盘 高群/Hz 低群/Hz 1209 3 697 1 2 3 A 770 4 5 6 B 852 7 8 9 C 941 * 0 # D 双音多频的拨号键盘是4×4的矩阵,每一行代表一个低频,每一列代表一个高频。用户每按一个键就发送一个高频和低频的正弦信号组合。 2. 电话按键音识别 MATLAB 中audioread 函数可以实现多种音频信号的读取,调用形式为 [y,fs]=audioread() 其中y 为所读取的音频数据; 而fs 为采样频率; 调用的为指定载入的音频文件名称。 用fft 频谱分析公式 /2/w T fs f fs π=Ω=Ω= (1)

北京交通大学DSP系统课程设计报告电话拨号音检测

DSP系统课程设计设计题目:电话拨号声音检测 任课老师:李居朋 学院:电子信息工程学院 班级:电子1401班 姓名:刘广康 学号:14213012 同组成员班级:电子1401班 同组成员姓名:卢思霖 同组成员学号:14213013 2017年4月20日

目录 一. 设计背景 (2) 二. 设计要求 (2) 三.设计思路及原理 (2) 四.matlab仿真 (3) 1.运行结果 (3) 2.Matlab主要代码段:(以第一个号码为例) (5) 五.DSP设计程序运行及结果 (6) 1.总体流程图 (6) 2. c程序运行结果分析 (7) 六.DSP主要程序段及说明 (8) 1.端点检测 (8) 2.切割音频 (9) 3.号码识别 (9) 3.1双峰检测 (9) 3.2 频偏矫正和字符识别 (9) 七.设计过程中遇到的问题及解决方法 (10) 八. DSP设计感想 (10) 九.参考文献 (11)

一.设计背景 现有一个犯罪的场景,嫌疑人在作案后给他的上级头目打电话,拨号声被现场的录音设备记录了下来,录音文件为dial_motor.wav(见附件。时域波形图如图1所示)。除了电话拨号声,还有周围环境的噪声。请你根据录音文件,将电话号码分析出来,协助警方破案。 二.设计要求 1、利用Matlab进行仿真分析 (1) 对录音文件分别进行时域和频域分析,判断在哪个域可以更好地分析出电话号码; (2) 设计对录音文件中所含噪声进行分析,利用Matlab设计滤波器将噪声滤除; (3) 利用Matlab语言设计程序,实现电话号码的检测。 2、利用C语言设计DSP程序,在BJTUDSP5502信号处理平台上实现电话号码的检测识别。 三.设计思路及原理 按键电话号码通常使用双音多频(DTMF)技术,即每个按键对应着两个不同的频率,电话号码检测与识别即将电话拨号音频的一对频率检测出来,然后和电话按键频率对应的表格进行对比,编程找出相应的按键。整体思路详见后面的流程图。

相关主题
文本预览
相关文档 最新文档