<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > 基于A(yíng)tmega16的FEC設計與實(shí)現

基于A(yíng)tmega16的FEC設計與實(shí)現

作者: 時(shí)間:2017-06-04 來(lái)源:網(wǎng)絡(luò ) 收藏

對于工業(yè)級通信系統,監測數據與控制命令傳輸的準確性顯得尤為重要。尤其是某些重要的監測數據(例如煤礦安全監控系統中的瓦斯監測數據等),原則上要求達到100%的準確率,但在實(shí)際通信中這是不可能做到的,通常只能要求誤碼率在10-6或更低,這就要求系統具有高效的糾錯功能[1]。本文基于A(yíng)tmel公司的MEGA系列高性能單片機,通過(guò)采用(12,8,4)漢明碼與交織技術(shù)相結合的方法實(shí)現了前向糾錯編碼(FEC)方案,并利用TI公司的CC1100芯片構建無(wú)線(xiàn)通信平臺,在實(shí)際工業(yè)環(huán)境中進(jìn)行了測試。在不加任何FEC編碼的情況下,調制方式為GMSK,發(fā)射功率為-30 dBm,接收靈敏度為-105 dBm,通信波特率為9.6 kb/s,可靠通信距離為10 m;加入FEC編碼方案,其他條件不變的情況下,可靠通信距離提高到12 m,可見(jiàn)經(jīng)過(guò)FEC信道編碼的通信系統可以有效提高無(wú)線(xiàn)信號可靠傳輸的距離。

1 漢明碼與交織技術(shù)

漢明碼(Hamming Code)由Richard Hamming于1950年提出,它屬于線(xiàn)性分組編碼方式。設原代碼的碼長(cháng)為k bit,附加糾錯編碼部分為r bit,當碼字長(cháng)度n=2r-1,r=n-k,r=1,2,…時(shí)就稱(chēng)這種線(xiàn)性分組碼為漢明碼[2-3]。其基本原理是將信息碼元與監督碼元通過(guò)線(xiàn)性方程式聯(lián)系起來(lái),每一個(gè)監督位被編在傳輸碼字的特定比特位置上。系統對于錯誤的數位無(wú)論是原有信息位中的,還是附加監督位中的都能把它分離出來(lái)[4]。

信息傳輸中,信道噪聲干擾不僅使原代碼的每一位可能出錯,而且附加糾錯位也可能出錯,故具有“一個(gè)差錯”的情況共有k+r種,加上“正確”狀態(tài)共有k+r+1種狀態(tài),而r比特附加糾錯位要能分辨這k+r+1種狀態(tài)。

對k位碼字的漢明碼進(jìn)行編碼,所需步驟如下:
(1)確定最小的監督位數r,將它們記成D1,D2,…,Dr,每個(gè)監督位符合不同的奇偶測試規定;
(2)原有信息和r個(gè)監督位一起編成長(cháng)為r+k位的新碼字,選擇r監督位(0或1)以滿(mǎn)足必要的奇偶條件;
(3)對所接收的信息作所需的r個(gè)奇偶檢查;
(4)如果所有的奇偶檢查結果均正確,則認為信息無(wú)誤;如果發(fā)現有一個(gè)或多個(gè)錯了,則錯誤的位由這些檢查的結果來(lái)唯一地確定。

漢明碼是一種能糾一位錯的線(xiàn)性分組碼, 由于它的編譯碼簡(jiǎn)單,在數據通信和計算機存儲系統中廣泛應用。然而漢明碼只能糾正一個(gè)錯誤,因此,為了使糾錯碼能更好地抵抗由噪聲和干擾引起的突發(fā)錯誤,避免突發(fā)的長(cháng)干擾或者深衰落,在實(shí)際應用中往往結合數據交織技術(shù)。交織技術(shù)是指一個(gè)數據序列在一一對應的條件下進(jìn)行數據的位置重排過(guò)程。它可以使信道中的突發(fā)錯誤分散開(kāi)來(lái),將原來(lái)屬于突發(fā)錯誤的信道改成獨立的隨機差錯信道,從而充分發(fā)揮糾錯編碼的作用,交織技術(shù)實(shí)際上是一種信道改造技術(shù)。本文所采用的交織技術(shù),其交織度達到400 bit。

2 通信系統平臺設計

本文采用ATmega16芯片與一款基于CC1100的無(wú)線(xiàn)模塊構建的硬件平臺,系統框圖如圖1所示。

如圖1所示,通過(guò)串口RS232與CC1100無(wú)線(xiàn)模塊進(jìn)行數據交互,無(wú)線(xiàn)模塊實(shí)現數據的透明傳輸。實(shí)現方案如圖2所示。在發(fā)送端,實(shí)現數據的打包,利用C語(yǔ)言實(shí)現FEC編碼和數據的交織處理,并通過(guò)RS232發(fā)送到CC1100無(wú)線(xiàn)模塊,然后經(jīng)過(guò)GMSK調制方式經(jīng)天線(xiàn)將信號發(fā)射出去;在接收端,經(jīng)天線(xiàn)首先通過(guò)GMSK解調信號,然后對數據包進(jìn)行解交織和FEC解碼,然后進(jìn)行數據解包。


3 FEC編碼方案及測試

本文引用地址:http://dyxdggzs.com/article/201706/348379.htm

3.1

FEC接收端不僅能在收到的信碼中發(fā)現錯誤,還能糾正錯誤。對于二進(jìn)制系統,如果能夠確定錯碼的位置,就能實(shí)現糾正。這種方法不需要反向信道(傳遞重發(fā)指令),也不會(huì )由于反復重發(fā)而延誤時(shí)間,實(shí)時(shí)性很好。在使用FEC編碼方式時(shí),糾正的錯誤個(gè)數應根據具體情況而定。本文采用了(12,8,4)漢明碼,能糾正一位錯誤。
在發(fā)送方,根據式(1)的編碼邏輯,可以將數據進(jìn)行FEC編碼:

接收方將FEC編碼接收進(jìn)來(lái),并根據式(2)的編碼邏輯形成接收端的FEC編碼,

然后再對接收的數據進(jìn)行FEC譯碼,譯碼表如表1所示。


3.2 交織方案

考慮到實(shí)際的通信環(huán)境中會(huì )存在電火花等瞬間的強干擾,而且有時(shí)持續時(shí)間較長(cháng),因此在進(jìn)行交織編碼時(shí)采用較長(cháng)的交織深度,這樣能避免上述情況造成的不利影響。設計方案為:以400 B為一組,并對其進(jìn)行FEC后得到200 B,再將這400+200=600 B進(jìn)行交織并發(fā)送出去,如表2所示。

、



評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>