RS編碼和糾錯演算法
一個n次不可約多項式,如果只能整除1+Z^2^n-1而不能整除其它1+Z^L(L<2^n-1),則這種不可約多項式就稱為本原多項式。
對於一個n次多項式,其本原多項式一般有若干個。下面將給出的一個演算法,是求解在給定任意n值及一個本原多項式的情況下,其餘本原多項式的求解方法。該演算法的意義在於提供了同一n值情況下若干個可選的本原多項式,這樣就允許在構造應用系統時有不同的選擇方案。
已知一個n級本原多項式,求解其餘的本原多項式按以下步驟進行。
(1) 首先確定n級本原多項式的個數λ(n),λ(n)即是n級本原多項式的個數。
(2) 求出小於2n-1且與2n-1互素的所有正整數,構成一個集合〔Si〕,並重新排序,使〔Si〕中元素從小到大排列。
(3) 排除〔Si〕中不適合的數
* 排除〔Si〕中形如2j(j為正整數)
* 排除〔Si〕中所有同宗的數。即從〔Si〕中從後到前搜尋,每取一個數即做2K×Si,直到大於2n-1,然後減去2n-1,用差值在〔Si〕中向前搜尋,如果有相同的數則將Si排除,否則保留。再取Si-1按同樣過程做一遍,直到S0.
* 排除〔Si〕中有倍數關係的數。即從〔Si〕中從後到前搜尋,每取一數即向前查詢一遍,最後〔Si〕中剩下的數即為本原抽樣數,其個數一定為λ(n)-1。
(4) 根據已知的一個n級本原多項式,為其設定初始狀態000…01(n個),求出其M序列{Ai}(長度為2n-1).
(5) 依次從Si中取出本原抽樣數,每取出一個抽樣數Si,即可求出一個本原多項式:以Si對{Ai}進行抽樣,就可產生長度為2n-1的另一M序列{Si}, 在{Si}中找到形如000…01(n位)的序列段{Mi},並提取包括{Mi}為前n項的2n長度的序列:
Am+0,Am+1,…,Am+n-1,
0 0 … 1
Am+n,Am+n+1,…Am+2n-1
X X … X
欲確定的Ci可用下列方程組確定;
C1=Am+n
C2=Am+n+1+C1Am+n
C3=Am+n+2+C1Am+n+1+C2Am+n
相關文章
- 海明校驗碼檢錯和糾錯的工作原理
- 量子糾錯碼——Stabilizer codes
- 如何選擇糾刪碼編碼引擎 | 糾刪碼技術詳解(上)
- 差錯檢測和糾正 (轉)
- Android逆向之旅---反編譯利器Apktool和Jadx原始碼分析以及錯誤糾正Android編譯APK原始碼
- 多項式與點值的雙射 與 Reed–Solomon 編碼糾錯.
- 軟體糾錯
- 多分類學習及糾錯輸出碼
- 基於機器學習的糾錯系統技術 - 智慧文字糾錯 API機器學習API
- 求:有關糾錯碼方面的開源專案。
- 【字元編碼】字元編碼 && Base64編碼演算法字元演算法
- 3.3 編碼/解碼演算法演算法
- 語法糾錯的研究現狀
- python實現查詢糾錯Python
- 蜂窩網路TDOA定位方法的Fang演算法研究及模擬糾錯演算法
- RS485和RS232是區別
- elasticsearch拼寫糾錯之Term SuggesterElasticsearch
- 軟體糾錯的六個階段
- 中文語法糾錯全國大賽獲獎分享:基於多輪機制的中文語法糾錯
- java安全編碼指南之:字串和編碼Java字串
- 除錯旋轉編碼器成功除錯
- TTL、RS232和RS485電壓及其他的區別
- MSSQL連線資料庫密碼獲取工具與原文數個錯誤糾正SQL資料庫密碼
- 如何在Visual Studio中執行和除錯彙編程式碼?除錯
- 編譯除錯Net6原始碼編譯除錯原始碼
- 錯字修改 | 佈署1箇中文文文字拼蟹糾錯模型模型
- 用觸發器返回錯誤提示,糾正錯誤資料錄入觸發器
- 演算法科普:有趣的霍夫曼編碼演算法
- 字元,位元組和編碼字元
- U-net基礎入門(包括糾錯過程)
- 某大廠面試題與解析(歡迎糾錯,優化)面試題優化
- 關於MySQL極限值的初步驗證糾錯(二)MySql
- python處理抓取中文編碼和判斷編碼Python
- tikv/raft-rs:在 Rust 中實現的 Raft 分散式共識演算法原始碼RaftRust分散式演算法原始碼
- 透過MATLAB分別對比二進位制編碼遺傳最佳化演算法和實數編碼遺傳最佳化演算法Matlab演算法
- 知物由學 | “找茬”不如交給AI演算法,細說文字糾錯的多種實現途徑AI演算法
- ==和is的區別 以及編碼和解碼
- scrapy爬蟲程式xpath中文編碼報錯爬蟲