encode_bit.m
上传用户:hnyfjx
上传日期:2013-06-30
资源大小:2149k
文件大小:1k
源码类别:

传真(Fax)编程

开发平台:

Matlab

  1. function [output, state] = encode_bit(g, input, state)
  2. % Copyright 1996 Matthew C. Valenti
  3. % MPRG lab, Virginia Tech
  4. % for academic use only
  5. % This function takes as an input a single bit to be encoded,
  6. % as well as the coeficients of the generator polynomials and
  7. % the current state vector.
  8. % It returns as output n encoded data bits, where 1/n is the
  9. % code rate.
  10. % the rate is 1/n
  11. % k is the constraint length
  12. % m is the amount of memory
  13. %*****************************************************************
  14. % 根据生产矩阵多项式g和输入比特input 寄存器的当前状态
  15. %     进行编码 
  16. %  输出为 (编码比特 编码后寄存器的状态)
  17. %          编码比特(1 2 3 。。。。)
  18. %          对应着生产矩阵的每一列。
  19. %*****************************************************************
  20. [n,k] = size(g);
  21. m = k-1;
  22. % determine the next output bit
  23. for i=1:n
  24.    output(i) = g(i,1)*input;
  25.    % 第一个寄存器前的一个比特编码值
  26.    for j = 2:k
  27.       output(i) = xor(output(i),g(i,j)*state(j-1));
  28.       % xor  二进制 加法
  29.    end;
  30. end
  31. state = [input, state(1:m-1)];
  32. %  寄存器状态转移