encode_bit.m

来自「turbo码的译码」· M 代码 · 共 30 行

M
30
字号
function [output, state] = encode_bit(g, input, state)
% Copyright 1996 Matthew C. Valenti
% MPRG lab, Virginia Tech
% for academic use only

% This function takes as an input a single bit to be encoded,
% as well as the coeficients of the generator polynomials and
% the current state vector.
% It returns as output n encoded data bits, where 1/n is the
% code rate.

% the rate is 1/n
% k is the constraint length
% m is the amount of memory
[n,k] = size(g);
m = k-1;

% determine the next output bit
for i=1:n
   output(i) = g(i,1)*input;    % the first bit a_k's contribution to output  --yzh
   for j = 2:k
      output(i) = xor(output(i),g(i,j)*state(j-1)); % a_(k-j)'s contribution to output  --yzh
      % why not use rem(g(i,j)*[input,state]'),j=1:k?  --yzh
   end;
end

state = [input, state(1:m-1)];  % shift one bit  --yzh


⌨️ 快捷键说明

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