📄 conv_encode_siso_20.m
字号:
function coded_data = conv_encode_siso_20(source_data, Mode)
%----------------------------------------------------------------------
% Convolutional Encoder
%
% Mode Data_rate Coding_rate BPSC CBPS DBPS
% 1 13(Mbps) 1/2 2 104 52
% 2 19.5 3/4 2 104 78
% 3 26 1/2 4 208 104
% 4 39 3/4 4 208 156
% 6 58.5 3/4 6 312 234
% 7 65 5/6 6 312 260
%
% ex. coded_data = conv_encode_siso_20(source_data, Mode)
%----------------------------------------------------------------------
switch Mode
case 1
DBPS = 52;
case 2
DBPS = 78;
case 3
DBPS = 104;
case 4
DBPS = 156;
case 6
DBPS = 234;
case 7
DBPS = 260;
end
J=1;
source_data = [0,0,0,0,0,0,source_data];
for I=1:2:DBPS*2
temp_data(I) = xor(source_data(0+J),xor(source_data(1+J),xor(source_data(3+J),xor(source_data(4+J),source_data(6+J)))));
temp_data(I+1) = xor(source_data(0+J),xor(source_data(3+J),xor(source_data(4+J),xor(source_data(5+J),source_data(6+J)))));
J=J+1;
end
if Mode == 1 || Mode == 3 % coding rate = 1/2
coded_data = temp_data;
elseif Mode == 2 || Mode == 4 || Mode == 6 % coding rate = 3/4
for I=1:DBPS/3
coded_data((I-1)*4+1) = temp_data((I-1)*6+1);
coded_data((I-1)*4+2) = temp_data((I-1)*6+2);
coded_data((I-1)*4+3) = temp_data((I-1)*6+3);
coded_data((I-1)*4+4) = temp_data((I-1)*6+6);
end
elseif Mode == 7 % coding rate = 5/6
for I=1:52
coded_data((I-1)*6+1) = temp_data((I-1)*10+1);
coded_data((I-1)*6+2) = temp_data((I-1)*10+2);
coded_data((I-1)*6+3) = temp_data((I-1)*10+3);
coded_data((I-1)*6+4) = temp_data((I-1)*10+6);
coded_data((I-1)*6+5) = temp_data((I-1)*10+7);
coded_data((I-1)*6+6) = temp_data((I-1)*10+10);
end
end
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -