双音多频dmf信号的dsp检测系统的设计与实现_第1页
双音多频dmf信号的dsp检测系统的设计与实现_第2页
双音多频dmf信号的dsp检测系统的设计与实现_第3页
双音多频dmf信号的dsp检测系统的设计与实现_第4页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

双音多频dmf信号的dsp检测系统的设计与实现

基于建筑安装电话扇的广泛使用双声多频信号。近年来,双音多频信号(dtmf)逐渐被应用于工程信号的产生和检测系统,并与ps和fm相互作用。一个有效的信号源由一个行频源信号和一个列频信号重叠而成。例如,为了表示“4”的频率信号,可以由770hz的频率信号和1099hz的序列信号叠加。表1显示了输入频率噪声噪声的矫正信号。1算法和滤波1.1离散傅立叶变换信号的采样由于在实现DTMF解码时,采用哥兹柔算法(GoertzelAlgorithmTheory)要比FFT更快,因为通过FFT可以计算得到信号所有频谱线,但处理DTMF信号只考虑其中的8个频率及其二次谐波信息,运用GAT能更加快速的从输入信号中提取频谱信息,所以使用C6177浮点DSP进行信号检测不失为一种可行的技术解决方案.通过对信号作离散傅立叶变换得到其离散通频带.离散通频带的数目用字母N表示,这些通频带段在频域中均匀分布如图1所示.该带宽BW由取样频率和采样总数N共同确定:BW=fsNBW=fsΝ,(1)通频带的中心频率为fk=kfsNfk=kfsΝ.(2)GAT能返回音频信号组成成分的幅值信息和相位信息,由于仅需要各频率成分的相对幅值信息,所以可以用使用修正GAT函数,其GAT函数为Qn=x[n]+2cos(2πkN)Qn−1−Qn−2Qn=x[n]+2cos(2πkΝ)Qn-1-Qn-2,(3)X[n]=Q2n+Q2n−1+2cos(2πkN)QnQn−1X[n]=Qn2+Qn-12+2cos(2πkΝ)QnQn-1.(4)在离散傅里叶变换开始计算音频频谱的数据前,要输入一个数据样本.Goertzel滤波器是一个IIR滤波器,该滤波器包含反馈和前馈两部分.反馈部分必须对每个采样x[n]计算1次,而前馈部份只需在n=N时计算1次.DSK的取样频率fs为8kHz,高于待测信号最高频率(1633Hz)的2倍,由采样定理可知该方案不会产生波形失真.1.2就业频率的确定滤波器带宽BW由(1)式决定.N值增大能增加滤波器的分辨率,但同时会造成时域分辨率的浪费,且取值太大时,音频信号长度的延长将导致检测该信号所需时间的延长,如图2所示.这将使检测元件没有足够的时间来同步检测信号的谬误.如所检测的音频信号波长为125μs,则取样频率为8kHZ.使用复合采样频率能降低一个音频周期内发生采样同步误差的可能性.N取320时采样周期为40ms,足以发现2个音频流间的间隔,并留出至少1个完整的采样周期来传输信号.当N=800时频率为10Hz,而N减少到320时频率为25Hz,计算得N=800时相对误差为±0.31%,N=320时相对误差为±0.78%,该误差能够被1633Hz波检测到.N值的选择是综合考虑频域和时域的结果.通过Bellcore标准来确定一个普遍的标准以检测音频频率.Bellcore标准指定音频信号频率如下:行频组697,770,852,941;列频组1209,1336,1477,1633.由图3可知在有效信号频率ft±1.5%范围内的频率信号应被系统接受,而在ft±3.5%以外的信号则应该被系统拒绝.Bellcore标准可用来为Goertzel滤波器决定一个合理的N值.由相对误差值确定各频率的绝对误差范围如表2所示.由于不可能选择一个符合所有频率的标准带宽,根据Bellcore标准取49Hz的带宽为标准带宽.然后为行频组选择一个符合标准的N值.列频组的频率范围可以通过2个处在要求频率的两侧相互叠加的通频带来拓展(如图4).该方法需要4个的滤波器实现,但其结果符合Bellcore标准的要求.N=136时行频组频率误差为2.1%左右.Goertzel滤波器选用的通频带及其系数的关系如表3所示.表3中的Q15格式的系数是以十进制形式表示的.利用表3中N=136时的取值和系数,可以通过编程来实现GAT.在DSP中系数的计算以Q15的格式运行.1.3有多个滤波器信号的信号仿真用MATLAB仿真模型以检验该算法的可行性.模型用正弦波模拟的音频信号“4”作为输入.Goertzel滤波器的输出随时间变化的图像如图5.当接收到1个音频信号,2个相应的滤波器的输出比其余滤波器的输出值大几个数量级.由图6可知:当加上1个用来抵消滤波器1.7%输出的频率信号后,N<136时2个滤波器输出值仍然相似,但N>163后2个滤波器的输出出现了明显的差异,由于可以忽略信号中1.7%的误差,所以这是由改变N值而使带宽变化所产生的影响.因为N>163时2个滤波器的输出相差较大,取N=163可能使后续工作复杂化,所以取N=136来检测这些频率信号.仿真时,麦克风接到计算机的声卡上,音频声音信号在麦克风前播放.MATLAB程序以8kHz的频率麦克风的输入进行采样.数据GAT处理后将相关的音频特性线性送回,每次运行MATLAB程序可以正确地识别40ms音频流的所有特性量,然后在DSK上对该运算法则进行C语言编译.1.4音频检测一般过程音频检测器以一个样品编码段为基础,实际运行时,编码对DSK上的输入的声音进行取样,只有输入信号包含了特征频率信号,才被允许通过.为了使12个Goertzel滤波器能平行计算,需用一个简单序列来储存输出的哥兹柔值.音频信号通过数据线输入DSK,滤波器的输出通过CodeComposerStudio的观察窗口进行观测,滤波器输出的大小作为识别其有效性的标准.从实测值可知所需信号频率(例如“4”)的Goertzel值的大小是非特征信号频率的Goertzel值的2倍以上,所以可通过检测在行频和列频中的最大Goertzel值来确认出现的音频信号.在检测中使用的音频复合信号是在Goertzel滤波器的输出中取得的任意值,一般能够检测100ms的音频信号流就足够了.一份音频检测器的输入/输出样本如表4所示:显然,通过数据线发出的各个有效信号通常以连续3个以上的有效特征的形式被接收到,它们被至少两个未知特征(‘?’)或间隔特征分开.在写到接收流之前,系统应检测连续3个相同有效特征出现的情况,并在允许其他有效特征被写入接收流之前等待二个连续的间隔特征.为了方便观测和调试,音频检测器的输出以字符串形式存储在DSK中.2测试测试2.1音频信号的识别由于一般的说话能干扰检测器,使检测器时常将噪音中的音频误判为有用信号,由于难以保证系统工作在完全无噪音条件下,所以需要过滤接收到的语音信号.人的嗓音多在300~3400Hz的范围里,由于此频率范围包含有特征音频信号成分,所以该频率段的信号不能直接过滤.通常区分语音信号和音频信号的方法是:检测信号在基音的整数倍频率处是否出现谐音(泛音).可以用这个方法来识别并且排除语音成份的干扰.为了识别谐音成分,增添8个Goertzel滤波器到算法中.计算相关频率的系数,并列在表5中.当任何信号在音频的两倍基音频率出现时,表示输入信号不是单一正弦振荡信号(即不是音频信号).2.2dsk/信号转换运算在测试运算法则时,将计算机声卡的输出通过声音数据线连接到DSK的线上.当被送入的音频信号清楚时运算法则能以100%的准确性结束运行.由于该运算法则能准确检测出10个连续的信号流,所以认为该运算法则是可靠的.2.3背景噪音环境模拟将计算机中运行的音频信号流通过数据线从声卡传送到DSK,然后通过把背景声音信号加入数据线来模拟噪音环境.背景噪音可选用各种声音(音量大小相同)进行实验.通过调节检测器的阈值,使检测器能可靠地分辨出音频信号.2.4输出背景噪音信号在实地测试时,麦克风被用作DSK的输入.距离固定后,灵敏度调到刚刚能检测到信号.如果确定了灵敏度/距离组合,就不需要进一步的调节检测器的系数.检测器在没有噪音的环境下即使距离音源很远也对音量大小的变化非常敏感,在相当程度的背景噪音下也能可靠地工作.对麦克风播放背景噪音信号流如图7所示,对麦克风播放背景噪音纯音频信号流如图8所示,其中横坐标代表时间,纵坐标代表滤波器,颜色深浅代表信号强弱.用MATLAB程序从DSK中提取的滤波器实际输出图像,通过图

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论