主要内容

crlbtransform

Cramer-Rao lower bound (CRLB) of transformed parameters

Since R2026a

    Description

    crlbout=crlbtransform(func,crlbin,param) returns the Cramer-Rao lower bound, crlbout, for parameters, param, transformed by the function func.

    example

    Examples

    collapse all

    Find the CRLB for signal-to-noise ratio. SNR is a non-linear transformation:

    SNR=A2N,

    where A is the unknown signal amplitude and N is the unknown noise power. The CRLB of A and N are known. Calculate the CRLB of the SNR.

    Set the input parameter values of amplitude and noise power.

    A = 0.15;
    npow = 0.2;
    param = [A,npow]'
    param = 2×1
    
        0.1500
        0.2000
    
    

    Specify the SNR as a function of amplitude and noise power using an anonymous function.

    snr = @(param) (param(1))^2/param(2);

    Compute the input CRLB of amplitude and noise power.

    n = 100;
    crlbin = @(param)diag([param(2)/n,2*(param(2))^2/n]);

    Find the output CRLB of SNR.

    crlbout = crlbtransform(snr,crlbin,param)
    crlbout = 
    0.0048
    

    Consider a ULA of 16 elements with half-wavelength element spacing. The ULA receives a target at DOA of -60 degrees under complex white Gaussian noise with known noise variance. For the considered ULA, the spatial frequency f and the DOA theta have the following relation: f = 1/2*sin(theta). Calculate the DOA estimation CRLB by first calculating the spatial frequency, and then transforming the CRLB of the spatial frequency to the CRLB of DOA in radians squared.

    Create uniformly-spaced set of spatial-domain samples.

    n = (0:15)';

    Create a function to model sinusoidal signal.

    sig = @(p) p(1)*exp(1j*(2*pi*p(2)*n + p(3)));

    Specify the noise power.

    noise_level = 0.1;
    ncov = noise_level^2;

    Specify the amplitude, spatial frequency, and phase parameters.

    param = [2, 1/2*sin(-pi/3), pi/4]';

    Find the numerical CRLB of amplitude, frequency, and phase estimates.

    crlb_numerical = crlb(sig, ncov, param);

    Define the transformation function of spatial frequency to DOA.

    fun = @(f) asin(2*f);

    Extract the CRLB of the spatial frequency from the 2nd diagonal element of the CRLB matrix.

    crlb_f = crlb_numerical(2,2);

    Extract the parameter describing the spatial frequency.

    param_f = param(2);

    Extract the CRLB of the DOA.

    crlb_doa = crlbtransform(fun,crlb_f,param_f)
    crlb_doa = 
    1.4900e-06
    

    Input Arguments

    collapse all

    Transformation function, specified as a function handle. The function handle takes as input a real P-by-1 vector and produces a real R-by-1 vector. Apply this function to the P parameters specified in the param argument.

    Data Types: function_handle

    Input Cramer-Rao bound specified as a real-valued positive definite P-by-P matrix or function handle. When func and crlbin are function handles, they both use param as the function handle input.

    Data Types: single | double | function_handle

    Input parameters, specified as a P-by-1 real-valued vector, where P denotes the number of input parameters.

    Data Types: single | double

    Output Arguments

    collapse all

    CLRB of the transformed parameters, returned as a real-valued R-by-R positive definite matrix. crlbout represents the CRLB of the R transformed parameters as defined by func evaluated at param.

    Data Types: single | double | function_handle

    More About

    collapse all

    References

    [1] Steven M. Kay, Fundamentals of Statistical Signal Processing, Estimation Theory, 1993.

    Version History

    Introduced in R2026a