張 鵬,楊 剛,楊 霏,劉昌銀
(中國(guó)傳媒大學(xué) 信息工程學(xué)院,北京 100024)
CMMB系統(tǒng)[1]使用發(fā)射機(jī)標(biāo)識(shí)序列標(biāo)識(shí)發(fā)射機(jī)所在的地區(qū),并可區(qū)分同一地區(qū)內(nèi)的不同發(fā)射機(jī)[2]。CMMB標(biāo)準(zhǔn)只給出了兩種帶寬模式下的256種發(fā)射機(jī)標(biāo)識(shí)序列,但沒(méi)有指出其中的規(guī)律。這些隨機(jī)序列雜亂無(wú)章,最直接的方法就是把它們都存儲(chǔ)在ROM存儲(chǔ)器內(nèi),通過(guò)查表生成,以發(fā)送和完成相關(guān)檢測(cè)。存儲(chǔ)CMMB發(fā)射機(jī)標(biāo)識(shí)序列需要58368 bit的大量存儲(chǔ)空間。
通過(guò)分析發(fā)射機(jī)標(biāo)識(shí)序列的特點(diǎn),筆者發(fā)現(xiàn),使用Hadamard矩陣[3]生成這些隨機(jī)序列很容易,僅需增加少量的邏輯資源,就能省去上述存儲(chǔ)器開銷。
N 階 Hadamard 矩陣簡(jiǎn)記為 HN矩陣,HN=[hij](0≤i,j≤N-1),其中 hij等于+1 或-1。 H1=[1],高階 Hadamard 矩陣可由低階遞推得到

因?yàn)镠adamard矩陣的行向量?jī)蓛烧唬匀绻l(fā)送的偽隨機(jī)序列是Hadamard矩陣的行向量,那么接收機(jī)就能采用Hadamard變換進(jìn)行相關(guān)檢測(cè)。
Hadamard矩陣僅由元素+1和-1構(gòu)成,可以認(rèn)為這是它的雙極性表示形式。雙極性空間{+1,-1}可映射為單極性空間{0,1},這樣Hadamard矩陣也可表示成單極性形式。雙極性空間的乘法運(yùn)算相當(dāng)于單極性空間的異或運(yùn)算。
CMMB標(biāo)準(zhǔn)采用了8 MHz和2 MHz兩種帶寬模式,規(guī)定了它們的頻域單極性發(fā)射機(jī)標(biāo)識(shí)序列。前者的發(fā)射機(jī)標(biāo)識(shí)序列長(zhǎng)191 bit,后者長(zhǎng)37 bit。標(biāo)準(zhǔn)中給出了兩種帶寬模式各自的256種隨機(jī)序列,但未說(shuō)明它們是如何得到的。
通過(guò)深入研究發(fā)現(xiàn),這些隨機(jī)序列表面上雜亂無(wú)章,實(shí)際上是有規(guī)律可循的。對(duì)于8 MHz帶寬模式,如果將第0種發(fā)射機(jī)標(biāo)識(shí)序列與所有發(fā)射機(jī)標(biāo)識(shí)序列異或,那么由所得序列可構(gòu)成191×256階矩陣,它恰好是256階單極性Hadamard矩陣的后191列構(gòu)成的子矩陣。類似地,2 MHz帶寬模式也是如此。 若將第 i(i=0,64,128,192)種發(fā)射機(jī)標(biāo)識(shí)序列與第i,i+1,…,i+63種發(fā)射機(jī)標(biāo)識(shí)序列異或,則由所得序列可構(gòu)成37×64階矩陣,它恰好是64階單極性Hadamard矩陣的后37列構(gòu)成的子矩陣。
如果將8 MHz帶寬模式的第0種發(fā)射機(jī)標(biāo)識(shí)序列和2 MHz帶寬模式的第0,64,128,192種發(fā)射機(jī)標(biāo)識(shí)序列視為掩碼序列,那么單極性Hadamard矩陣縮短后與掩碼序列異或即可得到所有發(fā)射機(jī)標(biāo)識(shí)序列。
下面以8 MHz帶寬模式為例說(shuō)明如何使用Hadamard矩陣產(chǎn)生和檢測(cè)CMMB發(fā)射機(jī)標(biāo)識(shí)序列,其方法同樣適用于2 MHz帶寬模式。
發(fā)射機(jī)要發(fā)送區(qū)域間和區(qū)域內(nèi)2個(gè)標(biāo)識(shí),奇數(shù)時(shí)隙發(fā)送區(qū)域標(biāo)識(shí),偶數(shù)時(shí)隙發(fā)送區(qū)域內(nèi)本機(jī)標(biāo)識(shí)。因?yàn)槊總€(gè)時(shí)隙只涉及1個(gè)標(biāo)識(shí),所以無(wú)須知道整個(gè)Hadamard矩陣的構(gòu)成,只要給出Hadamard矩陣對(duì)應(yīng)的那一行即可。
以 8 MHz帶寬模式第 i(i=0,1,…,255)行為例,i可表示為8位二進(jìn)制數(shù)b7b6b5b4b3b2b1b0,優(yōu)先級(jí)左高右低。單極性 Hadamard 矩陣行向量是{h0,h1,…,h255},長(zhǎng)度是256 bit。根據(jù)Hadamard矩陣的構(gòu)成特點(diǎn)可知,產(chǎn)生第i行向量的過(guò)程如下:
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}與掩碼異或,結(jié)果就是191 bit的第i個(gè)標(biāo)識(shí)序列。此外,利用上述迭代運(yùn)算可快速得出更高階Hadamard矩陣的任意一行。
如圖1所示,使用Hadamard矩陣檢測(cè)CMMB發(fā)射機(jī)標(biāo)識(shí)序列的過(guò)程是:接收機(jī)首先對(duì)硬判決得到的單極性發(fā)射機(jī)標(biāo)識(shí)序列去掩碼,然后變?yōu)殡p極性碼,再與縮短雙極性Hadamard矩陣相乘,最后通過(guò)比較找出最大相關(guān)值,并輸出其對(duì)應(yīng)的Hadamard矩陣行號(hào),即發(fā)射機(jī)標(biāo)識(shí)。

圖1 CMMB發(fā)射機(jī)標(biāo)識(shí)序列檢測(cè)過(guò)程
圖1中,與Hadamard矩陣的相乘可逐行進(jìn)行。每計(jì)算出一個(gè)相關(guān)值就與之前的最大相關(guān)值進(jìn)行比較,保存最大相關(guān)值及其對(duì)應(yīng)的行號(hào),以便與下一行相比。最后可以得到相關(guān)性最強(qiáng)的行號(hào),它對(duì)應(yīng)的截短單極性行向量最有可能是發(fā)送的發(fā)射機(jī)標(biāo)識(shí)序列。
與Hadamard矩陣相乘也可采用快速Hadamard變換(FHT)或逆快速 Hadamard 變換(IFHT)實(shí)現(xiàn)[4]。對(duì)于一個(gè) N階Hadamard矩陣,直接Hadamard變換的運(yùn)算量大約是N2次加減法;而FHT/IFHT是將該矩陣分解為m=lbN個(gè)相同的稀疏矩陣的乘積,利用蝶形運(yùn)算可將總運(yùn)算量減少為2mN次加減法,計(jì)算量減小可大幅提高檢測(cè)速度。
用Hadamard矩陣產(chǎn)生CMMB發(fā)射機(jī)標(biāo)識(shí)序列非常簡(jiǎn)單,而檢測(cè)稍顯復(fù)雜。發(fā)射機(jī)標(biāo)識(shí)序列相對(duì)固定,因此對(duì)接收端的檢測(cè)速度要求不高。為簡(jiǎn)化編程復(fù)雜度,筆者采用逐行與Hadamard矩陣相乘的檢測(cè)方法。歸根到底,CMMB發(fā)射機(jī)標(biāo)識(shí)序列的產(chǎn)生和檢測(cè)問(wèn)題的關(guān)鍵是如何產(chǎn)生Hadamard矩陣的某一行向量,而筆者很好地解決了這一問(wèn)題。
用FPGA產(chǎn)生和檢測(cè)CMMB發(fā)射機(jī)標(biāo)識(shí)序列的方法有兩個(gè):一是采用傳統(tǒng)的查表法;二是用Hadamard矩陣實(shí)現(xiàn)。表1和表2分別比較了這兩種方法產(chǎn)生和檢測(cè)CMMB發(fā)射機(jī)標(biāo)識(shí)序列的資源消耗。FPGA采用Altera公司的EP3C55,它有55858個(gè)LE和260塊M9K RAM,查找表存儲(chǔ)在片內(nèi)。

表1 產(chǎn)生發(fā)射機(jī)標(biāo)識(shí)序列的資源消耗

表2 檢測(cè)發(fā)射機(jī)標(biāo)識(shí)序列的資源消耗
與查表法相比,無(wú)論是產(chǎn)生還是檢測(cè)發(fā)射機(jī)標(biāo)識(shí)序列,Hadamard矩陣法都不需要存儲(chǔ)器,以增加邏輯單元為代價(jià),節(jié)省了前者所需的8塊M9K片內(nèi)RAM。與LE總量相比,LE的增量非常少,這說(shuō)明Hadamard矩陣法比查表法更可取。
筆者設(shè)計(jì)了一種基于Hadamard矩陣的CMMB發(fā)射機(jī)標(biāo)識(shí)序列的產(chǎn)生和檢測(cè)方法,在Altera公司的EP3C55 FPGA上實(shí)現(xiàn)了產(chǎn)生器和相關(guān)檢測(cè)器,它們能滿足CMMB系統(tǒng)的指標(biāo),最大限度地節(jié)約了存儲(chǔ)器開銷。在存儲(chǔ)器資源受限的場(chǎng)合下,本方法具有良好的工程實(shí)用價(jià)值。
[1]解偉.移動(dòng)多媒體廣播(CMMB)技術(shù)與發(fā)展[J].電視技術(shù),2008,32(4):4-7.
[2]國(guó)家廣播電影電視總局.GY/T220.1-2006,移動(dòng)多媒體廣播 第1部分:廣播信道幀結(jié)構(gòu)、信道編碼和調(diào)制[S].2006.
[3]樊昌信,曹麗娜.通信原理[M].6版.北京:國(guó)防工業(yè)出版社,2008.
[4]吳湛擊,吳偉陵.3GPP中的Reed-Muller編譯碼算法[J].電子學(xué)報(bào),2005,33(1):147-149.