www.pudn.com > WCDMA.rar > scramble_long.m


function ScrambleCode = scramble_long(CodeNumber) 
%************************************************************************************************ 
%function ScrambleCode = scramble_long(CodeNumber) 
% 
%Copyright 2002 The Mobile and Portable Radio Research Group 
% 
%this funciton produces a scramble sequence for the uplink of a WCDMA system, using the  
%algorithm specified in ETSI TS 125 213 V3.2.0 (2000-03).  The function generates this code  
%by using the implementation that is pictorially described in figure 5 of the aforementioned  
%specificatoin.  This implemtation takes advantage of two shift registers, which this function  
%emulates via circular buffers.  The first circular buffer, X, is initiallized using CodeNumber.  
%The second circular buffer Y is initiallized by setting all elements to 1. 
% 
%The function then performs the following operation using modulo 2 arithmetic 
%	x(n+25) = x(n+3) + x(n+1) 
%	y(n+25) = y(n+3) + y(n+2) + y(n+1) + y(n) 
%	z(n) = x(n+4) + x(n+7) + x(n+18) 
%	w(n) = y(n+4) + y(n+6) + y(n+17) 
%	Clong1 = x(n) + y(n) 
%	Clong2 = w(n) + z(n) 
%	Scramble_long(n) = Clong1 * (1 + j*((-1)^n)*Clong2(2*floor(n/2))) 
% 
%Parameters 
%   Input 
%      CodeNumber      scalar   unsigned value between 0 and 16777215 that determines the  
%                               scramble code number 
%   Output 
%      ScrambelCode    vector   Vector of length 38400 containing the complex valued scrambling  
%                               code 
%************************************************************************************************