資源描述:
《卷積碼編譯碼實驗報告》由會員上傳分享,免費在線閱讀,更多相關(guān)內(nèi)容在學(xué)術(shù)論文-天天文庫。
1、I門理工學(xué)陵實驗報告書課程名稱:信息論與編碼實驗一、實驗?zāi)康?、使用MATLAB進(jìn)行卷積碼編/解碼器的代碼編寫、運行、仿真等操作。2、熟練掌握MATLAB軟件、語句。3、理解卷積碼編解碼器的原理、知識。二、實驗環(huán)境MATLAB環(huán)境二、實驗要求(1)實驗前編寫源程序、準(zhǔn)備測試數(shù)據(jù)。(2)在MATLAB環(huán)境下完成程序的編輯、編譯、運行,獲得程序結(jié)果。如果結(jié)果有誤,應(yīng)找出原因,并設(shè)法更正之。四、實驗原理1、編碼原理卷積碼編碼的當(dāng)前輸出v(l)不僅與當(dāng)前輸入消息u(l)相關(guān),還與此去前輸入的m個消息u(l-l),…,u(l-m)相關(guān),即v(l)=f
2、(u(l),u(l-l),…,u(l-m)),1=0,1,2-卷積編碼電路中移位寄存器初態(tài)可設(shè)定為全0,電路為按段工作方式,即對每段k比特輸出入,產(chǎn)生一段n比特輸出。任意一輸入段u(l-h)與輸出v(l)的關(guān)系都是一個特殊的(n,k)線性分組碼的編碼關(guān)系,即存在k*n的二元矩陣(P,使得v(l)=u(1-h)?G/,,h=0,l,2"",m因此對于消息段序列u=(u(0),u(l),…,u(m),u(m+l),…),相應(yīng)的輸出端序列為v=(v(0),v⑴,…,v(m),v(m+l),并滿足v(0)=u(0)G°v(l)=u(0)Gl+u(l
3、)G0v(m)=u(0)Gw+u(1)Gm~l+(m-l)Gl+u(m)G()m廣V(m+1)=u(1)G+u(2)O-1…+u(m)G1+u(m+1)W卷積編碼電路在按段工作方式下只需存儲或者記憶m段的消息輸入,電路中輸入移位寄存器最多只有wA個有效的寄存器單元,而輸出移位寄存器僅起一個并串轉(zhuǎn)換作用。因此稱參量m為卷積嗎的記憶長度(段)2、維比特譯碼原理它的基本思想是把接收到的矢量,和網(wǎng)格圖上諸種可能的路徑比較,刪去距離大的路徑,保留距離小的路徑,以距離最小路徑作為發(fā)碼的估值五、實驗內(nèi)容在MATLAB環(huán)境下卷積碼編/解碼器的實現(xiàn)。1、主函
4、數(shù)main.niclear;clc;msg=randint(l,20,[0,1])word=encode_conv213(msg)word(l)=?word⑴;%信道中存在污染,人為的模擬傳輸過word(10)=?word(10);%程屮的出錯碼字word(15)=?word(15);word1=wordmsg_1=decode_conv213(word1)msg-msg_l2、狀態(tài)積state_machine>m[output,nextState]=state_machine(input,current_state)output(1)=m
5、od(current_state(1)+current一state(3),2);output(2)=mod(input+current_state(2)+current一state(l),2);nextState(1)=current_state(2);nextState(2)=current_state(3);nextState(3)=input;3、漢明距離hamming_distance.miiiiKiiodistance=hamming_distance(a,b)temp=a+b;temp=mod(temp,2);distance=
6、sum(temp);4x213編碼程序encode_conv213.mImuii()門word=encode_conv213(msg)word=zeros(l,length(msg)*2);current=[000];l()ri=1:length(msg)[out,next]=statemachine(msg(i),current);current=next;word(2*i-l)=out(1);word(2*i)==out(2);End5、213維比特譯碼decode_conv213.mfunctionmsg=decode_conv213
7、(word)chip=10;=%初始狀態(tài)選十個信息fori=1:2八chip=de2bi(i-l,chip);%把所有可能性按二進(jìn)制輸出W(i,:)=encode_conv213(M(i,:));%得到相應(yīng)的二進(jìn)制編譯后的碼字D(i)=hamming_distance(W(i,:),word(1:chip*2));%與出錯碼字對比得到漢明距end[val,index]=sort(D);%val屮存漢明距從小到大排列,index屮存對應(yīng)val數(shù)據(jù)所在位置ret_msg=zeros(1,length(word)/2);%開肪評出奶'的存放2間f
8、ori=1:6%1024種選擇6種最小距離,并輸出在ret_msg中,最小漢明距存于ret_disret_msg(i,1:chip)=M(index(i),:);ret_di$(