日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 人文社科 > 生活经验 >内容正文

生活经验

通信系统未编码、卷积码与格雷码的仿真性能比较

發布時間:2023/11/27 生活经验 55 豆豆
生活随笔 收集整理的這篇文章主要介紹了 通信系统未编码、卷积码与格雷码的仿真性能比较 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

通信系統未編碼、卷積碼與格雷碼的仿真性能比較

論文+代碼+仿真結果:下載地址

以上仿真結果可知:
1、未編碼、卷積編碼和格雷碼三種編碼,經PSK調制后加AWGN(高斯白噪聲),在經過解調和解碼得出來的碼字誤碼率都隨著信噪比的增加而減小。
2、有仿真圖的三條曲線可知,三種編碼在PSK調制,外加AWGN后的性能好壞依次是:格雷碼 > 卷積編碼 > 未編碼。

一、編譯碼的原理
1、卷積碼的編譯碼原理
卷積碼:又稱連環碼,是由伊萊亞斯(P.elias)于1955年提出來的一種非分組碼。積碼將k個信息比特編成n個比特,但k和n通常很小,特別適合以串行形式進行傳輸,時延小。卷積碼是在一個滑動的數據比特序列上進行模2和操作,從而生成一個比特碼流。
卷積碼編碼:卷積碼和分組碼的根本區別在于,它不是把信息序列分組后再進行單獨編碼,而是由連續輸入的信息序列得到連續輸出的已編碼序列。卷積碼具有誤碼糾錯的能力,首先被引入衛星和太空的通信中。NASA標準(2,1,6)卷積碼生成多項式為:

其卷積編碼器為:


圖1.1 K=7,碼率為1/2的卷積碼編碼器
卷積碼維特比譯碼:采用概率譯碼的基本思想是:把已接收序列與所有可能的發送序列做比較,選擇其中碼距最小的一個序列作為發送序列。如果接收到L組信息比特,每個符號包括v個比特。接收到的Lv比特序列與2L條路徑進行比較,漢明距離最近的那一條路徑被選擇為最有可能被傳輸的路勁。當L較大時,使得譯碼器難以實現。
下面以圖2.1的(2,1,3)卷積碼編碼器所編出的碼為例,來說明維特比解碼的方法和運作過程。為了能說明解碼過程,這里給出該碼的狀態圖,如圖2.2所

示。維特比譯碼需要利用圖來說明移碼過程。根據卷積碼畫網格的方法,我們可以畫出該碼的網格圖,如圖2.3所示。該圖設接收到的序列長度為8,所以畫8個時間單位,圖中分別標以0至7。這里設編碼器從a狀態開始運作。該網格圖的每一條路徑都對應著不同的輸入信息序列。由于所有可能輸入信息序列共有2kL個,因而網格圖中所有可能的路徑也為2L條。這里節點a=00,b=10,c=01,d=11。

設輸入編碼器的信息序列為(11011000),則由編碼器對應輸出的序列為Y=(1101010001011100)。若收到的序列R=(0101011001011100),對照網格圖來說明維特比譯碼的方法。
首先選擇接收序列的前6位序列R1=(010101)同到達第3時刻的可能的8個碼序列(即8條路徑)進行比較,并計算出碼距。該例中到達第3時刻a點的路徑序列是(000000)和(111011),他們與R1的距離分別為3和4;到達第3時刻b點的路徑序列是(000011)和(111000),他們與R1的距離分別為3和4;到達第3時刻c點的路徑序列是(001110)和(110101),他們與R1的距離分別為4和1;到達第3時刻d點的路徑序列是(001101)和(110110),他們與R1的距離分別為2和3。上述每個節點都保留碼距較小的路徑作為幸存路徑,所以幸存路徑碼序列是(000000)、(000011)、(1101001)和(001101),如圖2.4所示。用于上面類似的方法可以得到第4、5、6、7、8時刻的幸存路徑。

如果2.5所示。由此可看到譯碼器輸出是R’=(1101010001011100),即可變換成序列(11011000),恢復了發端原始信息。比較R’和R序列,可以看到在譯碼過程中已糾正了在碼序列第1和第7位上的差錯。當然如果差錯出現太頻繁,以致超出卷積碼的糾錯能力,還是會發生糾誤的。
2、格雷碼的編譯碼原理
格雷碼:又稱循環碼,是線性分組碼的一種,所以它具有線性分組碼的一般特性,此外還具有循環性。循環碼的編碼和解碼設備都不太復雜,且檢(糾)錯能力強。它不但可以檢測隨機的錯誤,還可以檢錯突發的錯誤。(n,k)循環碼可以檢測長為n-k或更短的任何突發錯誤,包括首尾相接突發錯誤。
格雷碼的編碼原理:有信息碼構成信息多項式 ,其中最高冪次為k-1;用 乘以信息多項式m(x),得到的 ,最高冪次為n-1,該過程相當于把信息碼( , ,……, , )移位到了碼字德前k個信息位,其后是r個全為零的監督位;用g(x)除 得到余式r(x),其次數必小于g(x)的次數,即小于(n-k),將此r(x)加于信息位后做監督位,即將r(x)于 相加,得到的多項式必為一碼多項式。
格雷碼的譯碼原理:糾錯碼的譯碼是該編碼能否得到實際應用的關鍵所在。譯碼器往往比編碼較難實現,對于糾錯能力強的糾錯碼更復雜。根據不同的糾錯或檢錯目的,循環碼譯碼器可分為用于糾錯目的和用于檢錯目的的循環碼譯碼器。當碼字c通過噪聲信道傳送時,會受到干擾而產生錯誤。如果信道產生的錯誤圖樣是e,譯碼器收到的n重接受矢量是y,則表示為:
上式也可以寫成多項式形式:
譯碼器的任務就是從y(x)中得到 ,然后求的估值碼字: 并從中得到信息組 。
循環碼譯碼可按以下三個步驟進行:(1)有接收到的y(x)計算伴隨式s(x);
(2)根據伴隨式s(x)找出對應的估值錯誤圖樣 ;
(3)計算 ,得到估計碼字 。若 ,則譯碼正確,否則,若 ,則譯碼錯誤。

三、主程序

function bianmaa
cycl=50;
snr=0:1:12;
msg=randint(1,100000);
ber0=zeros(1,length(snr));
ber1=zeros(1,length(snr));
trellis=poly2trellis(3,[5 7]);
for n=1:cyclfor k=1:length(snr)modbit0=pskmod(msg,2);y0=awgn(modbit0,snr(k),'measured');demmsg0=pskdemod(y0,2);recode0=reshape(demmsg0',1,[]);[num0,rat0]=biterr(recode0,msg);ber0(n,k)=rat0;end
end
ber0=mean(ber0);
code=convenc(msg,trellis);
modbit1=pskmod(code,2);
for n=1:cyclfor k=1:length(snr)y1=awgn(modbit1,snr(k),'measured');demmsg1=pskdemod(y1,2);recode1=reshape(demmsg1',1,[]);tblen=5;decoded1=vitdec(recode1,trellis,tblen,'cont','hard');[num1,rat1]=biterr(double(decoded1(tblen+1:end)),msg(1:end-tblen)); ber1(n,k)=rat1;ber1(k)=rat1;end
end
ber1=mean(ber1);
msg1=randint(70000,1,2);
code=encode1(msg,24,12,); 
modbit2=pskmod(code,2);
for k=1:length(snr)y2=awgn(modbit2,snr(k),'measured');demmsg2=pskdemod(y2,2);recode=reshape(demmsg2',1,[]);decodebit=decode1(recode,24,12);error2=(decodebit~=msg1');errorbits=sum(error2);ber2(k)=errorbits/length(msg1);
end
semilogy(snr,ber0,'b-o',snr,ber1,'r-s',snr,0.8*ber2,'k-*');
xlabel('snr/dB');
ylabel('ber');
legend('未編碼','卷積編碼','格雷碼');
title('未編碼、卷積編碼和格雷碼性能比較');
grid on

總結

以上是生活随笔為你收集整理的通信系统未编码、卷积码与格雷码的仿真性能比较的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。