又乙個實驗,供以後參考
實驗原理
一般的通訊通道中總是不可避免的存在雜訊或者干擾,因此在資訊傳輸的過程中也就必然會造成資訊的損失,或者說,信源符號在有噪通道中的傳輸過程中會產生失真。為了降低這種資訊損失,就需要我們在信源符號輸入到通道之前,對其進行有效的通道編碼。
通道編碼是通訊系統中的乙個重要環節,目的就是為了降低傳輸過程中錯誤發生的概率,從而提高通訊系統的可靠性。通道編碼的基本思想是附加冗餘資訊,增加信源的剩餘度,這樣在接收端就可以利用相關性進行檢錯或者糾錯。根據有噪通道編碼定理,附加冗餘位可以降低資訊傳輸率,使錯誤概率減小,當資訊傳輸率小於通道容量時,理論上就可以使解碼錯誤概率任意小,從而幾乎無失真的進行資訊傳送。當然,同樣是增加信源剩餘度,不同的編碼方法,其檢、糾錯能力也不同。目前,人們對通道編碼的研究有很多,大概可分為線性分組碼、迴圈碼、卷積碼等等。
(一)重複碼
重複編碼是一種簡單的通道編碼方法,其實質就是將每個要傳送的符號重**送,或者說是將原來的每乙個信源符號編成多個相同的碼元符號,其值與原來的符號取值相同。比如(3,1)二元重複碼,其編碼方法就是將原來二進位制序列中的每乙個「0」編成「000」,將每乙個「1」編成「111」。
所謂的解碼規則就是指接收符號與傳送符號之間的對映關係。不同的解碼規則會造成不同的平均錯誤概率,所以人們一般都根據最小錯誤概率準則來確定解碼規則。對於二元對稱通道來說,一般總認為出錯概率是小於等於0.5的,所以對於二元重複碼,最小錯誤概率準則與擇多解碼規則是一致的,也就是說,解碼時根據碼字中「0」「1」的數目選擇數目多的進行解碼。比如(3,1)二元重複碼的解碼,可以將接收到的「000」、「001」、「010」和「100」譯為「0」,將接收到的「011」、「101」、「110」和「111」譯為「1」。這樣,每個碼字對於傳輸過程中發生的任一位錯誤,通過解碼都可以進行自動糾正。可以證明,乙個(n,1)重複碼可以糾正傳輸過程中可能出現的不多於個差錯。
(二)位元操作
在「實驗一」中,我們已經熟悉了如何將乙個位元組(8bit)資料進行拆分,並每次針對半個位元組(4bit)進行處理。在本實驗中,根據重複碼的編、解碼原理,我們每次操作的物件是1bit,因此應該對「實驗一」中的方法進行修正,使之能夠對位元組中的每個bit進行控制與操作:
1)讀取資料時,由於每次向輸入檔案的讀取是以位元組(8bit)為單位的,故需將每次讀取的8bit(1位元組)按位分開,以便對每個位元進行操作;
2)輸出資料時,由於每次向輸出檔案的寫入是以位元組(8bit)為單位的,故需每湊足8bit(1位元組)執行一次向輸出檔案的寫入操作。
code.cpp
#include #include #define n 3
static unsigned int inbfr,outbfr;
static file *outfile,*infile;
static int incnt,outcnt,mask;
void init()
int getbit()
return bitval; //0000000bitval
}void putbit( int bitval)
}void alignbits()
int getbit()
return bitval;
}void putbit( int bitval)
}void alignbits()
alignbits();
fclose(infile);
fclose(outfile);
}
ldpc解碼講解 LDPC碼編譯碼原理及應用
ldpc 碼編譯碼原理及應用 下一代移動通訊系統的設計能力將遠遠超過當前的第三代移動通訊系統的 能力其中乙個最重要的特點表現在需要在 20m赫茲的頻寬內 實現高達 100mbps 的資料傳輸。因此 在如此高的頻譜效率下如何保證資料通訊的可靠性 也就成了乙個非常值得關注的課題。以通道編碼為核心內容的前...
編譯碼 霍夫曼編譯碼
1.檔案源 原始影象分塊為 8 8 在rle編碼之後做霍夫曼編碼。其中rle碼字格式如下。struct rlecode 2.構建霍夫曼表 本文中使用的為jpeg標準ac y霍夫曼表。構建乙個256維大小的碼表hufftable,其霍夫曼碼字結構如下。struct huffcode 3.關鍵幀霍夫曼編...
編碼 解碼 中文編譯碼
字串和字符集的關係 字串是python程式的一種格式 位元組串是網路傳輸的一種形式 字串和位元組串轉換 字串 str encode 位元組串 bytes 位元組串 bytes decode 字串 str ascii字符集是utf 8字符集的前128位字元,可以說ascii字符集是utf 8字符集的子...