




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
1、精選優(yōu)質(zhì)文檔-傾情為你奉上卷積碼編碼維特比譯碼實驗設(shè)計報告SUN一、實驗?zāi)康恼莆站矸e碼編碼和維特比譯碼的基本原理,利用了卷積碼的特性, 運用網(wǎng)格圖和回溯以得到譯碼輸出。二、實驗原理1.卷積碼是由連續(xù)輸入的信息序列得到連續(xù)輸出的已編碼序列。其編碼器將k個信息碼元編為n個碼元時,這n個碼元不僅與當(dāng)前段的k個信息有關(guān),而且與前面的(m-1)段信 息有關(guān)(m為編碼的約束長度)。2.一般地,最小距離d表明了卷積碼在連續(xù)m段以內(nèi)的距離特性,該碼可以在m個連續(xù)碼流內(nèi)糾正(d-1)/2個錯誤。卷積碼的糾錯能力不僅與約束長度有關(guān),還與采用的譯碼方式有關(guān)。3. 維特比譯碼算法基本原理是將接收到的信號序列和所有可能
2、的發(fā)送信號序列比較,選擇其中漢明距離最小的序列認(rèn)為是當(dāng)前發(fā)送序列。 卷積碼的Viterbi 譯碼是根據(jù)接收碼字序列尋找編碼時通過網(wǎng)格圖最佳路徑的過程,找到最佳路徑即完成了譯碼過程,并可以糾正接收碼字中的錯誤比特。4.所謂“最佳”, 是指最大后驗條件概率:P( C/ R) = max P ( Cj/ R) , 一般來說, 信道模型并不使用后驗條件概率,因此利用Beyes 公式、根據(jù)信道特性出結(jié)論:max P ( Cj/ R) 與max P ( R/ Cj) 等價。考慮到在系統(tǒng)實現(xiàn)中往往采用對數(shù)形式的運算,以求降低運算量,并且為求運算值為整數(shù)加入了修正因子a1 、a2 。 令M ( R/ Cj)
3、= log P ( R/ Cj) =a1 (log P( Rm/ Cmj ) + a2) 。 其中, M 是組成序列的碼字的個數(shù)。因此尋找最佳路徑, 就變成尋找最大M( R/ Cj) , M( R/ Cj) 稱為Cj 的分支路徑量度,含義為發(fā)送Cj 而接收碼元為R的似然度。5.卷積碼的viterbi譯碼是根據(jù)接收碼字序列尋找編碼時通過網(wǎng)格圖最佳路徑的過程,找到最佳路徑即完成了譯碼過程并可以糾正接收碼字中的錯誤比特。三、實驗代碼#include<stdio.h> #include "Conio.h" #define N 7 #include "math.
4、h" #include <stdlib.h> #include<time.h> #define randomize() srand(unsigned)time(NULL) encode( unsigned int *symbols, /*編碼輸出*/ unsigned int *data, /*編碼輸入*/ unsigned int nbytes, /*nbytes=n/16,n為實際輸入碼字的數(shù)目*/ unsigned int startstate /*定義初始化狀態(tài)*/ ) /卷積碼編碼/ unsigned int j; unsigned int inpu
5、t,a1=0,a2=0,a3=0,a4=0,a5=0,a6=0; for(j=0;j<nbytes;j+) input=*data; data+; *symbols = inputa1a2a3a6; /c1(171)symbols+; *symbols = inputa2a3a5a6; /c2(133)symbols+; a2=a1; a1=input; return 0; int trandistance(int m,int state1, int state2) /*符號m與從state1到state2時輸出符號的漢明距離,如果state1無法到state2則輸出度量值為100*/
6、int c; int sym,sym1,sym2; sym1=(state2>>1)&1)(state2&1)(state1&1); sym2=(state2>>1)&1)(state1&1); sym=(sym1<<1) | sym2; if ( (state1&2)>>1)=(state2&1) c=(m&1)(sym&1)+(m>> 1)&1)(sym >> 1)&1); else c=10000; return(c); int
7、traninput(int a,int b) /*狀態(tài)從a到b時輸入卷積碼的符號*/ int c; c=(b&2)>>1); return(c); int tranoutput(int a,int b) /*狀態(tài)從a到b時卷積碼輸出的符號*/ int c,s1,s2; s1=(a&1)(a&2)>>1)(b&2)>>1); s2=(a&1)(b&2)>>1); c=(s1<<1)|s2; return(c); /維特比譯碼/void viterbi( int initialstate,
8、/*定義解碼器初始狀態(tài)*/ int *viterbiinput, /*解碼器輸入碼字序列*/ int *viterbioutput /*解碼器輸出碼字序列*/ ) struct sta /*定義網(wǎng)格圖中每一點為一個結(jié)構(gòu)體,其元素包括*/ int met; /*轉(zhuǎn)移到此狀態(tài)累計的度量值*/ int value; /*輸入符號 */ struct sta *last; /*及指向前一個狀態(tài)的指針*/ ; struct sta state4N; struct sta *g,*head; int i,j,p,q,t,r,u,l; for(i=0;i<4;i+) /* 初始化每個狀態(tài)的度量值*/
9、for(j=0;j<N;j+) stateij.met=0;for(l=0;l<4;l+) statel0.met=trandistance(*viterbiinput,initialstate,l); statel0.value=traninput(initialstate,l); statel0.last=NULL; viterbiinput+; /*擴展第一步幸存路徑*/ for(t=1;t<N;t+) for(p=0;p<4;p+) statept.met=state0t-1.met+trandistance(*viterbiinput,0,p); statep
10、t.value=traninput(0,p); statept.last=&state0t-1; for(q=0;q<4;q+) if(stateqt-1.met+trandistance(*viterbiinput,q,p)<statept.met) statept.met=stateqt-1.met+trandistance(*viterbiinput,q,p); statept.value=traninput(q,p); statept.last=&stateqt-1; viterbiinput+; /*計算出剩余的幸存路徑*/ r=state0N-1.met
11、; /*找出n步后度量值最小的狀態(tài)準(zhǔn)備回溯路由*/ g=&state0N-1; for(u=N;u>0;u-) /*向前遞歸的找出最大似然路徑 */ *(viterbioutput+(u-1)=g->value; g=g->last; /* for(u=0;u<8;u+) *(viterbioutput+u)=stateu2.met; */ /*此行程序可用于檢測第n列的 度量值*/ void decode(unsigned int *input, int *output,int n) int viterbiinput100; int j; for(j=0;j&
12、lt;n+2;j+) viterbiinputj=(inputj*2<<1)|inputj*2+1; viterbi(0,viterbiinput,output); void main() unsigned int encodeinput100,wrong10=0,0,0,0,0,0,0,0,0,0,encodeoutput100; int n=5,i,m,j=0,decodeinput100,decodeoutput100; randomize(); for(i=0; i<n; i+) encodeinputi=rand()%2; encodeinputn= encodei
13、nputn+1=0; encode(encodeoutput,encodeinput,n+2,0); printf("the input of encoder is :n"); /信息源輸入的信息碼(隨機產(chǎn)生) for(i=0;i<n; i+) printf("%2d",encodeinputi); printf("n"); printf("the output of encoder is :n"); /編碼之后產(chǎn)生的卷積碼 for(i=0;i<(n+2)*2;i+) printf("%2d&
14、quot;,encodeoutputi); if(i%20=19) printf("n"); printf("n"); printf("please input the number of the wrong bitn"); /信道傳輸收到干擾而產(chǎn)生的錯誤碼 scanf("%d",&m); printf("please input the positions of the wrong bit(0-9)n"); for(i=0;i<m;i+) scanf("%d"
15、,&wrongm); if(encodeoutputwrongm=0) encodeoutputwrongm=1; else encodeoutputwrongm=0; printf("the input of decoder is :n"); for(i=0;i<(n+2)*2;i+) printf("%2d",encodeoutputi); if(i%20=19) printf("n"); printf("n"); decode(encodeoutput,decodeoutput,n+2); printf("the output of decoder is :n"); for(i=0;i<n;i+) printf("%2d",
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 標(biāo)識標(biāo)牌等制作安裝合同范本
- 設(shè)備技術(shù)研究開發(fā)合同范本
- 音頻制作合同范本
- 低價藍牙耳機轉(zhuǎn)讓合同范本
- 合同范本簽訂
- 臥式加工中心合同范本
- 分租經(jīng)營合同范本
- 合租養(yǎng)蝦合同范例
- 包裝商品采購合同范本
- 加油站油卡合同范本
- 司機安全駕駛培訓(xùn)課件
- 硬化性肺泡細胞瘤-課件
- 簡明新疆地方史趙陽
- 狹窄性腱鞘炎中醫(yī)臨床路徑及表單
- Q∕SY 19001-2017 風(fēng)險分類分級規(guī)范
- 智慧消防綜合解決方案
- 市場營銷組合策略及營銷戰(zhàn)略課件
- 信息技術(shù)基礎(chǔ)ppt課件(完整版)
- DGJ 08-70-2021 建筑物、構(gòu)筑物拆除技術(shù)標(biāo)準(zhǔn)
- 2022年義務(wù)教育語文課程標(biāo)準(zhǔn)(2022版)解讀【新課標(biāo)背景下的初中名著閱讀教學(xué)質(zhì)量提升思考】
- 屋面網(wǎng)架結(jié)構(gòu)液壓提升施工方案(50頁)
評論
0/150
提交評論