⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 rsc_encode.m

📁 It is turbo encoder and decoder qritten for communication module has viterbi
💻 M
字号:
function y = rsc_encode(g, x, ending)
% y = rsc_encode(g, x, ending)
%
% Copyright Nov. 1998 Yufei Wu
% MPRG lab, Virginia Tech.
% for academic use only
%
% 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 ending > 0, the trellis is perfectly terminated,
% if ending < 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;

if ending>0

  L_info = length(x);

  L_total = L_info + m;

else

  L_total = length(x);

  L_info = L_total - m;

end  





% initialize the state vector

state = zeros(1,m);



% generate the codeword

for i = 1:L_total

   if ending<0 | (ending>0 & i<=L_info)

      d_k = x(1,i);

   elseif ending>0 & i>L_info

      % 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 + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -