專利名稱:一種塊譯碼方法、譯碼器及接收終端的制作方法
技術領域:
本發明涉及移動通信技術領域,尤其涉及長期演進LTE系統中的一種塊譯碼方法 以及對應實現該塊譯碼方法的譯碼器,應用該譯碼器的接收終端。
背景技術:
在通信系統中,傳統的塊譯碼算法比較復雜,而基于快速Hadamard (哈達馬)變換 FHT的塊譯碼能將譯碼實現的復雜度大大降低,方便工程實現,具有很大的實用價值。在LTE (Long Term Evolution,長期演進)協議TS36. 212中規范了兩種塊編碼方 式,分別是00,A)編碼與(32,0)編碼。其中00,A)編碼,用于 PUCCH(Physical Uplink Control Channel,物理上行控制信 道)中的 CQI (Channel Quality hdicator,信道質量指示符)/PMI (Precoding Matrix hdicator,預編碼矩陣指示符)信息的編碼;(32,0)編碼,用于在 PUSCH(Physical Uplink Shared Channel,物理上行共享信 道)上傳輸的CQI (Channel Quality hdicator,信道質量指示符)/PMI (Precoding Matrix hdicator,預編碼矩陣指示符)信息(初始碼長小于或等于11比特),以及HARQ-ACK信息 (初始碼長大于2比特)的編碼。上述兩種塊編碼方法的關系是(32,0)編碼是繼承于Q0,A)編碼。如圖1所示, 分別顯示出了 O0,A)編碼的基序列矩陣,和(32,0)編碼的基序列矩陣,同時還標示了前6 列為對應的RM(ReecLMuler碼)母碼經過行列置換后生成的基礎子集,標示了后7列為掩 碼子集。其中,對于O0,A)編碼而言其掩碼子集有7列,對于(32,0)編碼而言其掩碼子集 有5列。針對上述00,Α)、(32,0)兩種編碼方式,塊編碼的基本編碼方法分別如下所示對于(20,Α)編碼,輸入輸出 b0,b1 b2, b3,· · ·,bB—” B = 20,bl = γ^{αη -Afi Jmod2 , i = 0,1,2,· · ·,B-I ;
=0對于(32,0)編碼,輸入
輸出 b0,b1 b2, b3,· · ·,bB—” B = 32,bt = ^ian -Mz Jmod 2,I = 0,1,2,· · ·,B_l。
n=0對長期演進LTE系統而言,針對上述兩種塊編碼方法,目前分別需要對應譯碼器 進行譯碼實現,存在實現復雜、成本高、無法統一為一個譯碼方法的問題。
發明內容
本發明所要解決的技術問題在于,提供一種塊譯碼方法、譯碼器及接收終端,用于 解決現有針對LTE系統的塊編碼缺少統一的譯碼方案的問題,實現統一的塊譯碼。為了解決上述問題,本發明提出了一種塊譯碼方法,包括將待譯碼數據的輸入序列調整為統一比特位數后進行數據置換;根據初始信息的長度判斷置換后的數據是否需要去掩碼處理,若需要則進行去掩碼處理;對于無需去掩碼處理或去掩碼之后的置換后數據進行快速Hadamard變換;從快 速Hadamard變換得到的矩陣中搜索出最大值;根據所述最大值及其對應的行標、列標進行 譯碼輸出。其中,所述將待譯碼數據的輸入序列調整為統一比特位數,是指對于輸入序列小 于統一比特位數的向量,將不足位數的部分予以補零處理;對于輸入序列超過統一比特位 數的向量,從前向后截取統一比特位數即可。所述輸入序列是(32,0)編碼的輸入序列,或者00,A)編碼的輸入序列。所述統一比特位數是32比特位數。所述塊譯碼方法進一步包括在完成數據置換之后,將置換后數據的基序列矩陣 直接存入存儲器。所述置換后數據的基序列矩降是掩碼基序列,在存儲器中僅存儲基序列 中的掩碼子集。所述根據初始信息的長度判斷置換后的數據是否需要去掩碼處理,是指判斷初始 信息的長度是否小于或等于6比特來判斷是否存在掩碼如果小于或等于6比特,不做去掩碼處理,直接進行快速Hadamard變換;如果大于6比特,則進行去掩碼處理,在去掩碼處理后再進行快速Hadamard變換。所述搜索最大值的步驟中若初始信息長度L大于或等于6比特時,則在UX 2m的矩陣中進行搜索,找出其中 絕對值最大的元素作為最大值,其中U為統一比特位數,m = L-6 ;若初始信息長度k小于6比特時,則在UXl的向量中的前個元素中搜索絕對 值最大的元素作為最大值,其中U為統一比特位數。本發明還提供一種譯碼器,包括數據置換模塊,用于接收待譯碼數據,將待譯碼的數據的輸入序列調整為統一位 數后進行置換;去掩碼模塊,用于在初始信息的長度大于6比特時,對置換后的數據進行去掩碼 處理;快速Hadamard變換模塊,用于從數據置換模塊接收初始信息的長度小于或等于6 比特的置換后的數據,或者從去掩碼模塊接收去除掩碼的數據,并對所接收的數據進行快 速Hadamard變換;最大值搜索模塊,用于從快速Hadamard變換得到的矩陣中搜索出最大值,輸出該 最大值及其對應的行標和列標至譯碼輸出模塊;譯碼輸出模塊,用于根據所述最大值、行標、列標進行譯碼輸出。本發明還提供一種接收終端,該接收終端包括譯碼器,所述的譯碼器包括數據置換模塊,用于接收待譯碼數據,將待譯碼的數據的輸入序列調整為統一位 數后進行置換;去掩碼模塊,用于在初始信息的長度大于6比特時,對置換后的數據進行去掩碼 處理;快速Hadamard變換模塊,用于從數據置換模塊接收初始信息的長度小于或等于6 比特的置換后的數據,或者從去掩碼模塊接收去除掩碼的數據,并對所接收的數據進行快速Hadamard變換;最大值搜索模塊,用于從快速Hadamard變換得到的矩陣中搜索出最大值,輸出該 最大值及其對應的行標和列標至譯碼輸出模塊;譯碼輸出模塊,用于根據所述最大值、行標、列標進行譯碼輸出。本發明提出的塊譯碼方法、譯碼器及接收終端,能夠將(32,0)和Q0,A)兩種編碼 的譯碼器統一起來,針對上述兩種譯碼器,通過調整輸入序列,統一比特位數后進行置換, 再利用FHT變換實現快速譯碼,本發明進一步,還可通過僅存儲置換后的掩碼子集來縮減 存儲量,有利于開發實現。
圖1是LTE系統中兩種塊編碼的基序列示意圖;圖2是本發明實施例中實現塊譯碼方法的流程圖;圖3是本發明實施例中(32,0)、(20, Α)混合置換示意圖;圖4是本發明實施例中實現譯碼輸出判決的流程圖;圖5是本發明實施例中的譯碼器的模塊圖。
具體實施例方式為使本發明的目的、技術方案和優點更加清楚,以下結合附圖對本發明作進一步 地詳細說明。本發明所提供的塊譯碼方法、譯碼器及接收終端,對于(32,0)、(20, Α)兩種編碼 的譯碼方式進行了統一,可以統一成一個譯碼器進行實現,節省資源,方便開發實現。本發明的塊譯碼方法,包括將待譯碼數據的輸入序列調整為統一比特位數后進行數據置換;根據初始信息的 長度判斷置換后的數據是否需要去掩碼處理,若需要則進行去掩碼處理;對于無需去掩碼處理或去掩碼之后的置換后數據進行快速Hadamard變換;從快 速Hadamard變換得到的矩陣中搜索出最大值;根據所述最大值及其對應的行標、列標進行 譯碼輸出。其中,將待譯碼數據的輸入序列調整為統一比特位數,是指對于輸入序列小于統 一比特位數的向量,將不足位數的部分予以補零處理;對于輸入序列超過統一比特位數的 向量,從前向后截取統一比特位數即可。所述輸入序列是(32,0)編碼的輸入序列,或者00,Α)編碼的輸入序列。所述統 一比特位數是32比特位數。所述塊譯碼方法進一步包括在完成數據置換之后,將置換后數據的基序列矩陣 直接存入存儲器。如圖2所示,顯示了本發明中實現塊譯碼方法的流程圖,所述塊譯碼方法包括如 下步驟步驟201,調整輸入序列,對調整后的待譯碼的數據進行置換;根據背景技術中的描述可知,對于編碼的基序列而言,是由RM母碼通過一系列的 行列置換得到的,所以對于接收到的待譯碼數據而言,為了快速Hadamard(哈達馬)變換FHT的正確使用,首先便要對待譯碼的數據進行置換。對于LTE系統中的兩種塊編碼算法而 言,其對應的置換關系如圖3所示,圖中陰影部分表示Q0,A)譯碼的置換,而整個序列表示 (32,0)譯碼的置換。為了在后續的計算中能夠使用統一的Hadamard矩陣進行快速Hadamard變換,在 進行置換前,需要調整輸入序列,將輸入序列調整為統一比特位數,例如,對于00,Α)譯碼 或類似輸入序列小于32比特的向量而言,應將輸入序列不足32位的部分予以補零處理;對 于輸入序列超過32比特的向量而言,取前32位進行譯碼即可。對于背景技術中描述的LTE系統中的基序列矩陣,在譯碼時,先將已經完成置換 的基序列矩陣直接存入存儲器(例如內存Memory)中即可,譯碼時直接讀取。由于在譯碼過程中只使用到了掩碼基序列,較佳的,只需要存儲圖1所示的基序 列圖示中的后七列(掩碼子集)即可,這樣可以減少存儲器(例如內存Memory)的大小,降 低成本及系統資源開銷。步驟202,判斷是否存在掩碼,若存在則進行去掩碼處理;其中,可以通過判斷初始信息的長度是否小于或等于6比特來判斷是否存在掩 碼如果小于或等于6比特,就表明編碼時該信息沒有受到掩碼子集的影響,不用做去掩碼 處理,可直接進行快速Hadamard變換;反之,如果大于6比特,則要進行去掩碼的處理,進行 去掩碼處理后再進行快速Hadamard變換;步驟203,快速Hadamard變換,計算出Hadamard矩陣和輸入向量的相關值向量,它 主要利用了蝶形運算來減少運算量。有很多方法可以求得Hadamard矩陣和輸入向量的相關值向量,但是其中快速 Hadamard變換是最優最快的。步驟204,搜索最大值。對于最大值搜索而言,在譯碼算法中需要分類進行處理(1)對于大于或等于6比特的初始信息長度而言,最大值的搜索是在對應的 32X2m(如果初始信息長度為L,那么m = L-6)矩陣中進行,找出其中絕對值最大的那個元 素,輸出對應的最大值及其行標和列標至譯碼輸出模塊;(2)對于小于6比特的初始信息長度而言,首先令其初始信息長度為k,而后在 32X1的向量中的前2k—1個元素中搜索絕對值最大的那個元素,輸出對應的最大值及其行 標和列標至譯碼輸出模塊。步驟205,譯碼輸出。根據從步驟204中進行最大值搜索的步驟中得到的相關參數(最大值及其行標和 列標)進行譯碼輸出即可。進行譯碼輸出的具體步驟可以參見圖4所示的譯碼輸出判決的 流程圖。如圖4所示,顯示了根據最大值、行標、列標進行譯碼輸出的判決流程圖。其中 根據最大值,可以獲得譯碼輸出的Idci值。具體方式為首先判斷最大值是否為 正,若為正,則令k = 0,若為負,則令k = 1 ;這就獲得了譯碼輸出的k值; 根據行標,可以獲得譯碼輸出的Id1 b5。具體方式為首先將行標轉換為二進 制數,再進行二進制位倒序,將倒序輸出的二進制位作為h b5 ; 根據列標,可以獲得譯碼輸出的b6 b12。具體方式為首先將列標轉換為二進 制數,將轉換后的二進制數值作為b6 b12 ;
最后,將bQ,ID1 b5,b6 b12依次組合為bQ b12作為輸出解碼信息,且輸出長 度等于原始信息長度。基于上述譯碼方法,如圖5所示,顯示了本發明的一種譯碼器500,該譯碼器包括數據置換模塊501,用于接收待譯碼數據,對待譯碼的數據進行置換。為了能夠使用統一的Hadamard矩陣進行快速Hadamard變換,在進行置換前,對于 (20,A)譯碼或類似輸入序列小于32比特的向量而言,應將輸入序列不足32位的部分予以 補零處理;對于輸入序列超過32比特的向量而言,取前32位進行譯碼即可。對于LTE系統中的兩種塊編碼算法而言,其對應的置換關系如圖3所示,圖中陰影 部分表示00,A)譯碼的置換,而整個序列表示(32,0)譯碼的置換。在譯碼時,先將已經完成置換的基序列矩陣直接存入存儲器(例如內存Memory) 中即可,譯碼時直接讀取。由于在譯碼過程中只使用到了掩碼基序列,較佳的,只需要存儲 圖1所示的基序列圖示中的后七列(掩碼子集)即可,這樣可以減少存儲器(例如內存 Memory)的大小,降低成本及系統資源開銷。去掩碼模塊502,用于在初始信息的長度大于6比特時,則對置換后的數據要進行 去掩碼的處理;快速Hadamard變換模塊503,用于從數據置換模塊501接收初始信息的長度小于 或等于6比特的置換后的數據,或者從去掩碼模塊502接收去除掩碼的數據,并對所接收的 數據進行快速Hadamard變換;最大值搜索模塊504,用于從快速Hadamard變換得到的矩陣中搜索出最大值,輸 出該最大值及其對應的行標和列標至譯碼輸出模塊505 ;譯碼輸出模塊505,用于根據所述最大值、行標、列標進行譯碼輸出。譯碼輸出的具 體方式可參見圖4及對應描述,在此不再贅述。基于上述譯碼器,本發明還可提供一種帶有圖5所示譯碼器的接收終端,用于對 接收數據進行譯碼輸出,完成譯碼過程。該接收終端的譯碼器在進行進行置換前,對于00, A)譯碼或類似輸入序列小于32比特的向量而言,應將輸入序列不足32位的部分予以補零 處理;對于輸入序列超過32比特的向量而言,取前32位進行譯碼即可。這樣就可以使用統 一的Hadamard矩陣進行快速Hadamard變換,并進一步根據快速Hadamard變換結果進行譯 碼輸出。具體譯碼步驟可參見關于圖5所示譯碼器及圖2所示譯碼方法的詳細描述,在此 不再贅述。下面以(32,0)的譯碼為例,具體說明本發明的塊譯碼的應用實例。對于LTE中(32,0)的譯碼,對于CQI原始信息長度為8的序列,其經過(32,0)編 碼、調制、加噪聲、解調之后得到的序列為[-0. 34380.4688-0. 6250-0..75000 6250-0.8750
-0.5313-0. 50000. 6875-0..90630 4688-0.2813
0.5313-0.7188-0. 5938-0..56250 9375-0.6250
-0.6250-0.53130. 2813-1..1563-0. 7813-0.6250
0. 59380.7500-0.71880. !3750-1. 0625-1.03130. 2188 0. 8438]第一步,對輸入向量進行置換處理,上述的輸入向量置換后變為
。第二步,判斷是否存在掩碼,若存在則進行去掩碼處理。由于初始信息的長度為8, 大于6比特,所以要進行去掩碼處理,32 X 2m(m = 8-6 = 2)矩陣去掩碼后的結果為32X4 的矩陣如下
0099]-0.8438-0. 8438-0.8438-0.84380100]0. 34380. 34380.34380. 34380101]-0.2813-0.28130.28130. 28130102]-0. 4688-0. 4688-0.4688-0.46880103]0. 62500.6250-0.6250-0.62500104]1. 15631. 15631. 15631. 15630105]0. 75000.75000. 75000. 75000106]-0. 62500. 6250-0.62500.62500107]0. 7813-0.78130. 7813-0.78130108]0. 8750-0. 8750-0. 87500. 87500109]0.53130.5313-0.5313-0.53130110]0. 62500.62500.62500.62500111]0.5000-0. 50000. 5000-0.50000112]-0. 68750. 6875-0.68750. 68750113]0. 90630. 9063-0.9063-0.90630114]-0. 59380.59380. 5938-0.59380115]0.53130.5313-0.5313-0.53130116]-0.75000. 75000.7500-0.75000117]-0. 46880. 46880. 4688-0.46880118]0. 28130. 2813-0.2813-0.28130119]-0.53130.5313-0.53130.53130120]0.7188-0.71880.7188-0.71880121]0.71880.71880.71880.71880122]-0. 87500.8750-0. 87500.87500123]0. 5938-0.59380.5938-0.59380124]0. 5625-0. 5625-0.56250.56250125]1. 06251. 0625-1. 0625-1. 06250126]-0.9375-0.93750. 93750. 93750127]0. 62500.62500. 62500. 62500128]0. 6250-0. 6250-0.62500.62500131]去掩碼的具體方式,為本領域技術人員所熟悉,在此不再贅述。
0132]第三步、快速Hadamard變換。變換后的結果為32X4的矩陣如下
0165]第四步、搜索最大值,獲取最大值及相關信息。
0166]搜索第三步中FHT變換后的結果為32X4的矩陣,從中找到其絕對值最大的元素 為方框圈出的位置,可知其行標為12,列標為3。
第五步、根據最大值及相關信息進行譯碼輸出。其中,行數為32,行標的范圍就是0 31,所以采用5位二進制表示,對于列標來 說,根據算法已經限定其列數不會超過4,所以列標范圍為0 3,采用2位二進制可以表
7J\ ο在本例中由于搜索到的-21. 125為負值,如果約定為1,所以譯碼輸出結果首位為 1 ;其對應行標為12,則對其進行二進制轉換時,將12-1 = 11轉換為二進制01011,然后逆 序輸出排在第2 6位;其對應列標為3,則對其進行二進制轉換時,將3-1 = 2進行二進 制轉換為10順序輸出到第7 8位,所以得到最終的譯碼結果為[1110 10 10]。假定搜索到的最大值為正值(例如21. 125),如果約定為0,則譯碼輸出結果首位 為0,且行標為12,列標為3,則按照上述方法,可得到最終的譯碼結果為
。以上所述僅為本發明的實施例而已,并不用于限制本發明,對于本領域的技術人 員來說,本發明可以有各種更改和變化。凡在本發明的精神和原則之內,所作的任何修改、 等同替換、改進等,均應包含在本發明的權利要求范圍之內。
權利要求
1.一種塊譯碼方法,其特征在于,包括將待譯碼數據的輸入序列調整為統一比特位數后進行數據置換;根據初始信息的長度 判斷置換后的數據是否需要去掩碼處理,若需要則進行去掩碼處理;對于無需去掩碼處理或去掩碼之后的置換后數據進行快速Hadamard變換;從快速 Hadamard變換得到的矩陣中搜索出最大值;根據所述最大值及其對應的行標、列標進行譯 碼輸出。
2.如權利要求1所述的塊譯碼方法,其特征在于,所述將待譯碼數據的輸入序列調整為統一比特位數,是指對于輸入序列小于統一比特 位數的向量,將不足位數的部分予以補零處理;對于輸入序列超過統一比特位數的向量,從 前向后截取統一比特位數即可。
3.如權利要求2所述的塊譯碼方法,其特征在于,所述輸入序列是(32,0)編碼的輸入序列,或者(20,A)編碼的輸入序列。
4.如權利要求3所述的塊譯碼方法,其特征在于, 所述統一比特位數是32比特位數。
5.如權利要求1所述的塊譯碼方法,其特征在于,所述塊譯碼方法進一步包括 在完成數據置換之后,將置換后數據的基序列矩陣直接存入存儲器。
6.如權利要求5所述的塊譯碼方法,其特征在于,所述置換后數據的基序列矩陣是掩碼基序列,在存儲器中僅存儲基序列中的掩碼子集。
7.如權利要求1所述的塊譯碼方法,其特征在于,所述根據初始信息的長度判斷置換 后的數據是否需要去掩碼處理,是指判斷初始信息的長度是否小于或等于6比特來判斷是 否存在掩碼如果小于或等于6比特,不做去掩碼處理,直接進行快速Hadamard變換; 如果大于6比特,則進行去掩碼處理,在去掩碼處理后再進行快速Hadamard變換。
8.如權利要求1所述的塊譯碼方法,其特征在于,所述搜索最大值的步驟中若初始信息長度L大于或等于6比特時,則在UX 2m的矩陣中進行搜索,找出其中絕對 值最大的元素作為最大值,其中U為統一比特位數,m = L-6 ;若初始信息長度k小于6比特時,則在UXl的向量中的前2k_i個元素中搜索絕對值最 大的元素作為最大值,其中U為統一比特位數。
9.一種譯碼器,其特征在于,包括數據置換模塊,用于接收待譯碼數據,將待譯碼的數據的輸入序列調整為統一位數后 進行置換;去掩碼模塊,用于在初始信息的長度大于6比特時,對置換后的數據進行去掩碼處理; 快速Hadamard變換模塊,用于從數據置換模塊接收初始信息的長度小于或等于6比 特的置換后的數據,或者從去掩碼模塊接收去除掩碼的數據,并對所接收的數據進行快速 Hadamard 變換;最大值搜索模塊,用于從快速Hadamard變換得到的矩陣中搜索出最大值,輸出該最大 值及其對應的行標和列標至譯碼輸出模塊;譯碼輸出模塊,用于根據所述最大值、行標、列標進行譯碼輸出。
10. 一種接收終端,該接收終端包括譯碼器,其特征在于,所述的譯碼器包括 數據置換模塊,用于接收待譯碼數據,將待譯碼的數據的輸入序列調整為統一位數后 進行置換;去掩碼模塊,用于在初始信息的長度大于6比特時,對置換后的數據進行去掩碼處理; 快速Hadamard變換模塊,用于從數據置換模塊接收初始信息的長度小于或等于6比 特的置換后的數據,或者從去掩碼模塊接收去除掩碼的數據,并對所接收的數據進行快速 Hadamard 變換;最大值搜索模塊,用于從快速Hadamard變換得到的矩陣中搜索出最大值,輸出該最大 值及其對應的行標和列標至譯碼輸出模塊;譯碼輸出模塊,用于根據所述最大值、行標、列標進行譯碼輸出。
全文摘要
本發明公開了一種塊譯碼方法、譯碼器及接收終端,所述塊譯碼方法,包括將待譯碼數據的輸入序列調整為統一比特位數后進行數據置換;根據初始信息的長度判斷置換后的數據是否需要去掩碼處理,若需要則進行去掩碼處理;對于無需去掩碼處理或去掩碼之后的置換后數據進行快速Hadamard變換;從快速Hadamard變換得到的矩陣中搜索出最大值;根據所述最大值及其對應的行標、列標進行譯碼輸出。所述譯碼器及應用該譯碼器的接收終端利用所述譯碼方法進行統一塊譯碼。應用本發明能夠將(32,O)和(20,A)兩種編碼的譯碼器統一起來,實現快速譯碼,還可通過僅存儲置換后的掩碼子集來縮減存儲量,有利于開發實現。
文檔編號H04L1/06GK102148656SQ20101011276
公開日2011年8月10日 申請日期2010年2月4日 優先權日2010年2月4日
發明者于妮娜, 王竟宇, 蕭少寧 申請人:中興通訊股份有限公司