?? rsc_encode.m
字號:
function y = rsc_encode(g, x, end1)
%x為輸入序列,g為卷積碼的生成多項式,y為編碼后輸出
%endl尾比特處理標志,如end1>0,有m個尾比特,編碼至x最后一個比特到達最后一個寄存器;如end1<0,沒有尾比特,編碼至x最后一個比特進入編碼器。
% K為約束長度,m為寄存器個數,碼率為1/n
[n,K] = size(g);
m = K - 1;
if end1>0 %由endl決定編碼輸出
L_info = length(x);
L_total = L_info + m;
else
L_total = length(x);
L_info = L_total - m;
end
%初始化狀態向量
state = zeros(1,m);
%產生碼字
for i = 1:L_total
if end1<0 | (end1>0 & i<=L_info)
d_k = x(1,i);
elseif end1>0 & i>L_info
d_k = rem( g(1,2:K)*state', 2 ); %尾比特處理
end
a_k = rem( g(1,:)*[d_k state]', 2 );
% a_k是編碼器的第一個寄存器輸入
[output_bits, state] = encode_bit(g, a_k, state); %進行編碼,
output_bits(1,1) = d_k; %編碼比特的第一位是信息位
y(n*(i-1)+1:n*i) = output_bits; %編碼比特:信息位,校驗位1,校驗位2,…,校驗位%n-1,信息位,……
end
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -