下載本文檔
版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、精選優(yōu)質文檔-傾情為你奉上%survivor state是一個矩陣,它顯T了通過網格的最優(yōu)路徑,這個矩陣通過一個單獨的函數metric(x,y)給出。%其中G是一個矩陣,它的任一行決定了從移位寄存器到模2加法器的連接方式.為生成矩陣%這里,我們做了一個簡單的(2,1,7)卷積碼編碼器。k=1;G=1 0 1 1 0 1 1;1 1 1 1 0 0 1;%G1=133,G2=171%以下3種輸入序列,可任選一種%input=0 0 0 0 0 0 0;%全0輸入%input=1 1 1 1 1 1 1;%全1輸入input=round(rand(1,7)*1);%隨機系列輸入,也可用 randi
2、nt(1,7,0 1)figure;plot(input,'*r') %figure1:畫圖:目標input,紅色(red,r),形狀為*s=input;g1=G(1,:);g2=G(2,:);c1=conv(s,g1);%作卷積%disp(c1);c2=conv(s,g2);%disp(c2);n=length(c1);%7位輸入時n=13c=zeros(1,2*n);%生成全0矩陣,1*26%disp(c);for i=1:n c(2*i-1)=c1(i);c(2*i)=c2(i);%兩個模2加法器分別輸出卷積結果序列后,由旋轉開關讀取的結果(此時僅為卷積結果,非2進制0/
3、1)endfor i=1:2*n if(mod(c(i),2)=0)% mod(c(i),2)=0意思:c(i)除以2,余數為0 c(i)=0; else c(i)=1; endendoutput=c;channel_output=output;%輸出矩陣%disp(channel_output);figure;plot(output,'*b') %畫圖:目標:卷積碼編碼輸出,藍色(blue,b)*%以上為編碼部分,以下為維特比譯碼n=size(G,1);%取矩陣G的行數,故n=2。即得到輸出端口,即2個模2加法器%檢驗G的維數if rem(size(G,2),k)=0 %當矩
4、陣G的列數不為k的整數倍時,rem為求余函數 error('Size of G and k do not agree')%報錯endif rem(size(channel_output,2),n)=0 %當輸出矩陣的列數不是輸出端口n的整數倍時。(注:size(channel_output,2)=26,2個模2加法器合成的輸出) error('channle output not of the right size')endL=size(G,2)/k;%得出移位數,即寄存器個數,此例程為7%由于L-1個寄存器的狀態(tài)即可表示出輸出狀態(tài),所以總的狀態(tài)數number_
5、of_states可由前L-1個寄存器的狀態(tài)組合來確定number_of_states=2(L-1)*k);%此例程中26,移位寄存器組的狀態(tài)數為64個%產生狀態(tài)轉移矩陣,輸出矩陣和輸入矩陣for j=0:number_of_states-1 %表示當前寄存器組的狀態(tài)。因狀態(tài)從0開始,所以循環(huán)為從0到number_of_states-1 for t=0:2k-1 %k位輸入端的信號組成的狀態(tài),總的狀態(tài)數為2k,所以循環(huán)為從0到2k-1 next_state,memory_contents=nxt_stat(j,t,L,k);%nxt_stat完成從當前的狀態(tài)和輸入的矢量得出下寄存器組的一個狀態(tài)
6、 input(j+1,next_state+1)=t;%input數組值是用于記錄當前狀態(tài)到下一個狀態(tài)所要的輸入信號矢量 %input數組的維數:一維坐標x=j+1指當前狀態(tài)的值,二維坐標y=next_state+1指下一個狀態(tài)的值 %由于Matlab中數組的下標是從1開始的,而狀態(tài)值是從0開始的,所以以上坐標值為:狀態(tài)值+1 branch_output=rem(memory_contents*G',2);%branch_output用于記錄在狀態(tài)j下輸入1時的輸出 nextstate(j+1,t+1)=next_state;%nextstate狀態(tài)轉移矩陣,記錄了當前狀態(tài)j下輸入1時
7、的下一個狀態(tài) output(j+1,t+1)=bin2deci(branch_output);%output記錄了當前狀態(tài)j下輸入1時的輸出(十進制) endendinput;state_metric=zeros(number_of_states,2);%state_metric數組用于記錄譯碼過程在每個狀態(tài)時的漢明距離,大小為number_of_states,2 %(:,1)為當前狀態(tài)位置的漢明距離,為確定值;(:,2)為當前狀態(tài)加輸入得到的下一個狀態(tài)漢明距離,為臨時值depth_of_trellis=length(channel_output)/n;%depth_of_trellis用于記
8、錄網格圖的深度channel_output_matrix=reshape(channel_output,n,depth_of_trellis);%channel_output_matrix為輸出矩陣,每一列為一個輸出狀態(tài) %reshape改變原矩陣形狀,將channel_output矩陣變?yōu)閚行depth_of_trellis列矩陣survivor_state=zeros(number_of_states,depth_of_trellis+1);%survivor_state描述譯碼過程中在網格圖中的路徑row_survivor col_survivor=size(survivor_state
9、);%開始非尾信道輸出的解碼%i為段,j為何一階段的狀態(tài),t為輸入for i=1:depth_of_trellis-L+1 %i指示網格圖的深度 flag=zeros(1,number_of_states);%flag矩陣用于記錄網格圖中的某一列是否被訪問過 if i<=L step=2(L-i)*k);%在網格圖的開始處,并非所有的狀態(tài)都取到 else %用step來說明這個變化 step=1; %狀態(tài)數從1到2到4,直到number_of_states end for j=0:step:number_of_states-1 %j表示寄存器的當前狀態(tài) for t=0:2k-1 %t為當
10、前的輸入 branch_metric=0; %用于記錄碼間距離 binary_output=deci2bin(output(j+1,t+1),n);%將當前狀態(tài)下輸入狀態(tài)t時的輸出output轉為n位2進制,以便計算碼間距離。(說明:數組坐標大小變化同上) for tt=1:n %計算實際的輸出碼同網格圖中此格某種輸出的碼間距離 branch_metric=branch_metric+metric(channel_output_matrix(tt,i),binary_output(tt); end %選擇碼間距離較小的路徑,即當下一個狀態(tài)沒有被訪問時就直接賦值,否則,用比它小的將其覆蓋 if
11、(state_metric(nextstate(j+1,t+1)+1,2)>state_metric(j+1,1)+branch_metric)|flag(nextstate(j+1,t+1)+1)=0) state_metric(nextstate(j+1,t+1)+1,2)=state_metric(j+1,1)+branch_metric;%下一狀態(tài)的漢明距離(臨時值)=當前狀態(tài)的漢明距離(確定值)+碼間距離 survivor_state(nextstate(j+1,t+1)+1,i+1)=j;%survivor_state數組的一維坐標為下一個狀態(tài)值,二維坐標為此狀態(tài) %在網格圖
12、中的列位置,記錄的數值為當前狀態(tài),這樣就可以從網格中某位置的 %某個狀態(tài)得出其對應上一個列位置的狀態(tài),從而能很方便的完成譯碼過程。 flag(nextstate(j+1,t+1)+1)=1;%指示該狀態(tài)已被訪問過 end end endstate_metric=state_metric(:,2:-1:1);%移動state_metric,將臨時值移為確定值end%開始尾信道輸出的解碼for i=depth_of_trellis-L+2:depth_of_trellis flag=zeros(1,number_of_states); %狀態(tài)數從number_of_statesnumber_of_
13、states/221 %程序說明同上,只不過輸入矢量只為0 last_stop=number_of_states/(2(i-depth_of_trellis+L-2)*k); for j=0:last_stop-1 branch_metric=0; binary_output=deci2bin(output(j+1,1),n); for tt=1:n branch_metric=branch_metric+metric(channel_output_matrix(tt,i),binary_output(tt); end if (state_metric(nextstate(j+1,1)+1,2
14、)>state_metric(j+1,1)+branch_metric)|flag(nextstate(j+1,1)+1)=0) state_metric(nextstate(j+1,1)+1,2)=state_metric(j+1,1)+branch_metric; survivor_state(nextstate(j+1,1)+1,i+1)=j; flag(nextstate(j+1,1)+1)=1; end endstate_metric=state_metric(:,2:-1:1);end%從最優(yōu)路徑產生解碼輸出 %譯碼過程可從數組survivor_state的最后一個位置逐級向
15、前譯碼%由段得到狀態(tài)序列,再由狀序列從input矩陣中得到該段的輸出%數組survivor_state的最后的輸出狀態(tài)肯定為“0”state_sequence=zeros(1,depth_of_trellis+1);size(state_sequence);state_sequence(1,depth_of_trellis)=survivor_state(1,depth_of_trellis+1);%逐級譯碼過程for i=1:depth_of_trellisstate_sequence(1,depth_of_trellis-i+1)=survivor_state(state_sequence
16、(1,depth_of_trellis+2-i)+1),depth_of_trellis-i+2);%由后向前endstate_sequence;decoder_output_matrix=zeros(k,depth_of_trellis-L+1);for i=1:depth_of_trellis-L+1 dec_output_deci=input(state_sequence(1,i)+1,state_sequence(1,i+1)+1);%根據數組input的定義來得出從當前狀態(tài)到下一個狀態(tài)的輸入信號矢量 dec_output_bin=deci2bin(dec_output_deci,k);%轉換成2進制信號 decoder_output_matrix(:,i)=dec_output_bin(k:-1:1)'%將每一次譯碼存入譯碼輸出矩陣decoder_output_mat
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025版土地流轉承包項目合作開發(fā)投資合同范本3篇
- 2025年代理費用協議范本
- 2025年銷售人員任職協議書:互聯網銷售團隊建設協議2篇
- 2025年度風力發(fā)電場建設與運營合同范本4篇
- 二零二五年藝術品鑒定兼職人員保密責任書3篇
- 基于2025年度房產政策的商品房銷售合同
- 2025年度跨境電子商務稅收風險擔保協議4篇
- 二零二五年度直播主播與影視作品合作合同
- 2025年度供應鏈金融貨物沖抵貨款風險控制協議
- 二零二五年度門面房房屋租賃押金合同
- 寒潮雨雪應急預案范文(2篇)
- 垃圾車駕駛員聘用合同
- 變壓器搬遷施工方案
- 單位轉賬個人合同模板
- 八年級語文下冊 成語故事 第十五課 諱疾忌醫(yī) 第六課時 口語交際教案 新教版(漢語)
- 2024年1月高考適應性測試“九省聯考”數學 試題(學生版+解析版)
- EPC項目采購階段質量保證措施
- T-NAHIEM 101-2023 急診科建設與設備配置標準
- 四川2024年專業(yè)技術人員公需科目“數字經濟與驅動發(fā)展”參考答案(通用版)
- 煤炭裝卸服務合同
- 廣東省佛山市順德區(qū)2023學年中考一模物理試題(含答案解析)
評論
0/150
提交評論