双音多频信号检测在DSP中的实现

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

第27卷 第3期 吉首大学学报(自然科学版)

V ol.27 N o.3

2006年5月

Journal of Jishou University (Natural Science Edition )

M ay.2006

文章编号:1007-2985(2006)03-0043-05

双音多频信号检测在DSP 中的实现

Ξ

李义府,彭卫韶

(中南大学信息科学与工程学院,湖南长沙 410083)

摘 要:双音多频DT MF 信号是音频电话中的拨号信号,将DT MF 信号的检测集成到含有数字信号处理器(DSP )的系统中,是一项较有价值的研究课题.笔者设计出TI 公司浮点DSP 芯片C6711中的实现方案,通过20个并行的哥兹柔信号滤波器能成功地使双音多频信号的检测变得迅速和简单,采用谐音检测可以显著地提高检测系统的准确性.

关键词:哥兹柔滤波器;双音多频;浮点DSP ;Bellcore 标准中图分类号:T N914.3;T N911.7

文献标识码:A

按键式电话拨号广泛采用双音多频信号,近年来双音多频信号(DT MF )逐渐应用于工程信号发生与检

测系统中,并与DSP 、FPG A 相互促进,具有广泛的应用前景[1-2]

.一个有效的音频信号由一个行频信号和一个列频信号叠加而成.例如,要表示“4”这个音频信号,可由一个770H z 的行频信号和一个1209H z 的列频信号叠加而成.电话音频拨号使用的正弦音频叠加信号如表1所示:

表1 电话机键盘的频率矩阵

行频组ΠH z

列频组ΠH z

1209136614771633697123A 770456B 8527

89C 941

3

#

D

1 算法与滤波器

1.1算法

图1 离散通频带的分布

由于在实现DT MF 解码时,采用哥兹柔算法(G o 2

ertzel Alg orithm Theory )要比FFT 更快,因为通过FFT 可以计算得到信号所有频谱线,但处理DT MF 信号只考虑其中的8个频率及其二次谐波信息,运用G A T 能更加快速的从输入信号中提取频谱信息,所以使用C6177浮点DSP 进行信号检测不失为一种可行的技

术解决方案[3-4]

.通过对信号作离散傅立叶变换得到其离散通频带.离散通频带的数目用字母N 表示,这些通频带段在频域中均匀分布如图1所示.

Ξ

收稿日期:2006-02-26

基金项目:国家自然科学基金资助项目(69974043);湖南省自然科学基金资助项目(99JJ Y 20062)

作者简介:李义府(1946-),男,湖南省长沙市人,中南大学信息科学与工程学院教授,主要从事电子线路和故障诊断应用研究.

该带宽BW 由取样频率和采样总数N 共同确定:

BW =

f s

N ,(1)

通频带的中心频率为

f k =

kf s

N

.(2)

G AT 能返回音频信号组成成分的幅值信息和相位信息,由于仅需要各频率成分的相对幅值信息,所以

可以用使用修正G AT 函数,其G AT 函数为

Q n =x [n ]+2cos (

2

πk N

)Q n -1-Q n -2,(3)X [n ]=Q 2

n +Q 2

n -1+2cos (

2

πk N

)Q n Q n -1.

(4)

在离散傅里叶变换开始计算音频频谱的数据前,要输入一个数据样本.G oertzel 滤波器是一个IIR 滤波器,该滤波器包含反馈和前馈两部分.反馈部分必须对每个采样x [n ]计算1次,而前馈部份只需在n =

N 时计算1次.DSK 的取样频率fs 为8kH z ,高于待测信号最高频率(1633H z )的2倍,由采样定理可知该方案不会产生波形失真.1.2滤波器系数计算

滤波器带宽BW 由(1)式决定.N 值增大能增加滤波器的分辨率,但同时会造成时域分辨率的浪费,且取值太大时,音频信号长度的延长将导致检测该信号所需时间的延长,如图2所示.这将使检测元件没有足够的时间来同步检测信号的谬误.如所检测的音频信号波长为125μs ,则取样频率为8

kHZ.

图2 N 取不同值时信号的波长

使用复合采样频率能降低一个音频周期内发生采样同步误差的可能性.N 取320时采样周期为40ms ,足以发现2个音频流间的间隔,并留出至少1个完整的采样周期来传输信号.当N =800时频率为10H z ,而N 减少到320时频率为25H z ,计算得N =800时相对误差为±0.31%,N =320时相对误差为±0.78%,该误差能够被1633H z 波检测到.

N 值的选择是综合考虑频域和时域的结果.通过Bellcore 标准来确定一个普遍的标准以检测音频频率.Bellcore 标准指定音频信号频率如下:

行频组 697,770,852,941;列频组 1209,1336,1477,1633.由图3可知在有效信号频率f t ±1.5%范围内的频率信号应被系统接受,而在f t ±3.5%以外的信号则应该被系统拒绝.Bellcore 标准可用来为G oertzel 滤波器决定一个合理的N 值.由相对误差值确定各频率的绝对误差范围如表2所示.

44吉首大学学报(自然科学版)第27卷

图3 频率误差带范围

表2 频率信号对应的误差范围

频率ΠH z

相对误差Π%绝对误差ΠH z

最值697

±1.5

20.9最小值±3.548.8最大值1633

±1.5

49.0最小值±3.5

114.3

最大值

图4 通频带叠加后的误差带宽 由于不可能选择一个符合所有频率的标准带宽,根据Bellcore 标准取49H z 的带宽为标准带宽.然后为行频组选择一个符合标准的N 值.列频组的频率范围可以通过2个处在要求频率的两侧相互叠加的通频带来拓展(如图4).该方法需要4个的滤波器实现,但其结果符合Bellcore 标准的要求.N =136时行频组频率误差为2.1%左右.G oertzel 滤波

器选用的通频带及其系数的关系如表3所示.表3

中的Q15格式的系数是以十进制形式表示的.利用

表3中N =136时的取值和系数,可以通过编程来实现G AT.在DSP 中系数的计算以Q15的格式运行.

表3 通频带频率及其系数的关系

音频信号频率ΠH z

通频带中心频率f k ΠH z

系数2cos (2πf k Πf x )

Q15格式的系数

697697 1.7127980770770 1.6526956852852 1.5725701941941 1.482421912091200 1.181******** 1.151888413361327 1.011652513450.9816123147714680.811329714860.79128721633

16240.5895371642

0.55

9093

1.3M AT LAB 仿真

用M AT LAB 仿真模型以检验该算法的可行性.模型用正弦波模拟的音频信号“4”作为输入.G oertzel 滤波器的输出随时间变化的图像如图5.当接收到1个音频信号,2个相应的滤波器的输出比其余滤波器的输出值大几个数量级.由图6可知:当加上1个用来抵消滤波器1.7%输出的频率信号后,N <136时2个滤波器输出值仍然相似,但N >163后2个滤波器的输出出现了明显的差异,由于可以忽略信号中1.7%的误差,所以这是由改变N 值而使带宽变化所产生的影响.因为N >163时2个滤波器的输出相差较大,取N =163可能使后续工作复杂化,所以取N =136来检测这些频率信号.

仿真时,麦克风接到计算机的声卡上,音频声音信号在麦克风前播放.M AT LAB 程序以8kH z 的频率麦克风的输入进行采样.数据G AT 处理后将相关的音频特性线性送回,每次运行M AT LAB 程序可以正确地识别40ms 音频流的所有特性量,然后在DSK 上对该运算法则进行C 语言编译.

5

4第3期 李义府,等:双音多频信号检测在DSP 中的实现

相关文档
最新文档