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

📄 cnc_trellis.m

📁 Simon Haykin的《Communication Systems》(《通信系统》)的配套MATLAB源代码。包括脉冲调制、随机过程、和差错编码等。
💻 M
字号:
function [nxt_o, nxt_s, lst_o, lst_s] = cnc_trellis(code_g);% used in Experiment 7, % Communications system 4e: Simon Haykin% code trellis for  RSC% code properties[n,K] = size(code_g);m = K - 1;no_of_states = 2^m;for s=1: no_of_statesdec_cnt_s=s-1; i=1;% decimal to binary statewhile  dec_cnt_s >=0 & i<=m       bin_cnt_s(i) = rem( dec_cnt_s,2) ;       dec_cnt_s  = (dec_cnt_s-  bin_cnt_s(i))/2;        i=i+1;   endbin_cnt_s=bin_cnt_s(m:-1:1);   % next state when input is 0   d = 0;   a = rem( code_g(1,:)*[0 bin_cnt_s ]', 2 );   v = code_g(2,1)*a;   for j = 1:K-1      v = xor(v, code_g(2,j+1)*bin_cnt_s(j));   end;nstate0 = [a  bin_cnt_s(1:m-1)];y_0 = [0 v];% next state when input is 1   d = 1;   a = rem( code_g(1,:)*[1 bin_cnt_s]', 2 );   v = code_g(2,1)*a;   for j = 1:K-1      v = xor(v, code_g(2,j+1)*bin_cnt_s(j));   end;nstate1 = [a bin_cnt_s(1:m-1)];y_1=[1 v];% next output when input 0 1nxt_o(s,:) = [y_0 y_1];% binary to decimal stated=2.^(m-1:-1:0); dstate0=nstate0*d'+1; dstate1=nstate1*d'+1;% next state when input 0 1nxt_s(s,:) = [ dstate0  dstate1 ];% finding the possible previous state frm the trellislst_s(nxt_s(s, 1), 1)=s;lst_s(nxt_s(s, 2), 2)=s;lst_o(nxt_s(s, 1), 1:4) =  nxt_o(s, 1:4) ;lst_o(nxt_s(s, 2), 1:4) =  nxt_o(s, 1:4) ;end

⌨️ 快捷键说明

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