一種維特比譯碼方法及裝置的制造方法
【技術領域】
[0001] 本發(fā)明屬于編解碼領域,尤其設及一種維特比(Viterbi)譯碼方法及裝置
【背景技術】
[0002] 目前,CDMA2000、WCDMA 和 了0-5〔0魁、0¥1'-1'\(:\5、048、415(:、1508等標準相繼采用卷 積碼,作為其信道編碼標準。同時,LTE等第四代移動通信標準也建議采用卷積碼,作為其候 選信道編碼標準之一。
[0003] 卷積碼是由Elias等人在1955年首次提出的。稍后,Wozencraft提出了一種卷積碼 的有效譯碼算法一序列譯碼。1963年,梅西提出了一種有效性稍差,但比較容易實現(xiàn)的口限 譯碼算法。而后在1967年,Viterbi提出了一種最佳最大似然譯碼算法。
[0004] 卷積碼的Viterbi譯碼算法,W其優(yōu)異的性能,得到廣泛的應用。各種Viterbi譯碼 的專用硬件,大量的出現(xiàn)。同時,基于軟件譯碼的專用Viterbi譯碼單元"加比選"也成為各 類DSP處理器的重點模塊。然而,運些處理器,均采用串行的譯碼方法進行Viterbi譯碼,譯 碼速率較慢。如何在處理器上并行的實現(xiàn)高速的Viterbi譯碼的矢量譯碼指令,實現(xiàn)基于處 理器的軟件矢量Viterbi譯碼,仍然是一個亟待解決的問題。
【發(fā)明內(nèi)容】
[0005] (一)要解決的技術問題
[0006] 本發(fā)明的目的在于,提供一種低復雜度矢量化的維特比譯碼方法及裝置。
[0007] (二)技術方案
[000引本發(fā)明提供一種維特比譯碼方法,用于對卷積碼進行譯碼,方法包括:
[0009] Sl,對卷積碼的每條支路進行度量,得到支路度量矢量;
[0010] S2,對支路度量矢量進行前向度量,得到前向度量矢量最小值索引;
[0011] S3,對前向度量矢量最小值索引進行回溯,得到譯碼。
[0012] 本發(fā)明還提供一種維特比譯碼裝置,用于對卷積碼進行譯碼,包括:
[0013] 支路度量單元,用于對卷積碼的每條支路進行度量,得到支路度量矢量;
[0014] 前向度量單元,用于對支路度量矢量進行前向度量,得到前向度量矢量最小值索 引;
[001引反向回溯單元,用于對前向度量矢量最小值索引進行回溯,得至幡碼。
[0016] (;巧益效果
[0017] 采用本發(fā)明提供的維特比譯碼方法,能在處理器上并行執(zhí)行高速的維特比譯碼的 矢量譯碼指令,實現(xiàn)基于處理器的軟件矢量維特比譯碼,解決了現(xiàn)有處理器均采用串行的 譯碼方法的譯碼速率較慢問題。
【附圖說明】
[0018] 圖1是本發(fā)明實施例提供的維特比譯碼方法的流程圖。
[0019] 圖2是本發(fā)明實施例提供的維特比譯碼裝置的結構示意圖。
【具體實施方式】
[0020] 本發(fā)明提供一種維特比譯碼方法及裝置,用于對卷積碼進行譯碼,方法首先對卷 積碼的每條支路進行度量,得到支路度量矢量,然后對支路度量矢量進行前向度量,得到前 向度量矢量最小值索引,最后對前向度量矢量最小值索引進行回溯,得到譯碼。本發(fā)明能在 處理器上并行執(zhí)行高速的維特比譯碼的矢量譯碼指令,實現(xiàn)基于處理器的軟件矢量維特比 譯碼,解決了現(xiàn)有處理器均采用串行的譯碼方法的譯碼速率較慢問題。
[0021] 根據(jù)本發(fā)明的一種實施方式,維特比譯碼方法包括:
[0022] Sl,對卷積碼的每條支路進行度量,得到支路度量矢量;
[0023] S2,對支路度量矢量進行前向度量,得到前向度量矢量最小值索引;
[0024] S3,對前向度量矢量最小值索引進行回溯,得到譯碼。
[0025] 根據(jù)本發(fā)明的一種實施方式,步驟Sl中,支路度量的表達式為:
[0026] 色知=caddsub(G,",if,<。:),
[0027] 其中,當啤等于加寸,caddsub(6?^,,\;f,皆)等于斬、'畔,否則,caddsub(色、8,巧\皆) 等于持乂 1',G,、、為所述卷積碼第k個符號在編碼輸入為S時的支路度量矢量,是所述 卷積碼第k個符號的第i個輸入分量構成的矢量,是卷積碼的輸入為S時各個狀態(tài)編碼第 i個編碼輸出比特構成的整數(shù)。
[0028] 根據(jù)本發(fā)明的一種實施方式,步驟S2中,前向度量的表達式為:
[0029] 戰(zhàn);府k] = idmin (舟k 麻W,孩的,是),
[0030] 其中,舟k是第k個符號在編碼輸入為S時的支路度量矢量,舟k初始值為〇,dk是前 向度量最小值索引,idmin(網(wǎng),,兩^_1,馬,,4表示:
[00川確k取馬;和訴k-i+Gk,s之間的最小值,并且,當擁占<舟1^_1+0、,時,dk的值不變,否 貝lj,dk等于S。
[0032]根據(jù)本發(fā)明的一種實施方式,步驟S3中,反向回溯的的表達式為:
[003;3] [bk-i,sk-i] =sback(Fs,dk,sk),
[0034] 其中,bk-i為譯碼,F(xiàn)s是前向狀態(tài)矢量,恥=[/、;;'),乂。'),...,足;],3視第1^個符號的 最小路徑的狀態(tài),sback (Fs, dk,Sk)表示:
[0035] 在dk為S時,選擇Fs的第S個元素作為輸出,即4__1 =義'1,同時,bk-i等于dk的第Sk個 兀素。
[0036] 根據(jù)本發(fā)明的一種實施方式,維特比譯碼裝置包括:
[0037] 支路度量單元,用于對所述卷積碼的每條支路進行度量,得到支路度量矢量;
[0038] 前向度量單元,用于對所述支路度量矢量進行前向度量,得到前向度量矢量最小 值索引;
[0039] 反向回溯單元,用于對所述前向度量矢量最小值索引進行回溯,得到譯碼。
[0040] 根據(jù)本發(fā)明的一種實施方式,支路度量單元執(zhí)行支路度量的表達式為:
[0041] = caddsub(G,,,, ).
[00創(chuàng)其中,當皆等于0時,caddsub(色野,皆)等于%+巧,否則,caddsub(色峽,幫,xf) 等于乂i>,G|,、為所述卷積碼第k個符號在編碼輸入為S時的支路度量矢量,巧>是所述 卷積碼第k個符號的第i個輸入分量構成的矢量,xf是卷積碼的輸入為S時各個狀態(tài)編碼第 i個編碼輸出比特構成的整數(shù)。
[0043] 根據(jù)本發(fā)明的一種實施方式,前向度量單元執(zhí)行前向度量的表達式為:
[0044] [dk,MJ = Wmin…Gk,、,'s.),
[0045] 其中,擁k是第k個符號在編碼輸入為S時的支路度量矢量,化k初始值為〇,dk是前 向度量最小值索引,idniin;心 1|、,1\、_|,〇|、,、,.、')表示:
[0046] 舟k取抽k和My+石、、之間的最小值,并且,當成<舟,_1+〇、,時,dk的值不變,否 貝lj,dk等于S。
[0047] 根據(jù)本發(fā)明的一種實施方式,反向回溯單元執(zhí)行反向回溯的的表達式為:
[004引[bk-i,sk-i] =sback(Fs,dk,sk),
[0049] 其中,bk-i為譯碼,F(xiàn)s是前向狀態(tài)矢量,肪= k.::Uf,…,乂;:]>sk是第k個符號的 最小路徑的狀態(tài),sback (Fs, dk,Sk)表示:
[0050] 在dk為S時,選擇Fs的第S個元素作為輸出,即同時,bk-1等于dk的第Sk個 兀素。
[0051] 根據(jù)本發(fā)明的一種實施方式,本發(fā)明還提供指令集,用于進行矢量處理,通過執(zhí)行 相應的指令,W實現(xiàn)支路度量過程、前向度量過程和反向回溯過程,其中,指令集包括:矢量 定向加減指令(caddsub),矢量含索引最小值指令(idmin),矢量狀態(tài)回溯指令(sback),交 織指令(intlv),循環(huán)指令(loop)和矢量賦值指令(mov)。
[00對具體地,矢量定向加減指令,根據(jù)矢量1 = [0。,巧,…,.聲J和矢量_1]:, 實現(xiàn) caddsub(A, B,d) ==: [。。,L'l,Cp J,其中 ci = (di==0) ?ai+bi: ai-bi,即整數(shù)d為定向整 數(shù),其第i比特為0,則Cl為曰1和bi的和,否則的Cl為曰1和bi的差。
[0版3]具體地,矢量含索引最小值指令idmin,根據(jù)矢量1 = [(,,,,巧...?,邱_,]和矢量 ;良=[々,,毎,...,去4],實現(xiàn)[人,5.、]=伽1川(人,.8,(:,8|!),其中34和3[3為狀態(tài)矢量4和6的索引, 它的第i位34,1=(曰1化+。0?34,:1:3[3,:1,即當矢量1的第1個變量曰1小于矢量6:的第1個變量131 和矢量C的第i個變量Cl時,SA,1保持不變,否則更新為SB的第i位SB,1;矢量A的第i個變量曰1 為 ai 和 bi+ci 的最小值,即 ai= (ai<bi+Ci)?ai:bi+Ci。
[0054] 具體地,狀態(tài)回溯指令,執(zhí)行[bk-i,sk-i] = sback(Fs , dk,Sk),其根據(jù)其狀態(tài) 恥=[/;.、1,乂、1,...,/、二1],在選擇位比特dk為S時,選擇Fs的第S個元素作為輸出,即 'Vi = /sf>,同時輸出dk的第Sk個元素。
[0055]具體地,交織指令,執(zhí)行B = Intlv (A,s),其根據(jù)其狀態(tài)S = Iiso ,SI, ...,Ss, ..., 85-1],將矢量又=.〇'。,01.,.....馬-1..義織為矢量8 =權。.,〇9,'.'':,功&.,.'.','