TWI777659B - 不定長度錯誤更正碼的設計方法、內儲程式之電腦程式產品及內儲程式之電腦可讀取記錄媒體 - Google Patents
不定長度錯誤更正碼的設計方法、內儲程式之電腦程式產品及內儲程式之電腦可讀取記錄媒體 Download PDFInfo
- Publication number
- TWI777659B TWI777659B TW110125151A TW110125151A TWI777659B TW I777659 B TWI777659 B TW I777659B TW 110125151 A TW110125151 A TW 110125151A TW 110125151 A TW110125151 A TW 110125151A TW I777659 B TWI777659 B TW I777659B
- Authority
- TW
- Taiwan
- Prior art keywords
- length
- codeword
- distance
- code
- expressed
- Prior art date
Links
Images
Landscapes
- Stored Programmes (AREA)
- Debugging And Monitoring (AREA)
- Detection And Prevention Of Errors In Transmission (AREA)
Abstract
一種不定長度錯誤更正碼的設計方法,用以解決習知字母表設計方法具有碼字建構執行效能不佳的問題。係包含:設定一字母表的自由距離、最小發散距離、最小收斂距離及第一碼字的長度範圍,該第一碼字的長度範圍須符合一設定範圍;根據目前碼字的預設長度設定下一個碼字的預設長度,以完成該字母表的所有碼字預設長度的設置;建構各該碼字的候選碼集合,各該候選碼集合中的候選碼的長度,係為相對應碼字的預設長度;依序由各該候選碼集合中挑選符合相關等式的候選碼,以作為相對應碼字,直到建構完成該字母表的所有碼字。
Description
本發明係關於一種錯誤更正碼的設計方法,尤其是一種不定長度錯誤更正碼的設計方法。
習知不定長度錯誤更正碼(Variable-length Error-correcting Codes,VLEC)的設計方法,在系統的描述上,是假設有M個離散無記憶來源的字母符號A={α 1 ,α 2 ,...,α M },其相對應的機率值為。該習知設計方法的碼簿以二進位表示為C={c 1 ,c 2 ,...,C M },且c i 對應到αi。再且,將第i個代碼的長度定義為l i ,以建立平均碼字長度(Average Codeword Length,ACL)的計算公式為。
該習知設計方法係透過搜尋樹(tree-search)演算法,以找出最小的平均碼字長度值。理論上,該搜尋樹演算法是可以無限上綱的擴大搜索範圍,且可以保證取得最佳的不定長度錯誤更正碼。惟,該習知設計方法在進行程式模擬時,其程式碼複雜度越高,將使得所占用的記憶體需求量呈現指數性成長,並造成該習知設計方法搜尋時間居高不下而影響整體執行效能。
有鑑於此,習知的不定長度錯誤更正碼的設計方法確實仍有加以改善之必要。
為解決上述問題,本發明的目的是提供一種不定長度錯誤更正碼的設計方法,係可以為大訊號集字母(Large Source Alphabets Size)建構出具有符號錯誤性能及最短平均碼長的不定長度錯誤更正碼者。
本發明的次一目的是提供一種內儲程式之電腦程式產品及內儲程式之電腦可讀取記錄媒體,用以執行上述方法。
本發明全文所記載的元件及構件使用「一」或「一個」之量詞,僅是為了方便使用且提供本發明範圍的通常意義;於本發明中應被解讀為包括一個或至少一個,且單一的概念也包括複數的情況,除非其明顯意指其他意思。
本發明全文所記載的「自由距離(free distance,d free)」,係指網格中具有相同節點上聚集的任意兩個不同序列x和y之間的最小漢明距離,並可以定義如下式所示:
其中,d h( x,y ):表示為具有相同長度的序列碼 x 和 y 之間的漢明距離;L:表示為接收端所接收到的字元符號的數量;N:表示為接收端所接收到的字元符號的位元數的數量長度;X L,N:表示為L與N所形成的序列集合;:表示為第x i 個碼的長度。該自由距離的定義可以根據上述公式修改為下列公式:
本發明全文所述之「電腦(Computer)」,係指具備特定功能
且以硬體或硬體與軟體實現的各式資料處理裝置,例如:伺服器、虛擬機器(如:Amazon,Azure)、桌上型電腦、筆記型電腦、平板電腦或智慧型手機等,係本發明所屬技術領域中具有通常知識者可以理解。
本發明全文所述之「電腦程式產品(Computer Program Product)」,係指載有電腦可讀取之程式且不限外在形式之物,係本發明所屬技術領域中具有通常知識者可以理解。
本發明全文所述之「電腦可讀取記錄媒體(Computer Readable Medium)」,係指一載體,其上儲存有軟體,該軟體可為電腦所存取;常見者有光碟、硬碟、USB隨身碟、各式記憶卡、雲端或虛擬儲存空間等,係本發明所屬技術領域中具有通常知識者可以理解。
本發明的不定長度錯誤更正碼的設計方法,包含:設定一字母表所需的碼字數量、一目前碼字長度、一自由距離、一最小發散距離及一最小收斂距離,該自由距離、該最小發散距離及該最小收斂距離須符合下列第一等式:
其中,d free:表示為該自由距離,d div:表示為該最小發散距離,d conv:表示為該最小收斂距離,該最小發散距離為將長度不相等的二個碼字靠左對齊,並計算漢明距離所獲得的數值,該最小收斂距離為長度不相等的二個碼字靠右對齊,並計算漢明距離所獲得的數值;設定該字母表的一第一碼字的長度範圍,該第一碼字的長度範圍須符合下列第二等式:
其中,l 1:表示為該第一碼字的長度;
一碼字長度預設步驟:由該第一碼字的長度範圍中任選一長度,以作為該第一碼字的預設長度,並將該目前碼字長度設定為該第一碼字的預設長度,該第一碼字的預設長度不大於該自由距離;將該目前碼字長度+1,並設定為下一個碼字的預設長度;若該字母表中仍有碼字的預設長度尚未設置,則分析該目前碼字長度,並於該目前碼字長度不大於該自由距離時,將該目前碼字長度+1,並設定為下一個碼字的預設長度;否則,於該目前碼字長度大於該自由距離且不大於該自由距離+max(最小發散距離,最小收斂距離)-1時,確認該目前碼字長度是否等於上一個碼字的預設長度,若確認結果為是,將該目前碼字長度+1,並設定為下一個碼字的預設長度;若確認結果為否,將下一個碼字的預設長度設定為該目前碼字長度;否則,於該目前碼字長度大於該自由距離+max(最小發散距離,最小收斂距離)-1時,將尚未設定預設長度的碼字,使其預設長度皆設定為該自由距離+max(最小發散距離,最小收斂距離);一候選碼集合建構步驟:建構一候選碼集合,該候選碼集合中具有數個候選碼,各該候選碼由0、1或0和1的組合構成,且各該候選碼的長度為目前準備建構的碼字的預設長度;及一候選碼挑選步驟:將該目前碼字長度設定為該第一碼字的預設長度,並由與該目前碼字長度相對應的候選碼集合中任意挑選一候選碼,以作為該第一碼字,若該字母表中仍有碼字尚未建構,則將該目前碼字長度設定為下一個碼字的預設長度,並根據該目前碼字長度重新執行該候選碼集合建構步驟,以產生相對應該目前碼字長度的候選碼集合,由該候選碼集合中任意挑選一候選碼,該候選碼須符合下列第三等式:
其中,d b(C):表示為該字母表的碼簿C中任意二長度相等碼字的漢明距離;d div(C):表示為該字母表的碼簿C中任意二長度不相等碼字的發散距離;d conv(C):表示為該字母表的碼簿C中任意二長度不相等碼字的收斂距離;l i :表示為第i碼字,i=1,2,…,M;M:表示為該碼字數量。
本發明的不定長度錯誤更正碼的設計方法,包含:設定一字母表所需的碼字數量、一目前碼字長度、一自由距離、一最小發散距離及一最小收斂距離,該自由距離、該最小發散距離及該最小收斂距離須符合下列第一等式:
其中,d free:表示為該自由距離,d div:表示為該最小發散距離,d conv:表示為該最小收斂距離,該最小發散距離為將長度不相等的二個碼字靠左對齊,並計算漢明距離所獲得的數值,該最小收斂距離為長度不相等的二個碼字靠右對齊,並計算漢明距離所獲得的數值;設定該字母表的一第一碼字的長度範圍,該第一碼字的長度範圍須符合下列第二等式:
其中,l 1:表示為該第一碼字的長度;一碼字長度預設步驟:由該第一碼字的長度範圍中任選一長度,以作為該第一碼字的預設長度,並將該目前碼字長度設定為該第一碼字的預設長度,該第一碼字的預設長度大於該自由距離;若該字母表中仍有碼字的預設長度尚未設置,則分析該目前碼字長度,並於該目前碼字長度不大於該自由距離+max(最小發散距離,最小收斂距離)-1時,確認該目前碼字長度是否等於上一
個碼字的預設長度,若確認結果為是,將該目前碼字長度+1,並設定為下一個碼字的預設長度;若確認結果為否,將下一個碼字的預設長度設定為該目前碼字長度;否則,於該目前碼字長度大於該自由距離+max(最小發散距離,最小收斂距離)-1時,將尚未設定預設長度的碼字,使其預設長度皆設定為該自由距離+max(最小發散距離,最小收斂距離);一候選碼集合建構步驟:建構一候選碼集合,該候選碼集合中具有數個候選碼,各該候選碼由0、1或0和1的組合構成,且各該候選碼的長度為目前準備建構的碼字的預設長度;及一候選碼挑選步驟:將該目前碼字長度設定為該第一碼字的預設長度,並由與該目前碼字長度相對應的候選碼集合中任意挑選一候選碼,以作為該第一碼字,若該字母表中仍有碼字尚未建構,則將該目前碼字長度設定為下一個碼字的預設長度,並根據該目前碼字長度重新執行該候選碼集合建構步驟,以產生相對應該目前碼字長度的候選碼集合,由該候選碼集合中任意挑選一候選碼,該候選碼須符合下列第三等式:
其中,d b(C):表示為該字母表的碼簿C中任意二長度相等碼字的漢明距離;d div(C):表示為該字母表的碼簿C中任意二長度不相等碼字的發散距離;d conv(C):表示為該字母表的碼簿C中任意二長度不相等碼字的收斂距離;l i :表示為第i碼字,i=1,2,…,M;M:表示為該碼字數量。
本發明的不定長度錯誤更正碼的設計方法,包含:設定一字母表所需的碼字數量、一目前碼字長度、一自由距離、一最小發散距離及一最小收斂距離,該自由距離、該最小發散距離及該最小收斂距離須符合下列第
一等式:
其中,d free:表示為該自由距離,d div:表示為該最小發散距離,d conv:表示為該最小收斂距離,該最小發散距離為將長度不相等的二個碼字靠左對齊,並計算漢明距離所獲得的數值,該最小收斂距離為長度不相等的二個碼字靠右對齊,並計算漢明距離所獲得的數值;設定該字母表的一第一碼字的長度範圍,該第一碼字的長度範圍須符合下列第二等式:
其中,l 1:表示為該第一碼字的長度;一碼字長度預設步驟:由該第一碼字的長度範圍中任選一長度,以作為該第一碼字的預設長度,並將該目前碼字長度設定為該第一碼字的預設長度,該第一碼字的預設長度小於該自由距離;將該目前碼字長度+1,並設定為下一個碼字的預設長度;若該字母表中仍有碼字的預設長度尚未設置,則分析該目前碼字長度,並於該目前碼字長度不大於該自由距離時,將該目前碼字長度+1,並設定為下一個碼字的預設長度;否則,於該目前碼字長度大於該自由距離且不大於該自由距離+max(最小發散距離,最小收斂距離)-1時,確認該目前碼字長度是否等於上一個碼字的預設長度,若確認結果為是,將該目前碼字長度+1,並設定為下一個碼字的預設長度;若確認結果為否,將下一個碼字的預設長度設定為該目前碼字長度;否則,於該目前碼字長度大於該自由距離+max(最小發散距離,最小收斂距離)-1時,將尚未設定預設長度的碼字,使其預設長度皆設定為該自由距離+max(最小發散距離,最小收斂距離);一候選碼集合建構步驟:建構一候選碼集合,該候選碼集合中具有數個候
選碼,各該候選碼由0、1或0和1的組合構成,且各該候選碼的長度為目前準備建構的碼字的預設長度;及一候選碼挑選步驟:將該目前碼字長度設定為該第一碼字的預設長度,並由與該目前碼字長度相對應的候選碼集合中任意挑選一候選碼,以作為該第一碼字,若該字母表中仍有碼字尚未建構,則將該目前碼字長度設定為下一個碼字的預設長度,並根據該目前碼字長度重新執行該候選碼集合建構步驟,以產生相對應該目前碼字長度的候選碼集合,由該候選碼集合中任意挑選一候選碼,該候選碼須符合下列第三等式:
其中,d b(C):表示為該字母表的碼簿C中任意二長度相等碼字的漢明距離;d div(C):表示為該字母表的碼簿C中任意二長度不相等碼字的發散距離;d conv(C):表示為該字母表的碼簿C中任意二長度不相等碼字的收斂距離;l i :表示為第i碼字,i=1,2,…,M;M:表示為該碼字數量。
本發明的不定長度錯誤更正碼的設計方法,包含:設定一字母表所需的碼字數量、一目前碼字長度、一自由距離、一最小發散距離及一最小收斂距離,該自由距離、該最小發散距離及該最小收斂距離須符合下列第一等式:
其中,d free:表示為該自由距離,d div:表示為該最小發散距離,d conv:表示為該最小收斂距離,該最小發散距離為將長度不相等的二個碼字靠左對齊,並計算漢明距離所獲得的數值,該最小收斂距離為長度不相等的二個碼字靠
右對齊,並計算漢明距離所獲得的數值;設定該字母表的一第一碼字的長度範圍,該第一碼字的長度範圍須符合下列第二等式:
其中,l 1:表示為該第一碼字的長度;一碼字長度預設步驟:由該第一碼字的長度範圍中任選一長度,以作為該第一碼字的預設長度,並將該目前碼字長度設定為該第一碼字的預設長度,該第一碼字的預設長度不小於該自由距離;若該字母表中仍有碼字的預設長度尚未設置,則分析該目前碼字長度,並於該目前碼字長度不大於該自由距離+max(最小發散距離,最小收斂距離)-1時,確認該目前碼字長度是否等於上一個碼字的預設長度,若確認結果為是,將該目前碼字長度+1,並設定為下一個碼字的預設長度;若確認結果為否,將下一個碼字的預設長度設定為該目前碼字長度;否則,於該目前碼字長度大於該自由距離+max(最小發散距離,最小收斂距離)-1時,將尚未設定預設長度的碼字,使其預設長度皆設定為該自由距離+max(最小發散距離,最小收斂距離);一候選碼集合建構步驟:建構一候選碼集合,該候選碼集合中具有數個候選碼,各該候選碼由0、1或0和1的組合構成,且各該候選碼的長度為目前準備建構的碼字的預設長度;及一候選碼挑選步驟:將該目前碼字長度設定為該第一碼字的預設長度,並由與該目前碼字長度相對應的候選碼集合中任意挑選一候選碼,以作為該第一碼字,若該字母表中仍有碼字尚未建構,則將該目前碼字長度設定為下一個碼字的預設長度,並根據該目前碼字長度重新執行該候選碼集合建構步驟,以產生相對應該目前碼字長度的候選碼集合,由該候選碼集合中任意挑選一候選碼,該候選碼須符合下列第三等式:
其中,d b(C):表示為該字母表的碼簿C中任意二長度相等碼字的漢明距離;d div(C):表示為該字母表的碼簿C中任意二長度不相等碼字的發散距離;d conv(C):表示為該字母表的碼簿C中任意二長度不相等碼字的收斂距離;l i :表示為第i碼字,i=1,2,…,M;M:表示為該碼字數量。
本發明揭示之內儲程式之電腦程式產品及內儲程式之電腦可讀取記錄媒體,當電腦系統載入該程式並執行後,可完成上述方法;如此,可便於使用、交換或執行上揭方法,有利於廣泛運用上述的不定長度錯誤更正碼的設計方法於其他應用軟體。
據此,本發明的不定長度錯誤更正碼的設計方法、內儲程式之電腦程式產品及內儲程式之電腦可讀取記錄媒體,係可以根據該自由距離為奇數或偶數,以限制該第一碼字的長度範圍,並使該字母表的剩餘碼字各自符合該第三等式,以建構該字母表。如此,本發明可以達到具有較短平均碼長、提升符號錯誤性能、降低記憶體需求量及提升建構執行效能的字母表的功效。
其中,該碼字長度預設步驟執行完後,可以計算該字母表的所有碼字的平均碼長,並將該平均碼長與一上限門檻相比較,若該平均碼長大於該上限門檻,則重新執行該碼字長度預設步驟,該平均碼長的公式如下列所示:
其中,ω:表示為該字母表的平均碼長;M:表示為該字母表的碼字數量;p i :表示為第i碼字的機率值;l i :表示為第i碼字的預設長度。如此,係可以以各
該碼字的預設長度產生該字母表,並據以計算該字母表的平均碼長,以在該字母表的平均碼長超出該上限門檻時,重新執行該碼字長度預設步驟,而非直接執行後續該候選碼挑選步驟及該候選碼挑選步驟,係具有避免建構完成的字母表的平均碼長超出該上限門檻的功效。
其中,若該候選碼集合中的所有候選碼皆不符合該第三等式,則可以將該目前碼字長度+1,並根據該目前碼字長度重新執行該候選碼集合建構步驟,以找到符合該第三等式的一候選碼。如此,係具有建構合格不定長度錯誤更正碼(VLEC)的功效。
其中,可以將不符合該第三等式的候選碼由該候選碼集合中刪除,重新執行該碼字長度預設步驟,並由已建構的候選碼集合中挑選符合該第三等式的候選碼。如此,係可以避免隨機選擇時重複選到,係具有提升字母表建構效率的功效。
其中,當該候選碼挑選步驟找出符合該第三等式的候選碼時,可以將該字母表尚未建構完成的碼字長度,全部假定為找到該候選碼時的目前碼字長度,並將每個碼字的長度乘上相對應的機率取平均值,以獲得一平均碼長,若該平均碼長超過一上限門檻,則重新執行該碼字長度預設步驟、該候選碼集合建構步驟及該候選碼挑選步驟,該平均碼長的公式如下列所示:
其中,ω:表示為該字母表的平均碼長;M:表示為該字母表的碼字數量;p i :表示為第i碼字的機率值;l i :表示為第i碼字的預設長度。如此,係可以同步確認目前字母表的平均碼長是否超出該上限門檻的功效。
其中,可以由該候選碼集合中優先選擇符合該第三等式,以及同時符合下列第四等式的候選碼,以作為目前要建構的碼字:
其中,d free:表示為該自由距離;l i :表示為該第i碼字的預設長度,i=1,2,…,M;M:表示為該碼字數量;d div:表示為該最小發散距離;d conv:表示為該最小收斂距離;d h(c i ,c i+1):表示為該碼簿C的碼字c i 與碼字c i+1的漢明距離。如此,係具有提升該字母表的訊雜比效能的功效。
其中,可以由該候選碼集合中優先選擇符合該第三等式,以及同時符合下列第五等式的候選碼,以作為目前要建構的碼字:
其中,d free:表示為該自由距離;l i :表示為該第i碼字的預設長度,i=1,2,…,M;M:表示為該碼字數量;d div:表示為該最小發散距離;d conv:表示為該最小收斂距離;d h(c i ,c i+1):表示為該碼簿C的碼字c i 與碼字c i+1的漢明距離。如此,係具有提升該字母表的訊雜比效能的功效。
其中,當符合該第五等式的候選碼已被挑選完畢,可以由該候選碼集合中選擇符合該第三等式,以及同時符合下列第六等式的候選碼,以作為目前要建構的碼字:
其中,d free:表示為該自由距離;l i :表示為該第i碼字的預設長度,i=1,2,…,M;M:表示為該碼字數量;d div:表示為該最小發散距離;d conv:表示為該最小收斂距離;d h(c i ,c i+1):表示為該碼簿C的碼字c i 與碼字c i+1的漢明距離。如此,係具有提升該字母表的訊雜比效能的功效。
〔本發明〕
S1:設定步驟
S2:碼字長度預設步驟
S21:平均碼長預算步驟
S3:碼字建構步驟
S31:候選碼集合建構步驟
S32:候選碼挑選步驟
S33:字母表平均碼長預算步驟
〔第1圖〕本發明實施例的方法流程圖。
為讓本發明之上述及其他目的、特徵及優點能更明顯易懂,下文特舉本發明之較佳實施例,並配合所附圖式,作詳細說明如下。
請參照第1圖所示,其係本發明不定長度錯誤更正碼的設計方法的第一實施例,係包含下列步驟。
一設定步驟S1,用以設定一字母表(Alphabet)所需的碼字數量、一目前碼字長度、一自由距離(free distance)、一最小發散距離(minimum diverging distance)、一最小收斂距離(minimum converging distance)及該字母表的一第一碼字的長度範圍,在本實施例中,該字母表的碼字數量可以為26個,以代表26個英文字母,而在另一實施例中,該碼字數量還可以為128個,以代表128個ASCII碼字元,惟不以此作為本發明的限制。再者,該自由距離、該最小發散距離及該最小收斂距離須符合下列第一等式(1):
其中,d free:表示為該自由距離,d div:表示為該最小發散距離,d conv:表示為該最小收斂距離。
具體而言,該最小發散距離為將長度不相等的二個碼字靠左對齊,並計算漢明距離(Hamming distance)所獲得的數值,該最小收斂距離為長度不相等的二個碼字靠右對齊,並計算漢明距離所獲得的數值。該最小發散距離及該最小收斂距離的定義可以如下列所示:
其中,d div(C):表示為該字母表的碼簿C的最小發散距離;d conv(C):表示為該字母表的碼簿C的最小收斂距離;:表示為碼字c i 第l j 個位元;d h( x,y ):表示為相同長度的碼字 x 和 y 之間的漢明距離。
根據上述等式,並以該自由距離等於5為例,該最小發散距離與該最小收斂距離的組合可以為(3,3)、(3,2)或(2,3),另,假設二個碼字分別為110110及0001110,該二個碼字的最小發散距離是取後者的前六碼(000111)與前者(110110)計算漢明距離。另一方面,該二個碼字的最小收斂距離是取後者的後六碼(001110)與前者(110110)計算漢明距離,以獲得該最小發散距離與該最小收斂距離的組合為(3,3),因此,該二個碼字符合上述等式的規定。
在本發明中,以自由距離等於9為例說明,當第一碼字不符合上述等式時,是無法建構出第三碼字。由於該自由距離等於9,因此,該最小發散距離及該最小收斂距離應等於(5,5)、(5,4)或(4,5),且根據上述等式限制,第一碼字的長度範圍落在7 l 1<10之間,此時,若第一碼字的長度為等於6的000000,且第二碼字為1111100,該第一碼字與該第二碼字的最小發散距離及最小收斂距離分別等於5和4,是符合規定。惟,為了使該第一碼字與該第二碼字分別與第三碼字的最小發散距離等於5,該第三碼字僅能為11110110,卻導致該第二碼字與該第三碼字的最小發散距離等於3。因此,上述範例可以證明當第一碼字的長度不符合上述等式時,係無法建構出第三碼字。
該設定步驟S1還可以設定一上限門檻,當該字母表建構完成後,將每個碼字的長度乘上相對應的機率並取平均值,以獲得一平均碼長。若該平均碼長超過該上限門檻,則必須重新建構該字母表的每一個碼字。舉例而言,以26個英文字母的字母表為例,其自由距離分別等於3、5、7、9及11時,該上限門檻可以分別設定為6.2560、8.3223、10.3615、12.6647及14.6521,此外,各該英文字母相對應的機率,係可以如下列表一所示:
一碼字長度預設步驟S2,用以設定該字母表的所有碼字的預設長度。具體而言,由該第一碼字的長度範圍中任選一長度,以作為該第一碼字的預設長度,並將該目前碼字長度設定為該第一碼字的預設長度。在本實施例中,該第一碼字的預設長度不大於該自由距離,故,將該目前碼字長度+1,並設定為下一個碼字的預設長度,意即,第二碼字的預設長度為該第一碼字的長度+1。若該字母表中仍有碼字的預設長度尚未設置,則分析該目前碼字長度,並於該目前碼字長度不大於該自由距離時,將該目前碼字長度+1,並設定為下一個碼字的預設長度;否則,於該目前碼字長度大於該自由距離且不大於該自由距離+max(最小發散距離,最小收斂距離)-1時,確認該目前碼字長度是否等於上一個碼字的預設長度,若確認結果為是,將該目前碼字長度+1,並設定為下一個碼字的預設長度;若確認結果為否,將下一個碼字的預設長度設定為該目前碼字長度;否則,於該目前碼字長度大於該自由距離+max(最小發散距離,最小收斂距離)-1時,將尚未設定預設長度的碼字,使其預設長度皆設定為該自由距離+max(最小發散距離,最小收斂距離)。藉此,完成該字母表的所有碼字的預設長度設定。
在本發明的第一實施例中,該碼字長度預設步驟S2在該自由距離為奇數,且該第一碼字的預設長度不大於該自由距離時的虛擬碼(Pseudocode),可以如下列所示:set l i and(3d free +1)/4<=l i <=d free +1
其中,CL:表示為該目前碼字長度;M:表示為該碼字數量。
較佳地,本發明不定長度錯誤更正碼的設計方法可以包含一平均碼長預算步驟S21,用以計算取得該字母表的所有碼字的平均碼長,並將該平均碼長與該上限門檻相比較,若該平均碼長大於該上限門檻,則重新執行該碼字長度預設步驟S2;否則,執行後續步驟程序。其中,該平均碼長的公式可以如下列所示:
其中,ω:表示為該字母表的平均碼長;M:表示為該字母表的碼字數量;p i :表示為第i碼字的機率值;l i :表示為第i碼字的預設長度。
一碼字建構步驟S3,包含一候選碼集合建構步驟S31及一候選碼挑選步驟S32。其中,該候選碼集合建構步驟S31用以建構一候選碼集合,該候選碼集合中具有數個候選碼,各該候選碼由0、1或0和1的組合構成,且各該候選碼的長度為目前準備建構的碼字的預設長度。舉例而言,目前要準備建構的碼字的預設長度為3,則該候選碼集合係包含000,001,010,011,100,101,110,111等候選碼。
該候選碼挑選步驟S32,用以將該目前碼字長度設定為該第一碼字的預設長度,並由與該目前碼字長度相對應的候選碼集合中任意挑選一候選碼,以作為該第一碼字。若該字母表中仍有碼字尚未建構,則將該目前碼字長度設定為下一個碼字的預設長度,並根據該目前碼字長度重新執行該候選碼集合建構步驟S31,以產生相對應該目前碼字長度的候選碼集合。由該候選碼集合中任意挑選一候選碼,該候選碼須符合下列第三等式(3),才可以作為目前要建構的碼字:
其中,d b(C):表示為該字母表的碼簿C中任意二長度相等碼字的漢明距離;d div(C):表示為該字母表的碼簿C中任意二長度不相等碼字的發散距離;d conv(C):表示為該字母表的碼簿C中任意二長度不相等碼字的收斂距離;l i :表示為第i碼字,i=1,2,…,M;M:表示為該碼字數量。
若該候選碼集合中的所有候選碼皆不符合上述等式,則將該目
前碼字長度+1,並根據該目前碼字長度重新執行該候選碼集合建構步驟S31,直到找到符合上述第三等式(3)的一候選碼。較佳地,當由該候選碼集合中所挑選的候選碼不符合上述第三等式(3),係可以將該候選碼由該候選碼集合中刪除,以在找不到符合上述第三等式(3)的候選碼時,重新執行該碼字長度預設步驟S2,並由已建構的候選碼集合中挑選符合上述第三等式(3)的候選碼,以避免隨機選擇時重複選到,且可省略重新建構相對應的候選碼集合。
該碼字建構步驟S3,還可以具有一字母表平均碼長預算步驟S33,用以當該候選碼挑選步驟S32找出符合上述第三等式(3)的候選碼時,將該字母表尚未建構完成的碼字長度,全部假定為找到該候選碼時的目前碼字長度,並將每個碼字的長度乘上相對應的機率取平均值,以獲得一平均碼長,若該平均碼長超過該上限門檻,則重新執行該碼字長度預設步驟S2、該候選碼集合建構步驟S31及該候選碼挑選步驟S32。以字母表的碼字數量為26個為例,且該自由距離為5,若前10個碼字長度分別為6、6、7、7、8、8、9、9、9及9,則該目前碼字長度等於9;將該字母表尚未建構完成的碼字長度全部假定為9,並根據上述表一的機率值計算,則可以獲得該平均碼長為7.8965,該平均碼長低於該上限門檻8.3223。
較佳地,在該候選碼挑選步驟S32中,可以由該候選碼集合中優先選擇符合上述第三等式(3),以及同時符合下列第四等式(4)的候選碼,以作為目前要建構的碼字:
其中,d free:表示為該自由距離;l i :表示為該第i碼字的預設長度,i=1,2,…,M;M:表示為該碼字數量;d div:表示為該最小發散距離;d conv:表示為該最小收斂距離;d h(c i ,c i+1):表示為該碼簿C的碼字c i 與碼字c i+1的漢明距離。
另一方面,亦可以由該候選碼集合中優先選擇符合上述第三等式(3),以及同時符合下列第五等式(5)的候選碼,以作為目前要建構的碼字:
其中,d free:表示為該自由距離;l i :表示為該第i碼字的預設長度,i=1,2,…,M;M:表示為該碼字數量;d div:表示為該最小發散距離;d conv:表示為該最小收斂距離;d h(c i ,c i+1):表示為該碼簿C的碼字c i 與碼字c i+1的漢明距離。
若在該候選碼集合中,符合上述第五等式(5)的候選碼已被挑選完畢,則可以由該候選碼集合中選擇符合上述第三等式(3),以及同時符合下列第六等式(6)的候選碼,以作為目前要建構的碼字:
其中,d free:表示為該自由距離;l i :表示為該第i碼字的預設長度,i=1,2,…,M;M:表示為該碼字數量;d div:表示為該最小發散距離;d conv:表示為該最小收斂距離;d h(c i ,c i+1):表示為該碼簿C的碼字c i 與碼字c i+1的漢明距離。
再者,若該候選碼集合中具有符合上列第三等式(3)及下列第七等式(7)的候選碼,亦可以優先選擇,並作為目前要建構的碼字:
其中,d free:表示為該自由距離;l i :表示為該第i碼字的預設長度,i=1,2,…,M;M:表示為該碼字數量;d div:表示為該最小發散距離;d conv:表示為該最小收斂距離;d h(c i ,c i+1):表示為該碼簿C的碼字c i 與碼字c i+1的漢明距離。
請參閱下列表二,為在本發明第一實施例上述等式的限制下所產生的字母表,該字母表分別在其自由距離等於3、5、7、9及11時,各別
的平均碼長為6.2519、8.1512、10.3226、12.5140及14.5121,皆小於相對應的上限門檻。
在本發明的第二實施例中,該第一碼字的長度範圍須符合上述第二等式(2),且該第一碼字的預設長度大於該自由距離。再且,該碼字長度預設步驟S2係由該第一碼字的長度範圍中任選一長度,以作為該第一碼字的預設長度,並將該目前碼字長度設定為該第一碼字的預設長度。若該字母表中仍有碼字的預設長度尚未設置,則分析該目前碼字長度,並於該目前碼字長度不大於該自由距離+max(最小發散距離,最小收斂距離)-1時,確認該目前碼字長度是否等於上一個碼字的預設長度,若確認結果為是,將該目前碼字長度+1,並設定為下一個碼字的預設長度;若確認結果為否,將下一個碼字的預設長度設定為該目前碼字長度;否則,於該目前碼字長度大於該自由距離+max(最小發散距離,最小收斂距離)-1時,將尚未設定預設長度的碼字,使其預設長度皆設定成該自由距離+max(最小發散距離,最小收斂距離)。藉此,完成該字母表的所有碼字的預設長度設定。
在本發明的第三實施例中,該自由距離、該最小發散距離及該最小收斂距離須符合下列第八等式(8):
其中,d free:表示為該自由距離,d div:表示為該最小發散距離,d conv:表示為該最小收斂距離。
再且,以26個英文字母的字母表為例,其自由距離分別為4、6、8、10及12時,該上限門檻可以分別設定為7.2560、9.3223、11.3615、13.6647及15.6521。
在本發明的第三實施例中,該第一碼字的長度範圍須符合上述第九等式(9),且該第一碼字的預設長度小於該自由距離。再且,該碼字長度預設步驟S2係由該第一碼字的長度範圍中任選一長度,以作為該第一碼字的預設長度,並將該目前碼字長度設定為該第一碼字的預設長度。隨後,將該目前碼字長度+1,並設定為下一個碼字的預設長度,意即,第二碼字的預設長度為該第一碼字的長度+1。若該字母表中仍有碼字的預設長度尚未設置,則分析該目前碼字長度,並於該目前碼字長度不大於該自由距離時,將該目前碼字長度+1,並設定為下一個碼字的預設長度;否則,於該目前碼字長度大於該自由距離且不大於該自由距離+max(最小發散距離,最小收斂距離)-1時,確認該目前碼字長度是否等於上一個碼字的預設長度,若確認結果為是,將該目前碼字長度+1,並設定為下一個碼字的預設長度;若確認結果為否,將下一個碼字的預設長度設定為該目前碼字長度;否則,於該目前碼字長度大於該自由距離+max(最小發散距離,最小收斂距離)-1時,將尚未設定預設長度的碼字,使其預設長度皆設定成該自由距離+max(最小發散距離,最小收斂距離)。藉此,完成該字母表的所有碼字的預設長度設定。
在本發明的第四實施例中,該第一碼字的長度範圍須符合上述第九等式(9),且該第一碼字的預設長度不小於該自由距離。再且,該碼字長度預設步驟S2係由該第一碼字的長度範圍中任選一長度,以作為該第一碼字
的預設長度,並將該目前碼字長度設定為該第一碼字的預設長度。若該字母表中仍有碼字的預設長度尚未設置,則分析該目前碼字長度,並於該目前碼字長度不大於該自由距離+max(最小發散距離,最小收斂距離)-1時,確認該目前碼字長度是否等於上一個碼字的預設長度,若確認結果為是,將該目前碼字長度+1,並設定為下一個碼字的預設長度;若確認結果為否,將下一個碼字的預設長度設定為該目前碼字長度;否則,於該目前碼字長度大於該自由距離+max(最小發散距離,最小收斂距離)-1時,將尚未設定預設長度的碼字,使其預設長度皆設定成該自由距離+max(最小發散距離,最小收斂距離)。藉此,完成該字母表的所有碼字的預設長度設定。
本發明上述方法實施例還可利用程式語言(Program Language,如:C++、Java、Python或Julia)撰寫成電腦程式(如:不定長度錯誤更正碼的設計程式,用以為大訊號集字母建構出具有符號錯誤性能及最短平均碼長的不定長度錯誤更正碼),其程式碼的撰寫方式係熟知該項技藝者可以理解,可用以產生一種內儲程式之電腦程式產品,當該電腦系統載入該程式並執行後,可完成本發明上述方法實施例。
上述電腦程式產品還可儲存於一種內儲程式之電腦可讀取記錄媒體,如:光碟、硬碟、USB隨身碟、各式記憶卡、雲端或虛擬儲存空間等,當電腦系統載入上述程式並執行後,可完成本發明上述方法實施例,作為本發明之電腦系統軟硬體協同運作的根據。
綜上所述,本發明的不定長度錯誤更正碼的設計方法、內儲程式之電腦程式產品及內儲程式之電腦可讀取記錄媒體,係可以根據該自由距離為奇數或偶數,以限制該第一碼字的長度範圍,並使該字母表的剩餘碼字各自符合該第三等式,以建構該字母表。如此,本發明可以達到具有較短平均碼長、提升符號錯誤性能、降低記憶體需求量及提升建構執行效能的字母表的功效。
雖然本發明已利用上述較佳實施例揭示,然其並非用以限定本發明,任何熟習此技藝者在不脫離本發明之精神和範圍之內,相對上述實施例進行各種更動與修改仍屬本發明所保護之技術範疇,因此本發明之保護範
圍當視後附之申請專利範圍所界定者為準。
S1:設定步驟
S2:碼字長度預設步驟
S21:平均碼長預算步驟
S3:碼字建構步驟
S31:候選碼集合建構步驟
S32:候選碼挑選步驟
S33:字母表平均碼長預算步驟
Claims (14)
- 一種不定長度錯誤更正碼的設計方法,包含:設定一字母表所需的碼字數量、一目前碼字長度、一自由距離、一最小發散距離及一最小收斂距離,該自由距離、該最小發散距離及該最小收斂距離須符合下列第一等式:
- 一種不定長度錯誤更正碼的設計方法,包含:設定一字母表所需的碼字數量、一目前碼字長度、一自由距離、一最小發散距離及一最小收斂距離,該自由距離、該最小發散距離及該最小收斂距離須符合下列第一等式:
- 一種不定長度錯誤更正碼的設計方法,包含:設定一字母表所需的碼字數量、一目前碼字長度、一自由距離、一最小發散距離及一最小收斂距離,該自由距離、該最小發散距離及該最小收斂距離須符合下列第一等式:
- 一種不定長度錯誤更正碼的設計方法,包含:設定一字母表所需的碼字數量、一目前碼字長度、一自由距離、一最小發散距離及一最小收斂距離,該自由距離、該最小發散距離及該最小收斂距離須符合下列第一等式:
- 如請求項1至4中任一項之不定長度錯誤更正碼的設計方法,其中,若該候選碼集合中的所有候選碼皆不符合該第三等式,則將該目前碼字長度+1,並根據該目前碼字長度重新執行該候選碼集合建構步驟,以找到符合該第三等式的一候選碼。
- 如請求項6之不定長度錯誤更正碼的設計方法,其中,將不符合該第三等式的候選碼由該候選碼集合中刪除,重新執行該碼字長度預設步驟,並由已建構的候選碼集合中挑選符合該第三等式的候選碼。
- 一種內儲程式之電腦程式產品,當電腦系統載入該程式並執行後,可完成如請求項1至12中任一項之不定長度錯誤更正碼的設計方法。
- 一種內儲程式之電腦可讀取記錄媒體,當電腦系統載入該程式並執行後,可完成如請求項1至12中任一項之不定長度錯誤更正碼的設計方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW110125151A TWI777659B (zh) | 2021-07-08 | 2021-07-08 | 不定長度錯誤更正碼的設計方法、內儲程式之電腦程式產品及內儲程式之電腦可讀取記錄媒體 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW110125151A TWI777659B (zh) | 2021-07-08 | 2021-07-08 | 不定長度錯誤更正碼的設計方法、內儲程式之電腦程式產品及內儲程式之電腦可讀取記錄媒體 |
Publications (2)
Publication Number | Publication Date |
---|---|
TWI777659B true TWI777659B (zh) | 2022-09-11 |
TW202304147A TW202304147A (zh) | 2023-01-16 |
Family
ID=84958045
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW110125151A TWI777659B (zh) | 2021-07-08 | 2021-07-08 | 不定長度錯誤更正碼的設計方法、內儲程式之電腦程式產品及內儲程式之電腦可讀取記錄媒體 |
Country Status (1)
Country | Link |
---|---|
TW (1) | TWI777659B (zh) |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1768481A (zh) * | 2003-03-28 | 2006-05-03 | 皇家飞利浦电子股份有限公司 | 用于创建可变长度纠错码的方法和装置 |
-
2021
- 2021-07-08 TW TW110125151A patent/TWI777659B/zh active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1768481A (zh) * | 2003-03-28 | 2006-05-03 | 皇家飞利浦电子股份有限公司 | 用于创建可变长度纠错码的方法和装置 |
US20060200706A1 (en) * | 2003-03-28 | 2006-09-07 | Catherine Lamy | Method and device for building a variable-length error-correcting code |
Non-Patent Citations (1)
Title |
---|
期刊 Ting-Yi Wu , Fady Alajaji "On the Design of Variable-Length Error-Correcting Codes" EEE TRANSACTIONS ON COMMUNICATIONS , VOL. 61, NO. 9 IEEE 2013年8月1日公開文件 3553-3565 * |
Also Published As
Publication number | Publication date |
---|---|
TW202304147A (zh) | 2023-01-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20150169467A1 (en) | Systems and Methods for Rapidly Generating Suitable Pairs of Hash Functions | |
TWI567637B (zh) | Random number expansion device, the number of ways to expand the number of random and expand the program products | |
CN113032178B (zh) | 存储器控制器及快闪存储器的存取方法 | |
US20150120754A1 (en) | Systems and Methods for Generating Bit Matrices for Hash Functions Using Fast Filtering | |
US8037145B2 (en) | System and method for detecting email content containment | |
TWI618078B (zh) | 在固態記憶體系統中基於延遲的資料再利用的系統及方法 | |
US10469270B2 (en) | Data processing devices and methods for reconstructing a PUF value | |
US8275842B2 (en) | System and method for detecting content similarity within email documents by sparse subset hashing | |
CN110572164B (zh) | Ldpc译码方法、装置、计算机设备及存储介质 | |
TWI777659B (zh) | 不定長度錯誤更正碼的設計方法、內儲程式之電腦程式產品及內儲程式之電腦可讀取記錄媒體 | |
TWI718060B (zh) | 記憶體控制器及快閃記憶體的存取方法 | |
CN115035384B (zh) | 数据处理方法、装置和芯片 | |
CN112951313A (zh) | 用于纠错的存储控制器、包括其的存储设备及其操作方法 | |
Pehl et al. | Spatial context tree weighting for physical unclonable functions | |
WO2017157038A1 (zh) | 数据处理的方法、装置和设备 | |
Rudow et al. | A locality-based lens for coded computation | |
CN112530522B (zh) | 序列纠错方法、装置、设备和存储介质 | |
CN107341113B (zh) | Cache的压缩方法和装置 | |
KR20220141044A (ko) | 극 부호 연속 제거 비트 반전 복호 장치 및 방법 | |
CN106569906B (zh) | 基于稀疏矩阵的编码写入方法及装置 | |
CN114978195B (zh) | 一种极化码串行抵消列表译码码字相关的错误图样集搜索方法及系统 | |
US20240097706A1 (en) | Decoding method and decoding device | |
US9172399B2 (en) | Updating variable nodes associated with an iterative decoder | |
US11211945B1 (en) | Parallelized decoding of variable-length prefix codes | |
WO2024078096A1 (zh) | 针对网络流问题的处理方法和装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
GD4A | Issue of patent certificate for granted invention patent |