convolution.m

来自「matlab实现卷积码编码译码(2,1,6)」· M 代码 · 共 31 行

M
31
字号
% 07.10.31
% lidongshi
% 

function convolutioned_sequence = convolution(crc_coded_sequence)
crc_coded_sequence = [0 1 0 1 0 0 1 1 0 1 1 0 1 0 1 0 1 0 0 1 0 1 1 0];
delay_6_to_0 = zeros(1,7);
number_inputbits = size(crc_coded_sequence);
bit_save(1:6) = crc_coded_sequence(1:6);
for i = 1:number_inputbits(2) + 6
    if i <= number_inputbits(2)
       bit_input(i) = crc_coded_sequence(i);
       delay_6_to_0 = circshift(delay_6_to_0,[0,1]);
       delay_6_to_0(1) = bit_input(i);
    end
    if i >= number_inputbits(2) + 1
        delay_6_to_0(1) = bit_save(i-number_inputbits(2));
    end
    bit_output_1(i) = delay_6_to_0(1) + delay_6_to_0(3) + delay_6_to_0(4) + delay_6_to_0(6) + delay_6_to_0(7);
    bit_output_1(i) = mod(bit_output_1(i),2);
    bit_output_2(i) = delay_6_to_0(1) + delay_6_to_0(2) + delay_6_to_0(3) + delay_6_to_0(4) + delay_6_to_0(7);
    bit_output_2(i) = mod(bit_output_2(i),2);
end

for i = 1:number_inputbits(2) + 6
    bit_output(i*2-1) = bit_output_1(i);
    bit_output(i*2) = bit_output_2(i);
end

convolutioned_sequence = bit_output;

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?