微波EDA网,见证研发工程师的成长!
首页 > 应用设计 > 消费类电子 > MPEG算法在列车运行监控系统中的应用

MPEG算法在列车运行监控系统中的应用

时间:01-05 来源:EEWORLD 点击:

2 运行软件开发

软件设计方面主要包括音频/语音数据的压缩编码以及音频/语音数据的差错校验。

2.1 音频/语音数据编码

音频编码算法方面采用了目前通用的MPEGI-Lay-erII压缩编码算法,该算法是帧数据结构编码,一帧的样点值是1152,以处理器件UDA1341TS的44.1kHz采样频率计算,一帧数据的编码要求在26ms内完成。语音编码算法方面采用了MPEG-2压缩编码算法。MPEG-2算法是MPEG-I算法的扩展,一帧的样点值是576,以处理器件UDA1341TS的16kHz采样频率计算,一帧数据的编码要求在72ms内完成。而‘C5402的指令周期是10ns,对于这里的MPEG算法,在满足算法要求的情况下,进行双通道的实时编码最多需要15ms,所以‘C5402可以完成算法的实时编码。其算法流程如图3所示,主要包括以下几方面:(1)滤波器组的运算。(2)心理声学模型的运算。(3)量化编码。(4)帧数据格式化。

滤波器组的作用是完成信号从时域到频域的映射。心理声学模型的计算是利用1024点的FFT,对输入的音频/语音信号进行频谱分析,再结合时频映射的结果,计算出各子带人耳的掩蔽特性。量化编码是由各子带人耳的掩蔽特性和输出比特率的要求,计算出各子带编码所需的比特分配信息,并且对各子带数据进行线性量化编码的过程。程序的后续工作是按照MPEG标准对数据进行格式化,其目的是为了使数据编码后能被正确地解码。系统主程序流程图如图4所示。

帧内编码是DSP按照MPEG标准把A/D转换器传来的数字音频/语音信号进行压缩编码。其流程如图5所示。

2.2 数据的差错校验

2.2.1 校验原理

音频,语音数据的差错校验采用循环冗余CRC-16校验方式,即被处理的数据块可以被看作是一个N阶的二进制多项式D(X),如一个16位二进制数1010010110100101可以表示为:X15+X13+X10+X8+X7+X5+X2+1。多项式乘除法与普通代数多项式的乘除法运算相同,多项式的加减法以2为模,进行逻辑异或运算。采用CRC校验时,发送方和接收方采用同一个生成多项式S(X),并且S(X)的首位和最后一位的系数必须为1,本算法中S(X)采用多项式。CRC的处理方法是:发送方以生成多项式S(X)去除待处理的数据D(X),得到余数作为CRC校验码。校验时,以计算的校正结果是否为0来判断数据帧是否出错。

2.2.2 校验算法实现

用‘C5402来进行CRC校验的关键是运用其40位的累加器A作为移位寄存器,实现CRC码的模2多项式除法。此时CRC-16码占用累加器A的高16位,其余位补0。运算中利用SFTA(算术移位)和XOR(异或)指令完成编码过程中码的移位和异或操作,利用XC指令完成条件语句的判断执行。‘C5402提供了特殊指令BITT,BITT利用寄存器T取出一个16位数据中的第(15-T)位,并送入TC(TC是特殊寄存器中的一位)。具体算法步骤如图6所示。

(1)首先将CRC移位寄存器A(即余数寄存器)的高16位初始化为全O,其余位清0。

(2)将CRC移位寄存器A中的值左移一位,即最高位移入C中,然后利用指令BITT取出输入校验数据的最高位送入寄存器B,判断C中移入的最高位与输入校验数据的最高位异或之后是否为1。

(3)若为1,则将寄存器A中的值与输入寄存器B中的生成多项式X16+X15+X2+1进行异或后再跳到步骤(2)处理下一位;若不为1,直接跳到步骤(2)处理下一位。重复上述的数值左移和异或判断,直到输入的数据位全部处理完为止,则寄存器A的最高16位即为进行多项式除法后所得的余数,此时寄存器A的最高16位就是CRC校验码[2].

系统上电运行后,经多次实验测试,运行情况稳定。目前该设备已经进行现场调试运用,开始部分装车运行,满足了列车监控记录的实际要求。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top