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

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

?? turbo.m

?? 實現turbo碼的編碼和解碼
?? M
字號:
% This script simulates the classical turbo encoding-decoding system. 
% It simulates parallel concatenated convolutional codes.
% Two component rate 1/2 RSC (Recursive Systematic Convolutional) component encoders are assumed.
% First encoder is terminated with tails bits. (Info + tail) bits are scrambled and passed to 
% the second encoder, while second encoder is left open without tail bits of itself.
%
% Random information bits are modulated into +1/-1, and transmitted through a AWGN channel.
% Interleavers are randomly generated for each frame.
%
% Log-MAP algorithm without quantization or approximation is used.
% By making use of ln(e^x+e^y) = max(x,y) + ln(1+e^(-abs(x-y))),
% the Log-MAP can be simplified with a look-up table for the correction function.
% If use approximation ln(e^x+e^y) = max(x,y), it becomes MAX-Log-MAP.

clc
clear all

% Write display messages to a text file
diary turbo.txt

% Choose decoding algorithm 
dec_alg = input(' Please enter the decoding algorithm. (0:Log-MAP, 1:SOVA)  default 0    ');
if isempty(dec_alg)
   dec_alg = 0;
end

% Frame size
L_total = input(' Please enter the frame size (= info + tail, default: 512)   ');
if isempty(L_total)
   L_total = 512;	 % infomation bits plus tail bits
end

% Code generator
g = input(' Please enter code generator: ( default: g = [1 1 1 1; 1 1 0 1 ] )      ');
if isempty(g)
   g = [ 1 1 1 1;
         1 1 0 1 ];
end
%g = [1 1 0 1; 1 1 1 1];
%g = [1 1 1 1 1; 1 0 0 0 1];

[n,K] = size(g); 
m = K - 1;
nstates = 2^m;

%puncture = 0, puncturing into rate 1/2; 
%puncture = 1, no puncturing
puncture = input(' Please choose punctured / unpunctured (0/1): default 0     ');
if isempty(puncture) 
    puncture = 0;
end

% Code rate
rate = 1/(2+puncture);   

% Fading amplitude; a=1 in AWGN channel
a = 1; 

% Number of iterations
niter = input(' Please enter number of iterations for each frame: default 6       ');
if isempty(niter) 
   niter = 6;
end   
% Number of frame errors to count as a stop criterior
berlim = input(' Please enter number of bit errors to terminate: default 1000        ');
if isempty(berlim)
   berlim = 1000;
end   

EbN0db = input(' Please enter Eb/N0 in dB : default [2.0]    ');
if isempty(EbN0db)
   EbN0db = [2.0];
end

fprintf('\n\n----------------------------------------------------\n'); 
if dec_alg == 0
   fprintf(' === Log-MAP decoder === \n');
else
   fprintf(' === SOVA decoder === \n');
end
fprintf(' Frame size = %6d\n',L_total);
fprintf(' code generator: \n');
for i = 1:n
    for j = 1:K
        fprintf( '%6d', g(i,j));
    end
    fprintf('\n');
end        
if puncture==0
   fprintf(' Punctured, code rate = 1/2 \n');
else
   fprintf(' Unpunctured, code rate = 1/3 \n');
end
fprintf(' iteration number =  %6d\n', niter);
fprintf(' terminate bit errors = %6d\n', berlim);
fprintf(' Eb / N0 (dB) = ');
for i = 1:length(EbN0db)
    fprintf('%10.2f',EbN0db(i));
end
fprintf('\n----------------------------------------------------\n\n');
    
fprintf('+ + + + Please be patient. Wait a while to get the result. + + + +\n');

for nEN = 1:length(EbN0db)
   en = 10^(EbN0db(nEN)/10);      % convert Eb/N0 from unit db to normal numbers
   L_c = 4*a*en*rate; 	% reliability value of the channel
   sigma = 1/sqrt(2*rate*en); 	% standard deviation of AWGN noise

% Clear bit error counter and frame error counter
   errs(nEN,1:niter) = zeros(1,niter);
   nferr(nEN,1:niter) = zeros(1,niter);

   nframe = 0;    % clear counter of transmitted frames
   %while nferr(nEN, niter)<ferrlim
   while errs(nEN,niter)<berlim
      nframe = nframe + 1;    
      x = round(rand(1, L_total-m));    % info. bits
      [temp, alpha] = sort(rand(1,L_total));        % random interleaver mapping
      en_output = encoderm( x, g, alpha, puncture ) ; % encoder output (+1/-1)
          
      r = en_output+sigma*randn(1,L_total*(2+puncture)); % received bits
      yk = demultiplex(r,alpha,puncture); % demultiplex to get input for decoder 1 and 2
      
% Scale the received bits      
      rec_s = 0.5*L_c*yk;

% Initialize extrinsic information      
      L_e(1:L_total) = zeros(1,L_total);
      
      for iter = 1:niter
% Decoder one
         L_a(alpha) = L_e;  % a priori info. 
         if dec_alg == 0
            L_all = logmapo(rec_s(1,:), g, L_a, 1);  % complete info.
         else   
            L_all = sova0(rec_s(1,:), g, L_a, 1);  % complete info.
         end   
         L_e = L_all - 2*rec_s(1,1:2:2*L_total) - L_a;  % extrinsic info.

% Decoder two         
         L_a = L_e(alpha);  % a priori info.
         if dec_alg == 0
            L_all = logmapo(rec_s(2,:), g, L_a, 2);  % complete info.  
         else
            L_all = sova0(rec_s(2,:), g, L_a, 2);  % complete info. 
         end
         L_e = L_all - 2*rec_s(2,1:2:2*L_total) - L_a;  % extrinsic info.
         
% Estimate the info. bits        
         xhat(alpha) = (sign(L_all)+1)/2;

% Number of bit errors in current iteration
         err(iter) = length(find(xhat(1:L_total-m)~=x));
% Count frame errors for the current iteration
         if err(iter)>0
            nferr(nEN,iter) = nferr(nEN,iter)+1;
         end   
      end	%iter
      
% Total number of bit errors for all iterations
      errs(nEN,1:niter) = errs(nEN,1:niter) + err(1:niter);

      if rem(nframe,100)==0 | errs(nEN, niter)>=berlim
% Bit error rate
         ber(nEN,1:niter) = errs(nEN,1:niter)/nframe/(L_total-m);
% Frame error rate
         fer(nEN,1:niter) = nferr(nEN,1:niter)/nframe;

% Display intermediate results in process  
         fprintf('************** Eb/N0 = %5.2f db **************\n', EbN0db(nEN));
         fprintf('Frame size = %d, rate 1/%d. \n', L_total, 2+puncture);
         fprintf('%d frames transmitted, %d frames in error, %d bits in error.\n', nframe, nferr(nEN, niter),errs(nEN,niter));
         fprintf('Bit Error Rate (from iteration 1 to iteration %d):\n', niter);
         for i=1:niter
            fprintf('%8.4e    ', ber(nEN,i));
         end
         fprintf('\n');
         fprintf('Frame Error Rate (from iteration 1 to iteration %d):\n', niter);
         for i=1:niter
            fprintf('%8.4e    ', fer(nEN,i));
         end
         fprintf('\n');
         fprintf('***********************************************\n\n');

% Save intermediate results 
         save turbo_sys_demo EbN0db ber fer
      end
      
   end		%while
end 		%nEN

diary off

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲欧洲日本在线| 国产精品免费视频观看| 日韩女优av电影| 日韩精品专区在线影院重磅| 亚洲 欧美综合在线网络| 韩国一区二区视频| 久久久久国色av免费看影院| 日韩午夜在线播放| 亚洲一区在线观看视频| 精品动漫一区二区三区在线观看| 成人性生交大片免费看中文| 日韩av电影天堂| 亚洲欧洲国产专区| 国产日产欧美一区二区视频| 欧美视频精品在线观看| 99麻豆久久久国产精品免费| 狠狠色综合色综合网络| 视频在线观看一区二区三区| 亚洲欧洲精品一区二区三区| 欧美一区二区成人| 在线成人免费观看| 欧美日韩视频在线一区二区| 91视频免费看| 99久免费精品视频在线观看| 国产91精品一区二区麻豆亚洲| 蜜臀av一区二区三区| 秋霞成人午夜伦在线观看| 性久久久久久久| 日本欧美韩国一区三区| 日韩主播视频在线| 日韩精品欧美精品| 美国三级日本三级久久99| 日本不卡中文字幕| 美脚の诱脚舐め脚责91 | 欧美a一区二区| 日本欧美一区二区三区乱码| 日韩国产欧美一区二区三区| 久久国产福利国产秒拍| 国产精品99久久久久久似苏梦涵| 寂寞少妇一区二区三区| 国产不卡在线一区| 色综合欧美在线视频区| 欧美日韩国产系列| 精品国产成人系列| 国产精品欧美精品| 午夜精品一区二区三区三上悠亚| 天天色综合天天| 国产精品亚洲视频| 一本久久a久久精品亚洲| 91麻豆精品91久久久久久清纯 | 男男gaygay亚洲| 国产99精品视频| 在线免费观看不卡av| 欧美mv和日韩mv的网站| 国产精品不卡在线| 亚洲精品国产成人久久av盗摄| 亚洲成av人片一区二区| 日日噜噜夜夜狠狠视频欧美人| 成人午夜av在线| 日韩欧美在线综合网| 亚洲日本一区二区三区| 亚洲午夜久久久久久久久电影院| 国产剧情一区二区| 91麻豆精品国产91久久久使用方法 | 欧美一区二区三区公司| 亚洲日本va午夜在线影院| 另类小说欧美激情| 欧美疯狂做受xxxx富婆| 亚洲欧洲精品一区二区精品久久久 | 国产一区美女在线| 久久99国产精品久久99果冻传媒| 天天综合色天天综合| 国产呦萝稀缺另类资源| 日韩一级完整毛片| 国产传媒一区在线| 欧美一区二区三区在线看| 香蕉成人伊视频在线观看| 99re热视频精品| 亚洲国产精品二十页| 黄色精品一二区| 精品对白一区国产伦| 狠狠色2019综合网| 精品欧美乱码久久久久久1区2区 | 中文字幕精品综合| 国产一区二区主播在线| 久久精品夜色噜噜亚洲aⅴ| 国产精品正在播放| 亚洲欧美偷拍三级| 91国偷自产一区二区三区成为亚洲经典| 久久午夜免费电影| 97国产精品videossex| 亚洲视频一二区| 欧美日韩精品一区二区在线播放| 亚洲精品ww久久久久久p站| 欧美亚洲一区二区三区四区| 天天亚洲美女在线视频| 久久亚洲精品小早川怜子| www..com久久爱| 亚洲一区二区三区激情| 日韩免费视频一区| aaa欧美大片| 视频一区二区中文字幕| 中文一区二区在线观看| 色综合天天狠狠| 久久精品噜噜噜成人88aⅴ| 国产日韩欧美高清在线| 欧美亚洲综合在线| 理论电影国产精品| 国产精品大尺度| 26uuu成人网一区二区三区| 日本乱码高清不卡字幕| 国产成人午夜高潮毛片| 日本在线播放一区二区三区| 亚洲女性喷水在线观看一区| 欧美一区二区三区免费| 欧美在线不卡视频| 成人精品视频一区| 国产一区久久久| 麻豆91小视频| 日本成人在线不卡视频| 亚洲成人av免费| 一区二区三区四区精品在线视频 | 中文字幕日韩精品一区| 欧美日韩精品二区第二页| 色婷婷av一区二区三区软件| 国产一区二区三区香蕉| 日韩vs国产vs欧美| 依依成人综合视频| 国产精品丝袜黑色高跟| 欧美变态tickle挠乳网站| 成人一级片在线观看| 成人小视频在线| 国产成人综合精品三级| 久久69国产一区二区蜜臀| 日本不卡视频在线| 天天免费综合色| 亚洲成人av一区| 丝瓜av网站精品一区二区| 美国一区二区三区在线播放| 午夜激情久久久| 亚洲不卡av一区二区三区| ...av二区三区久久精品| 国产精品电影一区二区三区| 亚洲视频在线一区| 亚洲综合一区二区| 亚洲成人av一区二区三区| 夜夜夜精品看看| 亚洲不卡av一区二区三区| 亚洲成a人在线观看| 午夜精品福利在线| 五月天视频一区| 激情综合网最新| 日本乱人伦一区| 欧美性色黄大片| 制服丝袜中文字幕一区| 欧美xxxx老人做受| 亚洲天天做日日做天天谢日日欢 | 亚洲女人小视频在线观看| 中文字幕五月欧美| 亚洲成人资源在线| 韩国三级电影一区二区| 国产一区91精品张津瑜| 91黄色激情网站| 久久久久青草大香线综合精品| 成人欧美一区二区三区1314| 一片黄亚洲嫩模| youjizz国产精品| 欧美一卡2卡三卡4卡5免费| 久久精品一区二区三区不卡 | 免播放器亚洲一区| 精品一区二区免费看| 欧美日韩久久久| 中文子幕无线码一区tr| 免费观看在线色综合| 在线观看日韩高清av| 国产三级久久久| 精品一二三四区| 欧美精品一级二级| 亚洲动漫第一页| 另类小说一区二区三区| av亚洲精华国产精华| av亚洲精华国产精华精| 制服丝袜日韩国产| 综合精品久久久| 国产精品久久久久婷婷二区次| 中文字幕av一区 二区| 亚洲大尺度视频在线观看| 成人免费看黄yyy456| 久久久久久免费网| 日本成人在线电影网| 91精品午夜视频| 亚洲午夜一二三区视频| 91视视频在线观看入口直接观看www | 91精品国产综合久久福利| 日韩在线观看一区二区| 99re这里只有精品首页| 国产精品久久久久久久久免费丝袜 | 欧美手机在线视频| 亚洲电影视频在线| 欧美妇女性影城|