專利名稱:渦輪解碼器及解碼渦輪編碼信號的方法
技術領域:
本發明涉及通信系統,更具體地說,涉及一種采用渦輪(turbo)編碼的通信系統。
背景技術:
數據通信系統已經持續發展了許多年。最近比較受關注的一種通信系統是采用迭代錯誤糾正碼的通信系統。其中,近些年來受到很多關注的一種特定通信系統是采用了渦輪碼(迭代錯誤糾正碼的一種類型)的通信系統。對于指定的信噪比(SNR),使用迭代碼的通信系統通常能夠比使用其它碼的系統達到更低的位錯誤率(BER)。
在本發展領域中,主要的持續方向是為了努力在通信系統中連續地降低所需的SNR以達到指定的BER。理想的目標是為了努力在通信信道中到達香農極限(Shannon’s limit)。香農極限可以視為用于通信信道中的數據率,其具有特殊的SNR并能夠通過通信信道無錯地傳輸。換言之,對于指定的調制和碼率,香農極限是信道容量的理論界限。
渦輪碼的使用提供了這種相關的更低錯誤率,并且以相關的低數據吞吐量率操作,渦輪碼的使用已經大量地用在通信信道內具有大的噪聲級的通信系統環境中,在這種通信系統以最大可能的維護完全無錯通信。渦輪編碼的一些最初應用是空間相關的應用,其中準確通信(即理想地無錯)通常被認為是基本的設計標準。然后,發展方向轉向發展適用于地面和與消費者相關的應用。還有,基于空間相關應用的繼承,渦輪編碼環境努力的焦點繼續是實現相對更低錯誤平底(error floor),而不是特定地達到更高的吞吐量。
最近,本領域的焦點已經轉向發展渦輪編碼及其各種變化,在保持在渦輪碼環境中提供相對低錯誤平底的同時,支持更高的吞吐量。
實際上,隨著通信系統中吞吐量需求的增加,渦輪采用多個處理器和多個存儲器組的并行渦輪解碼變得很有必要。許多當前的系統支持寬范圍的碼字大小。因而,并行渦輪解碼器設計中的有效性和靈活性是非常重要的。
一般來說,在采用渦輪碼的通信系統環境中,在通信信道的一端存在具有編碼能力的第一通信設備,而在通信信道的另一端也存在具有解碼能力的第二通信設備。在許多實例中,這兩個通信設備中的一個或兩個包括有編碼器和解碼器能力(在雙向通信系統中)。
發明內容
本發明主要涉及設備和操作方法,并將在下面的
具體實施方式
及權利要求作進一步描述。
根據本發明的一方面,提供了一種渦輪解碼器,用于對使用二次多項式排列(QPP)交織生成的渦輪編碼信號執行并行解碼,所述渦輪解碼器包括 多個渦輪解碼器,其數量是2到渦輪編碼信號的信息塊長度之間的任意整數; 多個存儲器;其中 所述多個渦輪解碼器用來讀寫所述多個存儲器; 在第一解碼周期 根據所述多個渦輪解碼器和所述多個存儲器之間無沖突調制存儲器映射的第一映射,所述多個渦輪解碼器中的每個渦輪解碼器從所述多個存儲器的第一相應存儲器中獲取第一信息; 所述多個渦輪解碼器中的每個渦輪解碼器使用從所述多個存儲器的第一相應存儲器中獲取的所述第一信息執行解碼處理,以生成第一更新信息; 所述第一更新信息在所述多個存儲器的每個第一相應存儲器中覆蓋所述第一信息; 在第二解碼周期 根據所述多個解碼器和所述多個存儲器之間無沖突調制存儲器映射的第二映射,所述多個渦輪解碼器中的每個渦輪解碼器從所述多個存儲器的第二相應存儲器中獲取第二信息; 所述多個渦輪解碼器中的每個渦輪解碼器使用從所述多個存儲器的第二相應存儲器中獲得的所述第二信息執行解碼處理,以生成第二更新信息; 所述第二更新信息在所述多個存儲器的每個第二相應存儲器中覆蓋所述第二信息; 所述多個渦輪解碼器用來生成已被編碼到所述渦輪編碼信號中的至少一個位的最佳估計值。
優選地,所述渦輪解碼器進一步包括 處理模塊,用來在所述渦輪編碼信號的迭代解碼處理過程中執行所述多個渦輪解碼器和所述多個存儲器之間的無沖突調制映射;其中 所述處理模塊提供所述多個渦輪解碼器和所述多個存儲器之間無沖突調制存儲器映射的第一映射; 所述處理模塊提供所述多個渦輪解碼器和所述多個存儲器之間無沖突調制存儲器映射的第二映射; 將所述多個渦輪解碼器和所述多個存儲器相關聯的所述無沖突調制存儲器映射是基于所述渦輪編碼信號的信息塊長度和所述渦輪編碼信號的虛塊長度兩者至少其一確定的。
優選地 執行渦輪解碼時,所述多個渦輪解碼器中的渦輪解碼器用來在外部信息(extrinsic information)上執行QPP交織,從而生成用于后續解碼處理的“先驗概率”(app)信息。
優選地 執行渦輪解碼時,所述多個渦輪解碼器中的渦輪解碼器用來在外信息上執行QPP解交織,從而生成用于后續解碼處理的“先驗概率”(app)信息。
優選地,所述多個渦輪解碼器中的渦輪解碼器包括 第一軟輸入/軟輸出(SISO)解碼器,用來 接收與渦輪編碼信號相關的多個度量; 在所述多個度量上執行SISO解碼,從而計算第一外部信息; 交織器模塊,在第一外部信息上執行交織,從而生成第一“先驗概率”(app)信息; 第二SISO解碼器,在第一app信息上執行SISO解碼,從而生成第二外信息; 解交織器模塊,在第二外部信息上執行解交織,從而生成第二“先驗概率”(app)信息; 輸出處理器,用來處理第二SISO解碼器已生成的最新外部信息,從而生成被編碼在渦輪編碼信號中信息位的最佳估計值。
優選地,所述多個渦輪解碼器中的渦輪解碼器包括 第一軟輸入/軟輸出(SISO)解碼器,用來 接收與渦輪編碼信號相關的多個度量; 在所述多個度量上執行SISO解碼,從而計算第一外部信息; 交織器模塊,在第一外部信息上執行QPP交織,從而生成第一“先驗概率”(app)信息; 第二SISO解碼器,在第一app信息上執行SISO解碼,從而生成第二外部信息; 解交織器模塊,在第二外部信息上執行QPP解交織,從而生成第二“先驗概率”(app)信息; 輸出處理器,用來處理第二SISO解碼器已生成的最新外部信息,從而生成被編碼在渦輪編碼信號中的信息位的最佳估計值。
優選地 所述多個渦輪解碼器包括一定數量的渦輪解碼器; 所述多個存儲器包括同樣數量的存儲器。
優選地 所述多個渦輪解碼器包括第一數量的渦輪解碼器; 所述多個存儲器包括第二數量的存儲器。
優選地 所述渦輪解碼器在無線個人通信設備中實現。
優選地 所述渦輪解碼器在通信設備中實現; 所述通信設備在衛星通信系統、無線通信系統、有線通信系統、光纖通信系統的至少一個中實現。
根據本發明的一方面,提供了一種渦輪解碼器,用于對使用二次多項式排列(QPP)交織生成的渦輪編碼信號執行并行解碼,所述渦輪解碼器包括 多個渦輪解碼器,其數量是2到渦輪編碼信號的信息塊長度之間的任意整數; 多個存儲器; 處理模塊,用來在所述渦輪編碼信號的迭代解碼處理過程中執行所述多個渦輪解碼器和所述多個存儲器之間的無沖突調制映射;其中 所述多個渦輪解碼器用來讀寫所述多個存儲器; 在第一解碼周期 根據所述多個渦輪解碼器和所述多個存儲器之間無沖突調制存儲器映射的第一映射,所述多個渦輪解碼器中的每個渦輪解碼器從所述多個存儲器的第一相應存儲器中獲取第一信息; 所述多個渦輪解碼器中的每個渦輪解碼器使用從所述多個存儲器的第一相應存儲器中獲取的所述第一信息執行解碼處理,以生成第一更新信息; 所述第一更新信息在所述多個存儲器的每個第一相應存儲器中覆蓋所述第一信息; 所述處理模塊提供所述多個渦輪解碼器和所述多個存儲器之間無沖突調制存儲器映射的第一映射; 在第二解碼周期 根據所述多個解碼器和所述多個存儲器之間無沖突調制存儲器映射的第二映射,所述多個渦輪解碼器中的每個渦輪解碼器從所述多個存儲器的第二相應存儲器中獲取第二信息; 所述多個渦輪解碼器中的每個渦輪解碼器使用從所述多個存儲器的第二相應存儲器中獲得的所述第二信息執行解碼處理,以生成第二更新信息; 所述第二更新信息在所述多個存儲器的每個第二相應存儲器中覆蓋所述第二信息; 所述處理模塊提供所述多個渦輪解碼器和所述多個存儲器之間無沖突調制存儲器映射的第二映射; 所述多個渦輪解碼器用來生成已被編碼到所述渦輪編碼信號中的至少一個位的最佳估計值;且 執行渦輪解碼時,所述多個渦輪解碼器中的渦輪解碼器用來 在第一外部信息上執行QPP交織,從而生成用于后續解碼處理的第一“先驗概率”(app)信息。
在第二外部信息上執行QPP解交織,從而生成用于后續解碼處理的第二“先驗概率”(app)信息。
優選地,所述多個渦輪解碼器中的渦輪解碼器包括 第一軟輸入/軟輸出(SISO)解碼器,用來 接收與渦輪編碼信號相關的多個度量; 在所述多個度量上執行SISO解碼,從而計算第一外部信息; 交織器模塊,在第一外部信息上執行QPP交織,從而生成第一“先驗概率”(app)信息; 第二SISO解碼器,在第一app信息上執行SISO解碼,從而生成第二外信息; 解交織器模塊,在第二外部信息上執行QPP解交織,從而生成第二“先驗概率”(app)信息; 輸出處理器,用來處理第二SISO解碼器已生成的最新外部信息,從而生成被編碼在渦輪編碼信號中信息位的最佳估計值。
優選地 所述多個渦輪解碼器包括一定數量的渦輪解碼器; 所述多個存儲器包括同樣數量的存儲器。
優選地 所述渦輪解碼器在無線個人通信設備中實現。
優選地 所述渦輪解碼器在通信設備中實現; 所述通信設備在衛星通信系統、無線通信系統、有線通信系統、光纖通信系統的至少一個中實現。
根據本發明的一方面,提供了一種用于對使用二次多項式排列(QPP)交織生成的渦輪編碼信號進行解碼的方法,所述方法包括 從通信信道中接收渦輪編碼信號; 執行預處理以從所述渦輪編碼信號中提取出編碼塊; 將所述編碼塊分離成多個子塊,以便所述多個子塊的每個子塊包括相應的多個數據; 將所述多個子塊中第一子塊的第一多個數據存儲到多個存儲器組中的第一存儲器組; 將所述多個子塊中第二子塊的第二多個數據存儲到多個存儲器組中的第二存儲器組; 從第一存儲器組中獲取第一多個數據的第一元素,對其執行渦輪自然順序相位解碼處理(turbo natural order phase decoding processing),從而更新第一元素,并使用更新后的第一元素覆蓋第一存儲器組中的第一元素; 從第二存儲器組中獲取第二多個數據的第二元素,對其執行渦輪自然順序相位解碼處理,從而更新第二元素,并使用更新后的第二元素覆蓋第二存儲器組中的第二元素; 從第一存儲器組中獲取第一多個數據的第三元素,對其執行渦輪自然順序相位解碼處理,從而更新第三元素,并使用更新后的第三元素覆蓋第一存儲器組中的第三元素; 從第二存儲器組中獲取第二多個數據的第四元素,對其執行渦輪自然順序相位解碼處理,從而更新第四元素,并使用更新后的第四元素覆蓋第二存儲器組中的第四元素; 根據并行渦輪解碼處理,使用多個解碼處理器對所述編碼塊進行渦輪解碼處理,其中所述多個解碼處理器的數量是2到渦輪編碼信號的信息塊長度之間的任意整數; 生成被編碼在渦輪編碼信號中的至少一個信息位的最佳估計值。
優選地,所述方法進一步包括 采用以并行解碼組合實現的多個渦輪解碼器,以執行渦輪自然順序相位解碼處理和交織順序相位解碼處理;其中 所述多個渦輪解碼器用來讀寫所述多個存儲器組。
優選地,所述方法進一步包括 在外部信息上執行QPP交織,從而生成用于后續解碼處理的“先驗概率”(app)信息。
優選地 在外部信息上執行QPP解交織,從而生成用于后續解碼處理的“先驗概率”(app)信息。
優選地 所述方法在通信設備中執行; 所述通信設備在衛星通信系統、無線通信系統、有線通信系統、光纖通信系統的至少一個中實現。
本發明的其它特征和優點通過引用附圖所作的具有實施方式描述變得顯而易見。
下面將結合附圖及實施例對本發明作進一步說明,附圖中 圖1是通信系統的一個實施例的示意圖; 圖2是渦輪解碼器的一個實施例的示意圖; 圖3是具有分時的渦輪碼解碼器的實施例示意圖,其采用單個SISO解碼器或單個SISO解碼器陣列; 圖4是可以應用在渦輪解碼中的并行解碼的實施例示意圖; 圖5是自然/非交織順序解碼處理器(用于渦輪編碼信號的并行解碼)的分離處理的實施例示意圖; 圖6是交織(π)順序解碼處理器(用于渦輪編碼信號的并行解碼中)的分離處理的實施例示意圖; 圖7A是針對自然/非交織順序相位在并行解碼上的存儲器映射的實施例示意圖; 圖7B是針對交織(π)順序(一個存儲器中存在沖突)在并行解碼上的存儲器映射的實施例示意圖; 圖8是執行并行解碼的渦輪解碼器的實施例示意圖,其中因為渦輪解碼器和存儲器之間缺少無沖突存儲器映射,該渦輪解碼器中有沖突發生; 圖9是執行并行解碼的渦輪解碼器的實施例示意圖,其中因為渦輪解碼器和存儲器之間的無沖突存儲器映射,該渦輪解碼器中沒有沖突發生; 圖10和圖11分別是通信系統其它實施例的示意圖; 圖12A、圖12B、圖12C和圖12D分別是渦輪解碼器和存儲器之間不同的、連續的無沖突存儲器映射的示意圖; 圖13是渦輪解碼器實施例的示意圖,其采用兩組單獨的SISO解碼器來訪問存儲在多個存儲器組中的數據; 圖14是渦輪解碼器實施例的示意圖,其采用多個SISO解碼器來訪問存儲在多個存儲器組中的數據; 圖15是解碼渦輪編碼信號的方法的實施例示意圖; 圖16是解碼渦輪編碼信號的方法的另一實施例示意圖。
具體實施例方式 許多通信系統都會結合渦輪碼的使用。雖然存在許多可使用渦輪碼的潛在應用,我們提出了可以應用于3GPP信道碼的方式,以支持任意數量的信息位。對于WCDMA、HSDPA,使用本發明在此提出的各種特征可支持的信息位的數量可以是40到5114,對于LTE,其數量會更多。
關于UTRA-UTRAN長期演化(LTE)和3GPP系統結構演化(SAE)的更多信息可以在以下網站獲得 www.3gpp.org 渦輪碼早已被建議用于3GPP LTE信道編碼。在3GPP LTE的信道編碼系統中,存在對配備和提供寬范圍塊大小(即渦輪碼的塊長度)的需求。參考文獻[1]中被稱為“準規則排列(ARP)”的代數交織(algebraic interleave)可以考慮作為此編碼系統的候選,還有參考文獻[2]中的“二次多項式排列(QPP)”可以考慮作為替代的候選。
此外,此系統的渦輪編碼一般需要使用并行解碼方案來實現,這是因為3GPP LTE信道編碼期望有特高的數據吞吐量和較大的塊大小。并行解碼需要無沖突存儲器訪問,即任何一個渦輪解碼器(其為一組并行排列的渦輪解碼器之一)在任何指定時間僅訪問存儲器(其為一組并行排列的存儲器之一)。在并行渦輪解碼中,解碼處理包括窗口的處理,這些窗口共同組成整個渦輪碼塊。例如,因為解碼方法本質上是有窗的,所以整個渦輪碼塊被分成許多子塊,并在子塊中執行更短的遞歸。并行解碼方案包括有并行工作的多個渦輪解碼處理器,并且將每個子塊分配到不同的解碼處理器。既然每個處理器使用同樣的解碼方法,那么每個處理器同時訪問存儲器。如果存在無效的存儲器映射(M),那么將出現沖突;這就是說,來自兩個或多個處理器的兩個或多個存儲器訪問在同一時間對同一存儲器組作出嘗試。(見后面圖7A、圖7B、圖8、圖9和它們相關的字面描述,以及并行渦輪解碼環境中的沖突對無沖突存儲器映射的其它描述)。存儲器和處理器之間的無效存儲器映射(M)引起的沖突將降低解碼實現的效率。在參考文獻[3]中指出,總是存在用于任何程度和任何交織(π)的并行解碼的無沖突存儲器訪問。然而,參考文獻[3]中給出的方法是點對點的(ad-hoc),而且一般實現不是很友好,特別當需要支持許多不同的塊大小時,如在3GPP LTE信道編碼的環境中。
數字通信系統的目標是將數字數據從一個位置或子系統中無錯地或以可接受的低錯誤率傳輸到另一個位置。如圖1所示,數據在多種通信系統中通過多種通信信道進行傳輸磁介質、有線、無線、光纖、銅線和其它類型的媒介。
圖1是通信系統100的一個實施例的示意圖。
參考圖1,通信系統100的這個實施例是通信信道199,其將位于通信信道199一端的通信設備110(包括具有編碼器114的發送器112和具有解碼器118的接收器116)通訊連接到位于通信信道199另一端的通信設備120(包括具有編碼器128的發送器126和具有解碼器124的接收器122)。在某些實施例中,通信設備110和120僅包括發送器或接收器。實現通信信道199的媒介存在幾種不同的類型,即使用碟形衛星天線132和134的衛星通信信道130、使用塔142、144和/或本地天線152、154的無線通信信道150、有線通信信道150和/或使用電光(E/O)接口162和光電(O/E)接口164的光纖通信信道160。另外,還可以一起實現和接入一種以上的媒介類型,從而形成通信信道199。
圖2是渦輪解碼器200的一個實施例的示意圖。將接收的信號(即通常從通信信道接收)提供給I、Q提取模塊202,由其從接收信號201中提取I、Q(同相和正交)成分。這可視為接收器預處理,它包括任何適當的頻率轉換(若需要,通常從載波頻率向下轉換)。I、Q然后可以根據調制的適當星座(constellation)和映射進行映射。然后,將映射的I、Q傳送到度量(metric)生成器204。度量生成器204生成適當的度量241(其根據接收的I、Q測得)給調制的適當星座和映射中的星座點接收;星座點的映射在調制中對度量進行索引;這些度量可視為在調制中從實際接收符號位置到預期星座點位置的換算歐幾里德(Euclidian)距離。
繼續討論渦輪解碼處理和功能性。接著,將度量生成器204計算出的度量241同時提供給第一軟輸入/軟輸出(SISO0)解碼器210和第二SISO1解碼器230。在格柵編碼(trellis coding)的環境中(如渦輪格柵編碼調制(TTCM)),第一SISO0解碼器210和第二SISO1解碼器230均根據采用的格柵計算出向前度量(α)和向后度量(β)以及外部(extrinsic)值。
針對待解碼的幀內的每一符號,計算出這些向前度量、向后度量和外部值。向前度量、向后度量和外部值的這些計算全部基于所用的格柵。
以第一SISO0解碼器210開始,計算出外部值211以后,將其傳送給交織器(interleaver)(π)220,之后將其作為“先驗概率”(app)信息221傳送到第二SISO1解碼器230。類似地,在第二SISO1解碼器230內計算出外部值231以后,將其傳送到解交織器(de-interleaver)(π-1)240,然后作為“先驗概率”(app)信息241傳送到第一SISO0解碼器210。注意,渦輪解碼器200的迭代解碼處理中的單個解碼迭代包括執行兩個SISO操作;這就是說,迭代解碼處理必須經過第一SISO0解碼器210和第二SISO1解碼器230。
達到有效置信級別并收斂得到解以后,或者已執行了預定次數的解碼迭代以后,來自第二SISO1解碼器230的輸出作為輸出被傳送到輸出處理器250。SISO210和230的操作一般稱為對符號(包含在接收的符號中)的軟符號判決的計算。在某些實施例中,在實際位級別上執行這些軟符號判決。輸出處理器250使用這些軟符號判決以生成信息位的最佳估計值251(如硬位(soft bit)和/或符號判決),其中該信息位在源渦輪編碼信號中已被編碼(一般在信號201最先進入的通信信道的另一端的渦輪編碼器位置)。
同樣注意,在交織器(π)220中執行的交織可以使用QPP交織的實施例執行,如附圖標號291所示。
許多在此提出的實施例采用了二次多項式排列(QPP)交織的不同實施例。以下提供了關于執行QPP交織的方法的更多細節。
圖3是具有分時的渦輪碼解碼器的實施例示意圖,其采用單個SISO解碼器或單個SISO解碼器陣列。該實施例根據渦輪解碼處理(并行渦輪解碼處理)采用單個SISO解碼器或單個SSO解碼器陣列來執行SISO0和SISO1解碼操作。MUX305用來接收信息位310和冗余位302,并選擇性地將它們提供給SISO解碼器310。該實施例中的SISO解碼器也包括集成的交織器(π)320和集成的解交織器(π-1)340。MUX305的選擇信號根據一個信號工作,其偶相位303控制對提供到SISO解碼器310的信息位301或冗余位302的選擇,以執行SISO0解碼處理或SISO1解碼處理。
在一個實施例中,如附圖標號312所示,當執行自然順序相位解碼時(即SISO0解碼操作),對存儲器入口的訪問是在選擇信號303指示偶相位給MUX306時執行的。同樣,當執行交織(π)順序相位解碼(即SISO1解碼操作)時,對存儲器入口的訪問是在選擇信號303指示奇相位給MUX306時執行的。
圖4是可以應用在渦輪解碼中的并行解碼的實施例示意圖。如圖所示,渦輪編碼信號中信息塊的塊長度401表示為L,其也可以稱為交織(π)大小。這也可以稱為將進行渦輪解碼的編碼塊。該塊可以分成多個窗口,以便每個窗口的大小W=L/M(W是窗口大小)。如附圖標號402所示。由于渦輪碼使用卷積編碼器作為其組成編碼器,連續的符號通過狀態進行連接且因此子塊必須包含連續的信息位。
并行解碼實現中設置的處理器的數量表示為M(如附圖標號404所示),并且注意M是L的因數(即M除以L沒有余數)。
在周期0中(即渦輪解碼的迭代解碼處理中的第一次解碼迭代),處理每個窗口的第一部分,如每個窗口相應的陰影部分所示。然后,在周期1中(即渦輪解碼的迭代解碼處理中的第二次解碼迭代),處理每個窗口的第二個部分,如每個窗口相應的陰影部分所示。如此繼續直到周期W-1(即渦輪解碼的迭代解碼處理中的最終解碼迭代),處理每個窗口的最終部分,如每個窗口相應的陰影部分所示。
在每個周期中,使用多個解碼處理器(例如多個渦輪解碼器)的并行實現中的一個解碼處理器(例如一個渦輪解碼器)處理每個窗口的指定部分。
圖5是自然/非交織順序解碼處理器(用于渦輪編碼信號的并行解碼)的分離處理的實施例500的示意圖。該示意圖同樣與圖4相對應。例如,窗口大小W、處理器數量M和塊長度L的規定都與之前的實施例相同,如附圖標號502所示(即W=L/M或M.W=L)。另外,信息序列的索引集(index set)如附圖標號501所示,I={0,1,...L-1},因此交織信息序列的索引集在圖6中如附圖標號601所示,為π(I)={π(0),π(1),...π(L-1)}。
然后I的M個窗口的索引集如下 {0,1,...W-1},{W,W+1,...2W-1},...{(M-1)W,...MW-1}(1) 根據以自然順序相位進行的并行渦輪解碼處理(采用M個解碼處理器),在周期0(即渦輪解碼的迭代解碼處理中的第一次解碼迭代)中,被處理的每個窗口各自的第一部分如下 1、處理器0處理信息塊的0部分。
2、處理器1處理信息塊的W部分。
3、處理器2處理信息塊的2W部分。
... s、處理器s處理信息塊的sW部分(s是整數)。
... M-1、處理器M-1處理信息塊的(M-1)W部分。
在周期1(渦輪解碼的迭代解碼處理中的第二次解碼迭代)中,被處理的每個窗口各自的第二部分如下 1、處理器0處理信息塊的1部分。
2、處理器1處理信息塊的W+1部分。
3、處理器2處理信息塊的2W+1部分。
... s、處理器s處理信息塊的sW+1部分(s是整數)。
... M-1、處理器M-1處理信息塊的(M-1)W+1部分。
如此繼續直到周期W-1(渦輪解碼的迭代解碼處理中的最終解碼迭代)中,被處理的每個窗口各自的最終部分如下 1、處理器0處理信息塊的W-1部分。
2、處理器1處理信息塊的W+W-1部分。
3、處理器2處理信息塊的W+2W-1部分。
... s、處理器s處理信息塊的sW+W-1部分(s是整數)。
... M-1、處理器M-1處理信息塊的(M-1)W+W-1部分。
在第0和第t解碼周期上,每列上的元素集分別是(同樣如附圖標號503所示) E0={0,W,...(M-1)W},及 Et={t,W+t,...(M-1)W+t}。
這就是說,這是所有M個窗口中所有第i個元素的“集”。事實上,在周期t上,M個處理器對Et中的索引位并行地執行解碼。
圖6是交織(π)順序解碼處理器(用于渦輪編碼信號的并行解碼中)的分離處理的實施例600的示意圖。該示意圖同樣對應圖4。例如,窗口大小W、處理器數量M、塊長度L的規定都與之前的實施例相同,如附圖標號602所示(即W=L/M或M.W=L)。另外,信息序列的索引集(index set)如附圖標號501所示,I={0,1,...L-1},因此交織信息序列的索引集在圖6中如附圖標號601所示,為π(I)={π(0),π(1),...π(L-1)}。
根據以自然順序相位進行的并行渦輪解碼處理(采用M個解碼處理器),在周期0(即渦輪解碼的迭代解碼處理中的第一次解碼迭代)中,被處理的每個窗口各自的第一部分如下(注意這些是交織(π)部分) 1、處理器0處理信息塊的π(0)部分。
2、處理器1處理信息塊的π(W)部分。
3、處理器2處理信息塊的π(2W)部分。
... s、處理器s處理信息塊的π(sW)部分(s是整數)。
... M-1、處理器M-1處理信息塊的π((M-1)W)部分。
在周期1(渦輪解碼的迭代解碼處理中的第二次解碼迭代)中,被處理的每個窗口各自的第二部分如下 1、處理器0處理信息塊的π(1)部分。
2、處理器1處理信息塊的π(W+1)部分。
3、處理器2處理信息塊的π(2W+1)部分。
... s、處理器s處理信息塊的π(sW+1)部分(s是整數)。
... M-1、處理器M-1處理信息塊的π((M-1)W+1)部分。
如此繼續直到周期W-1(渦輪解碼的迭代解碼處理中的最終解碼迭代)中,被處理的每個窗口各自的最終部分如下 1、處理器0處理信息塊的π(W-1)部分。
2、處理器1處理信息塊的π(W+W-1)部分。
3、處理器2處理信息塊的π(2W+W-1)部分。
... s、處理器s處理信息塊的π(sW+W-1)部分(s是整數)。
... M-1、處理器M-1處理信息塊的π((M-1)W+W-1)部分。
在交織(π)處理一側上,第0個和第t個解碼周期上的每列內的元素集分別是(同樣如附圖標號603所示) 及 然后π(I)的M個窗口的索引集如下 {π(0),π(1),...π(W-1)},{π(W),π(W+1),...π(2W-1)},...{π((M-1)W),...,π(MW-1)} 一般地,針對第i次解碼迭代可作出如下定義 然后,從索引集I和π(1)到集Zp={0,1,...P-1}所定義的存儲器映射M被稱為用于具有并行度M的并行解碼的無沖突映射(如參考文獻[4]所述),以上是假設如下關系對于所有可能i的每個j,j′∈{0,...L-1},j≠j′成立 j,j′∈EtM(j)≠M(j′),且 注意,第t個周期的索引集中的解碼值應該被映射到不同的存儲器組(例如提供來服務多個并行設置的渦輪解碼器的多個存儲器中的不同存儲器)。
參考文獻[4]中已經證明,針對任何指定的交織(π),總存在用于任何并行解碼處理器的并行解碼的無沖突映射。然而,對于需要支持許多不同塊大小信道編碼的通信系統,生成參考文獻[2]給出的這樣一種映射的方法很難實現。
在參考文獻[5]中,定義了一個公式化無沖突映射(formulaic collision-freememory mapping),其將π(jw+j)映射到π(jW+i)/W,并將π-1(jw+1)映射到π-1(jW+i)/W,其中W是窗口大小。如果交織有這種無沖突映射,在參考文獻[4]中稱之為無沖突。由于這種映射采用了劃分,稱之為劃分映射(MDIV,W)。事實上,該映射可以表示如下
然而,由于使用劃分映射,并行處理器的數量限制為交織(π)大小的因子。例如,采用大小為L=6144=3×211的QPP交織。若使用劃分存儲器映射MDIV,W,那么并行解碼處理器的數量M必須是L的因子。因此,如果數據吞吐量需要20個處理器(M=20),那么劃分存儲器映射MDIV,W將不能工作。在此,介紹一種可變通但仍公式化的存儲器映射(M),其能夠適用于任意數量M的并行處理器以用于任何二次多項式排列(QPP)交織。
然而,以下提出了更多的信息,以幫助讀者理解并行實現的渦輪解碼器環境中的無沖突存儲器訪問。另外,也提出了采用并行實現的渦輪解碼器的通信設備的更多實施例。
圖7A是針對自然/非交織順序相位在并行解碼700上存儲器映射的實施例示意圖。
圖7B是針對交織(π)順序在并行解碼702上存儲器映射的實施例示意圖(一個存儲器中存在沖突)。
圖7A和圖7B應該互相結合來考慮。實施例700和702每個都采用4個存儲器組(表示為存儲器741、存儲器742、存儲器743、存儲器744)。所示編碼塊被分離成多個子塊。這個特殊的編碼塊包括4W個數據位置。
第一子塊以數據位置0、1開始,一直到W-1。第二子塊以數據位置W、W+1開始,一直到2W-1。第三子塊以數據位置2W、2W+1開始,一直到3W-1。第四子塊以數據3W、3W+1開始,一直到4W-1。
在周期0中,第一子塊的第一數據(即位置0中的數據)存儲在存儲器742的第一位置。
在周期0中,第二子塊的第一數據(即位置W中的數據)存儲在存儲器743的第一位置。
在周期0中,第三子塊的第一數據(即位置2W中的數據)存儲在存儲器741的第一位置。
在周期0中,第四子塊的第一數據(即位置3W中的數據)存儲在存儲器744的第一位置。
在周期1中,第一子塊的第二數據(即位置1中的數據)存儲在存儲器741的第二位置。
在周期1中,第二子塊的第二數據(即位置W+1中的數據)存儲在存儲器744的第二位置。
在周期1中,第三子塊的第二數據(即位置2W+1中的數據)存儲在存儲器742的第二位置。
在周期1中,第四子塊的第二數據(即位置3W+1中的數據)存儲在存儲器743的第二位置。
這個處理過程一直持續,直到編碼塊的所有數據元素都被存儲到4個存儲器組相應的存儲器位置。特定數據元素將存儲到那個存儲器組內的這種放置取決于所采用的映射。
經過交織(π)后,如圖所示,交織編碼塊被分成多個子塊。這個特殊編碼塊包括4W個數據位置。
第一子塊以數據位置π(0)、π(1)開始,一直到π(W-1)。第二子塊以數據位置π(W)、π(W+1)開始,一直到π(2W-1)。第三子塊以數據位置π(2W)、π(2W+1)開始,一直到π(3W-1)。第四子塊以數據π(3W)、π(3W+1)開始,一直到π(4W-1)。
在周期0中,根據所采用的特殊交織和映射,第一子塊的第一數據(即位置π(0)中的數據)存儲在存儲器741的位置。
在周期0中,根據所采用的特殊交織和映射,第二子塊的第一數據(即位置π(W)中的數據)存儲在存儲器744的位置。
在周期0中,根據所采用的特殊交織和映射,第三子塊的第一數據(即位置π(2W)中的數據)存儲在存儲器743的位置。
在周期0中,根據所采用的特殊交織和映射,第四子塊的第一數據(即位置π(3W)中的數據)存儲在存儲器742的位置。
在周期1中,根據所采用的特殊交織和映射,第一子塊的第二數據(即位置π(1)中的數據)存儲在存儲器742的位置。
在周期1中,根據所采用的特殊交織和映射,第二子塊的第二數據(即位置π(W+1)中的數據)存儲在存儲器741的位置。
在周期1中,根據所采用的特殊交織和映射,第三子塊的第二數據(即位置π(2W+1)中的數據)存儲在存儲器742的位置。
在周期1中,根據所采用的特殊交織和映射,第四子塊的第二數據(如位置π(3W+1)中的數據)存儲在存儲器744的位置。
這個處理過程一直持續,直到編碼塊的所有數據元素都被存儲到4個存儲器組相應的存儲器位置。特定數據元素將存儲到哪個存儲器組的這種放置取決于所采用的映射。
注意,這個映射不是無沖突的,因為在交織順序相位的周期1中,第一子塊的第二數據(即位置π(1)中的數據)和第三子塊的第二數據(即位置π(2W+1)中的數據)都映射到同一存儲器742。
圖8是執行并行解碼的渦輪解碼器800的實施例示意圖,其中因為渦輪解碼器和存儲器之間缺少無沖突存儲器映射,該渦輪解碼器800中有沖突發生。
該渦輪解碼器800包括多個渦輪解碼器821-827、多個存儲器841-847和處理模塊830(用來執行多個渦輪解碼器821-827和多個存儲器841-847之間的存儲器映射)。可以看出,一個以上的解碼器在指定時間試圖訪問同一存儲器。特別地,渦輪解碼器821和渦輪解碼器822正試圖訪問存儲器841,渦輪解碼器824和渦輪解碼器825正試圖訪問存儲器845。同樣,渦輪解碼器827和另一渦輪解碼器(包括在省略號...所示區域)正試圖訪問存儲器847。而這會引起沖突并導致不良性能。
圖9是執行并行解碼的渦輪解碼器900的實施例示意圖,其中因為渦輪解碼器和存儲器之間的無沖突存儲器映射,該渦輪解碼器900中沒有沖突發生。
該渦輪解碼器900包括多個渦輪解碼器921-927、多個存儲器941-947、處理模塊930(用來執行多個渦輪解碼器921-927和多個存儲器941-947之間的存儲器映射)。可以看出,只有一個渦輪解碼器在特定時間訪問任何一個存儲器。這是多個渦輪解碼器921-927和多個存儲器941-947之間真正的無沖突存儲器映射。
圖10和圖11是通信系統的其它實施例的示意圖。
參考圖10的通信系統1000,通信系統1000包括通信設備1010,其通過通信信道1099連接到另一設備。通信設備1010包括解碼器1021,其實現為用來采用無沖突存儲器映射的并行實現渦輪解碼器。
通信設備1010通過通信信道1099連接到其它設備1090,而該其它設備可以是另一通信設備1092、存儲媒介1094(如在硬盤驅動(HDD)的環境中)或用來接收和/或傳輸信號的任何其它類型設備。在某些實施中,通信信道1099是雙向通信信道,其用來在第一時間段執行第一信號的傳輸以及在第二時間段接收第二信號。若需要,可以采用全雙工通信,其中通信設備1010和設備1090中每個都可以同時相互傳輸和/或接收。
通信設備1010的解碼器1021包括渦輪解碼器1020、處理模塊1030、存儲器1040。處理模塊1030可以連接到存儲器1040,以便存儲器用來存儲使處理模塊1030執行某些功能的可操作指令。
一般來說,處理模塊1030用來在迭代解碼處理過程中執行渦輪解碼器1020和存儲器1040之間的無沖突存儲器映射。
同樣需要注意,處理模塊1030和在此所述的任何其它處理模塊能以如下所述任何數量的方式實現。在一個實施例中,處理模塊1030可以嚴格地作為電路實現。可選地,處理模塊1030可以嚴格地在軟件中實現,如可以在數字信號處理器(DSP)或相似類型的設備中采用。在另一實施例中,在不脫離本發明范圍和精神的情況下,處理模塊1030可以作為軟硬件的結合實現。
在其它更多的實施例中,處理模塊1030可以使用共享處理設備、個人處理設備或多個處理設備實現。這種處理設置可以是微處理器、微控制器、數字信號處理器、微型計算機、中心處理單元、現場可編程門陣列、可編程邏輯設備、狀態機、邏輯電路、模擬電路、數字電路和/或任何基于可操作指令處理信號(模擬和/或數字)的設備。處理模塊1030可以連接到用來存儲可操作指令的存儲器1040,其中可操作指令使處理模塊1030執行渦輪解碼器1020和存儲器1040之間適當的無沖突儲存映射。
這種存儲器1040可以是單個存儲設備或多個存儲設備。這種存儲器1040可以是只讀存儲器、動態存儲器、靜態存儲器、閃存和/或任何存儲數字信息的設備。注意當處理模塊1030通過狀態機、模擬電路、數字電路和/或邏輯電路實現一個或多個其功能時,存儲相應可操作指令的存儲器嵌入在電路中,包括狀態機、模擬電路、數字電路和/或邏輯電路。
參考圖11的通信系統1100,該實施例與之前的實施例稍微有點相似。通信系統1100包括通過通信信道1199連接到另一設備的通信設備1110。通信設備1110包括渦輪解碼器1120,其本身由多個渦輪解碼器1121-1122組成。通信設備1110也包括存儲器1140,其本身由多個存儲器1141-1142組成。處理模塊1130用來在渦輪編碼信號的迭代解碼處理過程中,執行多個渦輪解碼器1121-1122和多個存儲器1141-1142之間的無沖突存儲器映射。
圖12A、圖12B、圖12C和圖12D分別是渦輪解碼器和存儲器之間不同的、連續的無沖突存儲器映射的示意圖。這四個圖應該相互結合來考慮。
通信設備包括渦輪解碼器,其本身由多個渦輪解碼器1221、1222和1223組成。這種通信設備也包括存儲器,其本身由存儲器1241、1242和1243組成。處理模塊1230用來在渦輪編碼信號的迭代解碼處理過程中執行多個渦輪解碼器1221、1222、1223和多個存儲器1241、1242、1243之間的無沖突存儲器映射。
在任何特定時間,處理模塊1230用來確保只有一個渦輪解碼器在該特定時間訪問特定的存儲器。例如,處理模塊1230在時間1執行第一無沖突存儲器映射,如附圖標號1201所示。處理模塊1230在時間2執行第二無沖突存儲器映射,如附圖標號1202所示。處理模塊1230在時間3執行第二無沖突存儲器映射,如附圖標號1203所示。處理模塊1230在時間4執行第二無沖突存儲器映射,如附圖標號1204所示。可以看出,這四個圖的每個圖中,都只有一個渦輪解碼器在任何特定時間連接到任何一個存儲器。
可以看出,渦輪解碼器1221、1222、1223和多個存儲器1241、1242、1243之間的無沖突存儲器映射在渦輪編碼信號的迭代解碼處理過程中隨時間函數變化。
二次多項式排列(QPP) 關于二次多項式排列(QPP)交織(π)的更多細節在下面給出。
設塊大小或交織大小是L,如果以下函數 π(x)=ax+bx2mod(L)(4) 是{0,1,...L-1}上的排列(permutation),那么其稱之為參考文獻[3]所述的二次多項式。
參考文獻[3]中同樣指出,如果處理器的數量M是L的約數,即W=L/M,那么使用等式(3)的劃分存儲器映射MDIV,W便是無沖突QPP交織(π)。
公式化可變通無沖突存儲器映射(M)(formulaic and flexible collision-freememory mapping) 如上,使用劃分存儲器映射MDIV,W的情況下,并行實現的解碼處理器的數量限制為交織大小的因子。換句話說,劃分存儲器映射MDIV,W不能適應任何可能數量的并行實現解碼處理器。
例如,取QPP交織的大小為L=6144=3×211。使用劃分存儲器映射MDIV,W,則并行實現的解碼處理器的數量P必須是塊長度/交織大小L的因子。因此,考慮一個可能的例子,如果數據吞吐量需要P=20,則劃分存儲器映射MDIV,W將不能進行。
以下提出一種存儲器映射(M)的新方法,其是可變通的(能夠適應任何數量的解碼處理器P),并且是一種公式化存儲器映射(M)。
假定交織π的大小為L。設C是數字,那么以下條件成立 條件I 如果π(x)=π(y)modC,那么x=ymodC(5) 指定并行處理器的任何數量P,那么P≤C。設窗口大小W是符合以下條件的最小數 條件II a)W≥L/P且b)gcd(W,C)=1。(6) 設L′=P*W。
渦輪解碼的并行實現現在可以考慮在大小為L′的“虛”交織(也可以是大小為L′的“虛”塊)上執行。
參考圖5和圖6可以觀察到,具有sW+t>L或π(sW+t)>L的某些解碼周期變成偽(dummy)解碼周期,即該周期內對應的處理器沒有工作。
窗口大小為W的調制存儲器映射MMOD,C,W可以如下定義
C的值和條件在以下的法則1中定義。
法則1 設并行解碼處理器的數量P是滿足P≤C的任何數,其中C滿足上述等式(5)中的條件I且窗口大小W滿足上述等式(6)的條件II,那么調制存儲器映射MMOD,C,W是π的無沖突存儲訪問映射。
證明 A)在渦輪解碼的自然順序相位中,如果 MMOD,C,W(s0W+t)=MMOD,C,W(s1W+t),那么s0W≡s1WmodC。
但是s0和s1都小于P≤C(見等式1)且gcd(W,C)=1(條件,等式6)。因此以下關系成立 MMOD,,C,W(s0W+t)=MMOD,,C,W(s1W+t)s0=s1。
B)在渦輪解碼的交織(π)順序相位中,如果 MMOD,,C,W(π(s0W+t))=MMOD,,C,W(π(s1W+t)),那么 π(s0W+t)≡π(s1W+t)modC。
根據等式(5)的條件,有π(s0W+t)≡π(s1W+t)modC。所以,再有s0=s1。
通過結合A)和B),可以證明調制存儲器映射MMOD,C,W是π的無沖突存儲訪問映射。
當交織(π)是二次多項式排列(QPP)時,我們有如下的定理。
定理1 假定QPPπ(x)=ax+bx2modL,L為大小。如果整數C滿足C|b(即如果是C,b是約數)且gcd(a,C)=1,那么 π(x)=π(y)modCx=ymodC。
證明π(x)=π(y)modCa(x-y)+b(x2-y2)=0modC。從而 a(x-y)modC=0。
這意味著x=ymodC。
以下提供了在并行實現的渦輪解碼器環境中采用QPP交織(π)的一些例子,可以看出,提供了一種公式化且可變通的無沖突存儲器映射(M)來訪問使用二次多項式排列(QPP)交織的并行渦輪解碼架構中的存儲器組。
例1在參考文獻[5]的列表中取大小為L=6144=3×211的QPPπ,其中a=263,b=480=25×3×5。取P=C=20=5×4。有gcd(a,C)=1且C|b(即C滿足定理1)。因而 π(x)=π(y)modCx=ymodC。
設W=309,那么W滿足等式(6)中的條件,也就是 a)W≥L/P,且 b)gcd(W,C)=1。
那么,通過法則1,調制存儲器映射MMOD,20,309是使用20個并行實現渦輪解碼處理器(即P=20)的此QPP的無沖突存儲器映射。
通過取P=19<C=20,有調制存儲器映射MMOD,20,324,其使用19個并行實現渦輪解碼處理器(即P=20)的QPP的無沖突存儲器映射。
如下給出了一個滿足條件I的更常規的情形。
法則2設π(x)=ax+bx2modL是大小為L的QPP交織。
如果C是L的因數,即C|L。當且僅當x=ymodC(即滿足條件I)時,π(x)=π(y)modC。
證明(←)假設x=ymodC。
存在整數k使x=y+kC。從而 π(y)-π(x)=a(x+kC-x)+b(x2+2kCx+4k2C2-x2)modL =C(ak+2b2kx+4k2C)modL=0modC 由于C|L, (→)假設π(x)=π(y)modC。
定義兩個集 集1S(x)={i|i=xmodC}和 集2S(y)={j|j=ymodC}。
假定x≠ymodC,那么S(x)⌒s(y)=。
然而,通過(←)有 π(S(x))={π(i)|i=xmodC}={π(i)|π(i)=π(x)modC},和 π(S(y))={π(j)|j=ymodC}={π(j)|π(j)=π(y)modC}。
從而π(S(x))=π(S(y))。
這與S(x)⌒s(y)=相矛盾,且π是一種排列。
因此,x=ymodC。
例2在參考文獻[5]的列表中取大小為L=6144=3×211的QPPπ。設并行實現渦輪解碼處理器的數量為20(即P=20)。取C=24。那么C|L且P<C。那么通過法則2,條件I成立。
設W=311,則W滿足等式(6)中的條件II,即 a)W≥L/P,且 b)gcd(W,C)=1。
那么,通過法則1,調制存儲器映射MMOD,20,311是用于使用20個并行實現渦輪解碼處理器(即P=20)的此QPP交織的無沖突存儲器映射。
例3在參考文獻[5]的列表中取大小為L=4736=37*27的QPPπ。設并行實現渦輪解碼處理器的數量為10(即P=10)。取C=16。那么C|L且P<C。那么通過法則2,條件I成立。
設W=475,那么W滿足等式(6)中的條件II,即 a)W≥L/P,且 b)gcd(W,C)=1。
那么,通過法則1,調制存儲器映射MMOD,10,475是用于有20個并行實現的渦輪解碼處理器(即P=10)的此QPP的無沖突存儲器映射。
總之,對于并行實現的渦輪解碼處理器的任何數量P,通過注意選取數C≥P和W,調制存儲器映射MMOD,C,W是用于參考文獻[5]的表3中給出的任何QPP交織(π)的無沖突存儲器映射。
而且,調制存儲器映射MMOD,C,W提供了更多的自由度來選擇特殊的二次多項式排列(QPP)交織(π),以滿足使用任何所需數量的并行實現渦輪解碼處理器的并行渦輪解碼實現。
圖13是渦輪解碼器1300實施例的示意圖,其采用兩組單獨的SISO解碼器(1310和1330)來訪問存儲在多個存儲器組1390中的數據。如其它實施例中所示,接收到的信號(例如,通常從通信信道接收)提供給I、Q提取模塊1302,由其從接收的信號1301中提取I、Q(同相和正交)成分。這可視為接收器預處理,它包括任何適當的頻率轉換(若需要,通常從載波頻率向下轉換)。I、Q然后可以根據調制的適當星座(constellation)和映射進行映射。然后,將映射的I、Q傳到度量(metric)生成器1304。度量生成器1304生成適當的度量1341,其從接收的I、Q分派到調制的適當星座和映射中的星座點;星座點的映射在調制中對度量進行索引;這些度量可視為在調制中從實際接收符號的位置到預想星座點位置的換算歐幾里德(Euclidian)距離。
繼續討論渦輪解碼處理和功能性,度量生成器1304計算出的度量1341然后被同時提供給第一軟輸入/軟輸出(SISO)0解碼器陣列1310和第二SISO1解碼器陣列1330。第一SISO0解碼器陣列1310包括一定數量的SISO0解碼器,如SISO0 1311,...和SISO0 1312所示。第一SISO0解碼器陣列1310中每個單獨的解碼器用來對存儲在特定存儲器組1390中一個存儲器的特定存儲器位置中的數據執行SISO解碼。
將先前由度量生成器1304計算出的度量1341也提供到第二SISO1解碼器陣列1330。這一SISO1解碼器陣列1330包括一定數量的SISO1解碼器,如SISO1 1331,...和SISO0 1332所示。SISO1解碼器陣列1330中的每個單獨的解碼器用來對存儲在特定存儲器組1390中一個存儲器的特定存儲位置中的數據執行SISO解碼。
在格柵編碼的環境中(如渦輪格柵編碼調制(TTCM)),第一SISO0解碼器陣列1310和第二SISO1解碼器陣列1330均根據所采用的格柵,為在特定解碼迭代中被更新的每個對應存儲器位置內的特定數據條目計算出向前度量(α)和向后度量(β)以及外部(extrinsic)值。
針對將被解碼的幀中的每個符號,均計算出這些向前度量、向后度量和外部值。向前度量、向后度量和外部值的這些計算全部基于所用的格柵。
以第一SISO0解碼器陣列1310開始,在計算出外部值1311以后,將其傳送到交織器(π)1320,然后作為“先驗概率”(app)信息1321傳送到第二SISO1解碼器陣列1330。注意,對存儲器組1390中數據的訪問是以無沖突方式執行的,這是因為其中所采用的存儲器映射(根據調制存儲器映射MMOD,C,W)提供了更多的自由來選擇特定二次多項式排列(QPP)交織(π),以滿足具有任何所需數量的并行實現渦輪解碼處理器的并行渦輪解碼實現。
類似地,在第二SISO1解碼器陣列1330內計算出外部值1331以后,將其傳送到解交織器(π-1)1340,然后作為“先驗概率”(app)信息1341傳送到第一SISO0解碼器陣列1310。
注意,渦輪解碼器1300的迭代解碼處理過程中的單次解碼迭代執行兩個SISO操作;這就是說,迭代解碼處理必須經過第一SISO0解碼器陣列1310和第二SISO1解碼器陣列1330。
達到有效置信級別并收斂得到解后,或者執行解碼迭代預定次數后,來自第二SISO1解碼器陣列1330的輸出作為輸出被傳送到輸出處理器1350。SISO0解碼器陣列1310和SISO1解碼器陣列1330的操作一般稱為對包含在接收的信號1301中的符號的軟符號判決的計算。在某些實施例中,以實際位級別執行這些軟符號判決。輸出處理器1350使用這些軟符號判決以生成已被編碼在原始渦輪編碼信號(例如,一般在信號1301最先進入的通信信道的另一端的渦輪編碼器位置內)內的信息位的最佳估計值1351(如硬位和/或符號判決)。
還要注意的是,在交織器(π)1320中執行的每次交織可以使用QPP交織的實施例執行,如附圖標號1391所示。同樣,在解交織器(π-1)1340中執行的解交織也可以使用QPP解交織的實施例執行。
圖14是渦輪解碼器1400實施例的示意圖,其采用多個SISO解碼器來訪問存儲在多個存儲器組中的數據。如其它實施例中所示,將接收的信號(如通常從通信信道接收)提供給I、Q提取模塊1402,由其從接收的信號1401中提取I、Q(同相和正交)成分。這可視為接收器預處理,其可包括任何適當的頻率轉換(若需要,通常從載波頻率向下轉換)。I、Q然后可以根據調制的適當星座(constellation)和映射進行映射。然后,將映射的I、Q傳到度量(metric)生成器1404。度量生成器1404生成適當的度量1441,其從接收的I、Q分派到調制的適當星座和映射中的星座點;星座點的映射在調制中對度量進行索引;這些度量可視為在調制中從實際接收符號的位置到預想星座點位置的換算歐幾里德(Euclidian)距離。
繼續討論渦輪解碼處理和功能性,度量生成器1404計算出的度量1441然后被同時提供給軟輸入/軟輸出(SISO)解碼器陣列1410,其既執行SISO0解碼操作又執行SISO1解碼操作。該SISO0解碼器陣列1410包括一定數量的SISO解碼器,如SISO 1411,...和SISO 1412所示。SISO解碼器陣列1410中每個單獨的解碼器用來對存儲在特定存儲器組1490中一個存儲器的特定存儲器位置中的數據執行SISO解碼(針對SISO0解碼操作和SISO1解碼操作兩者)。
在格柵編碼的環境中(如渦輪格柵編碼調制(TTCM)),SISO解碼器陣列14310中的每個SISO解碼器根據所采用的格柵,為在特定解碼迭代中被更新的每個對應存儲器位置內的特定數據條目計算出向前度量(α)和向后度量(β)以及外部(extrinsic)值。
針對將被解碼的幀中的每個符號,均計算出這些向前度量、向后度量和外部值。向前度量、向后度量和外部值的這些計算全部基于所用的格柵。
以SISO解碼器陣列1410所執行的第一解碼操作(即SISO0)開始,在計算出外部值1411以后,將其傳送到交織器(π)1420,然后作為“先驗概率”(app)信息1421傳回到SISO解碼器陣列1410。注意,在執行SISO1解碼操作時,SISO解碼器陣列1410對存儲器組1490中數據的訪問是以無沖突方式執行的,這是因為其中所采用的存儲器映射(根據調制存儲器映射MMOD,C,W)提供了更多的自由來選擇特定二次多項式排列(QPP)交織(π),以滿足具有任何所需數量的并行實現渦輪解碼處理器的并行渦輪解碼實現。
類似地,在SISO解碼器陣列1430內計算出外部值1431以后,將其傳送到解交織器(-1)1440,然后作為“先驗概率”(app)信息1441傳回給SISO解碼器陣列1410。
注意,渦輪解碼器1400的迭代解碼處理過程中的單次解碼迭代執行兩個SISO操作;這就是說,迭代解碼處理必須經過SISO解碼器陣列1410兩次。
達到有效置信級別并收斂得到解后,或者執行解碼迭代預定次數后,來自SISO解碼器陣列1430的輸出(已經執行了SISO1解碼操作)作為輸出被傳送到輸出處理器1450。SISO解碼器陣列1410的操作一般稱為對包含在接收的信號1401中的符號的軟符號判決的計算。在某些實施例中,以實際位級別執行這些軟符號判決。輸出處理器1450使用這些軟符號判決以生成已被編碼在原始渦輪編碼信號(例如,一般在信號1401最先進入的通信信道的另一端的渦輪編碼器位置內)內的信息位的最佳估計值1451(如硬位和/或符號判決)。
還要注意的是,在交織器(π)1420中執行的每次交織可以使用QPP交織的實施例執行,如附圖標號1491所示。同樣,在解交織器(π-1)1440中執行的解交織也可以使用QPP解交織的實施例執行。
如此實施例中所示,使用了單個SISO解碼器陣列1410來執行SISO0解碼操作和SISO1解碼操作。還需要注意的是,可采用單個模塊來實現交織器(π)1420和解交織器(-1)1440兩者的功能,這兩者都可基于QPP格式實現。
圖15是解碼渦輪編碼信號的方法的流程圖。如步驟1510所示,方法1500通過從通信信道接收渦輪編碼信號而開始。注意渦輪編碼信號可以是使用二次多項式排列(QPP)交織(π)生成的,如步驟1512所示。
方法1500繼續在步驟1520中,執行預處理以從渦輪編碼信號中提取出編碼塊。步驟1530中,將該編碼塊分割成多個子塊。同樣注意,每個子塊本身包括多個數據。
然后在步驟1540中,將多個子塊的多個數據存儲到多個存儲器組內。步驟1550中,根據并行渦輪解碼處理,使用多個解碼處理器對所述編碼塊(即多個子塊中每個中的數據)進行渦輪解碼。步驟1560中,生成被編碼在該渦輪編碼信號中的信息位的最佳估計值。
圖16是解碼渦輪編碼信號的方法的另一實施例1600的示意圖。最初,在某些實施例中,方法1600可以初步地執行與圖15中方法1500的步驟1510、1520、1530和1540相似的操作。
如步驟1610所示,方法1600根據并行渦輪解碼處理使用多個解碼器來執行第一次SISO解碼(例如,SISO0,自然順序相位)并因此生成第一外部信息。多個子塊的多個數據存儲在多個存儲器組內并可從該多個存儲器組中讀出。
方法1600然后在步驟1620中,使用二次多項式排列(QPP)交織(π)對第一外部信息進行交織,從而生成第一先驗概率信息。
步驟1630中,根據并行渦輪解碼處理使用多個解碼器來執行第二次SISO解碼并因此生成第二外部信息。
在執行附圖標號1641所示的附加解碼操作時,方法1600繼續使用二次多項式排列(QPP)解交織(π-1)來解交織(π-1)第二外部信息,從而生成第二先驗概率,如步驟1600所示。方法1600然后返回到步驟1610來進行后續的解碼迭代。
然而,當最終解碼迭代已經執行完(所有SISO0和SISO1解碼操作已經執行,特別在最終SISO1解碼操作已經執行后),如附圖標號1631所示,然后方法1600在步驟1650中生成被編碼在渦輪編碼信號中的信息位的最佳估計值。
以上借助于說明指定的功能和關系的方法步驟對本發明進行了描述。為了描述的方便,這些功能組成模塊和方法步驟的界限和順序在此處被專門定義。然而,只要給定的功能和關系能夠適當地實現,界限和順序的變化是允許的。任何上述變化的界限或順序應被視為在權利要求保護的范圍內。
以上還借助于說明某些重要功能的功能模塊對本發明進行了描述。為了描述的方便,這些功能組成模塊的界限在此處被專門定義。當這些重要的功能被適當地實現時,變化其界限是允許的。類似地,流程圖模塊也在此處被專門定義來說明某些重要的功能,為廣泛應用,流程圖模塊的界限和順序可以被另外定義,只要仍能實現這些重要功能。上述功能模塊、流程圖功能模塊的界限及順序的變化仍應被視為在權利要求保護范圍內。
本領域技術人員也知悉此處所述的功能模塊,和其它的說明性模塊、模組和組件,可以如示例或由分立元件、特殊功能的集成電路、帶有適當軟件的處理器及類似的裝置組合而成。
此外,雖然描述細節的目的是清楚和明白上述實施例,本發明并不限于這些實施例。任何本領域技術人員知悉的、對這些特征和實施例進行各種改變或等效替換而得的技術方案,都屬于本發明的保護范圍。
參考文獻C.Berrou,Y.Saouter,C.Douillard,S.Kerouédan,and M.Jézéquel,“Designing good permutations for turbo codestowards a single model,”2004 IEEEInternational Conference on Communications(ICC),Vol.1,pp341-345,20-24 June2004.O.Y.Takeshita,“On maximum contention-free interleavers andpermutation polynomials over integer rings,”IEEE Trans.Information Theory,vol 52,No.3,March 2006.A.Tarable,S.Benedetto and G.Montorsi“Mapping Interleaving Laws toParallel Turbo and LDPC Decoder Architectures,”IEEE Trans.on Information Theory,Vol.50,No.9,pp.2002-2009,Sept.2004.A.Nimbalker,T.E.Fuja,D.J.Costello,Jr.T.K.Blankenship and B.Classon,“Contention-Free Interleavers,”IEEE ISIT 2004,Chicago,USA,June 27-July2,2004.Ericsson,Motorola,QPP interleaver parameters,3GPP TSG RAN WG1#47bis R1-070484.
權利要求
1.一種渦輪解碼器,用于對使用二次多項式排列交織生成的渦輪編碼信號執行并行解碼,其特征在于,所述渦輪解碼器包括
多個渦輪解碼器,其數量是2到渦輪編碼信號的信息塊長度之間的任意整數;
多個存儲器;其中
所述多個渦輪解碼器用來讀寫所述多個存儲器;
在第一解碼周期
根據所述多個渦輪解碼器和所述多個存儲器之間無沖突調制存儲器映射的第一映射,所述多個渦輪解碼器中的每個渦輪解碼器從所述多個存儲器的第一相應存儲器中獲取第一信息;
所述多個渦輪解碼器中的每個渦輪解碼器使用從所述多個存儲器的第一相應存儲器中獲取的所述第一信息執行解碼處理,以生成第一更新信息;
所述第一更新信息在所述多個存儲器的每個第一相應存儲器中覆蓋所述第一信息;
在第二解碼周期
根據所述多個解碼器和所述多個存儲器之間無沖突調制存儲器映射的第二映射,所述多個渦輪解碼器中的每個渦輪解碼器從所述多個存儲器的第二相應存儲器中獲取第二信息;
所述多個渦輪解碼器中的每個渦輪解碼器使用從所述多個存儲器的第二相應存儲器中獲得的所述第二信息執行解碼處理,以生成第二更新信息;
所述第二更新信息在所述多個存儲器的每個第二相應存儲器中覆蓋所述第二信息;
所述多個渦輪解碼器用來生成已被編碼到所述渦輪編碼信號中的至少一個位的最佳估計值。
2.根據權利要求1所述的渦輪解碼器,其特征在于,所述渦輪解碼器進一步包括
處理模塊,用來在所述渦輪編碼信號的迭代解碼處理過程中執行所述多個渦輪解碼器和所述多個存儲器之間的無沖突調制映射;其中
所述處理模塊提供所述多個渦輪解碼器和所述多個存儲器之間無沖突調制存儲器映射的第一映射;
所述處理模塊提供所述多個渦輪解碼器和所述多個存儲器之間無沖突調制存儲器映射的第二映射;
將所述多個渦輪解碼器和所述多個存儲器相關聯的所述無沖突調制存儲器映射是基于所述渦輪編碼信號的信息塊長度和所述渦輪編碼信號的虛塊長度兩者至少其一確定的。
3.根據權利要求1所述的渦輪解碼器,其特征在于
執行渦輪解碼時,所述多個渦輪解碼器中的渦輪解碼器用來在外部信息上執行二次多項式排列交織,從而生成用于后續解碼處理的先驗概率信息。
4.根據權利要求1所述的渦輪解碼器,其特征在于
執行渦輪解碼時,所述多個渦輪解碼器中的渦輪解碼器用來在外部信息上執行二次多項式排列解交織,從而生成用于后續解碼處理的先驗概率信息。
5.根據權利要求1所述的渦輪解碼器,其特征在于,所述多個渦輪解碼器中的渦輪解碼器包括
第一軟輸入/軟輸出解碼器,用來
接收與渦輪編碼信號相關的多個度量;
在所述多個度量上執行軟輸入/軟輸出解碼,從而計算第一外部信息;
交織器模塊,在第一外部信息上執行交織,從而生成第一先驗概率信息;
第二軟輸入/軟輸出解碼器,在第一先驗概率信息上執行軟輸入/軟輸出解碼,從而生成第二外部信息;
解交織器模塊,在第二外部信息上執行解交織,從而生成第二先驗概率信息;
輸出處理器,用來處理第二軟輸入/軟輸出解碼器已生成的最新外部信息,從而生成被編碼在渦輪編碼信號中的信息位的最佳估計值。
6.一種渦輪解碼器,用于對使用二次多項式排列交織生成的渦輪編碼信號執行并行解碼,其特征在于,所述渦輪解碼器包括
多個渦輪解碼器,其數量是2到渦輪編碼信號的信息塊長度之間的任意整數;
多個存儲器;
處理模塊,用來在所述渦輪編碼信號的迭代解碼處理過程中執行所述多個渦輪解碼器和所述多個存儲器之間的無沖突調制映射;其中
所述多個渦輪解碼器用來讀寫所述多個存儲器;
在第一解碼周期
根據所述多個渦輪解碼器和所述多個存儲器之間無沖突調制存儲器映射的第一映射,所述多個渦輪解碼器中的每個渦輪解碼器從所述多個存儲器的第一相應存儲器中獲取第一信息;
所述多個渦輪解碼器中的每個渦輪解碼器使用從所述多個存儲器的第一相應存儲器中獲取的所述第一信息執行解碼處理,以生成第一更新信息;
所述第一更新信息在所述多個存儲器的每個第一相應存儲器中覆蓋所述第一信息;
所述處理模塊提供所述多個渦輪解碼器和所述多個存儲器之間無沖突調制存儲器映射的第一映射;
在第二解碼周期
根據所述多個解碼器和所述多個存儲器之間無沖突調制存儲器映射的第二映射,所述多個渦輪解碼器中的每個渦輪解碼器從所述多個存儲器的第二相應存儲器中獲取第二信息;
所述多個渦輪解碼器中的每個渦輪解碼器使用從所述多個存儲器的第二相應存儲器中獲得的所述第二信息執行解碼處理,以生成第二更新信息;
所述第二更新信息在所述多個存儲器的每個第二相應存儲器中覆蓋所述第二信息;
所述處理模塊提供所述多個渦輪解碼器和所述多個存儲器之間無沖突調制存儲器映射的第二映射;
所述多個渦輪解碼器用來生成已被編碼到所述渦輪編碼信號中的至少一個位的最佳估計值;且
執行渦輪解碼時,所述多個渦輪解碼器中的渦輪解碼器用來
在第一外部信息上執行二次多項式排列交織,從而生成用于后續解碼處理的第一“先驗概率”信息。
在第二外部信息上執行二次多項式排列解交織,從而生成用于后續解碼處理的第二“先驗概率”信息。
7.根據權利要求6所述的渦輪解碼器,其特征在于,所述多個渦輪解碼器中的渦輪解碼器包括
第一軟輸入/軟輸出解碼器,用來
接收與渦輪編碼信號相關的多個度量;
在多個度量上執行第一軟輸入/軟輸出解碼,從而計算第一外部信息;
交織器模塊,在第一外部信息上執行二次多項式排列交織,從而生成第一“先驗概率”信息;
第二軟輸入/軟輸出解碼器,在第一“先驗概率”信息上執行軟輸入/軟輸出解碼,從而生成第二外部信息;
解交織器模塊,在第二外部信息上執行二次多項式排列解交織,從而生成第二“先驗概率”信息;
輸出處理器,用來處理第二軟輸入/軟輸出解碼已生成的最新外部信息,從而生成被編碼在渦輪編碼信號中的信息位的最佳估計值。
8.一種用于對使用二次多項式排列交織生成的渦輪編碼信號進行解碼的方法,其特征在于,所述方法包括
從通信信道中接收渦輪編碼信號;
執行預處理以從所述渦輪編碼信號中提取出編碼塊;
將所述編碼塊分離成多個子塊,以便所述多個子塊的每個子塊包括相應的多個數據;
將所述多個子塊中第一子塊的第一多個數據存儲到多個存儲器組中的第一存儲器組;
將所述多個子塊中第二子塊的第二多個數據存儲到多個存儲器組中的第二存儲器組;
從第一存儲器組中獲取第一多個數據的第一元素,對其執行渦輪自然順序相位解碼處理,從而更新第一元素,并使用更新后的第一元素覆蓋第一存儲器組中的第一元素;
從第二存儲器組中獲取第二多個數據的第二元素,對其執行渦輪自然順序相位解碼處理,從而更新第二元素,并使用更新后的第二元素覆蓋第二存儲器組中的第二元素;
從第一存儲器組中獲取第一多個數據的第三元素,對其執行渦輪自然順序相位解碼處理,從而更新第三元素,并使用更新后的第三元素覆蓋第一存儲器組中的第三元素;
從第二存儲器組中獲取第二多個數據的第四元素,對其執行渦輪自然順序相位解碼處理,從而更新第四元素,并使用更新后的第四元素覆蓋第二存儲器組中的第四元素;
根據并行渦輪解碼處理,使用多個解碼處理器對所述編碼塊進行渦輪解碼處理,其中所述多個解碼處理器的數量是2到渦輪編碼信號的信息塊長度之間的任意整數;
生成被編碼在渦輪編碼信號中的至少一個信息位的最佳估計值。
9.根據權利要求8所述的方法,其特征在于,所述方法進一步
采用以并行解碼組合實現的多個渦輪解碼器,以執行渦輪自然順序相位解碼處理和交織順序相位解碼處理;其中
所述多個渦輪解碼器用來讀寫所述多個存儲器組。
10.根據權利要求8所述的方法,其特征在于,所述方法進一步包括
在外部信息上執行二次多項式排列交織,從而生成用于后續解碼處理的“先驗概率”信息。
全文摘要
本發明涉及一種渦輪解碼器及解碼渦輪編碼信號的方法。本發明通過采用任何所需數量的并行實現的渦輪解碼處理器來執行已使用QPP交織執行的渦輪解碼。該方法允許選擇任意數量(M)的解碼處理器(即多個并行實現的渦輪解碼器)以使用QPP交織來執行渦輪編碼信號的解碼。另外,調制存儲器映射(MMOD,C,W)提供了更多的自由來選擇特定二次多項式排列(QPP)交織(π),以滿足具有任何所需數量的并行實現渦輪解碼處理器的并行渦輪解碼實現。該存儲器映射允許更新信息(使用并行實現渦輪解碼器實現更新)的無沖突讀寫到存儲器組。
文檔編號H03M13/27GK101232289SQ20081000843
公開日2008年7月30日 申請日期2008年1月16日 優先權日2007年1月17日
發明者巴中·申, 塔克·K·李 申請人:美國博通公司