释 DTMF 信号的检测识别的原理。Р数字拨号音‘1’的频谱图如图1,已知输入信号的取样频率。而做FFT的N=2048,则频谱分辨率为,由此可算出频谱图上任意点对应的频率。数字‘1’的高、低端频率为、,则在谱图上对应的点,。显然在频谱图中可以观察到点174和点302处分别出现了一个峰值。Р图1:拨号音‘1’频谱图Р2.DTMF 信号的检测识别的原理Р要实现电话拨号音(DTMF)信号的检测识别,可以通过直接计算付里叶变换得到输入信号的组成频率。这里采用FFT算法对信号进行解码分析。首先对接收到的数字信号作 FFT 分析,计算出其幅度谱,进而得到功率谱,组成输入信号的频率必定对应功率谱的峰值。对于连续的双音多频(DTMF)信号,需要把有效的数字拨号信号从静音间隔信号中分割提取出来,然后再用 FFT 算法对信号进行解码分析。Р3.添加功能键,实现号码的预存储和来电识别。考虑不同位数号码的存储实现。Р设计面板如下图,程序当中预存储了3个号码,在‘#’号确认键程序中DTMF信号识别成功以后,添加如下代码,将识别的号码与电话本进行匹配:Р图2 GUI面板Р预存储程序:Рglobal BOOK; %定义全局电话薄РBOOK{1}='10086';?%预存号码РBOOK{2}='China Mobile';РBOOK{3}='10000';РBOOK{4}='China ';РBOOK{5}='10010';РBOOK{6}='China Union';Рsum=length(BOOK);Рtemp=number; %识别出的号码Рfor j=1:sum-1Р if(strcmp(BOOK{j},number)) %与电话本中的号码匹配Р temp=BOOK{j+1};Р endР j=j+2;РendРset(handles.edit2,'string',temp); %在确认栏显示名称