基于MATLAB的双音多频信号识别

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

基于MATLAB的双音多频信号识别【摘要】本文采用fft和戈泽尔算法对计算机模拟产生双音多频信号进行检测;并基于短时能量和过零率,分割一串语音信号;考虑到录制信号含有噪声,提出将双声道合并成单声道,进而增强了语音,同时,设计出高低群双边带带通滤波器,得到了就很好的检测效果,使得两种算法也更好的适应于含噪信号的检测。【关键词】dtmf;fft单声道;戈泽尔算法;高低群双边带带通滤波器0引言dtmf信号系统是一个典型的小型信号处理系统,它要用数字方法产生模拟信号并进行传输,其中还用到了d/a变换器,在接收端用a/d变换器将其转换成数字信号,并进行数字信号处理与识别。对dtmf信号进行检测是dtmf技术应用的关键,一般的文献中也只给出了计算机模拟的dtmf信号的检测[1]。本文用fft算法和戈泽尔算法分别分析了计算机模拟下的dtmf信号的检测;并设计双边带的带通滤波器,对实际通信中带有噪声的音频信号进行分析,能清晰的分出来语音信号。1fft算法的单音信号的识别1.1电话按键语音信号电话号码键的信号是由低频、高频两个信号的余弦表达式合成的:yi=sin2πflt+sin2πfht,其中fl、fh分别代表合成电话信号键i的高低频率,如表1所示。表1dtmf按键与频率之间的对应关系1.2fft算法识别电话按键用windows自带的声卡采集录制语音信号。yi为连续的语音信号,而计算机处理的却是离散的信号,针对于这种问题采用奈奎斯特采样定理对信号进行采样,fs为抽样频率,ts为采样间隔,得到信号的离散表示:对yn进行n点的fft变换得到yn的频域表达式yn。由傅氏变换的性质可知,yn在理想的条件下,在频域的内有四个单位冲激响应,幅值相等,可以找到幅值最大的四个点所对应的k值。在得到的四个k值中,最小的两个分别对应着高低频。由(3)式,可以根据输入信号的音频,完成单个信号音的识别,理想状态下用fft算法检测,得到实验误差如表2所示。表2fft算法实验误差以上用fft算法识别按键只是针对单个语音信号,而且信号的噪声比较小。同样,要想识别出一串电话号码的按键音,需将一串电话号码的按键音分割成单个信号音,再按照上述方法进行按键的识别。1.3基于短时能量及过零率的一串语音信号的识别录制声音过程中需对声音进行量化处理,最理想的量化是最大电平对应最高量化比特,但实际很难得到,常有音轻问题。利用双声道合并可硬实现音量标准化,即最大电平对应最高量化比特,实现语音增强的效果。基于短视能量和过零率可以将一串信号分成多个信号。用windows产生的语音含有左右两个声道,利用matlab程序将双声道的语音信号变成单声道,将会增强语音的效果。得到双声道、单声道的单个语音信号的短时能量和过零率[2],如图1所示。图1双、单声道的单个语音信号的短时能量和过零率经过声道合并之后语音信号的短时能量增大了,因此信号更容易分析,如果含有噪声的情况下,也容易去噪。上述的方法都是利用windows录制的语音进行分析的,其特点是噪声小,能够较准确的分析出拨号键。但是运用同样的方法,对实际录制的电话语音进行分析时,不管是对于单个语音信号还是一串语音信号分析都会有很大的误差。通过比较发现,人为录制的语音信号与windows录制的语音相比有较大的噪声,在频域内噪声的幅度甚至超过了有用语音信号的幅度,使得按照频域幅度分析噪声的方法不再适用。对此,采用goertzel算法,并设计高低群带通滤波器,对含有噪声的语音信号进行分析,使得分析更为准确。2基于戈泽尔和高低群带通滤波器的号码分析2.1戈泽尔算法8个滤波器的中心频率分别对应8种音频,如表3所示。表3滤波器频率与音频对照表图3戈泽尔算法单个信号频谱图可见,通过fft可以得到信号所有谱线,了解信号整个频域信息,而对于dtmf信号的8个行频/列频,戈泽尔算法能更快速的在输入信号中提取频谱信息。当使用录制的dtmf信号,用fft算法或戈泽尔算法总会有误差,所以在分析之前应该先将信号通过滤波器。2.2高低群带通滤波器的设计根据电话号码按键音在高低频率的分布,设计出高低频率通带滤波器,通频带分别是690~950hz和1200~1640hz,分别是dtmf的低频群和高频群的频率范围。得到双通带带通滤波器如图4所示。3实验结果以及数据分析对于含噪声的一串语音信号的分析:含噪声的一串语音信号的分析结果如图5所示。图4高低频双通带带通滤波器图5含噪声的一串语音信号从图5中可以看出,测试语音中含有噪声,并且声音幅度较小的语音,几乎同噪声一样。分析短时能量和过零率,并无规律可循;所以当噪声较大时,单纯用fft或戈泽尔算法都不可行,而且从短时能量和过零率这两个方面都不可分析语音是哪个按键。经过滤波器之后,语音信号的短时能量和过零率基本上无噪声,可以很容易区分信号,经过滤波器后,运用戈泽尔算法可以得到的比较清晰的十一个语音信号的dft图形,如图6所示,得到正确的号码:13639637115。图6戈泽尔算法得到的信号频谱4总结本文针对dtmf信号,运用fft算法和戈泽尔算法对单个信号进行分析,同时基于短时能量和过零率对一串语音信号进行分割得到单个信号,并在信号进行量化的过程中将双声道合并成单声道,增强了语音。考虑到两种算法对含有噪声信号的处理不高的缺点,通过考虑dtmf信号频率特点,运用窗函数设计出高低频群的双通带通滤波器对信号进行滤波,能较为准确的分析出按键号码。【参考文献】[1]徐阿勇,李方洲,罗蔚华.基于matlab的dtmf技术计算机模拟[j].温州师范学院学报:自然科学版,2005,26(5):40-44.[2]赵力.语音信号处理[m].北京:机械工业出版社,2005:31-37.[3]dtmf信号系统的matlab仿真[ol].[2013-6-25].http://[4]程佩青.数字信号处理教程[m].北京:清华大学出版社,2007:333-340.[责任编辑:丁艳]

1 / 5
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功