发明内容
针对以上一个或多个问题,本发明提供了一种传输格式组合指示译码装置和方法。
本发明的传输格式组合指示译码装置包括:数据缓存器,用于缓存接收到的传输格式组合指示数据;去掩码模块,用于采用稀疏矩阵法对所缓存的传输格式组合指示数据进行去掩码操作,并恢复数据的符号和调整数据的顺序,使接收到的数据序列的符号属于哈达马序列集合中的一个哈达马序列;快速哈达马变换模块,用于对去掩码后的传输格式组合指示数据进行快速哈达马变换并得出传输格式组合指示数据与所有哈达马序列的相关值;最大值搜索模块,用于在多个相关值中搜索最大值,根据最大值确定译码前数据;以及计数器,用于为数据缓存器、去掩码模块和快速哈达马变换模块和最大值搜索模块提供时序控制信号。
去掩码模块包括:掩码序列存储模块,用于存储第一掩码序列;掩码符号选择器,用于根据计数器的计数值选择输出第一掩码序列的各个比特;补码选择模块,用于根据当前选择的掩码比特的符号决定是否对当前传输格式组合指示数据取补码;写使能选择器,用于按照计数器的计数值决定将快速哈达马变换模块中的哈达马变换寄存器组中的一个或多个写使能有效;以及掩码序列选择器,用于在需要去掩码的情况下输出数据。
快速哈达马变换模块包括:哈达马变换寄存器组,用于采用稀疏矩阵法进行快速哈达马变换,当哈达马变换寄存器使能时,哈达马变换寄存器组的输入数据是上一次的运算结果;以及加减法器组,用于进行加减法运算。
上述装置还包括最大值搜索模块,其中,最大值搜索模块包括:数据选择器,用于根据计数器的计数值从相关值中依次选择数据;绝对值电路,用于对选择的数据取绝对值;最大值寄存器,用于寄存数据;比较器,用于将取绝对值后的数据与最大值寄存器的值进行比较;译码电路输出寄存器,用于如果取绝对值后的数据大于最大值寄存器的值,则更新最大值寄存器的值,并保存计数器的计数值作为传输格式组合指示译码装置输出数据的低5比特,保存取绝对值前的最大相关值的最高位作为传输格式组合指示译码装置输出数据的第6比特,保存掩码序号指示作为传输格式组合指示译码装置输出数据的第7比特。
本发明的传输格式组合指示译码方法包括以下步骤:步骤S602,通过数据缓存器缓存接收到的传输格式组合指示数据;步骤S604,通过去掩码模块对所缓存的传输格式组合指示数据进行去掩码操作,并恢复数据的符号和调整数据的顺序,使接收到的数据序列的符号属于哈达马序列集合中的一个哈达马序列;步骤S606,通过快速哈达马变换模块,采用稀疏矩阵法对去掩码后的传输格式组合指示数据进行快速哈达马变换并得出传输格式组合指示数据与所有哈达马序列的相关值;步骤S608,通过最大值搜索模块在多个相关值中搜索最大值,并根据最大值确定译码前数据。
步骤S604包括:步骤a,将第一掩码序列存储到掩码序列存储模块中,并通过掩码符号选择器根据用于提供时序控制信号的计数器的计数值选择输出第一掩码序列的各个比特,并按照计数器的计数值决定将快速哈达马变换模块中的哈达马变换寄存器组中的一个或多个写使能有效;步骤b,补码选择模块根据当前选择的掩码比特的符号决定是否对当前传输格式组合指示数据取补码;以及步骤c,在需要去掩码的情况下输出数据。
在步骤S606中,哈达马变换寄存器组采用稀疏矩阵法进行快速哈达马变换,当哈达马变换寄存器使能时,哈达马变换寄存器组的输入数据是上一次的运算结果。
步骤S608包括:步骤a,数据选择器根据计数器的计数值从相关值中依次选择数据,并对选择的数据取绝对值;步骤b,比较器将取绝对值后的数据与最大值寄存器的值进行比较,如果取绝对值后的数据大于最大值寄存器的值,则更新最大值寄存器的值,并保存计数器的计数值作为传输格式组合指示译码装置输出数据的低5比特,保存取绝对值前的最大相关值的最高位作为传输格式组合指示译码装置输出数据的第6比特,保存掩码序号指示作为传输格式组合指示译码装置输出数据的第7比特。
通过使用快速哈达马变换完成对接收数据的相关运算,通过寻找最大相关值来确定最可能的编码前数据。本发明的主要优点是采用稀疏矩阵完成快速哈达马变换,完全删除了传统的蝶形快速哈达马变换所需要的蝶形交叉单元,大大降低了硬件资源。
具体实施方式
下面参考附图,详细说明本发明的具体实施方式。
通过观察下表1,发现若将第30行插入到第零行前,第31行插到第15行前,经此操作后如表2,前5列就是构造32阶哈达玛序列的生成矩阵。如公式(2):
I |
New index |
Mi,0 |
Mi,1 |
Mi,2 |
Mi,3 |
Mi,4 |
Mi,5 |
Mi,6 |
Mi,7 |
Mi,8 |
Mi,9 |
30 |
0 |
0 |
0 |
0 |
0 |
0 |
1 |
0 |
0 |
0 |
0 |
0 |
1 |
1 |
0 |
0 |
0 |
0 |
1 |
0 |
0 |
0 |
0 |
1 |
2 |
0 |
1 |
0 |
0 |
0 |
1 |
1 |
0 |
0 |
0 |
2 |
3 |
1 |
1 |
0 |
0 |
0 |
1 |
0 |
0 |
0 |
1 |
3 |
4 |
0 |
0 |
1 |
0 |
0 |
1 |
1 |
0 |
1 |
1 |
4 |
5 |
1 |
0 |
1 |
0 |
0 |
1 |
0 |
0 |
0 |
1 |
5 |
6 |
0 |
1 |
1 |
0 |
0 |
1 |
0 |
0 |
1 |
0 |
6 |
7 |
1 |
1 |
1 |
0 |
0 |
1 |
0 |
1 |
0 |
0 |
7 |
8 |
0 |
0 |
0 |
1 |
0 |
1 |
0 |
1 |
1 |
0 |
8 |
9 |
1 |
0 |
0 |
1 |
0 |
1 |
1 |
1 |
1 |
0 |
9 |
10 |
0 |
1 |
0 |
1 |
0 |
1 |
1 |
0 |
1 |
1 |
10 |
11 |
1 |
1 |
0 |
1 |
0 |
1 |
0 |
0 |
1 |
1 |
11 |
12 |
0 |
0 |
1 |
1 |
0 |
1 |
0 |
1 |
1 |
0 |
12 |
13 |
1 |
0 |
1 |
1 |
0 |
1 |
0 |
1 |
0 |
1 |
13 |
14 |
0 |
1 |
1 |
1 |
0 |
1 |
1 |
0 |
0 |
1 |
14 |
15 |
1 |
1 |
1 |
1 |
0 |
1 |
1 |
1 |
1 |
1 |
31 |
16 |
0 |
0 |
0 |
0 |
1 |
1 |
1 |
0 |
0 |
0 |
15 |
17 |
1 |
0 |
0 |
0 |
1 |
1 |
1 |
1 |
0 |
0 |
16 |
18 |
0 |
1 |
0 |
0 |
1 |
1 |
1 |
1 |
0 |
1 |
17 |
19 |
1 |
1 |
0 |
0 |
1 |
1 |
1 |
0 |
1 |
0 |
18 |
20 |
0 |
0 |
1 |
0 |
1 |
1 |
0 |
1 |
1 |
1 |
19 |
21 |
1 |
0 |
1 |
0 |
1 |
1 |
0 |
1 |
0 |
1 |
20 |
22 |
0 |
1 |
1 |
0 |
1 |
1 |
0 |
0 |
1 |
1 |
21 |
23 |
1 |
1 |
1 |
0 |
1 |
1 |
0 |
1 |
1 |
1 |
22 |
24 |
0 |
0 |
0 |
1 |
1 |
1 |
0 |
1 |
0 |
0 |
23 |
25 |
1 |
0 |
0 |
1 |
1 |
1 |
1 |
1 |
0 |
1 |
24 |
26 |
0 |
1 |
0 |
1 |
1 |
1 |
1 |
0 |
1 |
0 |
25 |
27 |
1 |
1 |
0 |
1 |
1 |
1 |
1 |
0 |
0 |
1 |
26 |
28 |
0 |
0 |
1 |
1 |
1 |
1 |
0 |
0 |
1 |
0 |
27 |
29 |
1 |
0 |
1 |
1 |
1 |
1 |
1 |
1 |
0 |
0 |
28 |
30 |
0 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
0 |
29 |
31 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
表2:行置换后的基本序列
其中hi是32阶哈达马序列,Gn,i矩阵是Mi,n矩阵的前5列的转置,cn是5比特的二进制序列。由此可以看出,32阶哈达马矩阵中的每一行都是Gn,j矩阵中行向量的一个线性组合,cn即是系数,由此构成了cn到哈达马矩阵行向量的一个映射,即cn=00000对应哈达马矩阵第0行,cn=00001对应哈达马矩阵第1行,cn=00010对应哈达马矩阵第2行,。。。cn=11111对应哈达马矩阵第31行。所以TFCI低5比特的编码就是将二进制比特表示的行序号映射到对应行的哈达马序列的一个过程,这种编码就是一阶里德-穆勒编码。由于哈达马序列是正交的,所以通过一阶里德-穆勒编码,使原来的5比特数据变成了32比特的正交数据,大大地增加了码间距离,增强了译码正确率。
由于一阶里德-穆勒编码后的序列是哈达马矩阵中的一个序列,所以接收端可以通过将编码后序列与哈达马矩阵相乘完成最大似然译码,与哈达马矩阵相乘就是求该序列与所有的哈达马序列的相关值,最大相关值所在行的哈达马序列与接收的序列最相似,该行序 号就是编码前的比特序列。与哈达马矩阵相乘的过程的简化算法叫快速哈达马变换,英文缩写为FHT。
但是采用一阶里德-穆勒编码是以降低编码率为代价的,它的编码率只有K/2K,其中K是编码前数据长度,2K是编码后数据长度。比如TFCI编码前数据长度是10比特,如果完全按照一阶里德-穆勒编码,那么编码后数据将达到1024比特,编码率太低将占用大量的传输资源。所以可以通过改变哈达马序列中的某些比特的符号产生新的序列来扩充编码后的序列集,这就是二阶里德-穆勒编码。取反序列和掩码序列就是符号的修改图案,取反序列及掩码序列的线性组合构成不同的符号修改图案,增加了经过符号修改的新序列虽然使编码后的数据码间距离变小,但同时也增加了编码前比特长度,提高了编码率。
由此可以看出,二阶里德-穆勒编码实际上是通过将哈达马序列符号修改扩充构成,在接收端可以通过先去掉所有可能掩码图案,再进行快速哈达马变换完成译码。
本发明采用了如下的技术方案,其特征是:
1:先将接收数据进行去掩码操作,恢复数据的符号,并调整数据的顺序,使接收的数据序列的符号在理论上属于哈达马序列集合中的一个。
2:用快速哈达马变换完成接收数据的相关,减少了运算量,快速算出接收数据序列与所有的哈达马序列的相关值。
3:在32个相关值中寻找最大值,根据最大似然准则,最大相关值所对应的哈达马序列就是接收数据的符号序列。
4:根据一阶里德-穆勒编码原理,该对应的哈达马序列在哈达马矩阵中的行数就是编码前数据的低5比特。由于实际应用中TFCI值不大于128,所以高3比特为0,中间两比特由掩码序列的序号和最大值的符号决定。
5:本发明根据哈达马矩阵的特点,采用稀疏矩阵完成快速哈达马变换,与传统的利用蝶形运算的快速哈达马变换相比,运算量完全相同,但由于不再需要蝶形交叉单元,减少了大量硬件资源。
6:本发明根据在实际应用中TFCI值不大于128的特点,只进行了两次快速哈达马变换,减少了译码时间,并减少了生成掩码的硬件资源,同时杜绝了将TFCI值错误译码到大于127的可能,从一定程度上来说提高了译码性能。
图1是根据本发明的传输格式组合指示译码装置(TFCI译码器)的结构图。如图1所示,TFCI译码器由数据缓存器11,去掩码模块(电路)12,快速哈达马变换模块(电路)13,最大值搜索模块(电路)14,计数器模块(电路)15构成。
数据缓存器用于缓存接收到的传输格式组合指示数据。
去掩码模块用于对所缓存的传输格式组合指示数据进行去掩码操作,并恢复数据的符号和调整数据的顺序,使接收到的数据序列的符号属于哈达马序列集合中的一个哈达马序列。
快速哈达马变换模块用于对去掩码后的传输格式组合指示数据进行快速哈达马变换并得出传输格式组合指示数据与所有哈达马序列的相关值。
最大值搜索模块用于在多个相关值中搜索最大值,根据最大值确定译码前数据。
计数器用于为数据缓存器、去掩码模块和快速哈达马变换模块和最大值搜索模块提供时序控制信号。
首先将32个接收数据存入缓存器,在开始译码时依次读取出数据,并根据掩码序列的符号决定是否将数据取补码,按照调整后顺序存入快速哈达马变换寄存器组,然后将对应的数据对进行加、减运算,并回存到寄存器组中,重复5次相同运算,此即完成了快速哈达马变换,这时快速哈达马变换寄存器组内保存的就是32个相关值,搜索其中绝对值最大的数保存起来,同时保存最大值所在的行序号和掩码序号。更改掩码序列,重新读取原始数据进行如上操作,将这次搜索的最大值与上一次的最大值进行绝对值比较,并决定是否更新最大值、行序号及掩码掩码序号。由于TFCI值不可能大于128,所以只用到了最低位的掩码序列,即掩码序号只能是0和1,对应的是掩码序列为全0和掩码序列为第1掩码序列的情况,由于只有两种掩码情况,所以只需进行两次以上过程就行了。保存的行序号做为TFCI的低5比特,保存的掩码序号做为第7比特,如果保存的最大值的符号为负,说明该哈达马序列被取反,因此TFCI的第6比特为1,否则为0,即保存的最大值的符号位做为第6比特,高3比特为全0。计数器为TFCI数据读取,掩码序列及掩码符号选择,快速哈达马变换及最大值搜索提供时序控制信号。
本发明在进行快速哈达马变换时采用了稀疏矩阵法进行变换,虽然在运算量上与传统的蝶形运算相同,但是由于稀疏矩阵法是将哈达马矩阵分解成相同的稀疏矩阵的K次幂,所以只需要连续K次做同相的运算就可以完成快速哈达马变换,比蝶形运算复杂的蝶形交叉相比较,大大的节约交叉所需要的选择器,节省了硬件资源。
传统的蝶形快速哈达马变换示意图如图2。
其中:
k=0,1,......,2m -1;i=1,2,....,m.
在上面的等式中,加法对应图2中“箭头朝上”的分支;而减法对应图2中“箭头朝下”的分支。如 and 依此类推。
由图可以看出这种快速哈达马变换每次蝶形运算包含次2m加减运算,需作m次,所以共需2m*m加减运算,而直接变换则需要2m*(2m-1)次加减运算,运算量指数倍减少。
现在再讨论一下稀疏矩阵法,定义一个新矩阵G4为:
G4乘以它本身等于H2,即G4 2=H2
由此可见,一个四阶哈达马矩阵可以写成两个矩阵的乘积。通过数学论证,当N=2k时,有
可见一个哈达马矩阵可以拆成k个相同稀疏矩阵的乘积,该矩阵的每一行和每一列只含有两个非零元素。虽然运算量同传统的蝶形运算相同,但由于结构简单,因此利用稀疏矩阵进行快速哈达马变换在硬件实现上更有优势。
图3是去掩码电路的结构图。去掩码电路由掩码序列(第1掩码序列)存储模块31,掩码符号选择器32,补码选择模块(电路)33,写使能选择器34及掩码序列选择器35构成。
掩码序列存储模块用于存储第一掩码序列。掩码符号选择器用于根据计数器的计数值选择输出第一掩码序列的各个比特。补码选择模块用于根据当前选择的掩码比特的符号决定是否对当前传输格式组合指示数据取补码。写使能选择器,用于按照计数器的计数值决定将快速哈达马变换模块中的哈达马变换寄存器组中的一个或多个写使能有效。掩码序列选择器,用于在需要去掩码的情况下输出数据。
第1掩码序列实际上就是一个固定的32比特的二进制电平序列0101_0000_1100_0111_1100_0001_1101_1101,掩码符号选择器根据计数器值选择输出第1掩码序列的各个比特,补码选择电路根据当前选择的掩码比特的符号决定是否对当前TFCI数据取补码,写使能选择器由按照计数器值决定将快速哈达马变换寄存器组中的哪个寄存器写使能有效,由此来完成数据顺序的调整,掩码序列选择器根据是否需要去掩码来决定数据的输出。
采用稀疏矩阵进行快速哈达马变换的电路结构如图4。包括快速哈达马变换寄存器组41,加减法器组42。
哈达马变换寄存器组用于采用稀疏矩阵进行快速哈达马变换,当哈达马变换寄存器使能时,哈达马变换寄存器组的输入数据是上一次的运算结果。加减法器组用于进行加减法运算。
哈达马变换寄存器组的初始赋值由去掩码电路完成,当快速哈达马变换使能时,哈达马变换寄存器组的输入数据是上一次的运算结果。由计数器值控制运算的次数,完成一次快速哈达马变换需要5次运算。由图可见利用稀疏矩阵法完成哈达马运算只需要16个加法器及16个减法器,不需要任何交叉单元。
最大相关值搜索电路如图5。最大相关值搜索电路由数据选择器51,绝对值模块(电路)52,比较器53,最大值寄存器54及TFCI译码输出寄存器55组成。
数据选择器用于根据计数器的计数值从相关值中依次选择数据。绝对值电路用于对选择的数据取绝对值。最大值寄存器用于寄存数据。比较器用于将取绝对值后的数据与最大值寄存器的值进行比较。译码电路输出寄存器用于如果取绝对值后的数据大于最大值寄存器的值,则更新最大值寄存器的值,并保存计数器的计数值作为传输格式组合指示译码装置输出数据的低5比特,保存取绝对值前的最大相关值的最高位作为传输格式组合指示译码装置输出数据的第6比特,保存掩码序号指示作为传输格式组合指示译码装置输出数据的第7比特。
首先将最大值寄存器归零,数据选择器根据计数器值从32个相关值中依次选择数据进行取绝对值后与最大值寄存器的值进行比较,如果大于原保存值,更新最大值寄存器,并保存计数器值作为TFCI译码输出数据的低5比特,保存取绝对值前的最大相关值的最高位到TFCI译码输出寄存器的第6比特,保存掩码序号指示到TFCI 译码输出寄存器的第7位。计数器一个循环后就完成了32个相关值数据的最大值搜索,对应两种不同的掩码共进行两次搜索。
如图6所示,本发明的传输格式组合指示译码方法包括以下步骤:步骤S602,通过数据缓存器缓存接收到的传输格式组合指示数据;步骤S604,通过去掩码模块对所缓存的传输格式组合指示数据进行去掩码操作,并恢复数据的符号和调整数据的顺序,使接收到的数据序列的符号属于哈达马序列集合中的一个哈达马序列;步骤S606,通过快速哈达马变换模块,采用稀疏矩阵法对去掩码后的传输格式组合指示数据进行快速哈达马变换并得出传输格式组合指示数据与所有哈达马序列的相关值;步骤S608,通过最大值搜索模块在多个相关值中搜索最大值,并根据最大值确定译码前数据。
步骤S604包括:步骤a,将第一掩码序列存储到掩码序列存储模块中,并通过掩码符号选择器根据用于提供时序控制信号的计数器的计数值选择输出第一掩码序列的各个比特,并按照计数器的计数值决定将快速哈达马变换模块中的哈达马变换寄存器组中的一个或多个写使能有效;步骤b,补码选择模块根据当前选择的掩码比特的符号决定是否对当前传输格式组合指示数据取补码;以及步骤c,在需要去掩码的情况下输出数据。
在步骤S606中,哈达马变换寄存器组采用稀疏矩阵进行快速哈达马变换,当哈达马变换寄存器使能时,哈达马变换寄存器组的输入数据是上一次的运算结果。
步骤S608包括:步骤a,数据选择器根据计数器的计数值从相关值中依次选择数据,并对选择的数据取绝对值;步骤b,比较器将取绝对值后的数据与最大值寄存器的值进行比较,如果取绝对值后的数据大于最大值寄存器的值,则更新最大值寄存器的值,并保存计数器的计数值作为传输格式组合指示译码装置输出数据的低5 比特,保存取绝对值前的最大相关值的最高位作为传输格式组合指示译码装置输出数据的第6比特,保存掩码序号指示作为传输格式组合指示译码装置输出数据的第7比特。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。