Hadamard矩阵在CMMB发射机标识中的应用
2010-06-07刘昌银
张 鹏,杨 刚,杨 霏,刘昌银
(中国传媒大学 信息工程学院,北京 100024)
1 引言
CMMB系统[1]使用发射机标识序列标识发射机所在的地区,并可区分同一地区内的不同发射机[2]。CMMB标准只给出了两种带宽模式下的256种发射机标识序列,但没有指出其中的规律。这些随机序列杂乱无章,最直接的方法就是把它们都存储在ROM存储器内,通过查表生成,以发送和完成相关检测。存储CMMB发射机标识序列需要58368 bit的大量存储空间。
通过分析发射机标识序列的特点,笔者发现,使用Hadamard矩阵[3]生成这些随机序列很容易,仅需增加少量的逻辑资源,就能省去上述存储器开销。
2 Hadamard矩阵
N 阶 Hadamard 矩阵简记为 HN矩阵,HN=[hij](0≤i,j≤N-1),其中 hij等于+1 或-1。 H1=[1],高阶 Hadamard 矩阵可由低阶递推得到
因为Hadamard矩阵的行向量两两正交,所以如果发送的伪随机序列是Hadamard矩阵的行向量,那么接收机就能采用Hadamard变换进行相关检测。
Hadamard矩阵仅由元素+1和-1构成,可以认为这是它的双极性表示形式。双极性空间{+1,-1}可映射为单极性空间{0,1},这样Hadamard矩阵也可表示成单极性形式。双极性空间的乘法运算相当于单极性空间的异或运算。
3 CMMB发射机标识序列的特征
CMMB标准采用了8 MHz和2 MHz两种带宽模式,规定了它们的频域单极性发射机标识序列。前者的发射机标识序列长191 bit,后者长37 bit。标准中给出了两种带宽模式各自的256种随机序列,但未说明它们是如何得到的。
通过深入研究发现,这些随机序列表面上杂乱无章,实际上是有规律可循的。对于8 MHz带宽模式,如果将第0种发射机标识序列与所有发射机标识序列异或,那么由所得序列可构成191×256阶矩阵,它恰好是256阶单极性Hadamard矩阵的后191列构成的子矩阵。类似地,2 MHz带宽模式也是如此。 若将第 i(i=0,64,128,192)种发射机标识序列与第i,i+1,…,i+63种发射机标识序列异或,则由所得序列可构成37×64阶矩阵,它恰好是64阶单极性Hadamard矩阵的后37列构成的子矩阵。
如果将8 MHz带宽模式的第0种发射机标识序列和2 MHz带宽模式的第0,64,128,192种发射机标识序列视为掩码序列,那么单极性Hadamard矩阵缩短后与掩码序列异或即可得到所有发射机标识序列。
下面以8 MHz带宽模式为例说明如何使用Hadamard矩阵产生和检测CMMB发射机标识序列,其方法同样适用于2 MHz带宽模式。
4 CMMB发射机标识序列的产生
发射机要发送区域间和区域内2个标识,奇数时隙发送区域标识,偶数时隙发送区域内本机标识。因为每个时隙只涉及1个标识,所以无须知道整个Hadamard矩阵的构成,只要给出Hadamard矩阵对应的那一行即可。
以 8 MHz带宽模式第 i(i=0,1,…,255)行为例,i可表示为8位二进制数b7b6b5b4b3b2b1b0,优先级左高右低。单极性 Hadamard 矩阵行向量是{h0,h1,…,h255},长度是256 bit。根据Hadamard矩阵的构成特点可知,产生第i行向量的过程如下:
1)初始化h0=0。
2)若 b0=0,则 h1=h0;否则,h1是 h0的非,即 h1=~h0。
3)若 b1=0,则{h2,h3}={h0,h1};否则,{h2,h3}=~{h0,h1}。
4)依此类推。若 bj=0(j=0,1,…,7),则{h2j,h2j+1,…,h2j+1-1}={h0,h1,…,h2j-1};否则,{h2j,h2j+1,…,h2j+1-1}=~{h0,h1,…,h2j-1}。
去掉第i行向量的前65 bit,将缩短的单极性Hadamard 矩阵行向量{h65,h66,…,h255}与掩码异或,结果就是191 bit的第i个标识序列。此外,利用上述迭代运算可快速得出更高阶Hadamard矩阵的任意一行。
5 CMMB发射机标识序列的检测
如图1所示,使用Hadamard矩阵检测CMMB发射机标识序列的过程是:接收机首先对硬判决得到的单极性发射机标识序列去掩码,然后变为双极性码,再与缩短双极性Hadamard矩阵相乘,最后通过比较找出最大相关值,并输出其对应的Hadamard矩阵行号,即发射机标识。
图1 CMMB发射机标识序列检测过程
图1中,与Hadamard矩阵的相乘可逐行进行。每计算出一个相关值就与之前的最大相关值进行比较,保存最大相关值及其对应的行号,以便与下一行相比。最后可以得到相关性最强的行号,它对应的截短单极性行向量最有可能是发送的发射机标识序列。
与Hadamard矩阵相乘也可采用快速Hadamard变换(FHT)或逆快速 Hadamard 变换(IFHT)实现[4]。对于一个 N阶Hadamard矩阵,直接Hadamard变换的运算量大约是N2次加减法;而FHT/IFHT是将该矩阵分解为m=lbN个相同的稀疏矩阵的乘积,利用蝶形运算可将总运算量减少为2mN次加减法,计算量减小可大幅提高检测速度。
6 实验分析
用Hadamard矩阵产生CMMB发射机标识序列非常简单,而检测稍显复杂。发射机标识序列相对固定,因此对接收端的检测速度要求不高。为简化编程复杂度,笔者采用逐行与Hadamard矩阵相乘的检测方法。归根到底,CMMB发射机标识序列的产生和检测问题的关键是如何产生Hadamard矩阵的某一行向量,而笔者很好地解决了这一问题。
用FPGA产生和检测CMMB发射机标识序列的方法有两个:一是采用传统的查表法;二是用Hadamard矩阵实现。表1和表2分别比较了这两种方法产生和检测CMMB发射机标识序列的资源消耗。FPGA采用Altera公司的EP3C55,它有55858个LE和260块M9K RAM,查找表存储在片内。
表1 产生发射机标识序列的资源消耗
表2 检测发射机标识序列的资源消耗
与查表法相比,无论是产生还是检测发射机标识序列,Hadamard矩阵法都不需要存储器,以增加逻辑单元为代价,节省了前者所需的8块M9K片内RAM。与LE总量相比,LE的增量非常少,这说明Hadamard矩阵法比查表法更可取。
7 小结
笔者设计了一种基于Hadamard矩阵的CMMB发射机标识序列的产生和检测方法,在Altera公司的EP3C55 FPGA上实现了产生器和相关检测器,它们能满足CMMB系统的指标,最大限度地节约了存储器开销。在存储器资源受限的场合下,本方法具有良好的工程实用价值。
[1]解伟.移动多媒体广播(CMMB)技术与发展[J].电视技术,2008,32(4):4-7.
[2]国家广播电影电视总局.GY/T220.1-2006,移动多媒体广播 第1部分:广播信道帧结构、信道编码和调制[S].2006.
[3]樊昌信,曹丽娜.通信原理[M].6版.北京:国防工业出版社,2008.
[4]吴湛击,吴伟陵.3GPP中的Reed-Muller编译码算法[J].电子学报,2005,33(1):147-149.