首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

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

MPEG算法在列车运行监控系统中的应用(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位初始化为全0,其余位清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]。
  系统上电运行后,经多次实验测试,运行情况稳定。目前该设备已经进行现场调试运用,开始部分装车运行,满足了列车监控记录的实际要求。
继承事业,薪火相传
返回列表