www.pudn.com > RAKE.rar > ljq_PPMreceiver.m


%/*---------------------------接收积分检测---------------*/ 
function [RXbits]=ljq_PPMreceiver(R,mask,fc,numbit,Ns,Ts,HDSD) 
[N,L]=size(R); 
RXbits=zeros(N,numbit); 
dt=1/fc; 
framesamples=floor(Ts./dt); 
bitsamples=framesamples*Ns; 
for n=1:N 
    rx=R(n,:); 
    mx=rx.*mask 
    if HDSD==1  %硬判决 
        for nb=1:numbit 
            mxk=mx(1+(nb-1)*bitsamples:bitsamples+(nb-1)*bitsamples); 
            No0=0; 
            No1=0; 
            for np=1:Ns 
                mxkp=mxk(1+(np-1)*framesamples:framesamples+(np-1)*framesamples); 
                zp=sum(mxkp.*dt); 
                if zp>0 
                    No0=No0+1; 
                else 
                    No1=No1+1; 
                end 
            end 
            if No0>No1 
                RXbits(n,nb)=0; 
            else 
                RXbits(n,nb)=1; 
            end 
        end 
    end 
    if HDSD==2  %软判决 
        for nb=1:numbit 
            mxk=mx(1+(nb-1)*bitsamples:bitsamples+(nb-1)*bitsamples); 
             zb=sum(mxk.*dt);  
             if zb>0 
                 RXbits(n,nb)=0; 
             else 
                 RXbits(n,nb)=1; 
             end 
         end 
     end 
 end