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);