一种实现CMMB信道时隙同步的方法和装置
技术领域
本发明涉及通信领域,具体地说,涉及一种实现CMMB(中国移动多媒体广播电视)信道时隙同步的方法和装置。
背景技术
信道时隙同步过程是将在时域上搜索接收信号的时隙的起始位置,作为接收机后续数字基带处理的时间基准的过程。广播系统一般采用连续传输机制,但CMMB规范为了支持终端的节电设计,可能在传送过程中暂时关停物理层的个别时隙,以突发的形式传送广播信号,但是用于物理层同步的同步信号将连续发射。因此,在采用同步信号进行收发定时和频率同步的情况下,虽然存在连续和突发两种不同的传输模式,但是时隙同步算法设计将基本相同
为了方便接收机同步,CMMB规范专门设计了同步信号,同步信号子载波间隔是数据子载波间隔的2倍,即为4.8828125kHz,在频域上由一伪噪声序列(Pseudo-noise Sequence,PN序列)构成,在时域由两段完全相同的信号构成。
由于两段同步信号时间间隔较短,可基本认为在此期间信道冲激响应未发生变化,对应两段同步信号的接收信号应该完全一致,不同之处仅限于频率偏差造成的相移,通过将两段同步信号延时相关,考虑到累加过程基本上是同相相加,因此,当结果最大时便可获得物理层信道时隙同步的估计。
发明内容
本发明所要解决的技术问题是,提供一种实现CMMB信道时隙同步的方法和装置,本发明可快速搜索CMMB信道的时隙开始信息并完成时隙同步。
一种实现CMMB信道时隙同步的装置,包括数据预处理模块、RAM模块、复数运算模块以及功率计算及上报模块,其中,
数据预处理模块用于采集数据,并检测当前采集到的数据是否是预先配置的同步信号的起始数据,若是,则产生工作信号,并将从所述起始数据开始采集到的数据发送给RAM模块存储;否则,继续检测当前采集到的数据是否是预先配置的同步信号的起始数据;
RAM模块用于存储接收到的数据;若接收到数据时所有存储单元均被占用,则将存储单元中存储时间最长的数据读出给所述复数运算模块,将当前接收到的数据存入该存储单元中,同时将所述当前接收到的数据发送给所述复数运算模块;
复数运算模块用于对接收到的数据进行乘法运算,并将结果发送给所述相关累加模块;
相关累加模块用于完成延迟相关累加运算,并将运算结果发送给所述功率计算及上报模块;
功率计算及上报模块用于对接收的相关累加结果进行功率估计,查找得到的功率估计值中的最大值,记录所述最大值的位置信息,并将所述最大值及其位置信息上报给上层。
所述数据预处理模块还用来统计发送给所述RAM模块的数据的个数,并判断所述统计到的个数是否小于等于预先配置的延迟相关计算长度值,若是,则继续将采集到的数据发送给RAM模块存储;否则,丢弃采集到的数据,同时关闭工作信号。
所述复数运算模块为两个具有饱和截位功能的乘法器。
所述复数运算模块为一个具有饱和截位功能的乘法器。
所述相关累加模块为一个具有饱和截位功能的累加器。
所述相关累加模块为一个FIFO缓存和一个具有饱和截位功能的累加器,所述FIFO缓存用于缓存所述复数运算模块发送来的数据。
一种实现CMMB信道时隙同步的方法,包括如下步骤:
步骤一:数据预处理模块检测当前采集到的数据是否是预先配置的同步信号的起始数据,若是,则启动工作信号,将采集到的数据发送给RAM模块,执行步骤二;否则,执行步骤一;
步骤二:所述RAM模块判断是否还有未被占用的存储单元,若是,则将当前接收到的数据存入未被占用的存储单元中,继续等待下一个数据的到来;否则,将存储单元中存储时间最长的数据读出给复数运算模块,并将当前接收到的数据存入该存储单元中,同时将所述当前接收到的数据发送给所述复数运算模块,执行步骤三;
步骤三:所述复数运算模块对接收到的数据进行乘法运算,并将结果发送给相关累加模块;所述累加模块对接收到的数据进行累加,将累加结果发送给功率计算及上报模块;所述功率计算及上报模块对所述累加结果进行功率估计,查找得到的功率估计值中的最大值,记录所述最大值的位置信息,并将所述最大值及其位置信息上报给上层。
所述步骤一中,所述数据预处理模块将采集到的数据发送给RAM模块的同时,还包括:统计采集到的数据的个数,并比较所述个数是否小于等于预先配置的延迟相关计算长度值,若是,则继续将采集到的数据发送给RAM模块;否则,丢弃采集到的数据,同时关闭工作信号。
本发明基于CMMB规范,为实现CMMB信道时隙同步提供了具体的方法和装置,为CMMB规范中关于同步信号的应用提供了途径。
附图说明
图1是本发明所述装置的原理框图;
图2现有技术中延迟相关累加原理框图;
图3是本发明改进的延迟相关累加原理框图。
具体实施方式
以下结合附图对本发明做进一步详细介绍。
由于CMMB协议对信道同步信号规定的是两段2048个数据重复信息作为信标同步信号,因此以下采用4096个点为例进行说明,当然本发明也适用于其他长度的同步。
如图1所示,是本发明所述装置的原理框图,包括数据预处理模块、RAM模块、复数运算模块以及功率计算及上报模块。
数据预处理模块用于采集数据,并检测当前采集到的数据是否是预先配置的同步信号的起始数据,若是,则产生工作信号,并将从所述起始数据开始采集到的数据发送给RAM模块存储;否则,继续检测当前采集到的数据是否是预先配置的同步信号的起始数据;该模块还用来统计发送给所述RAM模块的数据的个数,并判断所述统计到的个数是否小于等于预先配置的延迟相关计算长度值,若是,则继续将采集到的数据发送给RAM模块存储;否则,丢弃采集到的数据,同时关闭工作信号;比如,预先配置的延迟相关计算长度值为4197,则所述数据预处理模块检测到同步信号的起始数据后,即开始将采集到的数据发送给RAM模块,采集完4197个数据后,数据预处理模块即停止工作信号。
RAM模块用于存储接收到的数据;若接收到数据时所有存储单元均被占用,则将存储单元中存储时间最长的数据读出给所述复数运算模块,将当前接收到的数据存入该存储单元中,同时将所述当前接收到的数据发送给所述复数运算模块;如图2所示的实施例一中,RAM模块有4096个存储单元,在接收到1-4096个数据时直接将其存入存储单元中,而接收到第4097个数据时,首先将存储时间最长的数据即第1个数据读出,将第4097个数据存入第1个数据存储的单元中,同时将第4097个数据发送给所述复数运算模块,依次类推;如图3所示的实施例二中,RAM模块的存储单元为2048个,在接收到1-2048个数据时直接将其存入存储单元中,而在接收到第2049个数据时,首先将存储时间最长的数据即第1个数据读出,将第2049个数据存入第1个数据存储的单元中,同时将第2049个数据发送给所述复数运算模块,依次类推。
复数运算模块用于对接收到的数据进行乘法运算,并将结果发送给所述相关累加模块;如图2所示的实施例一中,所述复数运算模块由两个具有饱和截位功能的乘法器组成,即乘法器1和乘法器2,RAM模块中的前2048个数据通过公式:D(2048+n)*conjDn在乘法器1中完成乘法运算,其结果设为C1;后2048个数据通过公式:conj D(2048+n)*D(4096+n)在乘法器2中完成乘法运算,其结果设为C2;上述两个公式中的n为0或自然数,conjDn表示Dn的共轭;如图3所示的实施例二中,所述复数运算模块仅有一个具有饱和截位功能的乘法器,对接收到的数据通过公式conjDn*D(2048+n)进行乘法运算,其中n为0或自然数,conjDn表示Dn的共轭,计算完毕后将结果C一方面发送给图3中的FIFO缓存,一方面发送给累加器,这样不仅节省了一个复数乘法器,还可以提高电路利用效率提高,降低工作时候的峰值功耗。
相关累加模块用于完成延迟相关累加运算,并将运算结果发送给所述功率计算及上报模块;如图2所示的实施例一中,所述相关累加模块为一个具有饱和截位功能的累加器,乘法器1和乘法器2发送来的结果直接在该累加器中累加,相关累加公式为:ACC(n)=ACC(n-1)+C2-C1,其中,n为自然数,表示第n个数据,ACC(0)=0,从该公式中可以看出,需要两个乘法器,即本实施例中的乘法器1和乘法器2,不需要存储,若预先配置的延迟相关计算长度值为4196,则累加器会得到100个累加结果;如图3所示的实施例二中,所述相关累加模块为一个FIFO缓存和一个具有饱和截位功能的累加器,所述FIFO缓存由所述RAM模块映射而成,用于缓存接收到的数据;所述累加器用于对接收到的数据及FIFO溢出的数据进行累加,累加公式为:ACC(n)=C+ACC(n-1),如图3所示,乘法器发送来的前2048个数据一方面依次存入FIFO缓存中,一方面到累加器中累加,而以后发送来的数据会使FIFO缓存中最先进来的数据溢出,溢出的数据同样也到累加器中进行累加,若预先配置的延迟相关计算长度值为4196,则累加器会得到100个累加结果。
功率计算及上报模块用于对接收的相关累加结果进行功率估计,比较找出功率估计值中的最大值,记录所述最大值的位置信息,并将最大值及其位置信息上报给上层;比如,若预先配置的延迟相关计算长度值为4196,则该模块会得出100个功率估计值,找出其中较大的,记录位置信息并上报给上层。
本发明所述方法具体包括如下步骤:
步骤(1):数据预处理模块检测当前采集到的数据是否是预先配置的同步信号的起始数据,若是,则启动工作信号,执行步骤(2);否则,执行步骤(1);
步骤(2):所述数据预处理模块将当前采集到的数据发送给RAM模块,同时统计采集到的数据的个数;
步骤(3):所述RAM模块将当前接收到的数据依次存入存储单元中,若接收到数据时所有存储单元均被占用,则将存储单元中存储时间最长的数据读出给复数运算模块,将当前接收到的数据存入该存储单元中,同时将所述当前接收到的数据发送给所述复数运算模块;
步骤(4):所述数据预处理模块判断所述统计到的个数是否小于等于预先配置的延迟相关计算长度值,若是,则执行步骤(2);否则,丢弃采集到的数据,同时关闭工作信号,本次时隙同步结束;
步骤(5):复数运算模块对所述RAM模块发送来的数据进行乘法运算,将结果发送给相关累加模块进行累加;
步骤(6):所述相关累加模块将接收到的所述复数运算模块发送的乘法结果发送给累加器进行累加的同时还将所述乘法结果进行缓存,若所述缓存溢出,则溢出的数据也进入累加器累加;最后将相关累加结果发送给功率计算及上报模块;
步骤(7)所述功率计算及上报模块对相关累加结果进行功率估计,并比较得出所有功率估计值中的最大值,记录所述最大值的位置信息,并将所述最大值及其位置信息上报给上层。