M14 = Signal.^14; M12 = Signal.^12 ; M10 = Signal.^10; M8 = Signal.^8 ; M6 = Signal.^6; M4 = Signal.^4 ; M2 = Signal.^2; S14 = Sigma.^14; S12 = Sigma.^12 ; S10 = Sigma.^10; S8 = Sigma.^8 ; S6 = Sigma.^6; S4 = Sigma.^4 ; S2 = Sigma.^2; nPiD2 = pi/2; sqrtNpiD2 = sqrt(nPiD2); n1D2 = 1/2; n1D4 = 1/4; n1DM10Sig = 1./(M10.*Sigma); n1DM12Sig = 1./(M12.*Sigma); alpha = M2./S2; nAlphaD4 = n1D4*alpha; FirstTerm = n1DM10Sig.*(M12 + 9*M10.*S2 - 15*M8.*S4 + 90*M6.*S6 - 495*M4.*S8 + 2160*M2.*S10 - 5760*S12).*besseli(0,nAlphaD4); SecondTerm = n1DM12Sig.*(M14 + 7*M12.*S2 - 27*M10.*S4 + 150*M8.*S6 - 855*M6.*S8 + 4320*M4.*S10 - 17280*M2.*S12 + 46080*S14).*besseli(1,nAlphaD4); biasedSignal = n1D2*sqrtNpiD2*exp(-nAlphaD4).*(FirstTerm + SecondTerm);
As you can imagine, because of the powers of these numbers being rather high, I am running into issues with computing inf/NaN where I don't actually want it. Is there a way to avoid computing these values?
Best Answer