一种基于FPGA的误码性能测试方案
个连续比特的片断(其中r为发端m序列发生器的阶数),将其置入本地m序列发生器的移位寄存器中,作为其初始状态,并假定此时收发双方已同步在这个状态。此后,本地m序列发生器与接收数据缓冲器同步移位输出。这样,只要对两个序列逐位比较,就可以进行误码统计了。需要特别注意:如果截取的数据片断中包含误码,则据此得出的收发双方已同步的结论是错误的。这样的数据片断将导致整个误码统计过程失去意义,不妨称这种情况为同步。为了消除假同步的影响,需要一种保护机制,用以确保收发双方的正常同步。
根据上述思想,笔者设计的收端模块的状态机由4个状态组成,分别为搜索态(SEARCH)、预同步态(PRESYN)、同步态(SYN)和等待态(WAIT)。各个状态所完成的功能如下:
搜索态(SEARCH):在该状态下,当接收数据缓冲器中出现非全零状态时,其中的序列被置入收端m序列发生器的移位寄存器中,同时进入预同步状态。
预同步态(PRESYN):在该状态下,本地m序列发生器输出本地比特流,并使其与收到的数据流进行逐位比较,同时进行初步的误码统计。如果统计结果指示误码高于某一事先选定的阈值,则说明电路进入了假同步,于是需要返回搜索态重新同步。反之,则可以较大的概率认为收发双方已经同步。反之,则可以较大的概率认为收发双方已经同步,电路进入同步态。
同步态(SYN):在该状态下,电路将进行正式的误码统计,并且在指定的测试周期结束时进入等待状态,同时输出误码测试结果。
等待态(WAIT):误码测试尚未启动以及测试结束时所处的状态。在该状态下误码仪等待再一次误码测试的启动信号。
收端模块的逻辑状态转移图见图3。
4测试结果的输出
通常,误码测试结果可以以误码数和误码率两种形式输出。大多数取代传统误码分析仪的其它误码测试方案均采用易于实现的误码数形式输出测试结果,但种方式受到输出位数的限制而无法适应高误码率或需要进行长时间统计的测试环境。但是,误码率的计算又常常需要进行除法运算,而在FPGA或其它可编程逻辑器件中实现除法运算通常要消耗掉大量的逻辑资源,有时甚至超过了实现主要功能所需的资源。
事实上,在一般的工程实践中,人们通常关心的只是误码率的量级,因而误码仪也就没有必要准确地计算出实际的误码率。根据这一想法,该误码仪采用某种近似的实际的误码率。根据这一想法,该误码仪采用某种近似的估计算法,避免了意义不大的除法运算,而以较少的资源消耗实现了对误码率的估计。下面简要介绍该估计算法。
在误码测试逻辑中,接收到的总比特数与误码个数均以二进制方式存储在内部的逻辑向量中。它们最高非0比特所处的位置之差实际上反映了误码率的指标不。这样只要根据这个差值就可以大致估计出误码率,同时复杂的除法运算也被简单的减法运算所代替。
例如:当收到总特数为“00……01110110110”误码计数值为“00……0110”时,总比特数的最高非0位为第10位,误码计数值为第3位,差值为7,误码率近似为1/27,即7.8×10-3,与实际误码率6.3×10-3相当。
采用近似算法可能造成的最大系统误差是输出误码率的50%.但是,在通信系统的误码性能统计中,这样的误差并不会影响对系统误码率数量级的判断。因此,作为调试使用的简易误码性能的测试算法是完全可行的 《一种基于FPGA的误码性能测试方案(第2页)》
本文链接地址:http://www.oyaya.net/fanwen/view/172688.html
根据上述思想,笔者设计的收端模块的状态机由4个状态组成,分别为搜索态(SEARCH)、预同步态(PRESYN)、同步态(SYN)和等待态(WAIT)。各个状态所完成的功能如下:
搜索态(SEARCH):在该状态下,当接收数据缓冲器中出现非全零状态时,其中的序列被置入收端m序列发生器的移位寄存器中,同时进入预同步状态。
预同步态(PRESYN):在该状态下,本地m序列发生器输出本地比特流,并使其与收到的数据流进行逐位比较,同时进行初步的误码统计。如果统计结果指示误码高于某一事先选定的阈值,则说明电路进入了假同步,于是需要返回搜索态重新同步。反之,则可以较大的概率认为收发双方已经同步。反之,则可以较大的概率认为收发双方已经同步,电路进入同步态。
同步态(SYN):在该状态下,电路将进行正式的误码统计,并且在指定的测试周期结束时进入等待状态,同时输出误码测试结果。
等待态(WAIT):误码测试尚未启动以及测试结束时所处的状态。在该状态下误码仪等待再一次误码测试的启动信号。
收端模块的逻辑状态转移图见图3。
4测试结果的输出
通常,误码测试结果可以以误码数和误码率两种形式输出。大多数取代传统误码分析仪的其它误码测试方案均采用易于实现的误码数形式输出测试结果,但种方式受到输出位数的限制而无法适应高误码率或需要进行长时间统计的测试环境。但是,误码率的计算又常常需要进行除法运算,而在FPGA或其它可编程逻辑器件中实现除法运算通常要消耗掉大量的逻辑资源,有时甚至超过了实现主要功能所需的资源。
事实上,在一般的工程实践中,人们通常关心的只是误码率的量级,因而误码仪也就没有必要准确地计算出实际的误码率。根据这一想法,该误码仪采用某种近似的实际的误码率。根据这一想法,该误码仪采用某种近似的估计算法,避免了意义不大的除法运算,而以较少的资源消耗实现了对误码率的估计。下面简要介绍该估计算法。
在误码测试逻辑中,接收到的总比特数与误码个数均以二进制方式存储在内部的逻辑向量中。它们最高非0比特所处的位置之差实际上反映了误码率的指标不。这样只要根据这个差值就可以大致估计出误码率,同时复杂的除法运算也被简单的减法运算所代替。
例如:当收到总特数为“00……01110110110”误码计数值为“00……0110”时,总比特数的最高非0位为第10位,误码计数值为第3位,差值为7,误码率近似为1/27,即7.8×10-3,与实际误码率6.3×10-3相当。
采用近似算法可能造成的最大系统误差是输出误码率的50%.但是,在通信系统的误码性能统计中,这样的误差并不会影响对系统误码率数量级的判断。因此,作为调试使用的简易误码性能的测试算法是完全可行的 《一种基于FPGA的误码性能测试方案(第2页)》