Discover MakerZone

MATLAB and Simulink resources for Arduino, LEGO, and Raspberry Pi

Learn more

Discover what MATLAB® can do for your career.

Opportunities for recent engineering grads.

Apply Today

To resolve issues starting MATLAB on Mac OS X 10.10 (Yosemite) visit: http://www.mathworks.com/matlabcentral/answers/159016

log likelihood ratio to probability measure

Asked by xplore29 on 19 May 2013

For BPSK, one can theoretically move back and forth between log-likelihood ratio and probabilities by using following expressions

P(0) = 1/(1+exp(L)),P(1)=exp(L)/(1+exp(L)).

But in simulations if 'L' gets really large the above expression for P(1) returns NaN. Theory suggests that if L>>1, then P(1)-->1. I tried different values of L for which P(1) changes and found out that any value of L<-10 gives P(0)=1 and L>10 gives P(1)=1. I wrote the following two codes to compute P(0) and P(1)

%-----------------------Code-A--------------------------------- [row col] = size(LLR) for i=1:row for j=1:col

        if LLR(i,j)==+inf
            Probability(i,j) = 1;
        else
            Probability(i,j) = exp(LLR(i,j))/(1+exp(LLR(i,j)));
        end
    end
end
%-----------------------Code-B---------------------------------
 for i=1:row
     for j=1:col
         if LLR(i,j)>10
             Probability(i,j) = 1;
         end
         if LLR(i,j)<-10
             Probability(i,j) = -1;
         end
         if (LLR(i,j)<10)&&(LLR(i,j)>-10)
             Probability(i,j) = exp(LLR(i,j))/(1+exp(LLR(i,j)));
         end
     end
end
%-------------------------------------------------------------- 

for the same LLR matrix, with Code-A I get all real values in Probability matrix while with Code-B results in complex values.

I ll appreciate any suggestions in this regard.

0 Comments

xplore29

Products

No products are associated with this question.

1 Answer

Answer by Tom Lane on 20 May 2013

For large L, you might consider changing

P(1)=exp(L)/(1+exp(L))

to

P(1)=1/(1+exp(-L))

0 Comments

Tom Lane

Contact us