亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

基于格子的信道編碼所用的解碼器的制作方法

文檔序號:7535941閱讀:498來源:國知局
專利名稱:基于格子的信道編碼所用的解碼器的制作方法
背景本發(fā)明涉及對信道編碼數(shù)據(jù)執(zhí)行的解碼操作,更具體地講,涉及基于格子圖工作的解碼器。
只要有公共信道連接系統(tǒng),系統(tǒng)之間的通信就是可能的。無論是通過網(wǎng)絡電纜、電話線,還是因特網(wǎng)協(xié)議套接口,實體之間交換的數(shù)據(jù)都要穿過信道媒體。
不幸的是,信道媒體中的“噪聲”和“干擾”可能在傳輸中破壞數(shù)據(jù)。諸如信道媒體長度、傳輸?shù)臄?shù)據(jù)量、信道中雜散信號的存在以及其它環(huán)境條件等因素可能影響噪聲和干擾的總量,從而影響接收數(shù)據(jù)的質(zhì)量。
信道中的噪聲和干擾現(xiàn)象是可預料的,因此數(shù)據(jù)在傳輸之前幾乎總是要經(jīng)過編碼。數(shù)據(jù)編碼器一般由諸如觸發(fā)器和“與非”門等離散邏輯組成。所述數(shù)據(jù)編碼器接收稱為信息比特的數(shù)據(jù)比特流,所述信息比特通過信道媒體傳輸,根據(jù)信息比特本身產(chǎn)生稱為校驗比特的額外比特。信息比特和校驗比特一起構成編碼比特流。
這種精心設計的冗余信息稱為前向糾錯(FEC)或者信道編碼。一旦完成構造,編碼數(shù)據(jù)流通過信道來傳輸。在某些情況下,可在傳輸之前對編碼比特流進行調(diào)制。
一旦經(jīng)由信道傳輸以及隨后在接收機中進行解調(diào),某些“1”比特(或者其經(jīng)過調(diào)制的表示)可能遭到破壞,致使它們被當作“0”比特接收。同樣,某些“0”比特可能被當作“1”比特接收。在現(xiàn)代數(shù)字無線接收機中,解調(diào)器也可能報告逐個比特的“可靠性量度”。明確收到的1和0產(chǎn)生高可靠性量度,而模糊收到的數(shù)據(jù)產(chǎn)生低可靠性量度。編碼比特流的信息比特或校驗比特或兩者可能在傳輸中受破壞。
除了解調(diào)器,接收實體包括解碼器,其目的是利用解調(diào)器輸出和編碼器結構的知識,確定最可能已發(fā)送的信息比特。上述比特可靠性量度可以顯著增強解碼器的性能。正如所預期的,所述解碼器可能比所述編碼器復雜得多。
香農(nóng)的著名的信道編碼理論啟發(fā)人們努力開發(fā)越來越復雜的編碼數(shù)字通信系統(tǒng)。香農(nóng)理論表明,只要信息速率(每秒傳輸?shù)男畔⒈忍?不超過信道容量,就有可能設計具有任意小的解碼差錯概率的FEC編碼系統(tǒng)。
但是,香農(nóng)理論是一種漸進結果。它實際上很少講到如何設計實用的編碼系統(tǒng),僅僅是當編碼塊大小(信息比特數(shù))和編碼復雜性趨于無限大時,才可達到完美解碼。結果,容易構造非常強大、但是非常復雜的編碼。
那么,困難的任務是為這些復雜編碼找到高效的解碼算法。這樣,F(xiàn)EC編碼設計的實際任務是找到具有特定結構的強大(所以復雜)的代碼族,可用以得到具有可實現(xiàn)復雜度的解碼器。當然,隨著數(shù)字技術不斷進步,越來越復雜的解碼器成為可能。
一些解碼算法基于稱為格子圖的專用狀態(tài)圖工作,產(chǎn)生解碼輸出。格子圖是一種狀態(tài)機,它隨著時間而顯示編碼器可能的狀態(tài)轉換。格子圖描述在時間的各點上編碼器的所有可能狀態(tài)。許多解碼算法把格子圖與信道比特流一起使用,以便得出正確的信息比特。
但是,格子型解碼所涉及的計算量可能是驚人的。因此,解碼器可以用高效執(zhí)行專門的格子運算、如蝶式運算的專用集成電路(ASIC)來實現(xiàn)。因為各種解碼算法的復雜度不同,這種ASIC一般可能是為單個算法設計的。
其它解碼器可包括通用數(shù)字信號處理器(DSP),它們可包括也可不包括執(zhí)行格子運算的特殊指令。這些解碼器可能是可編程的,以便根據(jù)需要實現(xiàn)不同的解碼算法。這種解碼器可能更靈活,但是可能以比基于ASIC的解碼器更慢的速度對信道數(shù)據(jù)進行解碼。
因而,還是需要可與通用數(shù)字信號處理器一起使用的可編程處理器,以便執(zhí)行基于格子圖的解碼操作。
詳細說明根據(jù)這里所述的幾個實施例,公開一種系統(tǒng)和方法,用于高效執(zhí)行在對某些類型信道比特流解碼時所用的專門運算。所述專門運算稱為蝶式運算。盡管詳細描述了維特比和MAP(最大后驗概率)解碼算法,但是可以用基于格子圖工作的其它解碼算法實現(xiàn)所述系統(tǒng)和方法。
這里所述的操作和某些基于格子的算法實現(xiàn)有關。這類算法實際用于許多通信和信號處理應用中,其中包括(但不限于)卷積和特播碼的編解碼、信道均衡以及語音編碼。這里描述的FEC解碼應用僅為了說明的目的,決不是為了限制本發(fā)明的范圍。
根據(jù)一個實施例,

圖1中,系統(tǒng)100包括數(shù)字信號處理器10和蝶式協(xié)處理器28。數(shù)字信號處理器或DSP是具有針對數(shù)字信號處理調(diào)整的體系結構的專用微處理器。DSP一般電路特征是可執(zhí)行高速算術運算,與外部設備交換數(shù)據(jù)以及對存儲器進行多路訪問。例如,DSP可包括并行的擴展16或32位總線,用于訪問存儲器的特定數(shù)據(jù)地址發(fā)生器以及乘法累加(MAC)算術單元。
在圖1中,DSP 10包括兩條總線,存儲器存儲總線22和存儲器加載總線24。存儲器存儲總線22和存儲器加載總線24擴展到數(shù)字信號處理器10以外,以便連接存儲器30。在第二實施例中,存儲器存儲和存儲器加載總線22和24合并為一條總線。
算術單元20連接到存儲器存儲總線22和存儲器加載總線24。算術單元20可包括一個或多個乘法累加單元、寄存器和其它用于執(zhí)行算術運算的電路。數(shù)據(jù)地址發(fā)生器26也連接到存儲器存儲總線22和存儲器加載總線24。數(shù)據(jù)地址發(fā)生器26標識存儲器30中要加載或存儲的特定存儲單元。數(shù)據(jù)地址發(fā)生器26代表DSP 10的其它電路、諸如算術單元20執(zhí)行這種運算。
在這個實施例中,系統(tǒng)100還包括蝶式協(xié)處理器28。蝶式協(xié)處理器28不是DSP 10的一部分,但是通過存儲器存儲和存儲器加載總線22和24連接到DSP 10。與算術單元20類似,蝶式協(xié)處理器28利用這些總線可以訪問存儲器30。正如本文進一步說明的,系統(tǒng)100可用在解碼器中對編碼信道比特流執(zhí)行格子圖解碼。
該特定的DSP 10僅僅是說明性的。提供圖1的電路結構是為了說明系統(tǒng)100的幾種可能實現(xiàn)之一。DSP一般還包括諸如寄存器、控制塊、用于執(zhí)行直接存儲器存取(DMA)的電路以及其它電路等部件,圖1中未畫出。DSP可實現(xiàn)為具有單個或多個存儲器總線,而且可能具備諸如用于外設訪問的額外總線。
在一個實施例中,DSP 10代表蝶式協(xié)處理器28執(zhí)行存儲器管理,以便進行高速和并行蝶式運算。但是,在詳細描述系統(tǒng)100之前,先介紹編解碼技術以提供理解本發(fā)明的基礎。
當通過信道媒體傳輸信息數(shù)據(jù)流時,有幾種可能的糾錯途徑。例如,如果差錯率太高,可以提高發(fā)射機功率以降低差錯率。對于某些應用、如蜂窩電話,這種解決方案是不可行的,因為可用的電池電量受到尺寸限制。
另一種解決方案是重復傳輸,或者在同樣的信道媒體上發(fā)送同樣的信息數(shù)據(jù)流兩次,或者在兩個不同信道上發(fā)送數(shù)據(jù)流。然后在接收機中將重復的數(shù)據(jù)流互相比較。不過,冗余往往增加系統(tǒng)成本,還可能增加處理信息數(shù)據(jù)流的時間。
第三種可能的方案是接收機采用自動請求重發(fā)(ARQ)機制。接收機一旦確定傳輸中出現(xiàn)差錯,就可請求重傳該數(shù)據(jù)流。但是,這不是編碼方案,因此對于噪聲信道可能不是好的方案。
前向糾錯是這樣一種技術在通過信道傳輸之前,將額外比特加到信息數(shù)據(jù)流中。一旦數(shù)據(jù)流被發(fā)送,接收機可包括解碼器來糾正傳輸中出現(xiàn)的任何差錯。
卷積碼、也稱二進制卷積碼或BCC是從連續(xù)輸入數(shù)據(jù)流中產(chǎn)生的。相反,當編碼器在對輸入數(shù)據(jù)流進行編碼之前將其分成固定長度的碼組時,就得到了分組碼。卷積碼和分組碼都是前向糾錯碼類型的。
同樣,許多對分組碼和卷積碼進行解碼的解碼器是人們所熟知的。例如,維特比解碼算法常用來對卷積碼解碼。維特比算法是一種“硬”輸出算法,也就是說,算法的成功執(zhí)行會得到實際的信息比特。相比而言,最大后驗概率(MAP)算法是一種“軟”輸出算法,它產(chǎn)生關于信道比特值的似然或“質(zhì)量”信息。
最近,特播解碼器可能對信道編碼數(shù)據(jù)而言有更佳結果。特播解碼器包括多個解碼器、諸如多個MAP解碼器,它們仲裁以得到正確結果。特播解碼器的一種實現(xiàn)如下圖16所示。
圖2中,編碼器50是簡單的遞歸系統(tǒng)卷積(RSC)編碼器。系統(tǒng)碼的校驗比特Pk+1附加于信息比特Uk+1作為一個連續(xù)的組。圖2所示的編碼器50產(chǎn)生系統(tǒng)碼。編碼器50是遞歸的,因為輸出值Pk+1反饋到輸入值Uk中以用于后續(xù)處理。
在RSC編碼器50中,信息比特Uk被饋送到“異或”或者XOR門56中。結果則被輸入移位寄存器52。移位寄存器52的先有值或者是“1”,或者是“0”,被輸入到第二移位寄存器54中。碼字比特Uk+1和Pk+1作為存儲在移位寄存器52和54中的當前狀態(tài)以及輸入值Uk的函數(shù)而產(chǎn)生。在圖2所示的編碼器50中,碼字比特Uk+1碰巧與輸入值Uk一樣。不過,校驗比特Pk+1由狀態(tài)(移位寄存器52和54)以及輸入值Uk產(chǎn)生。Uk+1和Pk+1一起作為時間k+1的碼字比特。
這樣,對于卷積碼,各編碼比特對(Uk+1,Pk+1)取決于多個信息比特之一的輸入值Uk以及移位寄存器52和54中的值。移位寄存器52和54存儲關于輸入值Uk的過去值的信息。這樣,相繼的比特(Uk+n,Pk+n)不是與過去的比特無關,其中n=1至信息數(shù)據(jù)流的大小。
圖3中,狀態(tài)轉換表60表明各個輸入Uk對應的存儲于移位寄存器52和54中的值,亦稱為編碼器50的狀態(tài)(第0列)。狀態(tài)轉換表60還表明由圖2的RSC編碼器50根據(jù)輸入值Uk產(chǎn)生的比特(Uk+1,Pk+1)(第2列)。狀態(tài)轉換表60還表示編碼器50在時間k(第1列)和時間k+1(第3列)的狀態(tài)。這樣,狀態(tài)轉換表60提供了對應給定輸入值Uk的編碼器50的輸出值Uk+1、Pk+1的完整表示,還提供了存儲于移位寄存器52和54中的狀態(tài)信息。
由狀態(tài)轉換表60可以生成格子70,如圖4所示。格子是表示編碼器在兩個狀態(tài)之間的可能轉換的狀態(tài)機。圖4的格子70包括階段k的四個節(jié)點72k,標為00、01、10和11。(標記72階段用來描述特定階段的所有節(jié)點72。)格子70還包括階段k+1中的四個節(jié)點72k+1,也標為00、01、10和11。狀態(tài)00、01、10和11對應于編碼器50的移位寄存器52和54中的值。節(jié)點72k和72k+1分別表示階段k和階段k+1的編碼器50的狀態(tài),分別如圖3的狀態(tài)轉換表60的第0列和第3列所示。
分支74將節(jié)點72k連到節(jié)點72k+1。兩條分支74表示Uk有兩個可能值,即0或1,分支74可以從四種可能狀態(tài)00、01、10和11中的任一狀態(tài)延伸。
輸入值Uk以及輸出比特Uk+1,Pk+1以形式(Uk,Uk+1Pk+1)表示在格子70的各分支74上。各分支74標識編碼器50對應于輸入值Uk的、從分支74左邊(階段k中)的狀態(tài)到分支74右邊(階段k+1中)的狀態(tài)的轉換。
如格子一樣,格子圖是用來描述編碼器行為的狀態(tài)機。不過,格子圖表明隨時間推移編碼器的所有可能狀態(tài)轉換。在圖5中,格子圖80包括圖2的RSC編碼器50的可能狀態(tài)轉換。格子圖80是圖4的格子70的簡單串聯(lián)。
格子圖80中可能的四種狀態(tài)72為00、01、10及11(回想狀態(tài)72對應于編碼器50的移位寄存器52和54)。變量k表示格子圖80的階段。每個階段是一個明確的時間點,其中k=0位于格子圖80的開頭,在時間0處,k=1在隨后的時間點,等等。格子圖80可能包括成百上千或者甚至成千上萬個階段,對應于輸入編碼器50的信息比特Uk的數(shù)目。圖5中只畫出格子圖80的前十個階段。
正如圖4的格子70一樣,格子圖80每個階段k包括4個節(jié)點72。狀態(tài)00、01、10和11依次列在格子圖80左邊的一列中。階段k的4個節(jié)點72中的每個節(jié)點表示狀態(tài)00、01、10或11之一。此外,分支74從各個節(jié)點72延伸,表示從節(jié)點72k到節(jié)點72k+1的各個轉換。
在第0階段,兩個分支74僅從表示狀態(tài)00的節(jié)點72延伸。在一個實施例中,假設編碼器50開始編碼時移位寄存器52及54的值為0。因此,第0階段中余下的狀態(tài)01、10和11是“不可能的”,沒有分支從這些狀態(tài)延伸。
在下一階段(k=1),分支74從表示狀態(tài)00和10的節(jié)點72延伸,因為如果輸入值分別為0和1,這些是從第0階段開始的可能轉換。分支74從狀態(tài)10延伸到其它兩個可能狀態(tài)01和11。這樣,從k=2起,每個階段k到階段k+1是相同的,正如圖4的格子70中所示。
格子圖80提供編碼器50的完整表示輸入值、狀態(tài)和輸出值。通過把各階段k的分支74連接起來得到如圖6所示的路徑82,表示編碼二進制輸出碼字86101110100101000111,對應于二進制輸入值84111100001,這里k=9。不過路徑82只表示穿過格子圖80的許多可能路徑之一。
假設圖2的編碼器50收到9比特的信息數(shù)據(jù)流84,其值為111100001,并產(chǎn)生18比特的二進制卷積碼字86,其值為1011101001000111,如圖6所示。然后通過信道媒體90將碼字86傳到接收機94,它如圖7所示包括解碼器96。解碼器96接收信道比特流92,該比特流可能是、也可能不是與卷積碼字86相同的比特流。
解碼器96從信道比特流92中產(chǎn)生信息數(shù)據(jù)流98。如果信息數(shù)據(jù)流98和信息數(shù)據(jù)流84相同,則解碼器96已經(jīng)成功地對信道比特流92進行解碼。
因為信道媒體90中的噪聲或其它現(xiàn)象,信道比特流92可能常常不同于通過信道90發(fā)送的碼字86。然而,卷積碼字86不僅包括信息比特(Uk),還包括基于原始信息比特的校驗比特(Pk)。盡管某些比特可能不同,但是信道比特流92同樣包括信息和校驗比特。解碼器96利用這個信息以及提供編碼器“藍圖”的格子圖,提取正確的信息數(shù)據(jù)流96。
使用格子圖解碼的根本概念在于編碼序列等效于一條路徑,如格子圖80中的圖6所示的路徑82。這樣,該路徑提供到編碼器50的輸入序列Uk和來自編碼器50的輸出序列Uk+1,Pk+1,正如在分支74上所指定的那樣。解碼器96可從格子圖80中找到正確路徑82。
因此,當編碼器可以用格子圖描述時,它的相關解碼算法一般基于格子圖80來重建輸入序列Uk。給定信道比特流92,解碼器96確定格子圖80的哪條路徑是最可能的路徑。
為了理解解碼器96如何基于格子圖80工作,考慮圖8的格子圖。圖中表示出圖5的四狀態(tài)格子圖80的標為0-5的6個階段k。對于硬輸出解碼算法,解碼器96可在每個階段k確定編碼比特是“1”比特還是“0”比特。相反,當解碼器96使用軟輸入/軟輸出(SISO)算法時,對格子圖80的給定路徑82的質(zhì)量進行評估。解碼器96則提供概率數(shù)據(jù)而不是“1”或“0”比特。因此,對于軟輸出算法,路徑82用稱為量度的數(shù)值定義。給定解碼器96收到的信道比特流92,所述量度表示采用格子圖80中某條路徑的概率。
對于圖2的RSC編碼器50,Uk的兩個可能的輸入值0或1對應于從每個節(jié)點72延伸的兩個可能分支74。這樣,在圖8中的階段1,兩個分支74從對應‘10’狀態(tài)的節(jié)點72延伸。同樣,每個分支74與似然或分支量度106相關。在圖8中,分支量度106是一個標記分支104的數(shù)值。頂部分支74a的分支量度106為0.2。底部分支74b的分支量度106為0.3。
分支量度106是“軟”信息,一般為對數(shù)概率,表示當給定解碼器96接收的信道比特流92時、到達下一節(jié)點72的似然。解碼器96計算分支量度106。
對于維特比算法,解碼器96的目標是從格子圖80得到最佳路徑82。對于軟輸出算法、如MAP算法,解碼器96改為在格子的每個階段k確定信息比特Uk是0或1的似然。這樣,解碼器96迭代地遍歷格子圖80,每次一個階段,根據(jù)收到的比特流和格子圖80計算似然信息。
本質(zhì)上,解碼器96考慮了格子圖80的所有可能路徑82。對于所考慮的每條路徑82,解碼器96把路徑82的分支量度加起來,得到路徑量度108。然后解碼器96選擇具有最大路徑量度108的路徑82。具有最大路徑量度的路徑82是最大似然路徑。所選路徑82也稱為幸存路徑。根據(jù)路徑82,可以確定信息比特Uk。
這樣,解碼器96“歷經(jīng)”格子圖80,一路計算分支量度106和路徑量度108。對于某些算法,只遍歷格子圖80一次。而對于另一些算法,可能要在正反兩個方向?qū)Ω褡訄D80進行遍歷。不過,維特比和MAP算法以及其它基于格子圖80的算法可能在得到所需結果之前要執(zhí)行數(shù)量驚人的計算。
格子圖80的可能路徑82的數(shù)目例如是2格子長度。因此,如果編碼器50對100個信息比特編碼,解碼器96有2100個可能的路徑82要考慮(約1030條路徑)。如果每一個分支量度106未存儲于存儲器中,所述計算就可能更為復雜。
在圖9中,圖5的格子圖80的一部分包括階段k、k+1和k+2?;瑒哟翱?10包含階段k和k+1。解碼器96可用滑動窗口110沿格子80任意計算分支量度106。
例如,在階段k,分支74c和74d從對應于狀態(tài)00的節(jié)點72k延伸到節(jié)點72k+1(在階段k+1)。同樣,兩個分支74e和74f從對應于狀態(tài)01的節(jié)點72k延伸。分支74g和74h從對應于狀態(tài)10的節(jié)點72k,分支74i和74j從對應于狀態(tài)11的節(jié)點72k延伸到節(jié)點72k+1(階段k+1)。分支74c、74e、74g和74i對應于編碼器50的“0”輸入值,而分支74d、74f、74h和74j對應于“1”輸入值。
當滑動窗口110位于圖9中的位置時,解碼器96計算從分支74c到分支74j的各個分支的分支量度106,共8次計算。除了k=0時,一或多條路徑82從先前的階段延伸到節(jié)點72k。路徑82之一是幸存路徑。因此,可通過采取幸存路徑的路徑量度108來計算新路徑量度108。第一分支量度106可加到路徑量度108上,然后第二分支量度106可以加到路徑量度108上??蓪@兩個結果進行比較。具有更大路徑量度108的路徑82是階段k最新的幸存路徑。這組計算稱為蝶式運算。
一旦階段k的蝶式運算完成,可根據(jù)算法向前或向后移動滑動窗口110,以便可執(zhí)行下一組蝶式運算。
對于圖9的滑動窗口110,可進行總共4次蝶式運算,每個節(jié)點72k對應一個。各分支74的分支量度106加到路徑量度108上(加法運算)。然后把各個得出的路徑量度108和其它路徑量度108比較,以便確定哪個結果更大(比較運算)。對得到的路徑量度108或幸存路徑進行選取(選擇運算)。因此蝶式運算有時稱為加-比-選或ACS運算。最后,把幸存路徑存在比如存儲器中。
根據(jù)一個實施例,圖10中,系統(tǒng)200可用于執(zhí)行如上所述的蝶式運算。系統(tǒng)200包括一個或多個蝶式單元202、分支量度單元204和路徑量度存儲器206。系統(tǒng)200的電路一起可執(zhí)行ACS或?qū)?shù)-MAP蝶式運算。
在一個實施例中,如以上圖8所述,分支量度單元204執(zhí)行分支量度106的計算。通過分析信道數(shù)據(jù)92以及四個可能的輸出值Uk+1Pk+1來計算分支量度106,四個可能的輸出值Uk+1Pk+1由編碼器50產(chǎn)生并計算一個可能的量度106。計算各個節(jié)點72k的分支量度106。注意,分支量度單元204沒有連接到路徑量度存儲器206,因為沒有在計算分支量度106時考慮來自前一階段的路徑量度108。
在圖10的實施例中,各蝶式單元202接收來自分支量度單元204的分支量度106。由于每個階段k有4個節(jié)點72,所以提供了4個蝶式單元202。因此,根據(jù)一個實施例,每個蝶式單元202可與其它各個蝶式單元202并行地執(zhí)行計算,使得可以同時計算對應于各狀態(tài)00、01、10和11的新路徑量度。
而且,各個蝶式單元202從路徑量度存儲器206接收路徑量度108。借助這個信息,各個蝶式單元202可執(zhí)行格子圖80的給定節(jié)點72k的加-比-選運算。
各蝶式單元202的輸出路徑也連接到路徑量度存儲器206。這樣各蝶式單元202可把得到的路徑量度發(fā)送到路徑量度存儲器206以便存儲,直到執(zhí)行了階段k+1的新一組蝶式運算。
在圖11中,系統(tǒng)200的第二實施例實現(xiàn)這里所述的MAP算法。解碼器96可用系統(tǒng)200在格子圖80上沿前向和沿后向執(zhí)行格子運算。MAP算法是一種雙路徑算法,其中格子運算在相對于格子圖的前向和后向上執(zhí)行。在前向和后向過程中,都要計算格子節(jié)點量度。
在前向運算期間,節(jié)點量度可存貯在路徑量度存儲器206中。然后,在后向運算期間,計算滑動窗口量度,然后與存儲在節(jié)點量度存儲器206中的前向路徑量度相結合?;蛘?,后向運算可如所希望的那樣在前向運算之前進行。
格子的每個階段有N個狀態(tài)。圖11的系統(tǒng)200把前向和后向的所有N個狀態(tài)的量度簡化為單比特可靠性量度。這就是MAP算法的最終軟輸出。
使用如圖11所示的蝶式單元202的配置,前向和后向路徑量度都可如此計算。頂部的3個蝶式單元202用于“1”分支104,而底部的3個蝶式單元202用于“0”分支104。
根據(jù)一個實施例,圖11中,路徑量度單元(BMU)204計算階段k的當前分支量度74。蝶式單元202則從路徑量度存儲器206中檢索前向(或后向)路徑量度108以及從分支量度單元204中檢索分支量度74。然后,每次兩個操作,各蝶式單元202組合結果以及減去差值,得到后驗概率值。
在圖12中,根據(jù)一個實施例,圖10的系統(tǒng)200實現(xiàn)在系統(tǒng)100(圖1)中。正如所預期的,路徑量度存儲器204是更大的可用存儲器30的一部分。其余電路可通過存儲器存儲總線22和存儲器加載總線24訪問路徑量度存儲器206。
因此,在一個實施例中,算術單元20包括可由數(shù)據(jù)地址發(fā)生器26尋址的寄存器210。完成一個操作時,BMU 204把結果存儲于寄存器210中。然后蝶式單元202可利用數(shù)據(jù)地址發(fā)生器26訪問寄存器210,從而得到BMU 204操作的結果,正如訪問存儲器30那樣。
在一個實施例中,蝶式協(xié)處理器28包括4個蝶式單元202。為了完成蝶式計算,蝶式單元202利用數(shù)據(jù)地址發(fā)生器26和存儲器加載總線24訪問路徑量度存儲器206和寄存器210。蝶式單元202執(zhí)行加-比-選運算以計算滑動窗口110中當前階段的節(jié)點72的路徑量度108。一旦蝶式運算完成,蝶式單元202通過把結果放在存儲器存儲總線22上而將結果存在路徑量度存儲器206中。
在圖12的實施例中,DSP 10代表蝶式協(xié)處理器28執(zhí)行存儲器管理。但是,該DSP進而通過在其算術單元20中包括分支量度單元204運算,也執(zhí)行部分的蝶式運算。這允許蝶式協(xié)處理器28專注于蝶式單元202執(zhí)行的各節(jié)點運算的并行執(zhí)行。
對于實現(xiàn)圖10的系統(tǒng)200,其它實施例是可能的。例如,在圖12中,一旦分支量度單元204已計算了分支量度106,分支量度單元204就把結果存貯在位于算術單元20中的寄存器210中。數(shù)據(jù)地址發(fā)生器26則應蝶式協(xié)處理器28的請求訪問寄存器210。
或者,分支量度204可位于蝶式協(xié)處理器28本身中。此替代配置消除了對寄存器210的需要,因為分支量度單元204可直接連接到蝶式單元202。蝶式協(xié)處理器28既執(zhí)行分支量度單元106的操作又執(zhí)行加-比-選操作。
而且,在某些實施例中,系統(tǒng)100可以是可編程的。例如,寄存器可定義分支量度單元204和DSP 10之間的連接性。無論是簡單實現(xiàn)為存儲器管理還是執(zhí)行部分蝶式運算,DSP 10可在逐個階段的基礎上參與格子解碼。在一個實施例中,DSP 10為蝶式協(xié)處理器28提供存儲器接口。在一些實施例中,DSP 10額外代表蝶式協(xié)處理器28執(zhí)行算法調(diào)度。
蝶式協(xié)處理器28利用多個蝶式單元執(zhí)行并行蝶式運算。在一個實施例中,系統(tǒng)100增加了執(zhí)行信道比特流解碼中涉及的甚復雜運算的吞吐量。
在一個實施例中,系統(tǒng)100包括軟件程序500,圖中示為存儲于存儲器30中。利用軟件程序500,可針對許多解碼方案靈活實現(xiàn)系統(tǒng)100。而且,無論何時開發(fā)出新的解碼技術,都可將新軟件程序加載到系統(tǒng)100中。
在圖13中,根據(jù)一個實施例,軟件程序500通過接收解碼請求管理解碼操作(塊502)。在圖12的實施例中,路徑量度108存儲在路徑量度存儲器206中。因此,軟件程序500可用數(shù)據(jù)地址發(fā)生器26對存儲器30尋址,以便從路徑量度單元206中檢索路徑量度108(塊504)。然后可把路徑量度108發(fā)送給蝶式協(xié)處理器28。
回顧圖10,除了接收路徑量度108,蝶式單元202還接收分支量度106作為輸入值。因此,圖13中的軟件程序500指示分支量度單元204執(zhí)行它的分支量度計算(塊506)。該結果可存貯在寄存器210中,存貯在存儲器30中,或者直接放在存儲器存儲總線22上發(fā)送到蝶式協(xié)處理器28。
軟件程序500指示系統(tǒng)100把路徑量度108和分支量度106發(fā)送到蝶式協(xié)處理器28(塊508)。蝶式協(xié)處理器28則可以執(zhí)行并行的蝶式運算(塊510)。這樣,系統(tǒng)100執(zhí)行了單個階段的格子計算。根據(jù)一個實施例,軟件500的操作就完成了。
蝶式操作單元202可用多種方式實現(xiàn)。在圖10和11中,每個蝶式單元202接收兩個輸入值,一個來自路徑量度存儲器206,另一個來自分支量度單元204。蝶式單元202產(chǎn)生單輸出值并發(fā)送到路徑量度存儲器206。
圖14a中,根據(jù)一個實施例,蝶式單元202用算術和指數(shù)運算來實現(xiàn)。除了從路徑量度存儲器206和分支量度單元204接收值之外,蝶式單元202還接收參數(shù)c。參數(shù)c可以硬連線到蝶式單元202中,或者可以根據(jù)所需可編程??梢栽诘絾卧?02中將下述公式以離散邏輯來實現(xiàn)z=clog(ex/c+ey/c)=max(x,y)+clog(1+ediff/c)在圖14b中,蝶式單元202執(zhí)行最大值運算。蝶式單元202包括最大值單元220,它計算輸入值x和y的最大值和差值。最大輸出值被發(fā)送給加法器224。差值被發(fā)送給查找表222,其結果又反饋到加法器224中。其它執(zhí)行加-比-選運算的算法是眾所周知的,可以在蝶式單元202中實現(xiàn)。
利用系統(tǒng)100可以實現(xiàn)很大益處,特別是對于復雜的編碼方案。例如,特播碼是FEC信道編碼的最新發(fā)展。人們正在考慮把特播碼用于寬帶以及第三代(3G)碼分多址(CDMA)標準中以用于蜂窩電話。
在圖15中,特播編碼器300是用于3G CDMA蜂窩技術的一種眾所周知的實施例。編碼器300對大小可在320到5120比特之間的數(shù)據(jù)塊進行操作。兩個組成的卷積碼或RSC編碼器302和304并行對數(shù)據(jù)塊進行編碼。在RSC編碼器304編碼之前,用交織器306對輸入數(shù)據(jù)塊310進行比特交織。
通過在將它發(fā)送到RSC編碼器304之前對數(shù)據(jù)塊310進行交織,特播編碼器300實質(zhì)上比單次編碼強大得多。在通過RSC編碼器302和304之后,編碼塊312和314可分別單獨或按照需要組合起來通過信道90(圖5)發(fā)送。
與常規(guī)卷積編碼相比,特播編碼器中所用的組成碼較為簡單。例如,第三代系統(tǒng)把k9卷積碼用于控制信道、語音以及數(shù)據(jù)鏈路,速率小于32千比特/秒。k9碼有256個狀態(tài)。而特播組成碼例如可具有僅僅8個狀態(tài)。
在圖16中,特播解碼器400包括兩個軟輸入/軟輸出(SISO)解碼器406和408。解碼器406和408各自分別接收信道比特流402和404信道比特流402對應于圖15的編碼塊312。信道比特流404對應于圖15的編碼塊314。
正如特播編碼器300一樣,圖16的特播解碼器是人們所熟知的。SISO解碼器406接收信道比特流402。經(jīng)過解碼之后,輸出值通過交織器410,然后由第二SISO解碼器408接收。第二SISO解碼器408還接收第二信道比特流404。經(jīng)過解碼,SISO解碼器408把輸出值發(fā)送到去交織器412,然后把去交織的數(shù)據(jù)傳遞給SISO解碼器406。
該過程在將最終輸出發(fā)送給硬判決塊414之前可以迭代若干次,硬判決塊將數(shù)據(jù)量化成硬輸出值。特播解碼器400部分地工作是因為SISO解碼器406和408是軟輸入和軟輸出。因此,軟信息可以按照所需那樣常常在它們之間傳遞。本質(zhì)上,采用仲裁方案以得到最終的輸出值。
在一個實施例中,SISO解碼器406使用MAP算法(最大后驗概率)實現(xiàn)。如上所述,MAP是軟輸入/軟輸出算法。不是產(chǎn)生“硬”比特判決輸出,MAP輸出是指示各數(shù)據(jù)比特值的似然的后驗概率(APP)。與之比較,維特比算法是軟輸入/軟輸出解碼器。
在每狀態(tài)的復雜度方面,MAP算法復雜度差不多是維特比算法的4倍。而且,MAP算法比維特比算法更加是存儲密集型的。不過,與k9卷積碼的256個狀態(tài)相比,在實現(xiàn)特播碼時只需要考慮8個狀態(tài)。
在圖16中,特播解碼器400重復在SISO解碼器406和408中實施的MAP算法。解碼器406和408可采用系統(tǒng)100(圖12)來實現(xiàn)MAP算法。因為特播解碼器400包括兩個解碼器,每個使用MAP算法,系統(tǒng)100的并行運算可導致比先有技術實現(xiàn)快得多的性能。
這樣,根據(jù)幾個實施例,系統(tǒng)100可用在解碼器中以執(zhí)行與格子圖相關的操作。MAP算法、維特比算法以及其它算法執(zhí)行這樣的運算。而且,系統(tǒng)100可實現(xiàn)為軟輸出或者硬輸出算法。DSP和蝶式協(xié)處理器協(xié)同工作以執(zhí)行這些運算。
DSP和蝶式協(xié)處理器之間的分工可以多種方式實現(xiàn)。在一個實施例中,DSP代表蝶式協(xié)處理器執(zhí)行存儲器管理和算法調(diào)度。蝶式協(xié)處理器實現(xiàn)并行蝶式運算以增加解碼期間的吞吐量。而且,系統(tǒng)100保持了靈活性,以便用于多種可能的解碼環(huán)境中。
盡管已經(jīng)參照有限的實施例對本發(fā)明進行了描述,但是本領域的技術人員應當從中理解很多修改和變化。所附權利要求的意圖在于涵蓋在本發(fā)明真正精神和范圍之內(nèi)的所有這類修改和變化。
權利要求
1.一種系統(tǒng),它包括包含可連接到存儲器的總線的數(shù)字信號處理器;以及連接到所述總線的蝶式協(xié)處理器,其中所述蝶式協(xié)處理器執(zhí)行由所述數(shù)字信號處理器安排的操作。
2.如權利要求1所述的系統(tǒng),其特征在于,所述數(shù)字信號處理器還包括連接到所述總線的數(shù)據(jù)地址發(fā)生器,其中所述數(shù)據(jù)地址發(fā)生器代表請求裝置對所述存儲器尋址。
3.如權利要求2所述的系統(tǒng),其特征在于,所述數(shù)字信號處理器還包括在該數(shù)字信號處理器中執(zhí)行算術運算的算術單元。
4.如權利要求3所述的系統(tǒng),其特征在于,所述算術單元還包括執(zhí)行分支量度計算的分支量度單元。
5.如權利要求4所述的系統(tǒng),其特征在于,所述算術單元還包括一個或多個寄存器,所述分支量度單元可在其中存儲一個或多個結果。
6.如權利要求5所述的系統(tǒng),其特征在于,所述數(shù)據(jù)地址寄存器可對所述算術單元中的一個或多個寄存器尋址。
7.如權利要求1所述的系統(tǒng),其特征在于,所述蝶式協(xié)處理器還包括多個執(zhí)行蝶式運算的蝶式單元。
8.如權利要求7所述的系統(tǒng),其特征在于,所述蝶式運算是并行運算。
9.如權利要求8所述的系統(tǒng),其特征在于,所述蝶式協(xié)處理器中的所述多個蝶式單元還在所述數(shù)字信號處理器的指示下執(zhí)行加-比-選運算。
10.如權利要求8所述的系統(tǒng),其特征在于,所述蝶式協(xié)處理器中的所述多個蝶式單元還在所述數(shù)字信號處理器的指示下執(zhí)行對數(shù)求和指數(shù)運算的逼近。
11.如權利要求8所述的系統(tǒng),其特征在于,從路徑量度存儲器中檢索的路徑量度由所述數(shù)字信號處理器的所述數(shù)據(jù)地址發(fā)生器來訪問。
12.如權利要求11所述的系統(tǒng),其特征在于,所述數(shù)字信號處理器的所述數(shù)據(jù)地址發(fā)生器還從所述分支量度單元中檢索分支量度。
13.一種方法,包括標識格子圖中的階段;計算所述階段的各節(jié)點的分支量度;以及根據(jù)所述分支量度同時計算所述階段的兩個或兩個以上的路徑量度。
14.如權利要求13所述的方法,其特征在于還包括在存儲器中存儲所述路徑量度。
15.如權利要求13所述的方法,其特征在于,計算所述階段的各節(jié)點的分支量度還包括標識所述階段中的多個節(jié)點;標識從各節(jié)點延伸的多個分支;以及計算各分支的分支量度。
16.如權利要求14所述的方法,其特征在于,根據(jù)所述分支量度同時計算所述階段的兩個或兩個以上的路徑量度還包括標識所述階段的節(jié)點;從所述存儲器中檢索先前的路徑量度,其中所述先前的路徑量度通向所述節(jié)點;標識從所述階段中的所述節(jié)點延伸的多個分支;以及為從所述節(jié)點延伸的各分支分配蝶式單元,其中所述蝶式單元根據(jù)所述先前的路徑量度和所述分支量度計算新的路徑量度。
17.一種方法,包括接收對比特流解碼的請求,其中所述比特流由編碼器來編碼并且所述編碼器用格子圖來描述;標識所述格子圖的階段;計算所述階段的所有節(jié)點的分支量度;從存儲器中檢索所述格子圖的不同階段的路徑量度;以及同時計算所述階段的各節(jié)點的新路徑量度。
18.如權利要求17所述的方法,其特征在于還包括把所述階段的各節(jié)點的新路徑量度存儲在所述存儲器中;以及標識所述格子圖的新階段。
19.一種產(chǎn)品,它包括存儲軟件程序的媒體,所述軟件程序在執(zhí)行時使基于處理器的系統(tǒng)標識格子圖的階段;計算所述階段的各節(jié)點的分支量度;以及根據(jù)所述分支量度同時計算所述階段的兩個或兩個以上的路徑量度。
20.如權利要求19所述的產(chǎn)品,其特征在于還存儲一種軟件程序,所述軟件程序在執(zhí)行時,使基于處理器的系統(tǒng)把所述路徑量度存儲在存儲器中。
21.一種系統(tǒng),它包括數(shù)字信號處理器,其中包括可連接到存儲器的總線;數(shù)據(jù)地址發(fā)生器以及算術單元;以及連接到所述總線的蝶式協(xié)處理器,其中所述蝶式協(xié)處理器執(zhí)行由所述數(shù)字信號處理器安排的操作。
22.如權利要求21所述的系統(tǒng),其特征在于,所述數(shù)字信號處理器還包括軟件程序,該程序在執(zhí)行時標識格子圖的階段;標識所述階段中的多個節(jié)點;以及標識從各節(jié)點延伸的多個分支。
23.如權利要求22所述的系統(tǒng),其特征在于,所述蝶式協(xié)處理器還包括多個蝶式單元。
24.如權利要求23所述的系統(tǒng),其特征在于,所述蝶式單元的數(shù)目等于所述階段中的節(jié)點數(shù)。
25.如權利要求24所述的系統(tǒng),其特征在于,由所述蝶式協(xié)處理器執(zhí)行的操作包括計算所述階段的路徑量度。
26.如權利要求25所述的系統(tǒng),其特征在于,所述蝶式單元同時為所述階段的各節(jié)點計算路徑量度。
全文摘要
一種用于對信道比特流解碼的系統(tǒng)和方法有效地執(zhí)行基于格子的操作。所述系統(tǒng)包括蝶式協(xié)處理器和數(shù)字信號處理器。對于基于格子的編碼器,該系統(tǒng)在數(shù)字信號處理器的指示下,通過在蝶式協(xié)處理器中執(zhí)行并行運算來對信道比特流解碼。所述操作用于實現(xiàn)MAP算法,維特比算法以及其它軟或硬輸出編碼算法。DSP可執(zhí)行存儲器管理以及代表蝶式協(xié)處理器進行算法調(diào)度。蝶式協(xié)處理器可并行執(zhí)行蝶式運算以增加吞吐量。該系統(tǒng)保持了適用于許多可能的解碼環(huán)境中的靈活性。
文檔編號H03M13/39GK1466818SQ01816376
公開日2004年1月7日 申請日期2001年9月26日 優(yōu)先權日2000年9月28日
發(fā)明者J·薩多斯基, J 薩多斯基 申請人:英特爾公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1