www.gusucode.com > LTE_TX_PDSCH > LTE_TX_scrambler.m
%% LTE TX scrambler function output = LTE_TX_scrambler(input, subframe_corr, N_coded_bits) Poly1 = [31 3 2 1 0]; % gold code polynomial initialization Poly0 = [31 3 0]; h0 = commsrc.pn('GenPoly', Poly0); h1 = commsrc.pn('GenPoly', Poly1); Poly1_Init = (2^14)*1 + (2^13)*1 + (2^9)*(subframe_corr-1)+1; h1.InitialStates = de2bi(Poly1_Init,31); Nc = 1600; % Offset according to 3GPP 36.211 Rel 9 sec 7.2 h0.NumBitsOut = N_coded_bits + Nc; h1.NumBitsOut = N_coded_bits + Nc; pn_seq0 = generate(h0); pn_seq1 = generate(h1); pn_seq = mod(pn_seq0(Nc+1:end)+pn_seq1(Nc+1:end),2)'; output = mod(input + pn_seq,2);