資源簡介
編碼:
function output=cnv_encd(G,k0,input)
% cnv_encd(G,k0,input),k0是每一時鐘周期輸入編碼器的bit數,
% G是決定輸入序列的生成矩陣,它有n0行,L*k0列。n0是輸出bit數,
% 參數n0和L由生成矩陣G導出,L是約束長度。L之所以叫約束長度
% 是因為編碼器在每一時刻里輸出序列不但與當前輸入序列有關,
% 而且還與編碼器的狀態有關,這個狀態是由編碼器的前(L-1)k0。
% 個輸入決定的,通常卷積碼表示為(n0,k0,m),m=(L-1)*k0是編碼
% 器中的編碼存貯個數,也就是分為L-1段,每段k0個
% 有些人將m=L*k0定義為約束長度,有的人定義為m=(L-1)*k0
% 查看是否需要補0,輸入input必須是k0的整數倍
譯碼:
function decoder_output=viterbi_decoder(G,k,channel_output)

代碼片段和文件信息
function?output=cnv_encd(Gk0input)
%?cnv_encd(Gk0input)k0是每一時鐘周期輸入編碼器的bit數,
%?G是決定輸入序列的生成矩陣,它有n0行,L*k0列。n0是輸出bit數,
%?參數n0和L由生成矩陣G導出,L是約束長度。L之所以叫約束長度
%?是因為編碼器在每一時刻里輸出序列不但與當前輸入序列有關,
%?而且還與編碼器的狀態有關,這個狀態是由編碼器的前(L-1)k0。
%?個輸入決定的通常卷積碼表示為(n0k0m),m=(L-1)*k0是編碼
%?器中的編碼存貯個數,也就是分為L-1段,每段k0個
%?有些人將m=L*k0定義為約束長度,有的人定義為m=(L-1)*k0
%?查看是否需要補0,輸入input必須是k0的整數倍?
G=[1?1?0?1?0?1?0?1;1?1?1?0?1?1?1?1];
k0=1;
input=[1?1?0?0?1];
?
if?rem(length(input)k0)>0
????input=[inputzeros(size(1:k0-rem(length(input)k0)))];
end
n=length(input)/k0;
%?檢查生成矩陣G的維數是否和k0一致?
if?rem(size(G2)k0)>0
????error(‘ErrorG?is?not?of?the?right?size.‘)
end
%?得到約束長度L和輸出比特數n0
?
L=size(G2)/k0;
n0=size(G1);
%?在信息前后加0,使存貯器歸0,加0個數為(L-1)*k0個
u=[zeros(size(1:(L-1)*k0))inputzeros(size(1:(L-1)*k0))];
%?得到uu矩陣它的各列是編碼器各個存貯器在各時鐘周期的內容?
u1=u(L*k0:-1:1);
%將加0后的輸入序列按每組L*k0個分組,分組是按一比特增加
%從1到L*k0比特為第一組,從2到L*k0+1為第二組,。。。。,
%并將分組按倒序排列。?
for?i=1:n+L-2
????u1=[u1u((i+L)*k0:-1:i*k0+1)];
end
uu=reshape(u1L*k0n+L-1);
%?得到輸出,輸出由生成矩陣G*uu得到
output=reshape(rem(G*uu2)1n0*(L+n-1));
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件???????1411??2014-05-07?12:47??matlab代碼(可實現)\卷積編碼\cnv_encd.m
?????文件?????????69??2002-03-04?23:05??matlab代碼(可實現)\卷積譯碼\bin2deci.m
?????文件????????131??2010-09-07?16:51??matlab代碼(可實現)\卷積譯碼\deci2bin.m
?????文件????????543??2010-09-09?21:07??matlab代碼(可實現)\卷積譯碼\metric.m
?????文件????????299??2010-09-07?14:31??matlab代碼(可實現)\卷積譯碼\nxt_stat.m
?????文件???????5119??2014-05-07?12:49??matlab代碼(可實現)\卷積譯碼\viterbi_decoder.m
?????目錄??????????0??2015-01-19?15:19??matlab代碼(可實現)\卷積編碼
?????目錄??????????0??2015-01-19?15:19??matlab代碼(可實現)\卷積譯碼
?????目錄??????????0??2015-01-19?15:19??matlab代碼(可實現)
-----------?---------??----------?-----??----
?????????????????7572????????????????????9
評論
共有 條評論