rsc_encode.m

来自「是一个对mimo连续相位调制系统的均衡程序」· M 代码 · 共 35 行

M
35
字号
function y = rsc_encode(g, x)


% encodes a block of data x (0/1)with a recursive systematic
% convolutional code with generator vectors in g, and
% returns the output in y (0/1).
% if terminated>0, the trellis is perfectly terminated
% if terminated<0, it is left unterminated;

% determine the constraint length (K), memory (m), and rate (1/n)
% and number of information bits.
[n,K] = size(g);
m = K - 1;
L_info = length(x);
L_total = L_info + m;

% initialize the state vector
state = zeros(1,m);

% generate the codeword
for i = 1:L_total
   if le(i,L_info)
      d_k = x(i);
   else
      % terminate the trellis
      d_k = rem( g(1,2:K)*state', 2 );
   end
 
   a_k = rem( g(1,:)*[d_k state]', 2 );
   [output_bits, state] = encode_bit(g, a_k, state);
   % since systematic, first output is input bit
   output_bits(1,1) = d_k;
   y(n*(i-1)+1:n*i) = output_bits;
end

⌨️ 快捷键说明

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