改进的ADALINE神经网络采用LMS算法[2],LMS算法本质是以最小均方误差为准则的近似的最速下降算法。它以均方误差为性能函数F(x),定义如下
神经网络的各个参数需要通过试验来确定。经过试验,对于DTMF检测,选用只含有2个权系数和1个偏置值的网络就可以胜任,也就是在图4中,只需要w1/w2/b三个参数,结构简单,计算量小。
对每个DTMF分量频率都设置一个如图4所示的神经网络单元,在每个检测周期对8个神经网络单元的输出进行判断并简单分析,就可以实现DTMF解码。
四、基于改进的ADALINE神经网络的DTMF解码仿真结果
为了验证上述基于改进的ADALINE神经网络的DTMF检测算法,我们在MATLAB上使用Neural Networks Toolbox进行了仿真。
仿真条件和参数选择:模拟实际信道中常见的高斯白噪声情况,待检测输入信号x(n)是DTMF信号和信道噪声的叠加,输入信噪比SNR是-3dB。为了讨论方便,假定每个DTMF分量的幅度是+/-2V(只要进行比例缩放就可以适用实际情况),两个分量信号幅度之和为+/-4V,并假定ADC接口之前的预处理电路的限幅电平是+/-5V,即两个有用信号幅度之和占限幅电平的80%。改进的ADALINE神经网络单元选择含有2个权系数和1个偏置值,采用LMS算法,学习速度 选0.02。待检测信号SNR=-3dB,采样频率为8KHz,采样时间20ms。非线性环节的门限threshold选定为1.0V。
仿真结果如下:以"*"键为例,DTMF信号为941Hz/1209Hz。图5上图为纯DTMF信号和高斯白噪声信号,下图为二者的叠加信号,即待检测信号x(n)。
图5 |
图6为对应941Hz的神经网络单元的输出,上图为中间信号a(n),下图为网络输出信号y(n)。从图中可以看出,网络很快就能捕捉到输入中的941Hz信号,输出信号很强并且从12ms开始就基本稳定。因此系统判断为输入信号中含有941Hz的信号。对应1209Hz的神经网络单元也类似。
图6 |