gusucode.com > matlab通信工程仿真源码(张德丰等编著)程序书籍 > matlab_code/matlab通信工程仿真源码(张德丰等编著)/第10章/ReceiverSD.m

    function [DataOut, Metric] = ReceiverSD(SDchips, G, Scrambler); 
% 此函数用于实现基于Viterbi译码的发送数据的恢复
% SDchips为软判决RAKE接收机输入符号
% G为Viterbi编码生成多项式矩阵
% Scrambler为扰码序列
% DataOut为接收数据(二进制形式) 
% Metric为Viterbi译码最佳度量
if (nargin == 1) 
   G = [1 1 1 1 0 1 0 1 1; 1 0 1 1 1 0 0 0 1]; 
end  
% 速率=19.2 KBps  
SDchips = SDchips.*sign(1/2-Scrambler); 
INTERL = reshape(SDchips, 16, 24);		
SDchips = reshape(INTERL', length(SDchips), 1);  % 速率=19.2 KBps  
[DataOut Metric] = SoftVitDec(G, SDchips, 1);