📄 encoderm.m
字号:
function en_output = encoderm( x, g, alpha, puncture )[n,K] = size(g); m = K - 1;L_info = length(x); L_total = L_info + m; % generate the codeword corresponding to the 1st RSC coder% end = 1, perfectly terminated;input = x;output1 = rsc_encode(g,input,1);% make a matrix with first row corresponing to info sequence% second row corresponsing to RSC #1's check bits.% third row corresponsing to RSC #2's check bits.y(1,:) = output1(1:2:2*L_total);y(2,:) = output1(2:2:2*L_total);% interleave input to second encoderfor i = 1:L_total input1(1,i) = y(1,alpha(i)); endoutput2 = rsc_encode(g, input1(1,1:L_total), -1 );y(3,:) = output2(2:2:2*L_total);if puncture > 0 % unpunctured for i = 1:L_total for j = 1:3 en_output(1,3*(i-1)+j) = y(j,i); end endelse % punctured into rate 1/2 for i=1:L_total en_output(1,n*(i-1)+1) = y(1,i); if rem(i,2) % odd check bits from RSC1 en_output(1,n*i) = y(2,i); else % even check bits from RSC2 en_output(1,n*i) = y(3,i); end end end% antipodal modulation: +1/-1en_output = 2 * en_output - ones(size(en_output));
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -