www.pudn.com > Simulation.zip > ReceiverSD.m


function [DataOut, Metric] = ReceiverSD(SDchips, G, Scrambler); 
% 
% ReceiverSD    Soft Decision Receiver. This function performs transmitted packet data recovering, 
%                          based on Viterbi Decoder. 
% 
% 						Block Diagram: 
%						SDchips -> [DeScrambler] -> [De-Interleaver] -> [Viterbi Decoder] 
% 
% 
% 						Inputs: SDchips - Soft Decision RAKE receiver symbols 
%                         G - Viterbi Encoder generation polynom 
%                         Scrambler - Scrambler sequence 
% 
% 						Outputs: DataOut - Received data (binary form) 
%                                       Metric - The  best metric of Viterbi Decoder 
% 
 
%====================== COMMON DEFINITIONS ================= 
%------- Viterbi Polynom --------- 
if (nargin == 1) 
   G = [1 1 1 1 0 1 0 1 1; 1 0 1 1 1 0 0 0 1]; 
end 
 
%====================== R E C E I V E R ================= 
 
%----------- DeScrambler--------- 
% Rate = 19.2 KBps  
SDchips = SDchips.*sign(1/2-Scrambler); 
 
%-------- DeInterleaver --------- 
INTERL = reshape(SDchips, 16, 24);		% IN-> rows, OUT-> columns 
SDchips = reshape(INTERL', length(SDchips), 1);  % Rate = 19.2 KBps 
 
%-------- SD Input Viterbi Decoder ---------- 
[DataOut Metric] = SoftVitDec(G, SDchips, 1);