專利名稱:序列式解碼方法與解碼裝置的制作方法
技術(shù)領(lǐng)域:
本發(fā)明是有關(guān)于一種解碼方法,且特別是有關(guān)于一種序列式解碼方法。
背景技術(shù):
在通訊系統(tǒng)中,為了使得欲傳輸?shù)臄?shù)據(jù)能夠更為可靠地經(jīng)由通道傳達到接收端,數(shù)據(jù)在基頻信號處理時會使用信道編碼,而目前的信道編碼通常包括兩種以上的編碼。圖1為現(xiàn)有技術(shù)中的傳送端的信道編碼方塊圖。
請參照圖1,一消息序列b先經(jīng)過外部編碼器110編碼為第一碼字v,在經(jīng)過內(nèi)部編碼器120編碼為第二碼字u,并經(jīng)過調(diào)變單元130調(diào)變后,才能夠傳輸至通道中。上述的外部編碼器可利用錯誤檢測碼(Error Detection Code)來實現(xiàn),其中錯誤檢測碼例如為循環(huán)冗余校驗碼(Cyclic Redundancy Check,CRC)或奇偶檢驗碼(Parity Check Code)等等。上述的內(nèi)部編碼器可利用錯誤校正碼(Error Correction Code)來實現(xiàn),其中錯誤校正碼例如為包括格碼(Trellis code),格碼透過一格子圖(trellis diagram)來進行編碼與解碼,而常見的格碼可為卷積碼(Convolution Code)。
相對應(yīng)于傳送端,經(jīng)由信道的接收信號r在接收端也必須經(jīng)過解調(diào)、內(nèi)部解碼與外部解碼的處理,才能夠得到一最終輸出碼字(codeword)b(若在沒有錯誤發(fā)生的狀況下,最終輸出碼字b即為消息序列b)。
在現(xiàn)有技術(shù)中,已有美國專利公告第5208816號所提出的「Generalized Viterbi Decoding Algorithms」以及NambirajanSeshadri與Carl-erik W.Sundberg在1994年電機電子工程師協(xié)會(IEEE,Institute of Electrical and Electronic Engineers)的通訊會刊(Transactions on communications)第42卷第2、3、4期(VOL.50,NO.2/3/4)中發(fā)表名稱為“List Viterbi Decoding Algorithm withApplication”的論文,利用維特比解碼(viterbi decoding)與格子圖在接收端解碼出最終輸出碼字
。其中,維特比解碼又細分為并行(Parallel)維特比解碼與串行(Serial)維特比解碼。圖2為現(xiàn)有技術(shù)中的接收端并行維特比解碼的方塊圖,圖3為現(xiàn)有技術(shù)中的接收端串行維特比解碼的方塊圖。
請先參照圖2,接收信號r經(jīng)過解調(diào)單元210后,解調(diào)出第一輸出碼字
至內(nèi)部解碼器220,而內(nèi)部解碼器220透過格子圖找出與第一輸出碼字
相似的L個路徑,并輸出所對應(yīng)的L個第二輸出碼字
,
,K
至外部解碼器230,其中最大相似度(maximum likelihood)路徑所對應(yīng)的第二輸出碼字為
,具有第二相似度路徑所對應(yīng)的碼字為
。以此類推,第二輸出碼字依照相似度分為
,
,K
,其中相似度以一計量值(metric)來計算。而外部解碼器230接收到L個第二輸出碼字
,
,K
后,將依序判斷第二輸出碼字中的冗余位(redundant bits)是否正確,并由第二輸出碼字
,
,K
解碼出最終輸出碼字
。
請參照圖3,接收信號r經(jīng)過解調(diào)單元310后,解調(diào)出第一輸出碼字
至內(nèi)部解碼器320,而內(nèi)部解碼器320將透過格子圖找出最大相似度路徑,并輸出最大相似度路徑所對應(yīng)的第二輸出碼字
至外部解碼器330。而外部解碼器330將判斷第二輸出碼字
中的冗余位是否正確。若判斷為正確時,外部解碼器330將由第二輸出碼字
解碼出最終輸出碼字
。反之,若判斷為錯誤時,外部解碼器330將要求內(nèi)部解碼器320再次輸出一第二輸出碼字
。而內(nèi)部解碼器320在透過格子圖找出第二相似度路徑,并輸出第二相似度路徑所對應(yīng)的第二輸出碼字
至外部解碼器330。以此模式將可配合內(nèi)部解碼器320與外部解碼器330解碼出最終輸出碼字
。
然而,以并行維特比解碼而言,在解碼的過程中,必須在格子圖中每個時序(level)的每個狀態(tài)(state)上儲存與計算所延伸出的繼承路徑(successor path)計量值,才能夠找出L條相似的路徑。因此,在實際應(yīng)用上,并行維特比解碼必須花費龐大的運算量,才能夠輸出L個第二輸出碼字。另外,不論信道狀況的好壞,并行維特比解碼都必須計算格子圖中所有節(jié)點的繼承路徑計量值并維持輸出L個第二輸出碼字至外部解碼器,因此,就算在信道質(zhì)量良好的狀態(tài)下,并行維特比解碼也無法降低其龐大的運算量。
就串行維特比解碼而言,雖然一次僅須輸出一個第二輸出碼字,但是在實際應(yīng)用時,仍然必須花費龐大的計算量,來計算并儲存所有節(jié)點所延伸出的繼承路徑計量值。并且在尚未找出最佳碼字前,每當外部解碼器判斷出第二輸出碼字錯誤時,內(nèi)部解碼必須要重新由格子圖的起始點出發(fā),并重新在每一狀態(tài)上決策出一條生存路徑,才能夠再輸出另一第二輸出碼字。因此,若以硬件實現(xiàn)串行維特比解碼,內(nèi)部解碼器必須花費大量的內(nèi)存空間來儲存格子圖中所有路徑的計量值,以重復(fù)提供不同的第二輸出碼字。
發(fā)明內(nèi)容
本發(fā)明的目的就是在提供一種序列式解碼方法,利用開放堆棧所儲存的多個路徑,產(chǎn)生多組最小計量值路徑所對應(yīng)的碼字,以降低解碼的運算量與復(fù)雜度,并減少解碼的時間。
本發(fā)明的再一目的是提供一種解碼裝置,利用內(nèi)部解碼器中的開放堆棧,依序產(chǎn)生多組最小計量值路徑所對應(yīng)的碼字,并輸出至外部解碼器,以減少內(nèi)存的使用,并降低硬件成本,又能夠節(jié)省解碼時的運算量。
本發(fā)明提出一種序列式解碼方法,此解碼方法包括步驟(a)中提供一解碼圖,其中解碼圖表示編碼時所經(jīng)過的多個路徑與多個節(jié)點,多個路徑配置于多個節(jié)點之間,且每一路徑分別對應(yīng)一碼字;步驟(b)中,放入解碼圖的起始點(original node)至一開放堆棧(open stack);步驟(c)中,根據(jù)一接收信號,計算開放堆棧中的一最小計量值(metric)路徑的一結(jié)束點(end node)所延伸出的多個繼承路徑(successor path)的計量值;在步驟(d)中,刪除開放堆棧中的最小計量值路徑;在步驟(e)中,放入繼承路徑至開放堆棧;在步驟(f)中判斷開放堆棧中的最小計量值路徑是否到達解碼圖的終點(terminal node),若否,則重復(fù)步驟(c)~(f),若是,則輸出最小計量值路徑所對應(yīng)的碼字;在步驟(g)中,當開放堆棧中的最小計量值路徑所對應(yīng)的碼字錯誤時,則刪除開放堆棧中的最小計量值路徑,并重復(fù)步驟(c)~(g)。
依照本發(fā)明的優(yōu)選實施例所述,上述的序列式解碼方法,其中步驟(g)包括判斷最小計量值路徑所對應(yīng)的碼字中的一冗余位(redundant bits)是否正確;若最小計量值路徑所對應(yīng)的碼字中的冗余位錯誤時,則刪除開放堆棧中的最小計量值路徑,并重復(fù)步驟(c)~(g);若最小計量值路徑所對應(yīng)的碼字中的冗余位正確時,則最小計量值路徑所對應(yīng)的碼字為一最佳碼字。
依照本發(fā)明的優(yōu)選實施例所述,上述的序列式解碼方法,其中開放堆棧用以存放多個路徑,而這些路徑所對應(yīng)的碼字具有成為最佳碼字的可能性。
依照本發(fā)明的優(yōu)選實施例所述,上述的序列式解碼方法,其中起始點的計量值為零。
依照本發(fā)明的優(yōu)選實施例所述,上述的序列式解碼方法,其中解碼圖中的每一節(jié)點具有一計數(shù)值。
依照本發(fā)明的優(yōu)選實施例所述,上述的序列式解碼方法,其中于步驟(b)之前更包括將解碼圖中的每一節(jié)點的計數(shù)值設(shè)定為零以及設(shè)定一最大輸出個數(shù)。
依照本發(fā)明的優(yōu)選實施例所述,上述的序列式解碼方法,其中步驟(d)更包括在步驟(d1)中,累加一特定值至該最小計量路徑值的前述結(jié)束點的計數(shù)值,其中特定值為1;在步驟(d2)中,判斷前述結(jié)束點的計數(shù)值為大于等于最大輸出個數(shù)時,則將前述結(jié)束點放入一封閉堆棧,進入步驟(d3),否則,則進入步驟(d3);在步驟(d3)中,刪除開放堆棧中的最小計量值路徑。
依照本發(fā)明的優(yōu)選實施例所述,上述的序列式解碼方法,其中步驟(e)更包括當繼承路徑其中之一特定路徑進入到封閉堆棧所儲存的任一節(jié)點時,排除此特定路徑;當繼承路徑其中之一與開放堆棧中的路徑交會時,排除計量值較大的路徑;放入剩余的繼承路徑至開放堆棧;依照計量值的大小,排列開放堆棧所儲存的路徑。
依照本發(fā)明的優(yōu)選實施例所述,上述的序列式解碼方法,其中接收信號透過一外部編碼與一內(nèi)部編碼而得。
依照本發(fā)明的優(yōu)選實施例所述,上述的序列式解碼方法,其中內(nèi)部編碼用以將k個數(shù)據(jù)位編碼為n個位碼字,解碼圖的路徑所對應(yīng)第j個碼字表示為xj,而xj∈{0,1},解碼圖的時序表示為l,而計量值為其中k、n為自然數(shù),j、l為整數(shù),φj為一對數(shù)可能性比值,且φj為實數(shù),φj值為log[Pr(uj|0)/Pr(uj|1)],而uj為第j個接收信號,Pr(uj|0)表示當傳送0時接收到uj的機率,Pr(uj|1)表示當傳送1時接收到uj的機率。
依照本發(fā)明的優(yōu)選實施例所述,上述的序列式解碼方法,其中內(nèi)部編碼用以將k個數(shù)據(jù)位編碼為n個位碼字,解碼圖的路徑所對應(yīng)第j個碼字表示為xj,而xj∈{0,1},解碼圖的時序表示為l,而計量值為其中k、n為自然數(shù),j、l為整數(shù),φj為一對數(shù)可能性比值,且φj為實數(shù),其值為ln[Pr(uj|0)/Pr(uj|1)],而uj為第j個接收信號,Pr(uj|0)表示當傳送0時接收到uj的機率,Pr(uj|1)表示當傳送1時接收到uj的機率。yj為一硬式?jīng)Q策值,而當φj<0時,判斷yj=1,當φj≥0時,判斷yj=0。
依照本發(fā)明的優(yōu)選實施例所述,上述的序列式解碼方法,其中解碼圖包括格子圖與樹形圖等等。
本發(fā)明再提出一種解碼裝置,用以將接收信號解碼出一最終輸出碼字,接收器的解碼裝置包括一內(nèi)部解碼器與一外部解碼器。此內(nèi)部解碼器利用一解碼圖,并由解碼圖之一起始點出發(fā),且利用一開放堆棧儲存所經(jīng)過的路徑,每當?shù)竭_解碼圖的任一節(jié)點時,僅選擇由開放堆棧中的最小計量值路徑前進,并根據(jù)接收信號,計算所延伸出的多個繼承路徑的計量值,以及儲存多個繼承路徑至開放堆棧,當開放堆棧中的最小計量值路徑到達解碼圖的丨終點時,內(nèi)部解碼器將輸出最小計量值路徑所對應(yīng)的碼字。此外部解碼器接收最小計量值路徑所對應(yīng)的碼字,用以解碼并判斷最小計量值路徑所對應(yīng)的碼字是否正確,并輸出最終輸出碼字。當外部解碼器判斷最小計量值路徑所對應(yīng)的碼字錯誤時,內(nèi)部解碼器排除開放堆棧中的最小計量值路徑,并由開放堆棧中之一特定路徑取代最小計量值路徑,其中,特定路徑在開放堆棧中具有次小的計量值。而內(nèi)部解碼器將繼續(xù)由最小計量值路徑的結(jié)束點出發(fā),在最小計量值路徑到達解碼圖的終點時,重新輸出最小計量值路徑所對應(yīng)的碼字至外部解碼器,直到外部解碼器判斷最小計量值路徑所對應(yīng)的碼字為正確。
依照本發(fā)明的優(yōu)選實施例所述,上述的解碼裝置,其中接收信號透過一外部編碼與一內(nèi)部編碼而得。內(nèi)部編碼包括格碼,格碼包括卷積碼等等。而外部編碼包括一錯誤檢測碼,錯誤檢測碼包括循環(huán)冗余校驗碼與奇偶檢驗碼等等。
依照本發(fā)明的優(yōu)選實施例所述,上述的解碼裝置,其中解碼圖表示編碼時所經(jīng)過的多個路徑與多個節(jié)點,多個路徑配置于多個節(jié)點之間,且每一路徑分別對應(yīng)一碼字。
依照本發(fā)明的優(yōu)選實施例所述,上述的解碼裝置,其中解碼裝置更包括一解調(diào)單元,耦接至內(nèi)部解碼器,根據(jù)接收信號,解調(diào)出一第一輸出碼字,并輸出第一輸出碼字至內(nèi)部解碼器。
依照本發(fā)明的優(yōu)選實施例所述,上述的解碼裝置,其中解碼圖包括一格子圖。
本發(fā)明因采用一開放堆棧,讓內(nèi)部解碼器所產(chǎn)生的碼字錯誤時,能夠利用開放堆棧所儲存的多個路徑,重新產(chǎn)生碼字,以降低解碼的運算量與復(fù)雜度,并減少解碼的時間。
為讓本發(fā)明的上述和其它目的、特征和優(yōu)點能更明顯易懂,下文特舉優(yōu)選實施例,并配合所附圖式,作詳細說明如下。
圖1為現(xiàn)有技術(shù)中的傳送端的信道編碼方塊圖。
圖2為現(xiàn)有技術(shù)中的接收端并行維特比解碼的方塊圖。
圖3為現(xiàn)有技術(shù)中的接收端串行維特比解碼的方塊圖。
圖4繪示為(3,1,2)卷積碼的格子圖。
圖5為本發(fā)明優(yōu)選實施例的解碼裝置方塊圖。
圖6為本發(fā)明優(yōu)選實施例的序列式解碼的步驟流程圖。
圖7為本發(fā)明優(yōu)選實施例的序列式解碼的步驟流程圖。
圖8繪示為仿真消息序列長度為100,本發(fā)明實施例的序列式解碼方法在不同的最大輸出個數(shù)L下錯誤率趨勢圖。
圖9繪示為仿真消息序列長度為100,本發(fā)明實施例的序列式解碼方法與現(xiàn)有的并行維特比解碼在不同的最大輸出個數(shù)L下每輸出位的平均解碼復(fù)雜度的趨勢圖。
具體實施例方式 一般的通訊系統(tǒng)中,若所傳輸?shù)男盘栐趥魉投藭r已經(jīng)過兩次以上的編碼,在接收端的接收信號將會經(jīng)過兩次以上的解碼步驟。而傳送端的方塊圖例如為圖1所示,而圖1中的外部編碼器例如利用錯誤檢測碼來實現(xiàn),而錯誤檢測碼例如可為循環(huán)冗余校驗碼或奇偶檢驗碼等等。上述的內(nèi)部編碼器可利用錯誤校正碼來實現(xiàn),錯誤校正碼例如包括格碼等等,而常見的格碼為卷積碼等等。
以下為了方便說明本發(fā)明,外部編碼器例如使用一(x+1,x)的奇偶檢驗碼,并假設(shè)消息序列b長度為3(也就是假設(shè)x=3),因此3位的消息序列b=(b0,b1,b2)將加入一冗余位v3成為第一碼字v=(b0,b1,b2,v3),其中b0,b1,b2∈{0,1}。而當消息序列b中1的個數(shù)為奇數(shù)時,v3=1,反之,消息序列b中1的個數(shù)為偶數(shù)時,v3=0。
另外,在以下的實施例中,內(nèi)部編碼器例如使用一(n,k,m)的卷積碼將第一碼字v編碼為第二碼字u,并假設(shè)(n,k,m)=(3,1,2)。而長度為4的第一碼字v,經(jīng)過(3,1,2)卷積碼編碼時所使用的格子圖如圖4所示。圖4繪示為(3,1,2)卷積碼的格子圖。圖4中包括節(jié)點以及每一節(jié)點所對應(yīng)的路徑。而每一節(jié)點表示為l-s,其中l(wèi)表示時序(level),且l∈{0,1,2,3,4,5,6};s表示狀態(tài),且s∈{0,1,2,3}。每一節(jié)點所出發(fā)的路徑上對應(yīng)輸入的一碼字與將輸出的3位的格碼。而當l=0~4時,由每一節(jié)點將有兩條路徑出發(fā),由節(jié)點所出發(fā)的上面路徑為輸入碼字為1時所走的路徑(也就是上面路徑所對應(yīng)的碼字為1)。由節(jié)點所出發(fā)的下面路徑為輸入碼字為0時所走的路徑(也就是下面路徑所對應(yīng)的碼字為0)。因此,由起始點(origin node)(0-0)到終點(terminal node)(6-0)中,第一碼字v中的每一位選擇所要經(jīng)過的路徑,也就決定了輸出的格碼,也就是決定了內(nèi)部編碼器所輸出的第二碼字u。
相對應(yīng)于傳送端,接收端接收到的接收信號r也必須經(jīng)過解調(diào)、內(nèi)部解碼與外部解碼的處理,才能夠得到一最終輸出碼字
圖5為本發(fā)明優(yōu)選實施例的解碼裝置方塊圖。請參照圖5,解碼裝置包括解調(diào)單元510、內(nèi)部解碼器520與外部解碼器530。其中,解調(diào)單元510將接收到接收信號r,并解調(diào)出一第一輸出碼字
至該內(nèi)部解碼器520。
內(nèi)部解碼器520將利用一解碼圖,由解碼圖的起始點出發(fā),并利用一開放堆棧儲存所經(jīng)過的路徑。每當?shù)竭_一節(jié)點時,僅選擇由開放堆棧中的最小計量值路徑由前進,并根據(jù)第一輸出碼字
計算所延伸出的多個繼承路徑的計量值,以及儲存多個繼承路徑至開放堆棧。當開放堆棧中的最小計量值路徑(也就是具有最大相似度的路徑)到達解碼圖的丨終點時,內(nèi)部解碼器將輸出最小計量值路徑所對應(yīng)的碼字,也就是圖5中第二輸出碼字
在本實施例中,計量值表示內(nèi)部解碼器520所接收的第一輸出碼字
與解碼圖中的路徑的相似度。而解碼圖表示編碼時所經(jīng)過的多個路徑與多個節(jié)點,這些路徑配置于多個節(jié)點之間,并且每一路徑分別對應(yīng)一碼字。而在本實施例中,解碼圖例如為一格子圖與一樹形圖等等,并且為了方面說明本發(fā)明,以下實施例皆例如以圖4的格子圖實施之。
請繼續(xù)參照圖5,外部解碼器530耦接至內(nèi)部解碼器520并接收第二輸出碼字
用以解碼并判斷最小計量值路徑所對應(yīng)的碼字是否正確,以輸出最終輸出碼字
在本實施例中,由于假設(shè)內(nèi)部編碼是使用(3,1,2)的卷積碼以及內(nèi)部解碼器520是利用圖4的格子圖,因此,外部解碼器530所接收的第二碼字
可表示為其中,
與
為無效的位,
為一冗余位。對應(yīng)于圖1的外部編碼器110所使用的奇偶檢驗碼,外部解碼器530利用第二輸出碼字
中的冗余位
判斷第二輸出碼字
是否正確。若外部解碼器530判斷出第二輸出碼字
正確時,將輸出最終輸出碼字
其中若在沒有錯誤產(chǎn)生的狀況下,最終輸出碼字
將會等于圖1中消息序列b。
反之,若外部解碼器530判斷出第二輸出碼字
錯誤時,將要求內(nèi)部解碼器520重新輸出一第二輸出碼字
而內(nèi)部解碼器520將排除先前所輸出的第二輸出碼字
也就是排除在開放堆棧中所儲存的最小計量值路徑。之后,內(nèi)部解碼器520再以儲存于開放堆棧中的一特定路徑取代最小計量值路徑,而此特定路徑例如為在開放堆棧中具有次小的計量值。并且,內(nèi)部解碼器520將繼續(xù)由最小計量值路徑的結(jié)束點(end node)出發(fā),在最小計量值路徑到達格子圖的終點時,重新輸出最小計量值路徑所對應(yīng)的碼字至外部解碼器530。也就是說,在外部編碼器530偵測出判斷出第二輸出碼字
錯誤時,內(nèi)部解碼器520將重新產(chǎn)生一第二輸出碼字
輸出至外部解碼器530,而此時所輸出的第二輸出碼字
例如為具有第二相似度的路徑,以讓外部解碼器530重新判斷內(nèi)部解碼器520所輸出的第二輸出碼字
是否正確。因此,依照上述的內(nèi)部解碼器520與外部解碼器530相互配合的操作模式,內(nèi)部解碼器520將能夠依照相似度的順序,輸出第二輸出碼字
至外部解碼器530,直到外部解碼器530判斷第二輸出碼字
正確為止,以讓外部解碼器530解碼出最終輸出碼字
并得到傳送端所傳送的消息序列b。
由上面所描述的實施例可知,相較于現(xiàn)有技術(shù)中的維特比解碼,本發(fā)明實施例僅需要計算開放堆棧中最小路徑計量值所延伸出的繼承路徑的計量值。另外,當外部解碼器判斷出內(nèi)部解碼器所輸出的碼字錯誤時,內(nèi)部編碼器還可利用儲存于開放堆棧中的路徑,重新產(chǎn)生一碼字輸出至外部解碼器,也就是說,相較于現(xiàn)有技術(shù)中的串行維特比解碼,本發(fā)明實施例不再需要由格子圖的起始點重新尋找出最大相似度路徑,因此,節(jié)省大量的內(nèi)存空間,并減少了許多運算的復(fù)雜度。
值得一提的是,雖然在本實施例中已經(jīng)對解碼裝置中描繪出了一個可能的型態(tài),但熟知此技術(shù)者應(yīng)知,各廠商對于解碼裝置的設(shè)計方式都不一樣,因此本發(fā)明的應(yīng)用當不限制于此種可能的型態(tài)。換言之,只要是能夠利用先前所儲存的路徑重新產(chǎn)生出其它的碼字,就已經(jīng)是符合了本發(fā)明的精神所在。接下來將舉出數(shù)個方法的實施例說明內(nèi)部解碼器如何產(chǎn)生第二輸出碼字,以便本技術(shù)領(lǐng)域者更能夠輕易地依照本發(fā)明的構(gòu)想來施行。
圖6為本發(fā)明優(yōu)選實施例的序列式解碼的步驟流程圖。請參照圖6,首先,提供一解碼圖(步驟S610),其中,解碼圖表示編碼時所經(jīng)過的多個路徑與多個節(jié)點,這些路徑配置于多個節(jié)點之間,且每一路徑分別對應(yīng)一碼字。而在本實施例中,解碼圖可例如以格子圖與樹形圖實施之,且為了方便說明本發(fā)明,以下皆以圖4的格子圖作為舉例。
初始時,將格子圖的第一路徑儲存至一開放堆棧(open stack)中(步驟S620)。其中,第一路徑只有包括一起始點(例如為圖4中節(jié)點0-0),而第一路徑的計量值為零。而在本實施例中,開放堆棧用以存放在解碼步驟中經(jīng)過或延伸的路徑。
接下來,根據(jù)所接收的信號,計算開放堆棧中最小計量值路徑的結(jié)束點所延伸出的多個繼承路徑的計量值(步驟S630)。此時,開放堆棧中最小計量值路徑為第一路徑,而第一路徑的結(jié)束點為起始點0-0,以圖4為例,由起始點0-0所延伸的路徑為路徑0-0→1-0與路徑0-0→1-1,所以步驟S630中,將計算路徑0-0→1-0與路徑0-0→1-1的計量值。其中,計量值表示內(nèi)部解碼器520所接收的第一輸出碼字
與格子圖中的路徑的相似度。
之后,刪除開放堆棧中最小計量值路徑(步驟S640),并放入繼承路徑至開放堆棧(步驟S650)。此時,刪除開放堆棧中所儲存的第一路徑,并將路徑0-0→1-0與路徑0-0→1-1放入開放堆棧。在本實施例中,繼承路徑放入開放堆棧的順序例如為根據(jù)計量值由小至大放入,或是根據(jù)計量值由大至小放入,又或是沒有一定的順序。
接下來,判斷開放堆棧中最小計量值路徑是否到達格子圖的終點(例如為圖1中的節(jié)點6-0)(步驟S660)。若開放堆棧中所儲存的路徑里,最小計量值路徑未到達格子圖的終點,則回到步驟S630。此時,由于在開放堆棧中所儲存的路徑(例如為圖1中路徑0-0→1-0與路徑0-0→1-1)皆未達格子圖的終點,因此,將回到步驟S630,在由路徑0-0→1-0或路徑0-0→1-1的結(jié)束點所延伸的路徑,依序由最小路徑計量值出發(fā),以到達格子圖的終點。
反之,若開放堆棧中所儲存的路徑里,最小計量值路徑已到達格子圖的終點,則判斷最小計量值路徑所對應(yīng)的碼字是否正確(步驟S670)。在本實施例中,最小計量值路徑所對應(yīng)的碼字即為圖5中內(nèi)部解碼器520所輸出的第二輸出碼字
而判斷第二輸出碼字
方法則可例如是利用第二輸出碼字
中的冗余位
來判斷第二輸出碼字
是否正確。
若判斷出最小計量值路徑所對應(yīng)的碼字錯誤時,將刪除儲存于開放堆棧中的最小計量值路徑(步驟S680),并回到步驟S630,以再由開放堆棧中的最小計量值路徑出發(fā),并在到達格子圖終點時,重新輸出最小計量值路徑所對應(yīng)的碼字。
若最小計量值路徑所對應(yīng)的碼字正確時,則最小計量值路徑所對應(yīng)的碼字為一最佳碼字(步驟S690)。而在本實施例中,最佳碼字即為開放堆棧中具有最小計量值路徑所對應(yīng)的碼字,并且前述最佳碼字又為一正確的碼字。
為了使本領(lǐng)域中的具有通常知識者能夠輕易實施本發(fā)明,以下將說明上述的計量值的計算方法。首先,將所接收的第一輸出碼字表示為N為第一輸出碼字的長度。第一輸出碼字經(jīng)過硬式?jīng)Q策后,得到的序列表示為y=(y0,y1,K,yN),其中任意一個元素為 其中φj為對數(shù)可能性比值(log-likelihood ratio),其定義為 其中Pr(uj|0)表示當傳送0時接收到uj的機率,Pr(uj|1)表示當傳送1時接收到uj的機率,且φj為實數(shù)。
格子圖中任意路徑上的碼字可以表示為x(l·n-1),而x(l·n-1)=(x0,x1,K,xl·n-1),其中,l表示此路徑的結(jié)束點的時序,n表示每次將k個數(shù)據(jù)位編碼為n個格碼,而l為一非負的整數(shù),n、k為自然數(shù)。以圖4中的路徑0-0→1-1→2-3為例,此路徑的結(jié)束點為2-3,而結(jié)束點2-3的時序l為2,且n=3,因此,路徑0-0→1-1→2-3所對應(yīng)的格碼為x5=111010。而計量值的計算方法有兩種,第一種為 第二種為 上述二種計量值的計算方法皆表示,當路徑上碼字與接收信號越相似時,所計算出的計量值越小,因此,可利用計量值來判斷格子圖中路徑上所對應(yīng)的碼字與第一輸出碼字的相似度。并且,由第(1)式與第(2)式所計算出的計量值皆為一非負(non-negative)的值,因此,此兩種計量值的計算方法可應(yīng)用于格子圖中,并在步驟S630中,僅須計算由結(jié)束點所延伸出的路徑的計量值,再累加至最小計量值路徑的計量值,即可得到繼承路徑的計量值。
值得一提的是,由于第(2)式中沒有出現(xiàn)yj項,因此,當使用第二種計量值的計算方法時,能夠省去解碼時硬式?jīng)Q策的步驟,也就降低了在做決策時發(fā)生錯誤的機率,相對地增加序列式解碼的表現(xiàn)。舉例來說,當實際傳輸?shù)耐ǖ罏榧映尚园赘咚乖肼曅诺?Additive White Gaussian Noise,AWGN),則對數(shù)可能性比值φj=C·rj,其中C為一常數(shù),而第(2)式轉(zhuǎn)變?yōu)? 由第(3)式更能觀察出,第二種計量值的計算方法實際應(yīng)用于接收端的電路時,將可省去執(zhí)行決策的電路,更加減少硬件的成本。
為了使得本領(lǐng)域的具有通常知識者能夠更輕易實施本發(fā)明,以下將舉出另一實施例更加詳細說明本發(fā)明所提出的序列式解碼方法。
圖7為本發(fā)明優(yōu)選實施例的序列式解碼的步驟流程圖。請參照圖7,首先,提供一解碼圖(步驟S710),其中,解碼圖表示編碼時所經(jīng)過的多個路徑與多個節(jié)點,這些路徑配置于多個節(jié)點之間,且每一路徑分別對應(yīng)一碼字。而在本實施例中,解碼圖可例如以格子圖與樹形圖實施之,且為了方便說明本發(fā)明,以下皆以圖4的格子圖作為舉例。
接下來,將格子圖中的每一節(jié)點的計數(shù)值設(shè)定為零,并且設(shè)定一最大輸出個數(shù)的值(步驟S715)。在本實施例中,將格子圖中的每一節(jié)點分別設(shè)置一計數(shù)值,此計數(shù)值用以計數(shù)由每一節(jié)點所延伸出繼承路徑的次數(shù)。而最大輸出個數(shù)(以下皆表示為L)用來表示每一節(jié)點能夠延伸出繼承路徑的最多次數(shù),在本實施例中,假設(shè)最大輸出個數(shù)L=3。并且最大輸出個數(shù)L又用來表示圖5中的最多可輸出的第二輸出碼字
的個數(shù),也就是說,最多能夠容許第二輸出碼字
錯誤的次數(shù)為L。當在通道環(huán)境極差的狀況下,且內(nèi)部解碼器520依序輸出的L個第二輸出碼字
皆被判斷為錯誤時,解碼裝置將會要求傳送端重新傳送此筆接收信號。
請繼續(xù)參考圖7,將格子圖的第一路徑儲存至一開放堆棧中(步驟S720)。其中,第一路徑只有包括一起始點(例如為圖4中節(jié)點0-0),而第一路徑的計量值為零。而在本實施例中,開放堆棧用以存放在解碼步驟中經(jīng)過或延伸的路徑。
接下來,根據(jù)所接收的信號,計算開放堆棧中最小計量值路徑的結(jié)束點所延伸出的多個繼承路徑的計量值(步驟S725)。此時,開放堆棧中最小計量值路徑為第一路徑,而第一路徑的結(jié)束點為起始點0-0,以圖4為例,由起始點0-0所延伸的路徑為路徑0-0→1-0與路徑0-0→1-1,所以在步驟S630中,將計算繼承路徑0-0→1-0與繼承路徑0-0→1-1的計量值。在本實施例中,計量值的計算方法例如為前述的第(1)式與第(2)式其中之一,但并不限定于此。
之后,將最小計量值路徑的結(jié)束點的計數(shù)值加上一特定值(步驟S730)。在本實施例中,此特定值例如為1,但不限定其范圍。此時,最小計量值路徑的結(jié)束點即為第一路徑的結(jié)束點(也就是圖4中節(jié)點0-0),而在步驟S730中,將節(jié)點0-0的計數(shù)值由0累加特定值(例如為1)后轉(zhuǎn)變?yōu)?。
再來將判斷最小計量值路徑的該結(jié)束點的計數(shù)值是否大于等于最大輸出個數(shù)L(步驟S735),此時該結(jié)束點為第一路徑的結(jié)束點(也就是圖4中節(jié)點0-0)。若該結(jié)束點的計數(shù)值是大于等于最大輸出個數(shù)時,則該結(jié)束點將被放入一封閉堆棧(步驟S740),并進入步驟S745。反之,若該結(jié)束點的計數(shù)值小于最大輸出個數(shù)L,則直接進入步驟S745。此時,由于該結(jié)束點的計數(shù)值為1,并且此計數(shù)值小于最大輸出個數(shù)L(在本實施例中L假設(shè)為3),因此,直接進入步驟S745。
在本實施例中,封閉堆棧用以存放多個節(jié)點,而封閉堆棧中所儲存的節(jié)點將儲存曾經(jīng)為開放堆棧中最小計量值路徑的結(jié)束點信息,其結(jié)束點信息為結(jié)束點的時序與狀態(tài)。也就是說,當有任何路徑的結(jié)束點與封閉堆棧中所儲存的節(jié)點相同時,此路徑將不會再前進。
之后,刪除開放堆棧中最小計量值路徑(步驟S745)。此時開放堆棧中只有第一路徑,因此,刪除第一路徑,而使得此時的開放堆棧中沒有存在任何路徑。
接下來,判斷多個繼承路徑中是否存在一特定路徑進入到封閉堆棧所儲存的任一節(jié)點(步驟S750)。若繼承路徑中存在有一特定路徑時,則排除此特定路徑(步驟S755),再繼續(xù)進行之后步驟。若繼承路徑中沒有存在此特定路徑,則直接進行之后步驟。此時,繼承路徑為節(jié)點0-0→1-0的路徑與節(jié)點0-0→1-1的路徑,而封閉堆棧中沒有任何節(jié)點,因此直接進行之后的步驟。
接下來,判斷繼承路徑其中之一是否與儲存于開放堆棧中的路徑交會(步驟S760)。若繼承路徑其中之一與儲存于開放堆棧中的路徑交會時,則刪除計量值較大的路徑(步驟S765),并繼續(xù)進行之后的步驟。若否,則直接進行之后的步驟。此時,由于開放堆棧中沒有儲存路徑,因此直接進行之后的步驟。
之后,放入剩余的繼承路徑至開放堆棧(步驟S770)。此時,由于并未執(zhí)行過步驟S755與步驟S765,也就并未刪除任何的路徑,因此,在步驟S770中,將放入節(jié)點0-0→1-0的路徑與節(jié)點0-0→1-1的路徑。在本實施例中,放入繼承路徑至開放堆棧后,可依據(jù)計量值,由小至大依序重新排列開放堆棧中所儲存的全部路徑,以使得在步驟S725中可以直接由開放堆棧中的最上面的路徑得到最小計量值路徑。并且若在放入繼承路徑至開放堆棧之前,開放堆棧中的路徑已依照其計量值依序排列,則在執(zhí)行步驟S770時,依照繼承路徑的計量值插入開放堆棧中已依照計量值排列的路徑,就能夠使得開放堆棧中所有儲存的路徑依照其計量值依序排列。
接下來,判斷開放堆棧中最小計量值路徑是否到達格子圖的終點(例如為圖1中的節(jié)點6-0)(步驟S780)。若開放堆棧中所儲存的路徑里,最小計量值路徑未到達格子圖的終點,則回到步驟S725。此時,由于在開放堆棧中所儲存的路徑(例如為圖1中節(jié)點0-0→1-0的路徑與節(jié)點0-0→1-1的路徑)皆未達格子圖的終點,因此,將回到步驟S725,再由節(jié)點0-0→1-0的路徑與節(jié)點0-0→1-1的路徑延生出的路徑,依序由最小路徑計量值出發(fā),以到達格子圖的終點。
反之,若開放堆棧中所儲存的路徑里,最小計量值路徑已到達格子圖的終點,則判斷最小計量值路徑所對應(yīng)的碼字中的一冗余位是否正確(步驟S785)。在本實施例中,最小計量值路徑所對應(yīng)的碼字即為圖5中內(nèi)部解碼器520所輸出的第二輸出碼字
而判斷第二輸出碼字
方法則可例如是利用第二輸出碼字
中的冗余位
來判斷第二輸出碼字
是否正確。
若判斷出最小計量值路徑所對應(yīng)的碼字錯誤時,將刪除儲存于開放堆棧中的最小計量值路徑(步驟S790),并回到步驟S725,以再由開放堆棧中的最小計量值路徑出發(fā),并在到達格子圖終點時,重新輸出最小計量值路徑所對應(yīng)的碼字。
若最小計量值路徑所對應(yīng)的碼字正確時,則最小計量值路徑所對應(yīng)的碼字為一最佳碼字(步驟S795)。而在本實施例中,最佳碼字即為開放堆棧中具有最小計量值路徑所對應(yīng)的碼字,并且最佳碼字為一正確的碼字。
然而,本領(lǐng)域具通常知識者應(yīng)當可觀察出,若在步驟S785中,判斷出最小計量值路徑所對應(yīng)的碼字錯誤時,則只需在刪除開放堆棧中的最小計量值路徑后,再由開放堆棧中所儲存的最小計量值路徑的結(jié)束點出發(fā),并繼續(xù)執(zhí)行之后的步驟,就可再輸出最小計量值路徑所對應(yīng)的碼字,相較于現(xiàn)有技術(shù)中的序列為特比解碼,本發(fā)明實施例能夠不需要再回到格子圖的起始點,也不需要重新在每一狀態(tài)上決策出生存路徑,就可再輸出最小計量值路徑所對應(yīng)的碼字(也就是說能夠使得內(nèi)部解碼器再次輸出一第二輸出碼字
)。因此,在實際應(yīng)用時,也就相對地節(jié)省了運算的復(fù)雜度以及運算的時間。并且內(nèi)部解碼器也僅需要儲存開放堆棧內(nèi)的路徑,以節(jié)省內(nèi)部解碼器中的內(nèi)存空間。
上述實施例所提出的序列式解碼方法,能夠以一個程序進行仿真。而以下圖8與圖9將繪示出各種編碼條件下的仿真圖,并與現(xiàn)有技術(shù)中的維特比解碼比較運算的復(fù)雜度,而以下的仿真所使用的傳輸通道皆假設(shè)為加成性白高斯噪聲信道。
圖8繪示為仿真消息序列長度為100,本發(fā)明實施例的序列式解碼方法在不同的最大輸出個數(shù)L下錯誤率趨勢圖。請參照圖8,其橫坐標為位能量與噪聲能量比值Eb/N0,且單位為dB,縱坐標為區(qū)塊錯誤率(Block Error Rate)。圖8中的三條曲線分別以最大輸出個數(shù)L=1、2與4作為模擬。而由圖8可觀察出當L值越大時,若在相同的Eb/N0值下,L值越大能夠得到更低的區(qū)塊錯誤率。并且,當Eb/N0=2.5時,L=1的序列式解碼方法區(qū)塊錯誤率為10-1.8,L=2的序列式解碼方法區(qū)塊錯誤率為10-2,L=4的序列式解碼方法區(qū)塊錯誤率為10-1.6。也就是說,當噪聲比很大時,本發(fā)明所提出的序列式解碼方法,仍然能夠達到很低的區(qū)塊錯誤率。
圖9繪示為仿真消息序列長度為100,本發(fā)明實施例的序列式解碼方法與習(xí)知的并行維特比解碼在不同的最大輸出個數(shù)L下每輸出位的平均解碼復(fù)雜度的趨勢圖。請參照圖9,其橫坐標為位能量與噪聲能量比值Eb/N0,且單位為dB,縱坐標為每輸出位的平均解碼復(fù)雜度。圖9中的三條虛線為使用序列式解碼方法,并分別以最大輸出個數(shù)L=1、2與4作為模擬。圖9中的三條實線為使用并行維特比解碼方法,并分別以最大輸出個數(shù)L=1、2與4作為模擬。
由圖9可觀察出,由于并行維特比解碼不論信道質(zhì)量的好壞,皆輸出相同個數(shù)的第二碼字至外部解碼器,因此,圖9中的三條實線皆為一直線,也就是說,不論信道質(zhì)量的好壞,并行維特比解碼皆無法降低其解碼的復(fù)雜度。反觀本發(fā)明的序列式解碼方法,其解碼復(fù)雜度明顯地小于并行維特比解碼,并且當信道質(zhì)量較好的時候,本發(fā)明的序列式解碼方法的解碼復(fù)雜度約節(jié)省了一半以上的復(fù)雜度。舉例來說,位能量與噪聲能量比值Eb/N0=4,而最大輸出個數(shù)L=3時,序列式解碼復(fù)雜度的平均值約為101,而并行維特比解碼復(fù)雜度的平均值約為102.5,因此,并行維特比解碼復(fù)雜度約為序列式解碼復(fù)雜度的31倍。
綜上所述,本發(fā)明實施例所提出的序列式解碼方法以及解碼裝置,相較于現(xiàn)有技術(shù)中的并行維特比解碼,本發(fā)明實施例只有在外部解碼器判斷出內(nèi)部解碼器所輸出的碼字錯誤時,內(nèi)部編碼器才利用儲存于開放堆棧中的路徑,重新產(chǎn)生一碼字輸出至外部解碼器。因此,在信道質(zhì)量良好的狀況下,本發(fā)明實施例的序列式解碼將能夠降低龐大的運算量。
另外,本發(fā)明實施例所提出的序列式解碼方法以及解碼裝置,相較于現(xiàn)有技術(shù)中的串行維特比解碼,在外部解碼器判斷出內(nèi)部解碼器所輸出的碼字錯誤時,內(nèi)部編碼器只需利用儲存于開放堆棧中的路徑,重新產(chǎn)生并輸出一第二輸出碼字至外部解碼器。換句話說,在外部解碼器判斷出內(nèi)部解碼器所輸出的碼字錯誤時,本發(fā)明實施例所提出的序列式解碼不再需要由格子圖的起始點重新尋找出最大相似度路徑,因此,能夠減少許多運算的復(fù)雜度,并減少解碼的運算時間。另外,相較于現(xiàn)有技術(shù)中的串行維特比解碼,本發(fā)明實施例的序列式解碼也不在需要龐大的內(nèi)存來儲存所有路徑的計量值,也就相對地節(jié)省了大量的內(nèi)存空間。
在實際的應(yīng)用上,本發(fā)明實施例所指出的序列式解碼能夠輕易地以硬件的方式實施集成電路中,或是直接將本發(fā)明撰寫于一軟件中,且此軟件例如應(yīng)用于數(shù)字信號處理(Digital SignalProcessing,DSP)的平臺。
雖然本發(fā)明已以優(yōu)選實施例揭露如上,然其并非用以限定本發(fā)明,任何熟習(xí)此技藝者,在不脫離本發(fā)明的精神和范圍內(nèi),當可作些許的更動與潤飾,因此本發(fā)明的保護范圍當視后附的申請專利范圍所界定的為準。
權(quán)利要求
1.一種序列式解碼方法,包括下列步驟
(a)提供一解碼圖,所述解碼圖表示編碼時所經(jīng)過的多個路徑與多個節(jié)點,所述多個路徑配置于所述多個節(jié)點之間,且所述每一路徑分別對應(yīng)一碼字;
(b)放入所述解碼圖的丨起始點至一開放堆棧;
(c)根據(jù)一接收信號,計算所述開放堆棧中的一最小計量值路徑的一結(jié)束點所延伸出的多個繼承路徑的計量值;
(d)刪除所述開放堆棧中的所述最小計量值路徑;
(e)放入所述多個繼承路徑至所述開放堆棧;
(f)判斷所述開放堆棧中的所述最小計量值路徑若到達所述解碼圖的一終點,輸出所述最小計量值路徑所對應(yīng)的碼字,否則,回到步驟(c);以及
(g)判斷所述開放堆棧中的所述最小計量值路徑所對應(yīng)的碼字若為錯誤時,則刪除所述開放堆棧中的所述最小計量值路徑,并回到步驟(c)。
2.如權(quán)利要求1所述的序列式解碼方法,其中步驟(g)包括下列步驟
判斷所述最小計量值路徑所對應(yīng)的碼字中的一冗余位是否正確;以及
若所述最小計量值路徑所對應(yīng)的碼字中的所述冗余位錯誤時,則刪除所述開放堆棧中的所述最小計量值路徑,并重復(fù)步驟(c)~(g);
若所述最小計量值路徑所對應(yīng)的碼字中的所述冗余位正確時,則所述最小計量值路徑所對應(yīng)的碼字為一最佳碼字。
3.如權(quán)利要求2所述的序列式解碼方法,其中所述開放堆棧用以存放所述多個路徑,而所述多個路徑所對應(yīng)的碼字具有為所述最佳碼字的可能性。
4.如權(quán)利要求1所述的序列式解碼方法,其中所述起始點的計量值為零。
5.如權(quán)利要求1所述的序列式解碼方法,其中所述解碼圖中的所述多個節(jié)點分別具有相對應(yīng)的一計數(shù)值。
6.如權(quán)利要求5所述的序列式解碼方法,其中于步驟(b)之前更包括將所述解碼圖中的每一所述多個節(jié)點的計數(shù)值設(shè)定為零。
7.如權(quán)利要求5所述的序列式解碼方法,其中于步驟(b)之前更包括設(shè)定一最大輸出個數(shù)。
8.如權(quán)利要求7所述的序列式解碼方法,其中步驟(d)更包括下列步驟
(d1)累加一特定值至所述最小計量路徑值的所述結(jié)束點的計數(shù)值;
(d2)判斷所述最小計量路徑值的所述結(jié)束點的計數(shù)值為大于等于所述最大輸出個數(shù)時,則將所述結(jié)束點放入一封閉堆棧,進入步驟(d3),否則,進入步驟(d3);以及
(d3)刪除所述開放堆棧中的所述最小計量值路徑。
9.如權(quán)利要求8所述的序列式解碼方法,其中所述特定值為1。
10.如權(quán)利要求8所述的序列式解碼方法,其中步驟(e)更包括下列步驟
當所述多個繼承路徑其中之一特定路徑進入到所述封閉堆棧所儲存的任一節(jié)點時,排除所述特定路徑;
當所述多個繼承路徑其中之一與所述開放堆棧中的路徑交會時,排除具有較大計量值的路徑;以及
放入剩余的所述多個繼承路徑至所述開放堆棧。
11.如權(quán)利要求10所述的序列式解碼方法,其中在放入剩余的所述多個繼承路徑至所述開放堆棧的步驟之后更包括依照計量值的大小,排列所述開放堆棧所儲存的路徑。
12.如權(quán)利要求1所述的序列式解碼方法,其中所述接收信號透過一外部編碼與一內(nèi)部編碼而得。
13.如權(quán)利要求12所述的序列式解碼方法,其中所述內(nèi)部編碼為一格碼。
14.如權(quán)利要求12所述的序列式解碼方法,其中所述內(nèi)部編碼用以將k個數(shù)據(jù)位編碼為n個位碼字,所述解碼圖的路徑所對應(yīng)第j個碼字表示為xj,而xj∈{0,1},所述解碼圖的時序表示為l,而計量值為其中k、n為自然數(shù),j、l為整數(shù),φj為一對數(shù)可能性比值,且φj為實數(shù)。
15.如權(quán)利要求14所述的序列式解碼方法,其中φj為log[Pr(uj|0)/Pr(uj|1)],而uj為第j個接收信號,Pr(uj|0)表示當傳送0時接收到uj的機率,Pr(uj|1)表示當傳送1時接收到uj的機率。
16.如權(quán)利要求12所述的序列式解碼方法,其中所述內(nèi)部編碼用以將k個數(shù)據(jù)位編碼為n個位碼字,所述解碼圖的路徑所對應(yīng)第j個碼字表示為xj,而xj∈{0,1},所述解碼圖的時序表示為l,而計量值為其中k、n為自然數(shù),j、l為整數(shù),φj為一對數(shù)可能性比值,且φj為實數(shù),而yj為一硬式?jīng)Q策值。
17.如權(quán)利要求16所述的序列式解碼方法,其中φj為ln[Pr(uj|0)/Pr(uj|1)],而uj為第j個接收信號,Pr(uj|0)表示當傳送0時接收到uj的機率,Pr(uj|1)表示當傳送1時接收到uj的機率。
18.如權(quán)利要求17所述的序列式解碼方法,其中當φj<0時,判斷yj=1,當φj≥0時,判斷yj=0。
19.一種解碼裝置,用以將一接收信號解碼出一最終輸出碼字,所述解碼裝置包括
一內(nèi)部解碼器,利用一解碼圖,由所述解碼圖的一起始點出發(fā),并利用一開放堆棧儲存所經(jīng)過的路徑,每當?shù)竭_所述解碼圖的任一節(jié)點時,僅選擇由所述開放堆棧中的一最小計量值路徑前進,并根據(jù)所述接收信號,計算所述最小計量值路徑的結(jié)束點所延伸出的多個繼承路徑的計量值,以及儲存所述多個繼承路徑至所述開放堆棧,當所述開放堆棧中的所述最小計量值路徑到達所述解碼圖的丨終點時,所述內(nèi)部解碼器輸出所述最小計量值路徑所對應(yīng)的碼字;以及
一外部解碼器,接收所述最小計量值路徑所對應(yīng)的碼字,用以解碼并判斷所述最小計量值路徑所對應(yīng)的碼字為正確時,輸出所述最終輸出碼字;
其中,當所述外部解碼器判斷所述最小計量值路徑所對應(yīng)的碼字錯誤時,所述內(nèi)部解碼器排除所述開放堆棧中的所述最小計量值路徑,并由所述開放堆棧中的一特定路徑取代所述最小計量值路徑,其中,所述特定路徑在所述開放堆棧中具有次小的計量值,而所述內(nèi)部解碼器將繼續(xù)由所述最小計量值路徑的結(jié)束點出發(fā),在所述最小計量值路徑到達所述解碼圖的所述終點時,重新輸出所述最小計量值路徑所對應(yīng)的碼字至所述外部解碼器,直到所述外部解碼器判斷所述最小計量值路徑所對應(yīng)的碼字為正確。
20.如權(quán)利要求19所述的解碼裝置,其中所述接收信號透過一外部編碼與一內(nèi)部編碼而得。
21.如權(quán)利要求20所述的解碼裝置,其中所述內(nèi)部編碼為一格碼。
22.如權(quán)利要求19所述的解碼裝置,其中所述解碼圖表示編碼時所經(jīng)過的多個路徑與多個節(jié)點,所述多個路徑配置于所述多個節(jié)點之間,且所述每一路徑分別對應(yīng)一碼字。
23.如權(quán)利要求19所述的解碼裝置,其中所述解碼裝置更包括一解調(diào)單元,耦接至所述內(nèi)部解碼器,根據(jù)所述接收信號,解調(diào)出一第一輸出碼字,并輸出所述第一輸出碼字至所述內(nèi)部解碼器。
全文摘要
本發(fā)明提出一種序列式解碼方法與解碼裝置,透過一開放堆棧,讓內(nèi)部解碼器所產(chǎn)生的碼字錯誤時,能夠利用開放堆棧所儲存的多個路徑,重新產(chǎn)生一組新的碼字,以降低解碼的復(fù)雜度。
文檔編號H04L25/03GK101179544SQ200610144420
公開日2008年5月14日 申請日期2006年11月7日 優(yōu)先權(quán)日2006年11月7日
發(fā)明者謝欣霖, 陳伯寧, 韓永祥 申請人:凌陽科技股份有限公司