?? deturbo_new.asv
字號:
function [hard_out,soft_out]=deturbo_new(in,alphain)
%****************************************************************
% 內容概述:turbo解碼器,in是RSC編碼器輸出
% 與一般的解碼器相比,這個子解碼器多出了對是否第一個子解碼器的判斷
% 如果是第一個子解碼器,輸出的外部信息中包含了輸入系統信息比特
% 提供給第二個子解碼器使用時不需要將系統位刪除,只需和后驗信息
% 一同交織后交給第二個子解碼器,這樣就省掉了專門需要對系統信息進行的交織!!
% 利用硬件化的方式實現TURBO碼的p-MAX-LOG-MAP譯碼
% 生成矩陣按照3GPP標準為[1 1 0 1;1 0 1 1]
% 未使用另外一個譯碼器反饋的外部信息
% 輸入為經過高斯信道的RSC軟輸入,而輸出為軟輸出
% 創 建 人:朱殿榮/QQ:235347/MSN:njzdr@msn.com
% 單 位:南京郵電大學,通信工程系
% 創建時間:2005年7月18日
% 修改時間:
% 參考文獻:《數字通信--基礎與應用》
% 《High performace parallelised 3GPP Turbo Decoder》
% 《改進的Turbo碼算法及其FPGA實現過程的研究》,天津大學,張寧,趙雅興
% 版權聲明:任何人均可復制、傳播、修改此文件,同時需保留原始版權信息。
%****************************************************************
L_seq=length(in);
in1=in(1:2,:);
in2(1,alphain)=in(1,:);
in2(2,:)=in(3,:);
iter_lim=6; % 迭代次數
for it=1:iter_lim
%---component decoder1
is_com1=1;
if it==1
a_p1(1:L_seq)=0;
[so1,ep1] = com_decoder_new(a_p1,in1,is_com1);
else
[so1,ep1] = com_decoder_new(ep2(alphain),in1,is_com1);
end
%---component decoder2
is_com1=0;
a_p2(alphain)=ep1;
[so2,ep2] = com_decoder_new(a_p2,in2,is_com1);
end
% 解碼結束,輸出--------------------
soft_out=so2(alphain);
for i=1:L_seq
if soft_out(i)>=0
hard_out(i)=1;
else
hard_out(i)=-1;
end
end
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -