DTMF信号检测分析(Matlab)

您所在的位置:网站首页 分组检测matlab DTMF信号检测分析(Matlab)

DTMF信号检测分析(Matlab)

2023-11-18 08:48| 来源: 网络整理| 查看: 265

基于Matlab平台的DTMF信号检测

1.将录制好的一段按键音读入到Matlab平台;

2.设计带通滤波器,去噪处理(可选);

3.将给个按键音对应的信号一次分割;

4.计算分割后信号的相应的频点值,幅度最大的两个点即为该信号的高低频;

5.显示音频对应的按键数字;

6. 按键的录制与播放(可选)。

1. 双音多频信号(DTMF)基本原理

双音多频(dual tone multi-frequency; DTMF)信号是广泛应用在世界范围内按键式电话机上的一种电信标准。DTMF由著名的贝尔实验室发明,主要用于解决远程电话的自动呼叫,代替原本由人工接续的脉冲拨号方式,利用一组低频群和一组高频群进行组合的编码方式,高低频群各由4个频率组成,是使用两个音频段频率的固定组合的多频信令。应用学科:通信科技(一级学科);交换选路(二级学科),近年来DTMF也应用在交互式控制中,诸如语言菜单、语言邮件、电话银行和来电显示等方面。

电话拨号有两种,脉冲和音频,所谓音频也称双音多频(DTMF)信号的拨号方式,双音多频既是电话拨号时每按一个键,有两个音频频率叠加成一个双音频信号,十二个按键由七个音频频率区分。双音多频信号(DTMF),电话系统中电话机与交换机之间的一种用户信令,通常用于发送被叫号码。双音多频信号是贝尔实验室发明的,其目的是为了自动完成长途呼叫。双音多频的拨号键盘是4×4的矩阵,每一行代表一个低频,每一列代表一个高频。每按一个键就发送一个高频和低频的正弦信号组合,比如'1'相当于697和1209赫兹(Hz)。交换机可以解码这些频率组合并确定所对应的按键。

表1 双音多频键盘

1209 Hz

1336 Hz

1477 Hz

1633 Hz

697 Hz

1

2

3

A

770 Hz

4

5

6

B

852 Hz

7

8

9

C

941 Hz

*

0

#

D

2. DTMF信号时域频域分析原理

傅里叶变换FT基本原理

……

(二)基于Matlab平台的DTMF信号检测

1.将录制好的一段按键音读入到Matlab平台;

[x,fs,bits]=wavread('1.wav');

fs采样率(8149,一般8k);bits位数(32位)

 

图1 按键音时域波形

2. 分隔各个按键音

plot(x(1:1000))只绘制文件的1到1000点,即对应第一个按键音,波形如图2:

 

图2 第一个按键音波形

3. 计算信号的相应的频点值,幅度最大的两个点即为该信号的高低频;(频谱泄漏)

 

 

(1)关键是分析出对应频谱中的量频率分量大小

需要将点数转换成频率:w=(0:length(F)-1)'*fs/length(F)

(2)在分析频谱时,只分析一半即可(参考FT原理)

(3)两频率分别对应第69点和132点,则对应的模拟频率(实际频率)为:

(4)根据频率查表,得到对应的数字应该为:

参考程序

[x,fs,bits]=wavread('1.wav');

subplot(1,2,1);

plot(x(1:800));

y=x(1:800);

Y=fft(y);

subplot(1,2,2);

plot(abs(Y));

soundsc(y,fs);

[x,fs]=audioread('E:/MATLAB/R2017a/bin/1.wav'); %第1个数字 %subplot(5,1,1); %plot(x(1:8000)); y=x(1:800); Y=fft(y); subplot(5,2,1); plot(abs(Y)); soundsc(y,fs); w=(0:length(y)-1)'*fs/length(y); plot(w,abs(Y)); %第2个数字 y=x(1600:2400); Y=fft(y); subplot(5,2,2); plot(abs(Y)); soundsc(y,fs); w=(0:length(y)-1)'*fs/length(y); plot(w,abs(Y)); %第3个数字 y=x(3200:4200); Y=fft(y); subplot(5,2,3); plot(abs(Y)); soundsc(y,fs); w=(0:length(y)-1)'*fs/length(y); plot(w,abs(Y)); %第4个数字 y=x(4800:5600); Y=fft(y); subplot(5,2,4); plot(abs(Y)); soundsc(y,fs); w=(0:length(y)-1)'*fs/length(y); plot(w,abs(Y)); %第5个数字 y=x(6500:7400); Y=fft(y); subplot(5,2,5); plot(abs(Y)); soundsc(y,fs); w=(0:length(y)-1)'*fs/length(y); plot(w,abs(Y)); %第6个数字 y=x(8134:8959); Y=fft(y); subplot(5,2,6); plot(abs(Y)); soundsc(y,fs); w=(0:length(y)-1)'*fs/length(y); plot(w,abs(Y)); %第7个数字 y=x(9768:10610); Y=fft(y); subplot(5,2,7); plot(abs(Y)); soundsc(y,fs); w=(0:length(y)-1)'*fs/length(y); plot(w,abs(Y)); %第8个数字 y=x(11380:12210); Y=fft(y); subplot(5,2,8); plot(abs(Y)); soundsc(y,fs); w=(0:length(y)-1)'*fs/length(y); plot(w,abs(Y)); %第9个数字 y=x(13020:13840); Y=fft(y); subplot(5,2,9); plot(abs(Y)); soundsc(y,fs); w=(0:length(y)-1)'*fs/length(y); plot(w,abs(Y)); %第10个数字 y=x(14650:15480); Y=fft(y); subplot(5,2,10); plot(abs(Y)); soundsc(y,fs); w=(0:length(y)-1)'*fs/length(y); plot(w,abs(Y));



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3