亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? viterbi.m

?? 包括各種調制方式的比較
?? M
字號:
function [decoder_output,survivor_state,cumulated_metric]=viterbi(G,k,channel_output) 
%卷積碼的維特比譯碼函數 
%VITERBI		卷積碼的維特比解碼器 
%[decoder_ouput,survivor_state,cumulated_metric]=viterbi(G,k,channel_output) 
%				G是一個n*Lk矩陣,該矩陣的每一行確 
%				定了從移位記錯器到第n個輸出間的連接, 
%				是碼速率。 
%				survivor_state是表示通過網絡的最佳路徑的矩陣。 
%				量度在另一個函數metric(x,y)中給出,而且可根據 
%				硬判決和軟判決來指定。 
%				該算法最小化了量度而不是最大化似然 
n=size(G,1);	%取出矩陣G的一維大小,即得出輸出端口 
	%	檢查大小 
if rem(size(G,2),k)~=0		%當G列數不是k的整數倍時 
   error('Size of G and k do not agree')		%發出出錯信息 
end 
if rem(size(channel_output,2),n)~=0			%當輸出量元素個數不是輸出端口的整數倍時 
   error('Channel output not of the right size')		%發出出錯信息 
end 
L=size(G,2)/k;			%得出移位數,即寄存器的個數 
	%		由于L-1個寄存器的狀態即可表示出輸出狀態, 
	%		所以總的狀態數number_of_states可由前L-1個 
	%		寄存器的狀態組合來確定 
number_of_states=2^((L-1)*k); 
	%	產生狀態轉移矩陣、輸出矩陣和輸入矩陣 
for j=0:number_of_states-1		%j表示當前寄存器組的狀態因為狀態是從零 
   									%開始的,所以循環從0到number_of_states-1 
                               
      for l=0:2^k-1				%l為從k個輸入端的信號組成的狀態,總的狀 
                                 	%態數為2^k,所以循環從0到2^k-1 
                                     
      %	nxt_stat完成從當前的狀態和輸入的矢量得出下寄存器組的一個狀態 
      [next_state,memory_contents]=nxt_stat(j,l,L,k); 
            %	input數組值是用于記錄當前狀態到下一個狀態所要的輸入信號矢量 
      %  input數組的維數:	一維坐標x=j+1指當前狀態的值 
      %					  	二維坐標y=next_state+1指下一個狀態的值 
      %	由于Matlab中數組的下標是從1開始的,而狀態值 
      %	是從0開始的,所以以上坐標值為:狀態值+1 
      input(j+1,next_state+1)=l;	 
      %	branch_output用于記錄在狀態j下輸入l時的輸出 
      branch_output=rem(memory_contents*G',2); 
      %	nextstate數組記錄了當前狀態j下輸入l時的下一個狀態 
      nextstate(j+1,l+1)=next_state; 
      %	output數組記錄了當前狀態j下輸入l時的輸出(十進制) 
      output(j+1,l+1)=bin2deci(branch_output); 
   end 
end 
%		state_metric數組用于記錄譯碼過程在每狀態時的漢明距離 
%		state_metric大小為number_of_states 2,(:,1)當前 
%		狀態位置的漢明距離,為確定值,而(:,2)為當前狀態加輸入 
%		得到的下一個狀態漢明距離,為臨時值 
state_metric=zeros(number_of_states,2); 
%		depth_of_trellis用于記錄網格圖的深度 
depth_of_trellis=length(channel_output)/n; 
%		輸出矩陣,每一列為一個輸出狀態 
channel_output_matrix=reshape(channel_output,n,depth_of_trellis); 
%		survivor_state描述譯碼過程中在網格圖中的路徑 
survivor_state=zeros(number_of_states,depth_of_trellis+1); 
%開始無尾信道輸出的解碼 
for i=1:depth_of_trellis-L+1	%i指示網格圖的深度 
   %		flag矩陣用于記錄網格圖中的某一列是否被訪問過 
   flag=zeros(1,number_of_states); 
   if i<=L 
      step=2^((L-i)*k);		%在網格圖的開始處,并不是所有的狀態都取 
   else							%用step來說明這個變化 
      step=1;					%狀態數從1→2→4→...→number_of_states 
   end 
   for j=0:step:number_of_states-1		%j表示寄存器的當前狀態 
      for l=0:2^k-1					%l為當前的輸入 
         branch_metric=0;			%用于記錄碼間距離 
         %		將當前狀態下輸入狀態l時的輸出output轉為n位二進制,以便 
         %		計算碼間距離(說明:數組坐標大小變化同上)。 
         binary_output=deci2bin(output(j+1,l+1),n); 
         %		計算實際的輸出碼同網格圖中此格某種輸出的碼間距離 
         for ll=1:n 
            branch_metric=branch_metric+metric(channel_output_matrix(ll,i),binary_output(ll)); 
         end 
         %		選擇碼間距離較小的那條路徑 
         %		選擇方法: 
         %				當下一個狀態沒有被訪問時就直接賦值,否則,用比它小的將其覆蓋 
         if((state_metric(nextstate(j+1,l+1)+1,2)>state_metric(j+1,1)... 
               +branch_metric)|flag(nextstate(j+1,l+1)+1)==0) 
            %	下一個狀態的漢明距離(臨時值)=當前狀態的漢明距離(確定值)+ 碼間距離 
            state_metric(nextstate(j+1,l+1)+1,2)=state_metric(j+1,1)+branch_metric; 
            %	survivor_state數組的一維坐標為下一個狀態值,二維坐標為此狀態 
            %	在網格圖中的列位置,記錄的數值為當前狀態,這樣就可以從網格圖中 
            %	某位置的某個狀態得出其對應上一個列位置的狀態,從而能很方便的完 
            %	成譯碼過程。 
            survivor_state(nextstate(j+1,l+1)+1,i+1)=j; 
            flag(nextstate(j+1,l+1)+1)=1;		%指示該狀態已被訪問過 
         end 
      end 
   end 
   state_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); 
   %  狀態數從number_of_states→number_of_states/2→...→2→1 
   %	程序說明同上,只不過輸入矢量只為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 ll=1:n 
         branch_metric=branch_metric+metric(channel_output_matrix(ll,i),binary_output(ll)); 
      end 
      if((state_metric(nextstate(j+1,1)+1,2)>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 
   end 
   state_metric=state_metric(:,2:-1:1); 
end 
%	從最佳路徑中產生解碼 
%	譯碼過程可從數組survivor_state的最后一個位置向前逐級譯碼 
state_sequence=zeros(1,depth_of_trellis+1); 
%	survivor_state數組的最后的輸出狀態肯定是“0” 
state_sequence(1,depth_of_trellis)=survivor_state(1,depth_of_trellis+1); 
%	逐級譯碼過程 
for i=1:depth_of_trellis 
   state_sequence(1,depth_of_trellis-i+1)=survivor_state((state_sequence(1,depth_of_trellis+2-i)... 
      +1),depth_of_trellis-i+2); 
end 
decorder_output_matrix=zeros(k,depth_of_trellis-L+1); 
for i=1:depth_of_trellis-L+1 
   %		根據數組input的定義來得出從當前狀態到下一個狀態的輸入信號矢量 
   dec_output_deci=input(state_sequence(1,i)+1,state_sequence(1,i+1)+1); 
   %		轉成二進制信號 
   dec_output_bin=deci2bin(dec_output_deci,k); 
   %		將一次譯碼存入譯碼輸出矩陣decoder_output_matrix相應的位置 
   decoder_output_matrix(:,i)=dec_output_bin(k:-1:1)'; 
end 
%		按照一維序列形式重新組織輸出 
decoder_output=reshape(decoder_output_matrix,1,k*(depth_of_trellis-L+1)); 
%		state_metric為網格圖最后一個列位置中“0”狀態位置的漢明距 
%		離,這個值就是整個譯碼過程中的漢明距離。 
cumulated_metric=state_metric(1,1); 
%卷積碼的維特比譯碼函數 
 
%nxt_stat.m 記錄狀態函數 
%		next_state用于記錄下一個狀態的值 
%		memory_contents用于記錄 
function [next_state,memory_contents]=nxt_stat(current_state,input,L,k) 
	%	將當前狀態值(十進制)轉成位數為k*(L-1)的二進制 
binary_state=deci2bin(current_state,k*(L-1)); 
	%	將輸入狀態值(十進制)轉成位數為k的二進制序列 
binary_input=deci2bin(input,k); 
	%	寄存器組的下一個狀態值(二進制) 
next_state_binary=[binary_input,binary_state(1:(L-2)*k)]; 
	%	將寄存器組的下一個狀態值(二進制)轉成十進制 
next_state=bin2deci(next_state_binary); 
	%	用memory_contents來記錄各個寄存器在下一個狀態下的信息(二進制) 
	%	以便與生成矩陣相乘得出輸出 
memory_contents=[binary_input,binary_state]; 
%nxt_stat.m 記錄狀態函數

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
美女一区二区视频| 首页综合国产亚洲丝袜| 精品美女一区二区| 欧美va天堂va视频va在线| 日韩一卡二卡三卡国产欧美| 6080国产精品一区二区| 69av一区二区三区| 26uuu亚洲综合色欧美| 久久综合一区二区| 国产嫩草影院久久久久| 中文字幕第一区综合| 亚洲欧美一区二区三区国产精品| 亚洲精品乱码久久久久久久久 | 黑人巨大精品欧美黑白配亚洲| 美美哒免费高清在线观看视频一区二区 | 日韩高清不卡一区二区三区| 麻豆成人免费电影| 成人免费视频视频在线观看免费 | 欧美日韩国产一区二区三区地区| 欧美日韩亚洲综合| 久久综合久久久久88| 国产精品色噜噜| 亚洲综合色区另类av| 裸体健美xxxx欧美裸体表演| 国产乱码一区二区三区| 91网站最新地址| 欧美精品777| 亚洲国产精品成人综合色在线婷婷| 亚洲精品视频在线| 激情综合网av| 欧美影院精品一区| 久久久精品2019中文字幕之3| 1区2区3区国产精品| 美女任你摸久久 | 日韩专区一卡二卡| 国产成人亚洲综合色影视 | 蜜臀av性久久久久蜜臀av麻豆| 国产a视频精品免费观看| 在线观看国产91| 欧美国产精品专区| 另类小说综合欧美亚洲| av不卡一区二区三区| 制服丝袜亚洲色图| 亚洲精品国产无天堂网2021| 久久精品久久综合| 色域天天综合网| 欧美经典一区二区三区| 免费不卡在线视频| 91黄色激情网站| 一区在线观看免费| 国产成人啪免费观看软件| 6080yy午夜一二三区久久| 一区二区三区国产精华| 成人av网站大全| 日本一区二区在线不卡| 久久国产生活片100| 欧美卡1卡2卡| 亚洲一区二区高清| 91久久一区二区| 亚洲男人天堂av网| av电影在线观看一区| 国产精品午夜在线观看| 国产精品99久久久久久似苏梦涵| 日韩色视频在线观看| 日韩电影在线免费看| 欧美日韩免费观看一区二区三区 | 亚洲欧美另类图片小说| 成人永久aaa| 国产精品不卡一区| av网站一区二区三区| 18成人在线观看| caoporm超碰国产精品| 中文字幕日韩一区二区| 99久久伊人网影院| 亚洲婷婷综合色高清在线| 99久久精品久久久久久清纯| 国产精品女同一区二区三区| 懂色av一区二区三区免费看| 日本一区二区视频在线观看| 成人激情免费网站| 亚洲欧美日本韩国| 欧美日韩中字一区| 日本伊人午夜精品| 久久久久久亚洲综合影院红桃| 国产高清久久久| 国产精品毛片高清在线完整版| 99精品国产91久久久久久| 亚洲美女免费在线| 欧美久久一区二区| 国产一区二区成人久久免费影院| 久久人人超碰精品| 91免费观看国产| 午夜国产不卡在线观看视频| 亚洲精品一区二区在线观看| 成人三级伦理片| 亚洲成人久久影院| 精品福利一二区| 99久久er热在这里只有精品15| 亚洲国产精品影院| 久久人人97超碰com| 色老汉一区二区三区| 蜜臀av性久久久久蜜臀aⅴ| 国产日韩精品一区二区三区在线| 91免费版pro下载短视频| 日韩av二区在线播放| 国产精品人人做人人爽人人添| 91福利在线观看| 国产精品456露脸| 五月婷婷欧美视频| 中文字幕精品综合| 欧美猛男超大videosgay| 国产一区视频在线看| 一区二区三区免费| 久久婷婷成人综合色| 欧美日韩三级一区二区| 成人免费看视频| 免费观看久久久4p| 一区二区三区四区精品在线视频| 精品国产一区二区在线观看| 欧洲一区二区三区免费视频| 国产成人亚洲精品青草天美| 日精品一区二区三区| 亚洲欧美日韩中文播放| 国产色产综合产在线视频| 欧美揉bbbbb揉bbbbb| av电影在线观看一区| 国产精品亚洲成人| 久久精品国产77777蜜臀| 亚洲综合激情网| 中文字幕日韩av资源站| 国产亚洲精久久久久久| 日韩欧美一级在线播放| 欧美日韩高清在线| 色狠狠一区二区三区香蕉| 国产风韵犹存在线视精品| 精东粉嫩av免费一区二区三区| 五月天亚洲精品| 亚洲aⅴ怡春院| 亚洲一本大道在线| 怡红院av一区二区三区| 中文字幕一区二区在线观看| 中文字幕不卡三区| 久久久美女毛片| 久久久亚洲午夜电影| 精品精品国产高清a毛片牛牛 | 国产精品毛片久久久久久久| 久久久久综合网| 国产视频一区在线观看 | 91网页版在线| www.亚洲人| 色综合久久久久久久| 色偷偷88欧美精品久久久| 91色乱码一区二区三区| aaa亚洲精品| 91福利视频在线| 欧美日韩一级片在线观看| 欧美男人的天堂一二区| 日韩一级欧美一级| 26uuu国产在线精品一区二区| 久久婷婷一区二区三区| 国产精品视频第一区| 国产精品网站在线观看| 亚洲丝袜精品丝袜在线| 亚洲一区二区三区四区五区黄 | 丁香婷婷深情五月亚洲| 成人精品在线视频观看| 欧美在线影院一区二区| 91麻豆精品国产91久久久使用方法 | 欧美亚洲高清一区| 91精品一区二区三区在线观看| 日韩欧美中文一区二区| 国产亚洲欧美中文| 一区二区三区在线看| 午夜精品久久久久久久99水蜜桃| 日韩福利视频导航| 国产91丝袜在线播放| 日本福利一区二区| 亚洲精品一区二区三区精华液| 国产喷白浆一区二区三区| 亚洲最新视频在线观看| 麻豆精品视频在线观看| 99国内精品久久| 日韩女优电影在线观看| 中文字幕一区二区不卡| 日韩av在线免费观看不卡| 成人精品一区二区三区四区| 欧美日韩一区二区在线视频| 国产婷婷色一区二区三区四区| 有码一区二区三区| 国产久卡久卡久卡久卡视频精品| 99免费精品视频| 久久欧美中文字幕| 午夜欧美视频在线观看| 国产白丝网站精品污在线入口| 欧美精品在欧美一区二区少妇| 国产亚洲人成网站| 日韩精品久久理论片| 97aⅴ精品视频一二三区| 精品国产露脸精彩对白| 一区二区三区小说|