2011-02-24 21 views
1

我需要開發一個糾錯代碼。通過4個元素字母表進行糾錯代碼

我的字母表{0,1,2,3}(4種元素)
碼字大小爲n爲8或12
預期的糾錯能力= 1位
預期的錯誤檢測能力= 2位

我回顧了許多ecc技術(rs,ldpc等),但仍不知道從哪裏開始,以及如何去做。

任何人都可以幫我構建它嗎?

THX

回答

0

你有沒有考慮一個checksum

+0

thx爲您的快速響應。 – tSirmen 2011-02-24 01:22:17

+0

我認爲,校驗和我們不能糾正錯誤。我的代碼可以檢測到最多2個錯誤,並在8或12位內糾正多達1個錯誤。 – tSirmen 2011-02-24 01:24:03

+0

更正:我的意思是「數字」,而不是「位」。 – tSirmen 2011-02-24 01:28:19

0

有很多方法可以實現這一點,但常見的方法是使用Reed-Solomon代碼。

由於您需要檢測所有雙符號錯誤並更正所有單符號錯誤,這意味着您將需要兩個檢查符號。

你說你有2位(4元素)符號,它將你的代碼長度限制爲3個符號。

將其加起來,每個12位代碼字有1個數據符號和2個檢查符號。

效率不是很高,呃?爲了達到這個效率,你可能只需重複三次你的符號,使用相同的碼字大小和檢測和糾正能力。

要更有效地使用Reed-Solomon,您需要使用較大的符號。對於大多數其他類型的代碼也是如此。

編輯:

你可能要考慮不具備相當儘可能多的限制,Reed-Solomon碼(這是BCH碼的一個子集),廣義BCH碼,在更復雜的解碼費用:

http://en.wikipedia.org/wiki/BCH_code

+0

Thx爲您的評論。我可能無法說清楚,讓我表達得更好。我的字母表是4個元素,代碼字是8或12位數字。因此,一個代碼字就像「30112320」或「301123202131」,我需要糾正多達1個,並檢測最多2位錯誤(就像Hamm [7,4])。那麼Hamm.distance應該至少是5.你能再次評論一下嗎? – tSirmen 2011-02-24 14:13:11

+0

當你說你的代碼字是8或12位數字時,我假設你的意思是數據字(實際信息內容)是8位數字,碼字(信息加錯誤校正信息)是12位數字。它是否正確?這就是我的答案。 – wjl 2011-02-25 04:08:56

+0

不,它是碼字大小(8位或12位),即包括數據和開銷。確保其中一個目標是獲得最佳的k/n比。但是數據位數可能會有所不同。限制在碼字大小上,檢測+校正應該是(2 + 1)。雖然我認爲可能會遇到2 + 1 w 8 or 12的大小,但恐怕最終可能會導致較差的k/n比率,就像您之前提到的那樣。在這種情況下,我仍然可以討論增加cw尺寸,但我更願意縮短它的尺寸。 Thx爲您的興趣。 – tSirmen 2011-02-25 15:26:56