TWI565246B - 迴旋編碼的解碼方法 - Google Patents
迴旋編碼的解碼方法 Download PDFInfo
- Publication number
- TWI565246B TWI565246B TW104100915A TW104100915A TWI565246B TW I565246 B TWI565246 B TW I565246B TW 104100915 A TW104100915 A TW 104100915A TW 104100915 A TW104100915 A TW 104100915A TW I565246 B TWI565246 B TW I565246B
- Authority
- TW
- Taiwan
- Prior art keywords
- sub
- fence
- fences
- decoding
- state
- Prior art date
Links
Classifications
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/37—Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35
- H03M13/39—Sequence estimation, i.e. using statistical methods for the reconstruction of the original codes
- H03M13/3972—Sequence estimation, i.e. using statistical methods for the reconstruction of the original codes using sliding window techniques or parallel windows
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/25—Error detection or forward error correction by signal space coding, i.e. adding redundancy in the signal constellation, e.g. Trellis Coded Modulation [TCM]
- H03M13/256—Error detection or forward error correction by signal space coding, i.e. adding redundancy in the signal constellation, e.g. Trellis Coded Modulation [TCM] with trellis coding, e.g. with convolutional codes and TCM
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/25—Error detection or forward error correction by signal space coding, i.e. adding redundancy in the signal constellation, e.g. Trellis Coded Modulation [TCM]
- H03M13/258—Error detection or forward error correction by signal space coding, i.e. adding redundancy in the signal constellation, e.g. Trellis Coded Modulation [TCM] with turbo codes, e.g. Turbo Trellis Coded Modulation [TTCM]
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/37—Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35
- H03M13/39—Sequence estimation, i.e. using statistical methods for the reconstruction of the original codes
- H03M13/3905—Maximum a posteriori probability [MAP] decoding or approximations thereof based on trellis or lattice decoding, e.g. forward-backward algorithm, log-MAP decoding, max-log-MAP decoding
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/37—Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35
- H03M13/39—Sequence estimation, i.e. using statistical methods for the reconstruction of the original codes
- H03M13/3905—Maximum a posteriori probability [MAP] decoding or approximations thereof based on trellis or lattice decoding, e.g. forward-backward algorithm, log-MAP decoding, max-log-MAP decoding
- H03M13/3938—Tail-biting
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/37—Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35
- H03M13/39—Sequence estimation, i.e. using statistical methods for the reconstruction of the original codes
- H03M13/41—Sequence estimation, i.e. using statistical methods for the reconstruction of the original codes using the Viterbi algorithm or Viterbi processors
- H03M13/413—Sequence estimation, i.e. using statistical methods for the reconstruction of the original codes using the Viterbi algorithm or Viterbi processors tail biting Viterbi decoding
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/03—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
- H03M13/23—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using convolutional codes, e.g. unit memory codes
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/29—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes
- H03M13/2957—Turbo codes and decoding
Landscapes
- Physics & Mathematics (AREA)
- Probability & Statistics with Applications (AREA)
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Error Detection And Correction (AREA)
Description
本發明係關於通訊系統,尤其是關於對於迴旋碼通訊之一接收器所用的一軟輸出解碼器。
在數位通訊系統傳輸數據的過程中,往往因為不可預測的干擾而導致接收端接收到錯誤的訊息。在不增加傳輸功率的考量下,通道編碼能有效降低錯誤率,其缺點是會佔用了傳輸的頻寬。然而鑒於大眾對數據傳輸與儲存系統的需求與日俱增,未來的傳輸速率將會更快,且越來越講究服務品質(quality of service,QoS)之下,由於使用通道編碼可以保證傳輸位元的錯誤率控制在一定範圍內,通道編碼仍成為系統設計的重要考量。
迴旋編碼(convolutional code)經常使用於通道編碼,來避免接收端接收到錯誤的訊息。在發送端,送出去的一碼向量(code vector)或是一資訊區塊,可以用一格狀圖(trellis diagram)來描述,而格狀圖的複雜度是取決於編碼器的限制記憶長度(constraint length)。儘管限制記憶長度越長,計算上就越複雜,但是相對的,這樣的編碼就越穩健(robustness)。
在接收端,可以採用一軟式決定解碼器(soft-decision decoder),透過斐特比(Viterbi)等運算法,運用柵欄(trellis)架構找出最可能的碼向量(maximum likelihood code vector)以進行解碼。但是,斐特比運算法
的運算複雜度,會隨著限制記憶長度增加而指數化的增加。換言之,對於限制記憶長度比較長的迴旋編碼來說,斐特比解碼器將會需要相當可觀的記憶體以及消耗相當多功率來處理運算。
渦輪碼(turbo code)被證明可以比一般編碼技術有更佳的表現。渦輪碼一般是由兩個或以上的迴旋碼,以渦輪交錯器處理後所構成。渦輪碼的解碼則是以迭代的方式,使用一軟式決定解碼器來解碼個別迴旋碼。軟式決定解碼器針對一迴旋碼進行解碼,提供外部資訊(extrinsic information),而這外部資訊可以讓軟式決定解碼器針對另一迴旋碼進行解碼時更準確。習知技術中,軟式決定解碼可以採用最大事後機率(Maximum a posterior,MAP)運算法或是軟式輸出斐特比運算法(soft output Viterbi algorithm,SOVA),前述二者都需要前向遞迴(forward recursion)以及後向遞迴(backward recursion)來進行解碼,以便決定一資訊區塊(block)的軟式輸出。一般而言在較低的訊雜比之環境下,渦輪碼比起其他的迴旋碼有更佳的表現。
一種直接實現MAP運算法的解碼器,係針對可以產生一整個資訊區塊之柵欄(trellis)進行前向遞迴,然後才進行後向遞迴。但是這樣的解碼方式需要大量的記憶空間,而且會導致相當嚴重的通訊延遲(latency),實務上不太可行。
習知技術中有介紹了視窗(window)技術,以額外的運算量,來減少所需要的記憶空間。也就是在運算量與記憶空間之間做一個折衝(tradeoff)。簡單的說,視窗技術把一資訊區塊(block of code),以一定大小的視窗(window)分割成數個子柵欄(sub-trellis),而每次解碼只有針對一個子
柵欄。因為一次只針對一個子柵欄做運算,所以記憶空間的需求就比較小。但是視窗技術卻需要增加一些額外的學習運算(training operation),來讓每個子柵欄兩終結端的狀態計量(state metric)足夠有代表性。
本發明之實施例提供一種應用於一迴旋編碼信號的解碼方法,該迴旋編碼信號係包含一柵欄,該方法包含:自該柵欄決定複數第一子柵欄,並自每一第一子柵欄中決定一特定時間點;解碼該等第一子柵欄以產生複數狀態計量;儲存該等特定時間點前後之複數狀態計量為一第一紀錄;自該柵欄決定複數第二子柵欄;以及,以該第一紀錄作為該等第二子柵欄的起始狀態以解碼該等第二子柵欄。
本發明之實施例提供一種應用於一迴旋編碼信號的解碼方法,該迴旋編碼信號係包含一柵欄,該方法包含:自該柵欄決定複數第一子柵欄;解碼該等第一子柵欄;自該柵欄決定複數第二子柵欄,該等第二子柵欄的終端點不同於該等第一子柵欄的終端點;以及,解碼該等第二子柵欄。
12‧‧‧迴遞系統迴旋編碼器
14‧‧‧迴遞系統迴旋編碼器
16‧‧‧交錯器
18‧‧‧交錯器
20‧‧‧軟進軟出解碼器
22‧‧‧軟進軟出解碼器
24‧‧‧交錯器
26‧‧‧反交錯器
60‧‧‧柵欄
621~624‧‧‧子柵欄
641R、642F、642R、643F、643R、643F‧‧‧延展窗
70‧‧‧柵欄
721~724‧‧‧子柵欄
80‧‧‧柵欄
8211、8212、8213、8214、8221、8222、8223、8224、8231、8232、8233、8234‧‧‧子柵欄
841、842‧‧‧預分割線
861~864‧‧‧預分割線
90、92、94、96、98、100‧‧‧步驟
HI1、HI2、HI3、HI4、HI5、HI6‧‧‧半次迭代
IT1、IT2、IT3‧‧‧一次迭代
La1、La2‧‧‧事前資訊
Le1、Le2‧‧‧外部資訊
X‧‧‧區塊碼
Xp1‧‧‧檢查碼
Xs‧‧‧系統區塊碼
Yp1‧‧‧檢查資訊
Yp2‧‧‧檢查資訊
Ys‧‧‧系統資訊
圖一顯示一柵欄。
圖二顯示一渦輪編碼器與解碼器。
圖三顯示一解碼過程。
圖四顯示一視窗技術。
圖五顯示一種視窗解碼技術。
圖六顯示依據本發明之實施例所採用的視窗解碼。
圖七顯示依據本發明之實施例的解碼方法。
本發明可以改善視窗技術。本發明實施例除了可以免除先前技術中的額外學習運算外,也可以減少記憶空間的需求。
一個本發明的實施例中,一渦輪解碼器在每次的迭代循環(iteration loop)中,都將柵欄分割成數個大小相同的子柵欄,每個子柵欄都有一樣的子柵欄長度,然後平行地對所有的子柵欄進行解碼。其中,在前一迭代循環中所用的舊子柵欄之終結端,都跟當下之迭代循環中所用的新子柵欄之終端點不同。從柵欄來看,新子柵欄是舊子柵欄平移的結果,而平移量不大於子柵欄長度。
對於一子柵欄進行解碼時,本發明之一實施例對一子柵欄進行前向遞迴以及後向遞迴,且不需要先前技術中的額外學習運算。在一子柵欄中,前向遞迴所需要的子柵欄起始時間點之前向狀態計量(forward state metric),以及後向遞迴所需要的子柵欄終結時間點之後向狀態計量(backward state metric),在此說明書中泛稱為定樁(stake)。定樁就是解碼一子柵欄時,所需要的起始狀態(initial condition)。在一實施例中,當下子柵欄之定樁係直接採用相對應時間點上前次迭代循環中經過前向遞迴以及後向遞迴所產生之狀態計量。舉例來說,假定當下迭代循環之一子柵欄的起始時間點是k+1,終結時間點是k+L,視窗長度為L。那此子柵欄之定樁就為前向狀態計量α k+1(n)以及後向狀態計量β k+L(n),n=0~N-1。進行此子柵欄解碼時,此子柵欄的定樁就設定為在上次迭代循環之前向遞迴時,所計算出
的前向狀態計量αk+1(n),n=0~N-1,以及在上次迭代循環之後向遞迴時,所計算出的後向狀態計量βk+1(n),n=0~N-1。
如此的解碼方法,並不需要任何的額外學習運算。換一種說法,當下子柵欄的定樁,其實已經在上次循環中的前向與後向遞迴,經歷了學習運算,所以有一定的可信賴度。
一般來說,迴旋碼、渦輪碼等可以用柵欄(trellis)來表示,如同圖一所示。在圖一中的柵欄具有13個時間點(steps),每個時間點有4種可能狀態(state),代表了編碼器的限制記憶長度為2。換言之解碼圖一之柵欄將會得到區塊長度為12的區塊碼(code of block)。為了說明上的方便,以下將以K表示區塊碼長度,表示一個區塊碼所擁有的時間點。如同習知技術所知的,MAP解碼器是在柵欄上採用前向遞迴與後向遞迴,以產生軟輸出。MAP解碼器基於所收到資訊,使解碼後的位元錯誤機率最小化。
圖二之左半部顯示一渦輪編碼器;右半部顯示一渦輪解碼器。渦輪編碼器一般是由並行連接(parallel concatenate)的兩個迴遞系統迴旋(recursive systematic convolutional)編碼器RSC 12與RSC 14所構成,而兩個迴遞系統迴旋編碼器12與14中間以交錯器(INT)16相連接。迴遞系統迴旋編碼器RSC 12依據一區塊碼X,產生一串檢查位元(parity bits)xk p1,整體稱為檢查碼Xp1,其中k=0~K-1。類似的,迴遞系統迴旋編碼器RSC 14依據交錯後的區塊碼X,產生檢查碼Xp2。區塊碼X又稱為系統區塊碼(systematic block code)Xs。系統區塊碼Xs、檢查碼Xp1、檢查碼Xp2中的位元,可能透過多工器交錯連接而輸出到通訊通道。為了提高編碼率(code rate),可將部分的檢查位元漏掉不輸出,舉例來說,相同時間點的檢查位元xk p1與xk p2只有部分
輸出(puncture)到通訊通道,如此,可以使圖二之渦輪編碼器有較高的編碼率。
圖二之渦輪解碼器接著計算所接收到資訊之可靠度,以對數相似比值(log-likelihood ratios,LLR)的形式表示,每個LLR表示一個對應之位元為0或1的機率。相對於系統區塊碼Xs、檢查碼Xp1與檢查碼Xp2,渦輪解碼器產生了系統資訊Ys、檢查資訊Yp1與檢查資訊Yp2。舉例來說,系統資訊Ys由一串LLR yk s所構成,檢查資訊Yp1由一串LLR yk p1所構成,k=0~K-1。圖二之渦輪解碼器包含了交錯器(INT)18與24、軟進軟出解碼器(soft-input-soft-output,SISO)20與22、以及反交錯器(deinterleaver)26;他們之間的運作以及迭代的方式,大致依循BCJR(Bahl,Cocke,Jelinek and Raviv)運算法(algorithm),也稱為MAP演算法。SISO 20依據系統資訊Ys以及檢查資訊Yp1,外加上事前資訊(a-priori information)La1,計算出軟輸出(通常是以LLR表示之最大事後機率),稱為外部資訊(extrinsic information)Le1。經過交錯處理後,外部資訊Le1變成事前資訊La2。SISO 22依據交錯後的系統資訊Ys、檢查資訊Yp2、與事前資訊La2,計算出外部資訊Le2。外部資訊Le2經過交錯處理後成為事前資訊La1,回送給SISO 20。經過一次SISO 20或22之處理稱為半次迭代(half-iteration),經過一次SISO 20與22的運算過程稱為一次迭代(iteration)。一般來說,這樣的迭代循環重複一定固定的次數,或是直到迭代循環中的外部資訊Le1或Le2之符號變化數量少到一定程度為止。
前述MAP演算法計算在一接收訊息Y的條件下,在時間點k上之訊息位元為數位上之1或0的機率,或是稱為事後相似比值(a posteriori log-likelihood ratio)L(uk|Y),其定義如下。
在方程式(1)中,L(u k |Y)的計算需要有知道所有的α k-1與
β k 。一種實現方程式(1)的操作,就是先計算柵欄上的每個分支上的分支計量(branch metric) r ,以及每個狀態上的狀態計量(包含前向狀態計量α與後向狀態計量β),全部都存入記憶體中;然後才從記憶體中擷取需要的α、β、r,來算出L(u k |Y)。但是,這樣的實現方式,前向遞迴與後向遞迴都需要全部經歷過整個柵欄的K個時間點,才可以開始輸出任何的L(u k |Y)。圖三顯示先算出所有的分支計量r k (n,m),然後算出前向狀態計量α,接著算出所有的後向狀態計量β,最後才求出L(u k |Y)。一旦區塊碼長度K非常大,這樣的操作方法所產生的輸出延遲(latency)將會相當可觀,而變得不切實際。
圖四顯示一種視窗技術,能夠降低前述輸出延遲的問題。舉例來說,視窗技術事先以一定大小的視窗,將柵欄60分割成數個大小一樣的子柵欄621~624,然後對每個子柵欄進行前向遞迴以及後向遞迴,計算出其中的α、β、r,接著才算出每個時間點k的L(u k |Y)。但是,利用視窗技術時,定樁(state),也就是子柵欄內起始時間點之前向狀態計量(forward state metric)以及子柵欄內終結時間點之後向狀態計量(backward state metric),需要增加額外的學習運算。以子柵欄621為例,假定其包含了時間點0~L-1,也就是子柵欄長度為L。前向狀態計量α 0(m),其中m=0~M-1,是關乎整個渦輪區塊碼的起始狀態,一般為已知而不必計算。但是,後向狀態計量β L-1(m),其中m=1~M-1,就仰賴接續子柵欄621後之延展柵欄641R(其長度為R)的後向遞迴來獲得。儘管延展柵欄641R的後向遞迴之後向狀態計量β L+R-1(m)可能是隨機猜測的,但是經過延展柵欄641R所提供的後向遞迴後,後向狀態計量β L-1(m)就會是相對可信的。類似的,子柵欄622的前向狀態計
量α L (m),就靠子柵欄622前之延展柵欄642F之前向遞迴來獲得;後向狀態計量β 2L-1(m),就仰賴接續子柵欄622後之延展柵欄642R的後向遞迴來獲得。延展柵欄中的後向與前向遞迴就是前述額外的學習運算。透過視窗技術雖然可以讓所有的子柵欄平行處理以降低輸出延遲,但卻需要額外的學習運算。
圖五顯示一種視窗解碼(windowed decoding),可以免除額外的學習運算。類似的,柵欄70分割成數個大小一樣的子柵欄721~724,每個子柵欄長度都為L。解碼的過程,一樣的可以對所有子柵欄721~724平行處理。第1個半次迭代HI1與第2個半次迭代HI2,和稱為第一次迭代IT1。每個子柵欄的定樁(state),則採用上一次迭代循環中,鄰近子柵欄的運算結果。舉例來說,在圖五之第3個半次迭代HI3中,子柵欄722的起始時間點之前向狀態計量α L (m),將採用第1個半次迭代HI1中,子柵欄721所產生的前向狀態計量α L-1(m)透過公式(2)計算得來。類似的,第3個半次迭代HI3中,子柵欄722的終止時間點之後向狀態計量β 2L-1(m),將採用第1個半次迭代HI1中,子柵欄723所產生的前向狀態計量β 2L (m)透過公式(3)計算得來。換言之,每一次的迭代循環,除了平行的對每個子柵欄進行解碼之外,也同時在進行學習運算,等同準備下一次迭代循環的定樁所需要之資訊。因此,可以免除圖四中所引入的額外學習運算。
圖六顯示依據本發明之實施例所採用的平行視窗解碼,除了可以免除額外的學習運算,更可以加速迭代循環的收斂速度,或是降低誤碼率(Bit error rate)。圖六中的柵欄80是一個環狀柵欄(circular trellis),也就是柵欄80的最後時間點之狀態,跟最早時間點之狀態一樣,所以柵欄80可以頭尾連接成為一個環狀。
類似圖五所示,圖六之實施例在每半次迭代中,柵欄80都是以固定大小的視窗分割成數個子柵欄,每個子柵欄長度都為L。在本實施例中,區塊碼長度K=4L。在第一半次迭代HI1中,柵欄80分割成四個子柵欄8211~8214,在第二半次迭代HI2中,柵欄80分割成四個子柵欄8221~8224,在第三半次迭代HI3中,以預分割線841~844將柵欄80分割成四個子柵欄8231~8234,以此類推。實作上,每一分割線即代表一柵欄80中的一特定時間點。需要特別注意的,在一次迭代後,子柵欄的終端點將改變。舉例來說,因為預分割線841、842...皆位於子柵欄8211、8212...之內,也就是說預分割線並不與子柵欄8211、8212...的終端點對齊,所以子柵欄8211、8212...的終端點將與子柵欄8231、8232...的終端點不同,例如子柵欄8231是子柵欄8214的後一部分連接子柵欄8211的前一部分之結果。較佳的,每個預分割線的所在位置是每個子柵欄結尾前S時間點與前S+1時間點的中間。因此,子柵欄8232相較於子柵欄8212往前平移了S個時間點。
在每半次迭代,可以使用四個軟進軟出解碼器,平行地對四個子柵欄進行解碼。解碼時會執行前向遞迴以及後向遞迴以產生外部資訊。每個軟進軟出解碼器使用一最大事後機率(Maximum a posterior,MAP)運算法來對每個時間點計算軟輸出。MAP運算法可以為log-MAP、MAP、max-log-MAP、或constant-log-MAP等運算法。
解碼一子柵欄所需要的定樁,則直接採用前一次迭代中的計算結果,如同圖六所示。在圖六之第3個半次迭代HI3中,子柵欄8232的起始時間點之前向狀態計量α L-S (m),可直接複製第1個半次迭代HI1中,子柵欄8211所產生的前向狀態計量α L-S (m),其在預分割線841後之時間點L-S。類似
的,子柵欄8232的終止時間點之後向狀態計量β 2L-S-1(m),可直接複製第1個半次迭代HI1中,子柵欄8212所產生的後向狀態計量β 2L-S-1(m),其在預分割線842前之時間點2L-S-1。第1個半次迭代HI1中,前向狀態計量α L-S (m與後向狀態計量β 2L-S-1(m)需要特別記憶起來,以便直接做為第3個半次迭代HI3中所需要的定樁。
圖六中也顯示了,第5個半次迭代HI5中,以四個預分割線861~864將柵欄80分割成四個子柵欄。第5個半次迭代HI5中,每個子柵欄的定樁,都是直接採用在第3個半次迭代HI3中,預分割線861~864兩旁之狀態計量。
類似的,儘管圖六中沒有顯示,第2個半次迭代HI2中的計算結果,也可以記憶下來,直接作為第4個半次迭代HI4中,每個子柵欄相對應時間點所需要的定樁。
在圖六中,定樁是前一次迭代中學習運算之結果,享有一定的可靠度。以子柵欄8232為例,前向狀態計量α L-S (m)就已經經歷了子柵欄8211之時間點0前向地到時間點L-S的學習運算,而後向狀態計量β 2L-S-1(m)已經經歷了子柵欄8212之時間點2L-1後向地到時間點2L-S-1的學習運算。
相較於圖五,圖六的定樁是直接複製前一次迭代中的狀態計量,不需要再經歷公式(2)與(3)的運算,所以相對的可以節省運算操作。
相較於圖五,圖六更可以降低誤碼率。圖六中,在第1個半次迭代HI1時,因為只有α 1(m)跟β K (m)是明確的,所以第1個半次迭代HI1中,子柵欄8211與8214所產生的外部資訊,將會比子柵欄8212與8213所產生的外部資訊,來的可靠。舉例來說,解碼子柵欄8232時所用的事前資訊,可以分
成前半段與後半段,分別主要受子柵欄8211與8212的外部資訊所影響。以前向遞迴而言,由於子柵欄8232的事前資訊之前半段,係經過幾乎整個子柵欄8211的運算,因此將具有一定的可信度,同理,以後向遞迴而言,子柵欄8232的事前資訊之後半段,已經過一段子柵欄8212的運算,因此亦將具有一定的可信度。換言之,在第3個半次迭代HI3時,每一個子柵欄不只是有比較可靠且無須再做計算的定樁,而且其所得到的事前資訊也會比較可靠。相較於圖六的實施例,在圖五的實施例中,子柵欄的分割線與位置一直是固定的,所以其事前資訊並無法像圖六一樣得到較可靠的事前資訊來輔助。相對圖五實施例,圖六實施例可以降低誤碼率,也就是說,圖六的解碼也更穩健(robustness)。此外請注意,本說明書中所提及之「將柵欄分割成複數子柵欄」係為了方便說明,其實作上可以是將一柵欄的資料分別儲存成複數個不重疊的子柵欄的資料,亦可以是透過決定複數個時間點,以自不同的時間點開始讀取特定長度的資料(即子柵欄長度)來進行對於該些子柵欄的解碼。
圖七顯示本發明的解碼方法。步驟90先將柵欄分割成數個子柵欄,而每個子柵欄長度都相同。步驟92以第一記錄作為定樁,以事前資訊La1作為輸入,平行的對子柵欄進行解碼,產生外部資訊Le1,此為一次的半迭代。在第一次迭代的第一次半迭代中,定樁可以設為固定預設值,譬如說,全部作為定樁的α與β全都設為0。步驟94依據子柵欄中一預分割線兩旁相鄰兩時間點的前向狀態計量與後向狀態計量更新第一紀錄。外部資訊Le1經過交錯處理後,產生一事前資訊La2。步驟96以一第二記錄作為定樁,以事前資訊La2作為輸入,平行的對子柵欄進行解碼,產生外部資訊Le2,此為另一次的半迭代。類似的,在第一次迭代的第二次半迭代中,定樁可
以設為固定預設值,譬如說,全部作為定樁的α與β全都設為0。步驟98依據子柵欄中該預分割線兩旁相鄰兩時間點的前向狀態計量與後向狀態計量更新第二記錄。將外部資訊Le2執行交錯處理後,產生一事前資訊La1。到此,完成了一次迭代循環。步驟100準備開始下一次迭代,以預分割線來分割柵欄,重新產生數個子柵欄。在步驟100所產生的子柵欄,因為是從舊子柵欄內來切割組合而成,所以會跟步驟90所分割的子柵欄,有不一樣的終端點。步驟92接續步驟100,依據新分割的子柵欄執行另一次柵欄解碼。
以上所述僅為本發明之較佳實施例,凡依本發明申請專利範圍所做之均等變化與修飾,皆應屬本發明之涵蓋範圍。
80‧‧‧柵欄
8211、8212、8213、8214、8221、8222、8223、8224、8231、8232、8233、8234‧‧‧子柵欄
841、842‧‧‧預分割線
861~864‧‧‧預分割線
HI1、HI2、HI3、HI4、HI5、HI6‧‧‧半次迭代
IT1、IT2、IT3‧‧‧一次迭代
Claims (16)
- 一種應用於一迴旋編碼信號(convolutionally coded signal)的解碼方法,該迴旋編碼信號係包含一柵欄(trellis),該方法包含:自該柵欄決定複數第一子柵欄,並自每一第一子柵欄中決定一特定時間點;解碼該等第一子柵欄以產生複數狀態計量(state metric);儲存該等特定時間點前後之複數狀態計量為一第一紀錄;自該柵欄決定複數第二子柵欄;以及以該第一紀錄作為該等第二子柵欄的起始狀態以解碼該等第二子柵欄。
- 如申請專利範圍第1項之該解碼方法,其中該自該柵欄決定該等第二子柵欄之步驟係依據該等特定時間點進行。
- 如申請專利範圍第1項之該解碼方法,其中該解碼該等第一子柵欄以產生該等狀態計量之步驟包含:以前向遞迴(forward recursion)解碼該等第一子柵欄以產生複數前向狀態計量;以及以後向遞迴(backward recursion)解碼該等第一子柵欄以產生複數後向狀態計量;其中該等特定時間點前後之該些狀態計量係分別包含該等前向狀態計量之一以及該等後向狀態計量之一。
- 如申請專利範圍第1項之該解碼方法,其中每一該等第一子柵欄具有一第一子柵欄長度,每一該等第二子柵欄具有一第二子柵欄長度,該第一子柵欄長度等於該第二子柵欄長度。
- 如申請專利範圍第1項之該解碼方法,其中該解碼該等第一子柵欄之步驟係平行地解碼該等第一子柵欄。
- 如申請專利範圍第1項之該解碼方法,其中該解碼該等第一與第二子柵欄的步驟係屬於軟進軟出(soft-in-soft-out)的解碼方法。
- 如申請專利範圍第1項之該解碼方法,其中解碼該等第一子柵欄係屬於一次迭代中之一半次迭代,而解碼該等第二視窗係屬於另一次迭代中之一半次迭代。
- 一種應用於一迴旋編碼信號的解碼方法,該迴旋編碼信號係包含一柵欄,該方法包含:自該柵欄決定複數第一子柵欄,該等第一子柵欄構成該柵欄;解碼該等第一子柵欄;自該柵欄決定複數第二子柵欄,該等第二子柵欄構成該柵欄,且該等第二子柵欄的終端點不同於該等第一子柵欄的終端點;以及解碼該等第二子柵欄。
- 如申請專利範圍第8項之該解碼方法,其中該等第一子柵欄彼此不重疊。
- 如申請專利範圍第8項之該解碼方法,更包含:於解碼該等第一子柵欄時,針對該等第一子柵欄產生複數個狀態計量;以及於解碼該等第二子柵欄時,分別以該等狀態計量作為該等第二子柵欄的起始狀態。
- 如申請專利範圍第8項之該解碼方法,其中該解碼該等第一子柵欄之步驟包含: 對該等第一子柵欄的其中之一以前向遞迴(forward recursion)解碼以產生一前向狀態計量,該前向狀態計量對應於該柵欄的一第一時間點(step);以及對該等第一子柵欄的該其中之一以後向遞迴(backward recursion)解碼以產生一後向狀態計量,該後向狀態計量對應於該柵欄的一第二時間點,該第一與第二時間點彼此相鄰,且該第二時間點早於該第一時間點;以及該解碼該等第二子柵欄之步驟包含:以該後向狀態計量作為解碼該等第二子柵欄其中之一時的起始狀態;以及以該前向狀態計量作為解碼該等第二子柵欄其中之另一時的起始狀態,其中該另一第二子柵欄係接續於該第二子柵欄。
- 如申請專利範圍第8項之該解碼方法,其中每一該等第一子柵欄具有一第一子柵欄長度,每一該等第二子柵欄具有一第二子柵欄長度,該第一子柵欄長度等於該第二子柵欄長度。
- 如申請專利範圍第8項之該解碼方法,其中該解碼該等第一子柵欄之步驟係平行地解碼該等第一子柵欄。
- 如申請專利範圍第8項之該解碼方法,其中該等第一子柵欄包含一前第一子柵欄與一後第一子柵欄,且該等第二子柵欄的其中之一包含有部分之該前第一子柵欄與部分之該後第一子柵欄,其中該後第一子柵欄係接續該前第一子柵欄。
- 如申請專利範圍第8項之該解碼方法,另包含有: 提供一渦輪解碼器(turbo decoder),該渦輪解碼器係用以在一次迭代循環(iterative loop)中對該柵欄解碼兩次,且該解碼該等第一子柵欄之步驟與該解碼該等第二子柵欄之步驟係分別屬於不同次的迭代循環。
- 如申請專利範圍第8項之該解碼方法,其中該解碼該等第一與第二子柵欄之步驟係使用一最大事後機率(Maximum a posterior,MAP)運算法來對每個時間計算軟輸出,該MAP運算法為log-MAP、MAP、max-log-MAP、與constant-log-MAP運算法其中之一。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW104100915A TWI565246B (zh) | 2015-01-12 | 2015-01-12 | 迴旋編碼的解碼方法 |
US14/992,269 US10116337B2 (en) | 2015-01-12 | 2016-01-11 | Decoding method for convolutionally coded signal |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW104100915A TWI565246B (zh) | 2015-01-12 | 2015-01-12 | 迴旋編碼的解碼方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
TW201626732A TW201626732A (zh) | 2016-07-16 |
TWI565246B true TWI565246B (zh) | 2017-01-01 |
Family
ID=56368264
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW104100915A TWI565246B (zh) | 2015-01-12 | 2015-01-12 | 迴旋編碼的解碼方法 |
Country Status (2)
Country | Link |
---|---|
US (1) | US10116337B2 (zh) |
TW (1) | TWI565246B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI589125B (zh) * | 2016-08-26 | 2017-06-21 | 國立交通大學 | 渦輪編碼的數位資料之去穿刺方法與裝置及渦輪解碼器系統 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080104488A1 (en) * | 2006-10-27 | 2008-05-01 | Jung-Fu Cheng | Sliding Window Method and Apparatus for Soft Input/Soft Output Processing |
TW201206091A (en) * | 2010-07-27 | 2012-02-01 | Mediatek Singapore Pte Ltd | Method, computing device and computer program product of determing metrics |
Family Cites Families (30)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6307868B1 (en) * | 1995-08-25 | 2001-10-23 | Terayon Communication Systems, Inc. | Apparatus and method for SCDMA digital data transmission using orthogonal codes and a head end modem with no tracking loops |
US6665308B1 (en) * | 1995-08-25 | 2003-12-16 | Terayon Communication Systems, Inc. | Apparatus and method for equalization in distributed digital data transmission systems |
US6772391B1 (en) * | 1998-10-13 | 2004-08-03 | Interdigital Technology Corporation | Hybrid interleaver for turbo codes |
US6088405A (en) * | 1999-01-15 | 2000-07-11 | Lockheed Martin Corporation | Optimal decoder for tall-biting convolutional codes |
US7000174B2 (en) * | 1999-12-20 | 2006-02-14 | Research In Motion Limited | Hybrid automatic repeat request system and method |
US6856657B1 (en) * | 2000-02-10 | 2005-02-15 | Motorola, Inc. | Soft output decoder for convolutional codes |
US6901117B1 (en) * | 2000-02-10 | 2005-05-31 | Motorola, Inc. | Soft output decoder for convolutional codes |
US6868132B1 (en) * | 2000-02-10 | 2005-03-15 | Motorola, Inc. | Soft output decoder for convolutional codes |
FI109162B (fi) * | 2000-06-30 | 2002-05-31 | Nokia Corp | Menetelmä ja järjestely konvoluutiokoodatun koodisanan dekoodaamiseksi |
US6829313B1 (en) * | 2000-07-17 | 2004-12-07 | Motorola, Inc. | Sliding window turbo decoder |
US6452979B1 (en) * | 2000-09-06 | 2002-09-17 | Motorola, Inc. | Soft output decoder for convolutional codes |
US6883021B2 (en) * | 2000-09-08 | 2005-04-19 | Quartics, Inc. | Programmable and multiplierless Viterbi accelerator |
US7127664B2 (en) * | 2000-09-18 | 2006-10-24 | Lucent Technologies Inc. | Reconfigurable architecture for decoding telecommunications signals |
US7234100B1 (en) * | 2000-09-28 | 2007-06-19 | Intel Corporation | Decoder for trellis-based channel encoding |
US6393076B1 (en) * | 2000-10-11 | 2002-05-21 | Motorola, Inc. | Decoding of turbo codes using data scaling |
DE10055658B4 (de) * | 2000-11-10 | 2004-04-29 | Infineon Technologies Ag | Verfahren und Schaltung zur Synchronisation eines Empfängers für ein faltungskodiertes Empfangssignal |
EP2627008A3 (en) * | 2000-12-29 | 2013-09-11 | Intel Mobile Communications GmbH | Channel codec processor configurable for multiple wireless communications standards |
US20020144209A1 (en) * | 2001-02-20 | 2002-10-03 | Cute Ltd. | System for enhanced error correction in trellis decoding |
US20030101402A1 (en) * | 2001-10-25 | 2003-05-29 | Cute Ltd. | Hard-output iterative decoder |
US7096411B2 (en) * | 2002-05-07 | 2006-08-22 | International Business Machines Corporation | Method and apparatus for reliable resynchronization of sequential decoders |
US7139967B2 (en) * | 2002-08-13 | 2006-11-21 | Vanu, Inc. | Convolutional decoding |
JP2004080508A (ja) * | 2002-08-20 | 2004-03-11 | Nec Electronics Corp | 誤り訂正符号の復号方法、そのプログラム及びその装置 |
US7272771B2 (en) * | 2003-10-30 | 2007-09-18 | Nokia Corporation | Noise and quality detector for use with turbo coded signals |
JP2005210238A (ja) * | 2004-01-21 | 2005-08-04 | Nec Corp | ターボ復号装置及びその方法並びにその動作プログラム |
GB0418263D0 (en) * | 2004-08-16 | 2004-09-15 | Ttp Communications Ltd | Soft decision enhancement |
FI20070423L (fi) * | 2007-05-29 | 2008-11-30 | Ari Paasio | Differentiaalinen, paikallisesti päivittyvä Viterbi-dekooderi |
CN101682336B (zh) * | 2007-06-14 | 2013-04-24 | 英特尔公司 | 用于卷积、Turbo和LDPC码的统一解码器 |
EP2258111A4 (en) * | 2008-03-28 | 2014-01-22 | Thomson Licensing | APPARATUS AND METHOD FOR DECODING SIGNALS |
US8433004B2 (en) * | 2010-02-26 | 2013-04-30 | Research In Motion Limited | Low-latency viterbi survivor memory architecture and method using register exchange, trace-back, and trace-forward |
US8402342B2 (en) * | 2010-02-26 | 2013-03-19 | Research In Motion Limited | Method and system for cyclic redundancy check |
-
2015
- 2015-01-12 TW TW104100915A patent/TWI565246B/zh active
-
2016
- 2016-01-11 US US14/992,269 patent/US10116337B2/en not_active Expired - Fee Related
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080104488A1 (en) * | 2006-10-27 | 2008-05-01 | Jung-Fu Cheng | Sliding Window Method and Apparatus for Soft Input/Soft Output Processing |
TW201206091A (en) * | 2010-07-27 | 2012-02-01 | Mediatek Singapore Pte Ltd | Method, computing device and computer program product of determing metrics |
Also Published As
Publication number | Publication date |
---|---|
TW201626732A (zh) | 2016-07-16 |
US10116337B2 (en) | 2018-10-30 |
US20160204803A1 (en) | 2016-07-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6014411A (en) | Repetitive turbo coding communication method | |
US6665357B1 (en) | Soft-output turbo code decoder and optimized decoding method | |
US9214958B2 (en) | Method and decoder for processing decoding | |
US7441174B2 (en) | Embedded state metric storage for MAP decoder of turbo codes | |
US6044116A (en) | Error-floor mitigated and repetitive turbo coding communication system | |
US6581182B1 (en) | Iterative decoding with post-processing of detected encoded data | |
EP1158682A2 (en) | Methods and apparatus for decoding of general codes on probability dependency graphs | |
US7500169B2 (en) | Turbo decoder, turbo decoding method, and turbo decoding program | |
JP2006115145A (ja) | 復号装置及び復号方法 | |
US6028897A (en) | Error-floor mitigating turbo code communication method | |
CN107911195B (zh) | 一种基于cva的咬尾卷积码信道译码方法 | |
JP4591291B2 (ja) | ターボ復号装置及びその方法並びにプログラム | |
US6487694B1 (en) | Method and apparatus for turbo-code decoding a convolution encoded data frame using symbol-by-symbol traceback and HR-SOVA | |
US8793561B2 (en) | Iterative decoding of signals received over a noisy channel using forward and backward recursions with warm-up initialization | |
US8650468B2 (en) | Initializing decoding metrics | |
JP2004343716A (ja) | 畳み込み符号化信号の伝送形式をブラインド検出する方法および復号器 | |
CN110709821A (zh) | 解码卷积码的提前终止 | |
US6950476B2 (en) | Apparatus and method for performing SISO decoding | |
TWI565246B (zh) | 迴旋編碼的解碼方法 | |
JP2007081640A (ja) | ターボ復号装置およびターボ復号方法 | |
US10084486B1 (en) | High speed turbo decoder | |
JP2002353821A (ja) | 誤り訂正復号方法および復号装置 | |
US20040083252A1 (en) | Turbo decoder | |
CN113258937B (zh) | 分量译码器、外信息存储单元以及Turbo码译码器 | |
CN108616331B (zh) | 一种基于lte的无线通信系统解码方法 |