TWI406509B - 渦輪解碼器及解碼渦輪編碼信號的方法 - Google Patents
渦輪解碼器及解碼渦輪編碼信號的方法 Download PDFInfo
- Publication number
- TWI406509B TWI406509B TW097101670A TW97101670A TWI406509B TW I406509 B TWI406509 B TW I406509B TW 097101670 A TW097101670 A TW 097101670A TW 97101670 A TW97101670 A TW 97101670A TW I406509 B TWI406509 B TW I406509B
- Authority
- TW
- Taiwan
- Prior art keywords
- turbo
- information
- decoding
- memory
- decoder
- 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
-
- 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
-
- 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/27—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 using interleaving techniques
- H03M13/2757—Interleaver with an interleaving rule not provided for in the subgroups H03M13/2703 - H03M13/2753
-
- 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/27—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 using interleaving techniques
- H03M13/2782—Interleaver implementations, which reduce the amount of required interleaving memory
- H03M13/2785—Interleaver using in-place interleaving, i.e. writing to and reading from the memory is performed at the same memory location
-
- 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/65—Purpose and implementation aspects
- H03M13/6566—Implementations concerning memory access contentions
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/004—Arrangements for detecting or preventing errors in the information received by using forward error control
- H04L1/0056—Systems characterized by the type of code used
- H04L1/0071—Use of interleaving
Landscapes
- Physics & Mathematics (AREA)
- Probability & Statistics with Applications (AREA)
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Error Detection And Correction (AREA)
- Detection And Prevention Of Errors In Transmission (AREA)
Description
本發明涉及通信系統,更具體地說,涉及一種採用渦輪(turbo)編碼的通信系統。
資料通信系統已經持續發展了許多年。最近比較受關注的一種通信系統是採用疊代錯誤糾正碼的通信系統。其中,近些年來受到很多關注的一種特定通信系統是採用了渦輪碼(疊代錯誤糾正碼的一種類型)的通信系統。對於指定的訊號雜訊比(SNR),使用疊代碼的通信系統通常能夠比使用其他碼的系統達到更低的位元錯誤率(BER)。
在本發展領域中,主要的持續方向是為了努力在通信系統中連續地降低所需的SNR以達到指定的BER。理想的目標是為了努力在通信通道中到達向農限制(Shannon’s limit)。向農限制可以視為用於通信通道中的資料率,其具有特殊的SNR並能夠通過通信通道無錯地傳輸。換言之,對於指定的調製和碼率,向農限制是通道容量的理論界限。
最近,本領域的焦點已經轉向發展渦輪編碼及其各種變化,在保持在渦輪碼環境中提供相對低錯誤平底的同時,支援更高的吞吐量。
實際上,隨著通信系統中吞吐量需求的增加,渦輪採用多個處理器和多個記憶體組的並行渦輪解碼變得很有必要。許多當前的系統支援寬範圍的碼字大小。因而,並行渦輪解碼器設計中的有效性和靈活性是非常重要的。
一般來說,在採用渦輪碼的通信系統環境中,在通信通道的一
端存在具有編碼能力的第一通信設備,而在通信通道的另一端也存在具有解碼能力的第二通信設備。在許多實例中,這兩個通信設備中的一個或兩個包括有編碼器和解碼器能力(在雙向通信系統中)。
本發明主要涉及設備和操作方法,並將在下面的附圖說明、具體實施方式及權利要求作進一步描述。
根據本發明的一方面,提供了一種渦輪解碼器,用於對使用二次多項式排列(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)資訊。
優選地:所述方法在通信設備中執行;所述通信設備在衛星通信系統、無線通信系統、有線通信系統、光纖通信系統的至少一個中實現。
本發明的其他特徵和優點通過引用附圖所作的具有實施方式描述變得顯而易見。
許多通信系統都會結合渦輪碼的使用。雖然存在許多可使用渦輪碼的潛在應用,我們提出了可以應用於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同時提供給第一軟輸入/軟輸出(SISO 0)解碼器210和第二SISO 1解碼器230。在交織編碼(trellis coding)的環境中(如渦輪交織編碼調製(TTCM)),第一SISO 0解碼器210和第二SISO 1解碼器230均根據採用的格柵計算出向前度量(α)和向後度量(β)以及外部(extrinsic)值。
針對待解碼的幀內的每一符號,計算出這些向前度量、向後度量和外部值。向前度量、向後度量和外部值的這些計算全部基於所用的格柵。
以第一SISO 0解碼器210開始,計算出外部值211以後,將其傳送給交錯器(interleaver)(π)220,之後將其作為“先驗概率”(app)資訊221傳送到第二SISO 1解碼器230。類似地,在第二SISO 1解碼器230內計算出外部值231以後,將其傳送到解交錯器(de-interleaver)(π-1)240,然後作為“先驗概率”(app)資訊241傳送到第一SISO 0解碼器210。注意,渦輪解碼器200的疊代解碼處理中的單個解碼疊代包括執行兩個SISO操作;這就是說,疊代解碼處理必須經過第一SISO 0解碼器210和第二SISO 1解碼器230。
達到有效置信級別並收斂得到解以後,或者已執行了預定次數的解碼疊代以後,來自第二SISO 1解碼器230的輸出作為輸出被傳
送到輸出處理器250。SISO 210和230的操作一般稱為對符號(包含在接收的符號中)的軟符號判決的計算。在某些實施例中,在實際位級別上執行這些軟符號判決。輸出處理器250使用這些軟符號判決以生成資訊位元的最佳估計值251(如硬位(soft bit)和/或符號判決),其中該資訊位元在源渦輪編碼信號中已被編碼(一般在信號201最先進入的通信通道的另一端的渦輪編碼器位置)。
同樣注意,在交錯器(π)220中執行的交插可以使用QPP交插的實施例執行,如附圖標號291所示。
許多在此提出的實施例採用了二次多項式排列(QPP)交插的不同實施例。以下提供了關於執行QPP交插的方法的更多細節。
圖3是具有分時的渦輪碼解碼器的實施例示意圖,其採用單個SISO解碼器或單個SISO解碼器陣列。該實施例根據渦輪解碼處理(並行渦輪解碼處理)採用單個SISO解碼器或單個SSO解碼器陣列來執行SISO 0和SISO 1解碼操作。MUX 305用來接收資訊位元310和冗餘位302,並選擇性地將它們提供給SISO解碼器310。該實施例中的SISO解碼器也包括集成的交錯器(π)320和集成的解交錯器(π-1)340。MUX 305的選擇信號根據一個信號工作,其偶相位303控制對提供到SISO解碼器310的資訊位元301或冗餘位302的選擇,以執行SISO 0解碼處理或SISO 1解碼處理。
在一個實施例中,如附圖標號312所示,當執行自然順序相位解碼時(即SISO 0解碼操作),對記憶體入口的訪問是在選擇信號303指示偶相位給MUX 306時執行的。同樣,當執行交插(π)順序相位解碼(即SISO 1解碼操作)時,對記憶體入口的訪問是在選擇信號303指示奇相位給MUX 306時執行的。
圖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、處理器3處理資訊塊的π(2W)部分。
…
s、處理器s處理資訊塊的π(sW)部分(s是整數)。
…
M-1、處理器M-1處理資訊塊的π(M-1)W)部分。
在周期1(渦輪解碼的疊代解碼處理中的第二次解碼疊代)中,被處理的每個視窗各自的第二部分如下:處理器0處理資訊塊的π(1)部分。
處理器1處理資訊塊的π(W+1)部分。
處理器2處理資訊塊的π(2W+1)部分。
…
s、處理器s處理資訊塊的π(sW+1)部分(s是整數)。
…
M-1、處理器M-1處理資訊塊的π((M-1)W+1)部分。
如此繼續直到周期W-1(渦輪解碼的疊代解碼處理中的最終解碼疊代)中,被處理的每個視窗各自的最終部分如下:處理器0處理資訊塊的π(W-1)部分。
處理器1處理資訊塊的π(W+W-1)部分。
處理器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和π(I)到集Zp={0,1,...,P-1}所定義的記憶體映射M被稱為用於具有並行度M的並行解碼的無衝突映射(如參考文獻[4]所述),以上是假設如下關係對於所有可能i的每個j,j'{0,...,L-1},j≠j'成立:
注意,第t個周期的索引集中的解碼值應該被映射到不同的記憶體組(例如提供來服務多個並行設置的渦輪解碼器的多個記憶體中的不同記憶體)。
參考文獻[4]中已經證明,針對任何指定的交插(π),總存在用於任何並行解碼處理器的並行解碼的無衝突映射。然而,對於需要支援許多不同塊大小通道編碼的通信系統,生成參考文獻[2]給出的這樣一種映射的方法很難實現。
在參考文獻[5]中,定義了一個公式化無衝突映射(formulaic collision-free memory mapping),其將π(jw+i)映射到,並將π-1(jw+1)映射到,其中W是窗口大小。如果交插有這種無衝突映射,在參考文獻[4]中稱之為無衝突。由於這種映射採用了割分,稱之為劃分映射(MDIV,W)。事實上,該映射可以表示如下:M DIV,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-free memory 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,那麽。設窗口大小W是符合以下條件的最小數:條件II:a)W L/P且b)gcd(W,C)=1。
設L=P*W。
渦輪解碼的並行實現現在可以考慮在大小為L’的“虛”交插(也可以是大小為L’的“虛”塊)上執行。
參考圖5和圖6可以觀察到,具有sW+t>L或π(sW+t)>L的某些解碼周期變成偽(dummy)解碼周期,即該周期內對應的處理器沒有工作。
視窗大小為W的調製記憶體映射MMOD,C,W可以如下定義:MMOD,C,W:ii modC
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≡s1W modC。
但是s0和s1都小於P C見等式1且gcd_W,C)=1(條件,等式6)。因此以下關係成立:
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+bx2 modL,L為大小。如果整數C滿足C|b(即如果是C,b是約數)且gcd(a,C)=1,那麽π(x)=π(y)modC x=ymodC。
證明:π(x)=π(y)modCa(x-y)+b(x2-y2)=0modC。從而a(x-y)modC=0。
這意味著x=y modC。
以下提供了在並行實現的渦輪解碼器環境中採用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)。因而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=y modC(即滿足條件I)時,π(x)=π(y)modC。
證明:(←)假設x=y modC。
存在整數k使x=y+kC。從而π(y)-π(x)=a(x+kC-x)+b(x2+2kCx+4k2C2-x2)modL=C(ak+2b2kx+4k2C)modL=0 modC由於C|L,(→)假設π(x)=π(y)modC。
定義兩個集集1:S(x)={i|i=x modC}和集2:S(y)={j|j=y modC}。
假定x≠y modC,那麽S(x)∩s(y)=。
然而,通過(←)有π(S(x))={π(i)|i=x modC}={π(i)|π(i)=π(x)modC},和π(S(y))={π(j)|j=y modC}={π(j)|π(j)=π(y)modC}。
從而π(S(x))=π(S(y))。
這與S(x)∩s(y)=相矛盾,且π是一種排列。
因此,x=y modC。
例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的無衝突記憶體映射。
而且,調製記憶體映射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和第二SISO 1解碼器陣列1330。第一SISO 0解碼器陣列1310包括一定數量的SISO 0解碼器,如SISO 0 1311,...,和SISO 0 1312所示。第一SISO 0解碼器陣列1310中每個單獨的解碼器用來對存儲在特定記憶體組1390中一個記憶體的特定記憶體位置中的資料執行SISO解碼。
將先前由度量生成器1304計算出的度量1341也提供到第二SISO 1解碼器陣列1330。這一SISO 1解碼器陣列1330包括一定數量的SISO 1解碼器,如SISO 1 1331,...,和SISO 0 1332所示。SISO 1 解碼器陣列1330中的每個單獨的解碼器用來對存儲在特定記憶體組1390中一個記憶體的特定存儲位置中的資料執行SISO解碼。
在交織編碼的環境中(如渦輪交織編碼調製(TTCM)),第一SISO 0解碼器陣列1310和第二SISO 1解碼器陣列1330均根據所採用的格柵,為在特定解碼疊代中被更新的每個對應記憶體位置內的特定資料條目計算出向前度量(α)和向後度量(β)以及外部(extrinsic)值。
針對將被解碼的幀中的每個符號,均計算出這些向前度量、向後度量和外部值。向前度量、向後度量和外部值的這些計算全部基於所用的格柵。
以第一SISO 0解碼器陣列1310開始,在計算出外部值1311以後,將其傳送到交錯器(π)1320,然後作為“先驗概率”(app)資訊1321傅送到第二SISO 1解碼器陣列1330。注意,對記憶體組1390中資料的訪問是以無衝突方式執行的,這是因為其中所採用的記憶體映射(根據調製記憶體映射MMOD,C,W)提供了更多的自由來選擇特定二次多項式排列(QPP)交插(π),以滿足具有任何所需數量的並行實現渦輪解碼處理器的並行渦輪解碼實現。
類似地,在第二SISO 1解碼器陣列1330內計算出外部值1331以後,將其傳送到解交錯器(π-1)1340,然後作為“先驗概率”(app)資訊1341傳送到第一SISO 0解碼器陣列1310。
注意,渦輪解碼器1300的疊代解碼處理過程中的單次解碼疊代執行兩個SISO操作;這就是說,疊代解碼處理必須經過第一SISO 0
解碼器陣列1310和第二SISO 1解碼器陣列1330。
達到有效置信級別並收斂得到解後,或者執行解碼疊代預定次數後,來自第二SISO 1解碼器陣列1330的輸出作為輸出被傳送到輸出處理器1350。SISO 0解碼器陣列1310和SISO 1解碼器陣列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,其既執行SISO 0解碼操作又執行SISO 1解碼操作。該SISO0解碼器陣列1410包括一定數量的SISO解碼器,如SISO 1411,...,和SISO1412所示。SISO解碼器陣列1410中每個單獨的解碼器用來對存儲在特定記憶體組1490中一個記憶體的特定記憶體位置中的資料執行SISO解碼(針對SISO 0解碼操作和SISO 1解碼操作兩者)。
在交織編碼的環境中(如渦輪交織編碼調製(TTCM)),SISO解碼器陣列14310中的每個SISO解碼器根據所採用的格柵,為在特定解碼疊代中被更新的每個對應記憶體位置內的特定資料條目計算出向前度量(α)和向後度量(β)以及外部(extrinsic)值。
針對將被解碼的幀中的每個符號,均計算出這些向前度量、向後度量和外部值。向前度量、向後度量和外部值的這些計算全部基於所用的格柵。
以SISO解碼器陣列1410所執行的第一解碼操作(即SISO 0)開始,在計算出外部值1411以後,將其傳送到交錯器(π)1420,然後作為“先驗概率”(app)資訊1421傳回到SISO解碼器陣列1410。注意,在執行SISO 1解碼操作時,SISO解碼器陣列1410對記憶體組1490中資料的訪問是以無衝突方式執行的,這是因為其中所採用的記憶體映射(根據調製記憶體映射MMOD,C,W)提供了更多的自由來選擇特定二次多項式排列(QPP)交插(π),以滿足具有任何所需數量的並行實現渦輪解碼處理器的並行渦輪解碼實現。
類似地,在SISO解碼器陣列1430內計算出外部值1431以後,將其傳送到解交錯器(π-1)1440,然後作為“先驗概率”(app)資訊1441傳回給SISO解碼器陣列1410。
注意,渦輪解碼器1400的疊代解碼處理過程中的單次解碼疊代
執行兩個SISO操作;這就是說,疊代解碼處理必須經過SISO解碼器陣列1410兩次。
達到有效置信級別並收斂得到解後,或者執行解碼疊代預定次數後,來自SISO解碼器陣列1430的輸出(已經執行了SISO 1解碼操作)作為輸出被傳送到輸出處理器1450。SISO解碼器陣列1410的操作一般稱為對包含在接收的信號1401中的符號的軟符號判決的計算。在某些實施例中,以實際位元級別執行這些軟符號判決。輸出處理器1450使用這些軟符號判決以生成已被編碼在原始渦輪編碼信號(例如,一般在信號1401最先進入的通信通道的另一端的渦輪編碼器位置內)內的資訊位元的最佳估計值1451(如硬位元和/或符號判決)。
還要注意的是,在交錯器(π)1420中執行的每次交插可以使用QPP交插的實施例執行,如附圖標號1491所示。同樣,在解交錯器(π-1)1440中執行的解交插也可以使用QPP解交插的實施例執行。
如此實施例中所示,使用了單個SISO解碼器陣列1410來執行SISO 0解碼操作和SISO 1解碼操作。還需要注意的是,可採用單個模組來實現交錯器(π)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解碼(例如,SISO 0,自然順序相位)並因此生成第一外部資訊。多個子塊的多個資料存儲在多個記憶體組內並可從該多個記憶體組中讀出。
方法1600然後在步驟1620中,使用二次多項式排列(QPP)交插(π)對第一外部資訊進行交插,從而生成第一先驗概率資訊。
步驟1630中,根據並行渦輪解碼處理使用多個解碼器來執行第二次SISO解碼並因此生成第二外部資訊。
在執行附圖標號1641所示的附加解碼操作時,方法1600繼續使用二次多項式排列(QPP)解交插(π-1)來解交插(π-1)第二外部資訊,從而生成第二先驗概率,如步驟1600所示。方法1600然後返回到步驟1610來進行後續的解碼疊代。
然而,當最終解碼疊代已經執行完(所有SISO 0和SISO 1解碼操作己經執行,特別在最終SISO 1解碼操作已經執行後),如附圖標號1631所示,然後方法1600在步驟1650中生成被編碼在渦輪編碼信號中的資訊位元的最佳估計值。
以上借助於說明指定的功能和關係的方法步驟對本發明進行
了描述。為了描述的方便,這些功能組成模組和方法步驟的界限和順序在此處被專門定義。然而,只要給定的功能和關係能夠適當地實現,界限和順序的變化是允許的。任何上述變化的界限或順序應被視為在權利要求保護的範圍內。
以上還借助於說明某些重要功能的功能模組對本發明進行了描述。為了描述的方便,這些功能組成模組的界限在此處被專門定義。當這些重要的功能被適當地實現時,變化其界限是允許的。類似地,流程圖模組也在此處被專門定義來說明某些重要的功能,為廣泛應用,流程圖模組的界限和順序可以被另外定義,只要仍能實現這些重要功能。上述功能模組、流程圖功能模組的界限及順序的變化仍應被視為在權利要求保護範圍內。
本領域技術人員也知悉此處所述的功能模組,和其他的說明性模組、模組和元件,可以如示例或由分立元件、特殊功能的積體電路、帶有適當軟體的處理器及類似的裝置組合而成。
此外,雖然描述細節的目的是清楚和明白上述實施例,本發明並不限於這些實施例。任何本領域技術人員知悉的、對這些特徵和實施例進行各種改變或等效替換而得的技術方案,都屬於本發明的保護範圍。
[1]C.Berrou,Y.Saouter,C.Douillard,S.Kerouédan,and M.Jéz é quel, “Designing good permutations for turbo codes: towards a single model,” 2004 IEEEInternational Conference on Communications (ICC),Vol.: 1,pp: 341-345,20-24 June 2004.
[2]O.Y.Takeshita, “On maximum contention-free interleavers and permutation polynomials over integerrings,” IEEE Trans.Information
Theory,vol 52,No.3,March 2006.
[3]A.Tarable,S.Benedetto and G.Montorsi “Mapping Interleaving Laws to Parallel Turbo and LDPC Decoder Architectures,” IEEE Trans.onInformation Theory, Vol.50,No.9,pp.2002-2009,Sept.2004.
[4]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-July 2,2004.
[5]Ericsson,Motorola,QPP interleaver parameters,3GPP TSG RAN WG1 #47bis R1-070484.
100‧‧‧通信系統
110‧‧‧通信設備
112‧‧‧發送器
114‧‧‧編碼器
116‧‧‧接收器
118‧‧‧解碼器
120‧‧‧通信設備
122‧‧‧接收器
124‧‧‧解碼器
126‧‧‧發送器
128‧‧‧編碼器
130‧‧‧衛星通信通道
132、134‧‧‧碟形衛星天線
140‧‧‧無線通信通道
142、144‧‧‧塔
150‧‧‧有線通信通道
152、154‧‧‧本地天線
160‧‧‧光纖通信通道
162‧‧‧電光(E/O)介面
164‧‧‧光電(O/E)介面
199‧‧‧通信通道
200‧‧‧渦輪解碼器
201‧‧‧接收信號
202‧‧‧I、Q提取模組
204‧‧‧度量(rmetic)生成器
210‧‧‧第一軟輸入軟輸出(SISO 0)解碼器
211‧‧‧外部值
220‧‧‧交錯器(interleaver)(π)
221‧‧‧“先驗概率”(app)資訊
230‧‧‧第二SISO 1解碼器
231‧‧‧外部值
240‧‧‧解交錯器(de-interleaver)(π-1)
241‧‧‧“先驗概率”(app)資訊
250‧‧‧輸出處理器
251‧‧‧最佳估計值
301‧‧‧信息位元
302‧‧‧冗餘位元
303‧‧‧偶相位
305‧‧‧MUX
310‧‧‧SISO解碼器
320‧‧‧集成的交錯器(π)
340‧‧‧集成的解交錯器(π-1)
401‧‧‧塊長度
700‧‧‧並行解碼
702‧‧‧並行解碼
741‧‧‧記憶體
742‧‧‧記憶體
743‧‧‧記憶體
744‧‧‧記憶體
800‧‧‧渦輪解碼器
821-827‧‧‧渦輪解碼器
830‧‧‧處理模組
841-847‧‧‧記憶體
900‧‧‧渦輪解碼器
921-927‧‧‧渦輪解碼器
930‧‧‧處理模組
941-947‧‧‧記憶體
1000‧‧‧通信系統
1010‧‧‧通信設備
1020‧‧‧渦輪解碼器
1021‧‧‧解碼器
1030‧‧‧處理模組
1040‧‧‧記憶體
1090‧‧‧其他設備
1092‧‧‧通信設備
1094‧‧‧存儲媒介
1099‧‧‧通信通道
1100‧‧‧通信系統
1110‧‧‧通信設備
1120‧‧‧渦輪解碼器
1121-1122‧‧‧渦輪解碼器
1130‧‧‧處理模組
1140‧‧‧記憶體
1141-1142‧‧‧記憶體
1199‧‧‧通信通道
1121、1222、1223‧‧‧渦輪解碼器
1230‧‧‧處理模組
1241、1242、1243‧‧‧記憶體
1300‧‧‧渦輪解碼器
1301‧‧‧信號
1302‧‧‧I、Q提取模組
1304‧‧‧度量(metric)生成器
1310‧‧‧第一軟輸入/軟輸出(SISO)0解碼器陣列
1311、1312‧‧‧SISO 0解碼器
1320‧‧‧交錯器(π)
1321‧‧‧“先驗概率”(app)資訊
1330‧‧‧第二SISO 1解碼器陣列
1331、1332‧‧‧SISO 1解碼器
1340‧‧‧解交錯器(π-1)
1341‧‧‧“先驗概率”(app)資訊
1350‧‧‧輸出處理器
1351‧‧‧最佳估計值
1390‧‧‧記憶體模組
1400‧‧‧渦輪解碼器
1401‧‧‧信號
1402‧‧‧I、Q提取模組
1404‧‧‧度量(metic)生成器
1410‧‧‧軟輸入/軟輸出(SISO)解碼器陣列
1411、1412‧‧‧SISO解碼器
1420‧‧‧交錯器(π)
1421‧‧‧“先驗概率”(app)資訊
1430‧‧‧SISO解碼器陣列
1431‧‧‧外部值
1440‧‧‧解交錯器(π-1)
1441‧‧‧“先驗概率”(app)資訊
1450‧‧‧輸出處理器
1451‧‧‧最佳估計值
1490‧‧‧記憶體組
圖1是通信系統的一個實施例的示意圖;圖2是渦輪解碼器的一個實施例的示意圖;圖3是具有分時的渦輪碼解碼器的實施例示意圖,其採用單個SISO解碼器或單個SISO解碼器陣列;圖4是可以應用在渦輪解碼中的並行解碼的實施例示意圖;圖5是自然/非交插順序解碼處理器(用於渦輪編碼信號的並行解碼)的分離處理的實施例示意圖;圖6是交插(π)順序解碼處理器(用於渦輪編碼信號的並行解碼中)的分離處理的實施例示意圖;圖7A是針對自然/非交插順序相位在並行解碼上的記憶體映射的實施例示意圖;圖7B是針對交插(π)順序(一個記憶體中存在衝突)在並行解碼上的記憶體映射的實施例示意圖;圖8是執行並行解碼的渦輪解碼器的實施例示意圖,其中因為渦輪解碼器和記憶體之間缺少無衝突記憶體映射,該渦輪解碼器
中有衝突發生;圖9是執行並行解碼的渦輪解碼器的實施例示意圖,其中因為渦輪解碼器和記憶體之間的無衝突記憶體映射,該渦輪解碼器中沒有衝突發生;圖10和圖11分別是通信系統其他實施例的示意圖;圖12A、圖12B、圖12C和圖12D分別是渦輪解碼器和記憶體之間不同的、連續的無衝突記憶體映射的示意圖;圖13是渦輪解碼器實施例的示意圖,其採用兩組單獨的SISO解碼器來訪問存儲在多個記憶體組中的資料;圖14是渦輪解碼器實施例的示意圖,其採用多個SISO解碼器來訪問存儲在多個記憶體組中的資料;圖15是解碼渦輪編碼信號的方法的實施例示意圖;圖16是解碼渦輪編碼信號的方法的另一實施例示意圖。
200‧‧‧渦輪解碼器
201‧‧‧接收信號
202‧‧‧I、Q提取模組
204‧‧‧度量(metric)生成器
210‧‧‧第一軟輸入/軟輸出(SISO 0)解碼器
211‧‧‧外部值
220‧‧‧交錯器(interleaver)(π)
221‧‧‧“先驗概率”(app)資訊
230‧‧‧第二SISO 1解碼器
231‧‧‧外部值
240‧‧‧解交錯器(de-interleaver)(π-1)
241‧‧‧“先驗概率”(app)資訊
250‧‧‧輸出處理器
251‧‧‧最佳估計值
Claims (10)
- 一種渦輪解碼器,用於對使用二次多項式排列交插生成的渦輪編碼信號執行並行解碼,其特徵在於,所述渦輪解碼器包括:多個渦輪解碼器,其數量是2到渦輪編碼信號的資訊塊長度之間的任意整數;多個記憶體;其中:所述多個渦輪解碼器用來讀寫所述多個記憶體;在第一解碼周期:根據所述多個渦輪解碼器和所述多個記憶體之間無衝突調製記憶體映射的第一映射,所述多個渦輪解碼器中的每個渦輪解碼器從所述多個記憶體的第一相應記憶體中獲取第一資訊;所述多個渦輪解碼器中的每個渦輪解碼器使用從所述多個記憶體的第一相應記憶體中獲取的所述第一資訊執行解碼處理,以生成第一更新資訊;所述第一更新資訊在所述多個記憶體的每個第一相應記憶體中覆蓋所述第一資訊;在第二解碼周期:根據所述多個解碼器和所述多個記憶體之間無衝突調製記憶體映射的第二映射,所述多個渦輪解碼器中的每個渦輪解碼器從所述多個記憶體的第二相應記憶體中獲取第二資訊;所述多個渦輪解碼器中的每個渦輪解碼器使用從所述多個記憶體的第二相應記憶體中獲得的所述第二資訊執行解碼處理,以生成第二更新資訊;所述第二更新資訊在所述多個記憶體的每個第二相應 記憶體中覆蓋所述第二資訊;所述多個渦輪解碼器用來生成已被編碼到所述渦輪編碼信號中的至少一個位的最佳估計值。
- 如申請專利範圍第1項所述的渦輪解碼器,其中,所述渦輪解碼器進一步包括:處理模組,用來在所述渦輪編碼信號的疊代解碼處理過程中執行所述多個渦輪解碼器和所述多個記憶體之間的無衝突調製映射;其中:所述處理模組提供所述多個渦輪解碼器和所述多個記憶體之間無衝突調製記憶體映射的第一映射;所述處理模組提供所述多個渦輪解碼器和所述多個記憶體之間無衝突調製記憶體映射的第二映射;將所述多個渦輪解碼器和所述多個記憶體相關聯的所述無衝突調製記憶體映射是基於所述渦輪編碼信號的資訊塊長度和所述渦輪編碼信號的虛塊長度兩者至少其一確定的。
- 如申請專利範圍第1項所述的渦輪解碼器,其中:執行渦輪解碼時,所述多個渦輪解碼器中的渦輪解碼器用來在外部資訊上執行二次多項式排列交插,從而生成用於後續解碼處理的先驗概率資訊。
- 4、如申請專利範圍第1項所述的渦輪解碼器,其中:執行渦輪解碼時,所述多個渦輪解碼器中的渦輪解碼器用來在外部資訊上執行二次多項式排列解交插,從而生成用於後續解碼處理的先驗概率資訊。
- 如申請專利範圍第1項所述的渦輪解碼器,其中,所述多個渦輪解碼器中的渦輪解碼器包括: 第一軟輸入/軟輸出解碼器,用來:接收與渦輪編碼信號相關的多個度量;在所述多個度量上執行軟輸入/軟輸出解碼,從而計算第一外部資訊;交錯器模組,在第一外部資訊上執行交插,從而生成第一先驗概率資訊;第二軟輸入/軟輸出解碼器,在第一先驗概率資訊上執行軟輸入/軟輸出解碼,從而生成第二外部資訊;解交錯器模組,在第二外部資訊上執行解交插,從而生成第二先驗概率資訊;輸出處理器,用來處理第二軟輸入/軟輸出解碼器已生成的最新外部資訊,從而生成被編碼在渦輪編碼信號中的資訊位元的最佳估計值。
- 一種渦輪解碼器,用於對使用二次多項式排列交插生成的渦輪編碼信號執行並行解碼,其特徵在於,所述渦輪解碼器包括:多個渦輪解碼器,其數量是2到渦輪編碼信號的資訊塊長度之間的任意整數;多個記憶體;處理模組,用來在所述渦輪編碼信號的疊代解碼處理過程中執行所述多個渦輪解碼器和所述多個記憶體之間的無衝突調製映射;其中:所述多個渦輪解碼器用來讀寫所述多個記憶體;在第一解碼周期:根據所述多個渦輪解碼器和所述多個記憶體之間無衝突調製記憶體映射的第一映射,所述多個渦輪解碼器中的每個渦輪解碼器從所述多個記憶體的第一相應記憶體中獲 取第一資訊;所述多個渦輪解碼器中的每個渦輪解碼器使用從所述多個記憶體的第一相應記憶體中獲取的所述第一資訊執行解碼處理,以生成第一更新資訊;所述第一更新資訊在所述多個記憶體的每個第一相應記憶體中覆蓋所述第一資訊;所述處理模組提供所述多個渦輪解碼器和所述多個記憶體之間無衝突調製記憶體映射的第一映射;在第二解碼周期:根據所述多個解碼器和所述多個記憶體之間無衝突調製記憶體映射的第二映射,所述多個渦輪解碼器中的每個渦輪解碼器從所述多個記憶體的第二相應記憶體中獲取第二資訊;所述多個渦輪解碼器中的每個渦輪解碼器使用從所述多個記憶體的第二相應記憶體中獲得的所述第二資訊執行解碼處理,以生成第二更新資訊;所述第二更新資訊在所述多個記憶體的每個第二相應記憶體中覆蓋所述第二資訊;所述處理模組提供所述多個渦輪解碼器和所述多個記憶體之間無衝突調製記憶體映射的第二映射;所述多個渦輪解碼器用來生成已被編碼到所述渦輪編碼信號中的至少一個位的最佳估計值;且執行渦輪解碼時,所述多個渦輪解碼器中的渦輪解碼器用來:在第一外部資訊上執行二次多項式排列交插,從而生成 用於後續解碼處理的第一“先驗概率”資訊。在第二外部資訊上執行二次多項式排列解交插,從而生成用於後續解碼處理的第二“先驗概率”資訊。
- 如申請專利範圍第6項所述的渦輪解碼器,其中,所述多個渦輪解碼器中的渦輪解碼器包括:第一軟輸入/軟輸出解碼器,用來:接收與渦輪編碼信號相關的多個度量;在多個度量上執行第一軟輸入/軟輸出解碼,從而計算第一外部資訊;交錯器模組,在第一外部資訊上執行二次多項式排列交插,從而生成第一“先驗概率”資訊;第二軟輸入/軟輸出解碼器,在第一“先驗概率”資訊上執行軟輸入/軟輸出解碼,從而生成第二外部資訊;解交錯器模組,在第二外部資訊上執行二次多項式排列解交插,從而生成第二“先驗概率”資訊;輸出處理器,用來處理第二軟輸入/軟輸出解碼已生成的最新外部資訊,從而生成被編碼在渦輪編碼信號中的資訊位元的最佳估計值。
- 一種用於對使用二次多項式排列交插生成的渦輪編碼信號進行解碼的方法,其特徵在於,所述方法包括:從通信通道中接收渦輪編碼信號;執行預處理以從所述渦輪編碼信號中提取出編碼塊;將所述編碼塊分離成多個子塊,以便所述多個子塊的每個子塊包括相應的多個資料;將所述多個子塊中第一子塊的第一多個資料存儲到多個記 憶體組中的第一記憶體組;將所述多個子塊中第二子塊的第二多個資料存儲到多個記憶體組中的第二記憶體組;從第一記憶體組中獲取第一多個資料的第一元素,對其執行渦輪自然順序相位解碼處理,從而更新第一元素,並使用更新後的第一元素覆蓋第一記憶體組中的第一元素;從第二記憶體組中獲取第二多個資料的第二元素,對其執行渦輪自然順序相位解碼處理,從而更新第二元素,並使用更新後的第二元素覆蓋第二記憶體組中的第二元素;從第一記憶體組中獲取第一多個資料的第三元素,對其執行渦輪自然順序相位解碼處理,從而更新第三元素,並使用更新後的第三元素覆蓋第一記憶體組中的第三元素;從第二記憶體組中獲取第二多個資料的第四元素,對其執行渦輪自然順序相位解碼處理,從而更新第四元素,並使用更新後的第四元素覆蓋第二記憶體組中的第四元素;根據並行渦輪解碼處理,使用多個解碼處理器對所述編碼塊進行渦輪解碼處理,其中所述多個解碼處理器的數量是2到渦輪編碼信號的資訊塊長度之間的任意整數;生成被編碼在渦輪編碼信號中的至少一個資訊位元的最佳估計值。
- 如申請專利範圍第8項所述的方法,其中,所述方法進一步包括:採用以並行解碼組合實現的多個渦輪解碼器,以執行渦輪自然順序相位解碼處理和交插順序相位解碼處理;其中:所述多個渦輪解碼器用來讀寫所述多個記憶體組。
- 如申請專利範圍第8項所述的方法,其中,所述方法進一步包括:在外部資訊上執行二次多項式排列交插,從而生成用於後續解碼處理的“先驗概率”資訊。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US88083507P | 2007-01-17 | 2007-01-17 | |
US89765307P | 2007-01-26 | 2007-01-26 | |
US11/810,991 US8065588B2 (en) | 2007-01-17 | 2007-06-07 | Formulaic flexible collision-free memory accessing for parallel turbo decoding with quadratic polynomial permutation (QPP) interleave |
Publications (2)
Publication Number | Publication Date |
---|---|
TW200845594A TW200845594A (en) | 2008-11-16 |
TWI406509B true TWI406509B (zh) | 2013-08-21 |
Family
ID=39232742
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW097101670A TWI406509B (zh) | 2007-01-17 | 2008-01-16 | 渦輪解碼器及解碼渦輪編碼信號的方法 |
Country Status (6)
Country | Link |
---|---|
US (2) | US8065588B2 (zh) |
EP (1) | EP1947773A1 (zh) |
KR (1) | KR100955305B1 (zh) |
CN (1) | CN101232289B (zh) |
HK (1) | HK1122914A1 (zh) |
TW (1) | TWI406509B (zh) |
Families Citing this family (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101662333B (zh) * | 2008-08-28 | 2012-07-04 | 电信科学技术研究院 | 一种交织方法和装置 |
US8219782B2 (en) * | 2008-09-18 | 2012-07-10 | Xilinx, Inc. | Address generation |
CN101771496B (zh) * | 2008-12-29 | 2014-04-02 | 电信科学技术研究院 | 一种二次置换多项式交织器 |
CN101944915B (zh) * | 2009-07-08 | 2013-01-30 | 华为技术有限公司 | 译码方法和译码装置 |
US8271858B2 (en) * | 2009-09-03 | 2012-09-18 | Telefonaktiebolget L M Ericsson (Publ) | Efficient soft value generation for coded bits in a turbo decoder |
TWI381653B (zh) * | 2009-09-11 | 2013-01-01 | Ind Tech Res Inst | 二階重排多項式交織器位址產生裝置與方法 |
JP5476902B2 (ja) * | 2009-09-30 | 2014-04-23 | 富士通株式会社 | ターボ復号装置及び通信装置 |
JP2011097245A (ja) * | 2009-10-28 | 2011-05-12 | Sony Corp | 受信装置、受信方法、プログラム、および受信システム |
US8255759B2 (en) * | 2009-10-29 | 2012-08-28 | Qualcomm Incorporated | APP (a priori probability) storage design for LTE turbo decoder with quadratic permutation polynomial interleaver |
US8811452B2 (en) * | 2009-12-08 | 2014-08-19 | Samsung Electronics Co., Ltd. | Method and apparatus for parallel processing turbo decoder |
CN101882933B (zh) * | 2010-06-11 | 2013-02-13 | 北京创毅讯联科技股份有限公司 | 一种LTE中进行Turbo译码的方法及Turbo译码器 |
TW201209711A (en) | 2010-08-19 | 2012-03-01 | Ind Tech Res Inst | Address generation apparatus and method for quadratic permutation polynomial interleaver |
CN102386934A (zh) * | 2010-09-01 | 2012-03-21 | 财团法人工业技术研究院 | 二阶重排多项式交织器地址产生装置与方法 |
US8839079B2 (en) * | 2012-08-20 | 2014-09-16 | Qualcomm Incorporated | Methods and apparatuses for saving power during transport block decoding in UMTS systems |
CN103973319B (zh) * | 2013-02-06 | 2017-04-19 | 联想(北京)有限公司 | 全整数Turbo码迭代译码的方法和系统 |
KR101482689B1 (ko) * | 2013-09-09 | 2015-01-16 | 한국과학기술원 | 인터리브드 어드레스 매핑 방법 및 이를 포함하는 디코딩 방법 |
CN106330206A (zh) * | 2015-06-30 | 2017-01-11 | 深圳市中兴微电子技术有限公司 | 一种译码方法及装置 |
CN109639393B (zh) * | 2018-11-15 | 2021-07-06 | 武汉同德兴信息技术有限公司 | 一种基于二次置换多项式的滑动窗口网络编码方法 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5446747A (en) * | 1991-04-23 | 1995-08-29 | France Telecom | Error-correction coding method with at least two systematic convolutional codings in parallel, corresponding iterative decoding method, decoding module and decoder |
US6334197B1 (en) * | 1998-08-17 | 2001-12-25 | Hughes Electronics Corporation | Turbo code interleaver with near optimal performance |
US6603412B2 (en) * | 2001-06-08 | 2003-08-05 | Texas Instruments Incorporated | Interleaved coder and method |
TW561695B (en) * | 2001-10-22 | 2003-11-11 | Motorola Inc | Block puncturing for turbo code based incremental redundancy |
TW200533086A (en) * | 2003-12-11 | 2005-10-01 | Freescale Semiconductor Inc | A decoder |
Family Cites Families (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
FR2675968B1 (fr) | 1991-04-23 | 1994-02-04 | France Telecom | Procede de decodage d'un code convolutif a maximum de vraisemblance et ponderation des decisions, et decodeur correspondant. |
FR2675970B1 (fr) | 1991-04-23 | 1993-08-06 | France Telecom | Procede de codage convolutif correcteur d'erreurs pseudo-systematique, procede de decodage et dispositifs correspondants. |
FR2712760B1 (fr) | 1993-11-19 | 1996-01-26 | France Telecom | Procédé pour transmettre des bits d'information en appliquant des codes en blocs concaténés. |
FR2747255B1 (fr) | 1996-04-03 | 1998-07-10 | France Telecom | Procede et dispositif de codage convolutif de blocs de donnees, et procede et dispositif de decodage correspondants |
FR2753025B1 (fr) | 1996-08-28 | 1998-11-13 | Pyndiah Ramesh | Procede de transmission de bits d'information avec codage correcteur d'erreurs, codeur et decodeur pour la mise en oeuvre de ce procede |
FR2753026B1 (fr) | 1996-08-28 | 1998-11-13 | Pyndiah Ramesh | Procede de transmission de bits d'information avec codage correcteur d'erreurs, codeur et decodeur pour la mise en oeuvre de ce procede |
US5950220A (en) * | 1996-12-13 | 1999-09-07 | Intel Corporation | Method and apparatus for providing a logical double sided memory element by mapping single sided memory elements onto a logical double sided memory address space |
CN1124691C (zh) | 1999-09-13 | 2003-10-15 | 华为技术有限公司 | 一种串/并行级联卷积码译码器及其译码实现方法 |
US7020827B2 (en) * | 2001-06-08 | 2006-03-28 | Texas Instruments Incorporated | Cascade map decoder and method |
KR100444571B1 (ko) * | 2002-01-11 | 2004-08-16 | 삼성전자주식회사 | 터보디코더와 알에스디코더가 연접된 디코딩장치 및 그의디코딩방법 |
DE10310812B4 (de) * | 2003-03-12 | 2007-11-22 | Infineon Technologies Ag | Dekodiervorrichtung, Trellis-Prozessor und Verfahren |
US7305593B2 (en) * | 2003-08-26 | 2007-12-04 | Lsi Corporation | Memory mapping for parallel turbo decoding |
EP1667329A1 (en) * | 2004-12-01 | 2006-06-07 | Istituto Superiore Mario Boella per le Technologie dell Informazione e delle Telecommunicazioni | Methods for the generation of S-random interleavers for turbo-decoders with a parallel structure |
DE112005003706T5 (de) * | 2005-09-30 | 2008-08-21 | Intel Corporation, Santa Clara | Modifizierter turbo-decodierender Nachrichtenweiterleitungsalgorithmus für Paritätsprüfcodes mit geringer Dichte |
-
2007
- 2007-06-07 US US11/810,991 patent/US8065588B2/en not_active Expired - Fee Related
- 2007-12-20 EP EP07024826A patent/EP1947773A1/en not_active Withdrawn
-
2008
- 2008-01-16 CN CN2008100084336A patent/CN101232289B/zh not_active Expired - Fee Related
- 2008-01-16 TW TW097101670A patent/TWI406509B/zh not_active IP Right Cessation
- 2008-01-17 KR KR1020080005402A patent/KR100955305B1/ko not_active IP Right Cessation
- 2008-12-31 HK HK08114121.5A patent/HK1122914A1/xx not_active IP Right Cessation
-
2011
- 2011-11-10 US US13/293,231 patent/US8407561B2/en not_active Expired - Fee Related
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5446747A (en) * | 1991-04-23 | 1995-08-29 | France Telecom | Error-correction coding method with at least two systematic convolutional codings in parallel, corresponding iterative decoding method, decoding module and decoder |
US6334197B1 (en) * | 1998-08-17 | 2001-12-25 | Hughes Electronics Corporation | Turbo code interleaver with near optimal performance |
US6603412B2 (en) * | 2001-06-08 | 2003-08-05 | Texas Instruments Incorporated | Interleaved coder and method |
TW561695B (en) * | 2001-10-22 | 2003-11-11 | Motorola Inc | Block puncturing for turbo code based incremental redundancy |
TW200533086A (en) * | 2003-12-11 | 2005-10-01 | Freescale Semiconductor Inc | A decoder |
Also Published As
Publication number | Publication date |
---|---|
CN101232289A (zh) | 2008-07-30 |
TW200845594A (en) | 2008-11-16 |
US8407561B2 (en) | 2013-03-26 |
HK1122914A1 (en) | 2009-05-29 |
CN101232289B (zh) | 2010-09-29 |
EP1947773A1 (en) | 2008-07-23 |
US8065588B2 (en) | 2011-11-22 |
US20080172591A1 (en) | 2008-07-17 |
US20120054578A1 (en) | 2012-03-01 |
KR100955305B1 (ko) | 2010-04-29 |
KR20080067987A (ko) | 2008-07-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI406509B (zh) | 渦輪解碼器及解碼渦輪編碼信號的方法 | |
KR100963718B1 (ko) | 터보 디코더용 버퍼 아키텍처 | |
JP3861084B2 (ja) | 特に移動無線システム用とした、複合型ターボ符号/畳み込み符号デコーダ | |
US9048877B2 (en) | Turbo code parallel interleaver and parallel interleaving method thereof | |
US8438434B2 (en) | N-way parallel turbo decoder architecture | |
US8572469B2 (en) | Turbo decoder employing ARP (almost regular permutation) interleave and arbitrary number of decoding processors | |
US7584389B2 (en) | Turbo decoding apparatus and method | |
JP2014209785A (ja) | 複数のコード・タイプをプログラマブル復号する方法および装置 | |
US8473829B2 (en) | Address generation for contention-free memory mappings of turbo codes with ARP (almost regular permutation) interleaves | |
KR100926907B1 (ko) | 에이알피 인터리브를 가지는 터보 코드의 경합 방지 메모리매핑 기법을 위한 주소 생성 | |
US7873897B2 (en) | Devices and methods for bit-level coding and decoding of turbo codes | |
US7975203B2 (en) | Quadratic polynomial permutation (QPP) interleaver providing hardware savings and flexible granularity adaptable to any possible turbo code block size | |
KR100628201B1 (ko) | 터보 디코딩 방법 | |
KR100355452B1 (ko) | 엠에이피 방식을 사용한 터보 복호기 | |
US8095845B1 (en) | System and method for assigning code blocks to constituent decoder units in a turbo decoding system having parallel decoding units | |
KR100645730B1 (ko) | 매직 매트릭스를 이용한 인터리빙 방법 | |
WO2011048997A1 (ja) | 軟出力復号器 | |
Ahmed et al. | Dynamic reconfiguration approach for high speed turbo decoding using circular rings | |
CN106817198A (zh) | 适用于LTE系统中Turbo译码的交织解交织方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
MM4A | Annulment or lapse of patent due to non-payment of fees |