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

📄 turbo_encoder.m

📁 Simon Haykin的《Communication Systems》(《通信系统》)的配套MATLAB源代码。包括脉冲调制、随机过程、和差错编码等。
💻 M
字号:
function output = turbo_encoder( Data, code_g, Alpha)% Turbo encoder% Used in Experiment 7, CS: Haykin[n,K] = size(code_g); m = K - 1;block_s = length(Data);  y=zeros(3,block_s+m);% encorder 1%----------------------------------state = zeros(m,1);for i = 1: block_s+m   if  i <= block_s      d = Data(1,i);   elseif  i >  block_s      d = rem( code_g(1,2:K)*state, 2 );   enda = rem( code_g(1,:)*[d ;state], 2 );v = code_g(2,1)*a;   for j = 2:K      v = xor(v, code_g(2,j)*state(j-1));   end;state = [a;state(1:m-1)];y(1,i)=d;y(2,i)=v;end%encorder 2%-------------------------% interleaving the datafor i = 1: block_s+m   ytilde(1,i) = y(1,Alpha(i)); endstate = zeros(m,1);for i = 1: block_s+m     d = ytilde(1,i);    a = rem( code_g(1,:)*[d ;state], 2 );  v = code_g(2,1)*a;       for j = 2:K            v = xor(v, code_g(2,j)*state(j-1));      end; %j  state = [a; state(1:m-1)];  y(3,i)=v;end %i% inserting data, odd parity and even parity for i=1: block_s+m       output(1,n*i-1) = 2*y(1,i)-1;        if rem(i,2)          output(1,n*i) = 2*y(2,i)-1;       else          output(1,n*i) = 2*y(3,i)-1;       end %if end %i

⌨️ 快捷键说明

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