gusucode.com > UWB_matlab源码程序 > CP0201/cp0201_2PPM_TH.m

    %
% FUNCTION 2.4 : "cp0201_2PPM_TH"
%
% Introduces the TH code given by 'THcode'
% and implements binary PPM modulation
% 'seq' is the input binary stream
% 'fc' is the sampling frequency for the generated signal
% 'Tc' is the chip time
% 'Ts' is the average pulse repetition time
% 'dPPM' is the PPM delta shift
% 'THcode' is the TH code
%
% The function generates two output streams  
% '2PPMTHseq' is the output with both TH and 2PPM
% 'THseq' is the output with TH only
%
% Programmed by Guerino Giancola
%

function [PPMTHseq,THseq] = ...
  cp0201_2PPM_TH(seq,fc,Tc,Ts,dPPM,THcode)


% --------------------------------------------------
% Step One - Implementation of the 2PPM-TH modulator
% --------------------------------------------------

dt = 1 ./ fc;                   % sampling period
framesamples = floor(Ts./dt);   % no. of samples between
                                % pulses
chipsamples = floor (Tc./dt);   % no. of samples for the
                                % chip duration
PPMsamples = floor (dPPM./dt);  % no. of samples for the
                                % PPM shift

THp = length(THcode);           % TH-code periodicity

totlength = framesamples*length(seq);
PPMTHseq=zeros(1,totlength);
THseq=zeros(1,totlength);

% ------------------------------------------------
% Step Two - Main loop for introducing TH and 2PPM
% ------------------------------------------------

for k = 1 : length(seq)
    
    % uniform pulse position
    index = 1 + (k-1)*framesamples;
    
    % introduction of TH
    kTH = THcode(1+mod(k-1,THp));
    index = index + kTH*chipsamples;
    
    THseq(index) = 1;
    
    % introduction of 2PPM
    index = index + PPMsamples*seq(k);
    PPMTHseq(index) = 1;
        
end % for k = 1 : length(seq)