n_encoder.m

来自「OFDM宽带无线系统的链路级的仿真程序(多天线」· M 代码 · 共 22 行

M
22
字号
function [coded,t,real_len] = N_encoder(code_rate,raw_bits,lens)
if code_rate==1||code_rate==0
    coded=raw_bits;t=[];
elseif code_rate==1/2
    t = poly2trellis(7,[171 133]); % Define trellis.
    code = convenc(raw_bits,t); % Length is 2*len.
    coded=code; %rate 1/2
elseif code_rate==1/3    % % Puncture by removing every third value.
    t = poly2trellis(7,[171 165 133]); % Define trellis.
    code = convenc(raw_bits,t); % Length is 2*len.
    coded=code; %rate 1/2
elseif code_rate==2/3 
    t = poly2trellis(7,[171 133]); % Define trellis.
    punctcode = convenc(raw_bits,t); % Length is (2*len)*2/3.;
    punctcode(4:4:end)=[]; % Length is (2*len)*2/3.
    coded=punctcode;
end
real_len = length(coded);
if real_len < lens;
    coded(end+1:lens) = zeros(1,lens-real_len);
end

⌨️ 快捷键说明

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