www.gusucode.com > matlab通信工程仿真源码(张德丰等编著)程序书籍 > matlab_code/matlab通信工程仿真源码(张德丰等编著)/第10章/PacketBuilder.m
function [ChipsOut, Scrambler] = PacketBuilder(DataBits, G, Gs); %此函数用于产生IS-95前向链路系统的发送数据包 % DataBits为发送数据(二进制形式) % G为Viterbi编码生成多项式 % Gs为长序列生成多项式(扰码生成多项式) % ChipsOut为输入到调制器的码序列(二进制形式) % Scrambler为扰码 global Zs K = size(G, 2); L = size(G, 1); N = 64*L*(length(DataBits)+K-1);% 码片数 (9.6 Kbps -> 1.288 Mbps) chips = VitEnc(G, [DataBits; zeros(K-1,1)]); % Viterbi编码 % 实现交织编码 INTERL = reshape(chips, 24, 16); % IN:列, OUT:行 chips = reshape(INTERL', length(chips), 1); %速率=19.2 KBps % 产生扰码 [LongSeq Zs] = PNGen(Gs, Zs, N); Scrambler = LongSeq(1:64:end); ChipsOut = xor(chips, Scrambler);