基于MATLAB的信道編碼分析_第1頁
基于MATLAB的信道編碼分析_第2頁
基于MATLAB的信道編碼分析_第3頁
基于MATLAB的信道編碼分析_第4頁
基于MATLAB的信道編碼分析_第5頁
已閱讀5頁,還剩10頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、信道編碼結課論文題目:基于MATLAB的通信系統仿真 信道編碼對通信系統性能的影響專業: 通信工程姓名:崔校通 學號: 201300484316日期: 2016.12.22目錄一、引言2二、信道編碼理論22.1、信道編碼的目的22.2、信道編碼的實質32.3、 信道編碼公式3三、線性分組碼的編譯碼原理33.1、 線性分組碼的基本概念33.2、生成矩陣和校驗矩陣4四、MATLAB仿真54.1仿真54.1.1原理說明54.1.2各子函數說明54.2仿真源程序54.2.1信道編碼54.2.2信道解碼64.2.3交織64.2.4解交織74.2.5信道衰落7六 程序及仿真圖81、 file1:信道編碼對

2、通信系統性能的影響,有無信道編碼的影響82、file2:在周期性深衰落的信道條件下,交織對通信系統性能的影響103、 file3:在交織條件下,不同時長的周期性深衰落對系統性能影響的比較13基于MATLAB的通信系統仿真 信道編碼對通信系統性能的影響摘要:簡述信道編碼理論,詳細說明分組碼的編譯原理、實現方法及檢錯糾錯能力,用MATLAB仿真有無信道編碼條件下對通信系統性能的影響及信道編碼在不同信道下對通信系統性能的影響,如AWGN信道和深衰落信道。關鍵詞:信道編碼、分組碼、MATLAB仿真、性能一、引言提高信息傳輸的有效性和可靠性始終是通信技術所追求的目標,而信道編碼能夠顯著的提升信息傳輸的可

3、靠性。1948年,信息論的奠基人C.E.Shannon在他的開創性論文“通信的數學理論”中,提出了著名的有噪信道編碼定理.他指出:對任何信道,只要信息傳輸速率R不大于信道容量C, 就一定存在這樣的編碼方法:在采用最大似然譯碼時,其誤碼率可以任意小.該定理在理論上給出了對給定信道通過編碼所能達到的編碼增益的上限,并指出了為達到理論極限應采用的譯碼方法.在信道編碼定理中,香農提出了實現最佳編碼的三個基本條件 :(1 )采用隨機編譯碼方式 ; (2 )編碼長度 , 即分組的碼組長度無限 ; (3)譯碼采用最佳的最大似然譯碼算法。二、信道編碼理論2.1、信道編碼的目的在數字通信系統中由于信道內存在加性

4、噪聲及信道傳輸特性不理想等容易造成碼間串擾同時多用戶干擾、多徑傳播和功率限制等也導致錯誤譯碼。為了確保系統的誤比特率指標通常采用信道編碼。信道編碼是為了保證信息傳輸的可靠性、提高傳輸質量而設計的一種編碼。它是在信息碼中增加一定數量的多余碼元,使碼字具有一定的抗干擾能力。2.2、信道編碼的實質 信道編碼的實質就是在信息碼中增加一定數量的多余碼元(稱為監督碼元),使它們滿足一定的約束關系,這樣由信息碼元和監督碼元共同組成一個由信道傳輸的碼字。舉例而言,欲傳輸k位信息,經過編碼得到長為n(n>k)的碼字,則增加了 n - k = r 位多余碼元,我們定義 R = k / n 為編碼效率。【2】

5、2.3、 信道編碼公式 令信息速率為fb,經過編碼以后的速率為ft,定義:Rfb/ft為編碼率。則對于任何一個信道,總存在一個截止速率R0,只要R<R0,總可以達到:BER<CR2-nR0,其中CR為某個常數,n為編碼的約束長度。 對于等概二進碼、AWGN信道,有:三、線性分組碼的編譯碼原理3.1、 線性分組碼的基本概念一個n ,k線性分組碼, 是把信息劃成k個碼元為一段(稱為信息組), 通過編碼器變成長為n個 碼元的一組, 作為n, k線性分組碼的一個碼字。 若每位碼元的取值有q種(q為素數冪), 則共有qk個碼字。 n長的數組共有qn組, 在二進制情況下, 有2n個數組。 顯然

6、, qn個n維數組(n重)組成一個GF(q)上的n維線性空間。 如果qk(或2k)個碼字集合構成了一個k維線性子空間, 則稱它是一個n ,k線性分組碼。即將k維k重信息空間的元素線性映射到n維n重矢量空間(接收矢量/收碼) 的k維n重子空間(碼空間)。如下圖為7,3碼 3.2、生成矩陣和校驗矩陣 生成矩陣:G稱為生成矩陣,因為可以用它產生整個碼組A,即有生成矩陣的性質:具有IkQ形式的生成矩陣稱為典型生成矩陣。由典型生成矩陣得出的碼組A中,信息位的位置不變,監督位附加于其后。這種形式的碼組稱為系統碼。 矩陣G的各行也必須是線性無關的。如果已有k個線性無關的碼組,則可以將其用來作為生成矩陣G,并

7、由它生成其余碼組。【3】監督矩陣:監督矩陣可用來校驗和糾錯。四、MATLAB仿真4.1仿真4.1.1原理說明采用模塊化編程,力求把每個功能獨立成各個模塊,讓程序更清晰。首先介紹各個子程序及其實現的基本功能。此次還采用了交織與解交織,其主要作用是,一個實際上的突發信道,經過發送端交織和接收端解交織的信息處理后,就完全等效成一個隨機獨立差錯信道,信道交織編碼實際上就是一類信道改造技術,它將一個突發信道改造成一個隨機獨立差錯信道。它本身并不具備信道編碼檢、糾錯功能,起到信號預處理的作用4.1.2各子函數說明運行環境為Matlab7.0版本通信過程的每個模塊寫成子程序函數:Channelcoding

8、為信道編碼函數Channeldecoding 為信道解碼糾錯子函數Interwaving 為交織子函數Deinterwaving 為解交織子函數addfade為向信道加入衰落參數的子函數awgn 為庫函數,向信源加高斯白噪聲pskmod 為庫函數,用于信號調制,輸出為復數pskdemod 為庫函數,用于信號解調4.2仿真源程序4.2.1信道編碼%信道編碼子函數,sym為編碼碼流,G為生成矩陣,k為編碼方式的長度,如(7,4)碼的4function bitcoded=channelcoding(sym,G,k)A=vec2mat(sym,k);U=A*G;U=mod(U,2);bitcoded=

9、reshape(U',1,);4.2.2信道解碼function bitdecoded=channeldecoding(recode,Etab,Smatrix,H,n,k)% 前向糾錯函數,實現糾錯功能% bidecoded為糾錯后返回的比特流% recode為輸入的比特流% E為錯誤圖樣表,S為對應的伴隨式表% H為監督矩陣,n,k為碼的類型,如(7,4)碼,n=7,k=4 row=length(recode)/n; %行數 E=zeros(row,n); %錯誤圖樣 RM=zeros(row,n); %糾錯之后的矩陣 R=vec2mat(recode,n); S=R*H'

10、%伴隨矩陣 S=mod(S,2); for i=1:row for j=1:2(n-k) %查表糾錯 if(S(i,:)=Smatrix(j,:) E(i,:)=Etab(j,:); RM(i,:)=R(i,:)+E(i,:); RM(i,:)=mod(RM(i,:),2); break; end end end bitdecoded=reshape(RM',1,); %轉化為比特流4.2.3交織function retbit=interweaving(bitstream,row,col)%功能:實現對輸入比特的交積% retbit為交積后返回的比特流向量% bitstream 為需要

11、交積的比特流向量% row 和 col為交積器的行和列,% 通過改變col就可以改變交積深度 retbit=zeros(1,length(bitstream); bitarr=vec2mat(bitstream,row); bitarr=bitarr' for i=1:length(bitstream)/(row*col) temp=bitarr(:,(i-1)*col+1):i*col); retbit(1,(i-1)*(row*col)+1):(i*(row*col)=reshape(temp',1,); end 4.2.4解交織function retbits=deint

12、erweaving(bitstream,row,col)%功能:實現對輸入比特的解交積%rebits為解交積后返回的比特流% bitstream輸入的比特流%row 和 col為交積器的行和列,通過改變col就可以改變交積器的長度 retbits=zeros(1,length(bitstream); bitarr=vec2mat(bitstream,col); for i=1:length(bitstream)/(row*col) temp=bitarr(i-1)*row+1:i*row,:); retbits(1,(i-1)*row*col+1:i*row*col)=reshape(temp

13、,1,); end4.2.5信道衰落function code=addfade(modcode,Tf,isperiod,isfade)%功能:向傳輸序列modcode疊加衰落性信道的衰落參數k(t)%code為加入衰減參數之后返回的序列。% modcode為調制之后的序列% Tf 為衰落時間,以ms為單位,小于10ms,% Tf=1,表示衰落1ms% isperiod 周期衰落和一次性衰落的標志,% isperiod=1表示周期性衰落,0表示一次性衰落% isfade表示是否存在衰落,1存在,0不存在衰落直接返回modcodeif(isfade=1) if(isperiod=1) %周期性衰落

14、 for k=1:length(modcode)/(100*Tf) a=(k-1)*100*Tf+31; b=(k-1)*100*Tf+30+10*Tf; modcode(1,a:b)=0.1*modcode(1,a:b); end else %一次衰落 a=31; b=30+10*Tf; modcode(1,a:b)=0.1*modcode(1,a:b); end code=modcode;else code=modcode;end六 程序及仿真圖1、 file1:信道編碼對通信系統性能的影響,有無信道編碼的影響執行時間:Elapsed time is 355.023518 seconds.

15、ticclc%功能:有無信道編碼性能比較M=2; %進制b=log2(M) ; %每符號比特數n=128*10000 ; %符號數G=1 1 1 1 0 0 0;1 0 1 0 1 0 0;0 1 1 0 0 1 0;1 1 0 0 0 0 1 ; %生成矩陣H=1 0 0 1 1 0 1;0 1 0 1 0 1 1;0 0 1 1 1 1 0 ; %監督矩陣Etab= 0 0 0 0 0 0 0;0 0 0 0 0 0 1; %錯誤圖樣 0 0 0 0 0 1 0;0 0 0 0 1 0 0; 0 0 0 1 0 0 0;0 0 1 0 0 0 0; 0 1 0 0 0 0 0;1 0 0

16、0 0 0 0;Smatrix=Etab*H' %對應的伴隨式sym=randint(n,1,M);sym=de2bi(sym,'left-msb'); %模擬信源編碼bitcoded=channelcoding(sym,G,4); %信道編碼,(7,4)碼modbit=pskmod(bitcoded,M);%在傳輸序列modbit加入AWGN噪聲S nr=0:0.2:15; %噪聲為0到15dL=length(snr)ser=zeros(1,L);ser2=zeros(1,L);for k=1:L y=awgn(modbit,10*log10(b)+snr(k),&#

17、39;measured'); zsym=pskdemod(y,M); %復數解調 zbit=de2bi(zsym,'left-msb'); recode=reshape(zbit',1,); Rstream=recode; err=(Rstream=bitcoded); errnum=sum(err); ser(k)=log10(errnum/length(bitcoded); %糾錯 bitdecoded=channeldecoding(Rstream,Etab,Smatrix,H,7,4); err=(bitdecoded=bitcoded); errbit

18、s=sum(err); ser2(k)=log10(errbits/(length(bitcoded);endplot(snr,ser,'b-*')hold onplot(snr,ser2,'r-o')grid onlegend('沒有信道編碼','信道編碼');xlabel('Eb/No(dB)');ylabel('SER');title('2PSK有無信道編碼性能比較');toc % Elapsed time is 278.288819 seconds.程序運行時間結論:由上圖在

19、較高信噪比的時候編碼增益很明顯大大提高了誤碼性能,但是在低信噪被的時候編碼增益較小甚至可能是負值,則是因為編碼后信息比特能量擴散到多個編碼比特上,每個編碼比特能量有所降低,如果信噪比低的話,編碼冗余帶來的性能增益可能彌補不了編碼比特的能量的降低,因此信道中信噪比的波動會顯著降低編碼性能2、file2:在周期性深衰落的信道條件下,交織對通信系統性能的影響ticclc%功能:有無信道編碼性能比較M=2; %進制b=log2(M) ; %每符號比特數n=128*10000 ; %符號數interrow=8;intercol=10;%交積矩陣的行和列G=1 1 1 1 0 0 0;1 0 1 0 1

20、0 0;0 1 1 0 0 1 0;1 1 0 0 0 0 1 ; %生成矩陣H=1 0 0 1 1 0 1;0 1 0 1 0 1 1;0 0 1 1 1 1 0 ; %監督矩陣Etab= 0 0 0 0 0 0 0;0 0 0 0 0 0 1; %錯誤圖樣 0 0 0 0 0 1 0;0 0 0 0 1 0 0; 0 0 0 1 0 0 0;0 0 1 0 0 0 0; 0 1 0 0 0 0 0;1 0 0 0 0 0 0;Smatrix=Etab*H' %對應的伴隨式sym=randint(n,1,M);sym=de2bi(sym,'left-msb'); %模

21、擬信源編碼bitcoded=channelcoding(sym,G,4); %信道編碼,(7,4)碼interv=interweaving(bitcoded,interrow,intercol); %交積向量modbit=pskmod(bitcoded,M);modbit2=pskmod(interv,M);%向傳輸序列modcode疊加衰落性信道的衰落參數k(t)modbitfade=addfade(modbit,1,1,1);modbitfade2=addfade(modbit2,1,1,1);%1ms周期性衰落modbitfade3=addfade(modbit2,2,1,1);%衰落時

22、長2ms%在傳輸序列modbit加入AWGN噪聲snr=0:0.2:25; %噪聲為0到25dL=length(snr)ser=zeros(1,L);ser2=zeros(1,L);for k=1:L y=awgn(modbitfade,10*log10(b)+snr(k),'measured'); y2=awgn(modbitfade2,10*log10(b)+snr(k),'measured'); y3=awgn(modbitfade3,10*log10(b)+snr(k),'measured'); zsym=pskdemod(y,M); %

23、復數解調 zsym2=pskdemod(y2,M); zsym3=pskdemod(y3,M); zbit=de2bi(zsym,'left-msb'); zbit2=de2bi(zsym2,'left-msb'); zbit3=de2bi(zsym3,'left-msb'); recode=reshape(zbit',1,); recode2=reshape(zbit2',1,); recode3=reshape(zbit3',1,); deinterv=deinterweaving(recode2,interrow,i

24、ntercol);%解交積向量 deinterv3=deinterweaving(recode3,interrow,intercol); Rstream=recode; Rstream2=deinterv; Rstream3=deinterv3; %糾錯 bitdecoded=channeldecoding(Rstream,Etab,Smatrix,H,7,4); bitdecoded2=channeldecoding(Rstream2,Etab,Smatrix,H,7,4); bitdecoded3=channeldecoding(Rstream3,Etab,Smatrix,H,7,4);

25、err=(bitdecoded=bitcoded); errbits=sum(err); ser(k)=log10(errbits/(length(bitcoded); err2=(bitdecoded2=bitcoded); errbits2=sum(err2); ser2(k)=log10(errbits2/(length(bitcoded); err3=(bitdecoded3=bitcoded); errbits3=sum(err3); ser3(k)=log10(errbits3/(length(bitcoded);endplot(snr,ser,'b-*')hold onplot(snr,ser2,'r-o')hold onplot(snr,ser3,'k-+')grid onlegend('有信道編碼沒有交織1ms衰落','有信道

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論