基于FPGA的电台接口转换模块设计
5 稳定处理
FFT阈值法的原理是先对原始信号做FFT处理,适当预设滤波阈值,将低于该阈值的频带设定为无效信号,定义为接收器没有接收到信号。当然阈值以下,并不能代表该周期产生了单频信而由于信道上或者硬件本身的干扰,单检测周期的测量值超过阈值或者在号或没产生。仅凭单检测周期的阈值检测而产生PTT控制信号会带来话音控制的不稳定性。
设计的算法能极大地提高阈值测试的稳定性。具体处理如下,流程如图6所示。本文引用地址:http://www.amcfsurvey.com/article/191203.htm
为实现该功能,需自定义一个计数器,初始值为0,计数器值定义在0到T(T>0)之间。若在加操作中使计数器值大于T,则将计数器值饱和到T;若在减操作中使计数器小于0,则将计数器值饱和到0。
第一步,检测测量值是否过阈值。若过阈值,计数器值加m,进行第二步;若不过阈值,计数器值减n,进行第四步。
第二步,若计数器值大于T,则饱和到T值。进行第三步。
第三步,检测计数器值,若计数器值等于T,则启动输出PTT控制信号,结束流程;若计数器值小于T,则维持上一次的PTT控制信号输出状态,结束流程。
第四步,若计数器值小于0,则饱和到0值。进行第五步。
第五步,检测计数器值,若计数器值等于0,则取消输出PTT控制信号,结束流程;若计数器值大于0,则维持上一次的PTT控制信号输出状态,结束流程。
在流程中,m,n值的选择取决于信道上或者硬件本身干扰的大小。若没有单频信号而误检出单频信号的错误概率比较大,则m的取值应较小;反之,若没有单频信号而误检出单频信号的错误概率比较小,则m的取值可以较大。同理,若有单频信号而未检出单频信号的错误概率比较大,则n的取值应较小;反之,若有单频信号而未检出单频信号的错误概率比较小,则n的取值可以较大。
图7所示,在CycloneⅢ实验板运行时采用SignalTapⅡ对状态机的各项内容进行验证,保证状态机运行良好。将相关程序下载到Cyclone-Ⅲ芯片里,实时采集音频数据对状态机进行分析。
在图7中,mmod在一个采样周期结束后ostart信号被触发,其获得的总能量为1 427,比预设阈值要低,因此ocounter1的状态不变,仍保持在第0状态,而ocounter2的状态则由第3状态跳到第2状态,这实践的结果和理论都是保持一致的,可以说明程序的正确性,状态机运行正常。
6 结语
本文可以用于一切需要PTT信号端的设备上,应用极其广泛,如:对讲机、飞机场指挥塔的应答系统以及目前已在美国推出的PTT手机业务等均运用到该技术。而在做该课题时遇到一些问题,如:陷波滤波器其阻带带宽偏大,需要寻求一种更好的算法来解决其带宽问题;其次,FIR消耗内存较大,这样会消耗大部分的FPGA逻辑资源,会导致较大系统的资源不够,因此需要设计更好的数据流结构和算法来处理这个问题。这将是笔者以后需要继续研究学习的。
评论