Main Content

updateScatteringMatrix

Update scattering matrices

Since R2024a

    Description

    updateScatteringMatrix(surface,Name=Value) updates one or more polarization scattering matrices, where surface is a customSurface object. Name specifies the property name (Shh, Svv,Shv, or Svh) and Value updates the corresponding property value.

    example

    Examples

    collapse all

    Create Custom Surface

    Create a co-polarized custom surface.

    % Create a radar scenario
    rng('default');
    scene = radarScenario(IsEarthCentered=false);
    
    % Create a co-polarized custom surface
    bnds = [-600 570; 0 1.17e3];
    Shh  = zeros(40,40,2);
    Svv  = ones(40,40,2);
    Shv  = zeros(size(Shh));
    srf  = customSurface(scene,Boundary=bnds, ...
         CrossPolarization='Symmetric',Shh=Shh,Svv=Svv,Shv=Shv);

    Collect I/Q Data

    Create a vertically polarized radar I/Q sensor and collect data.

    % Create a vertically polarized radar IQ sensor and attach to
    % a platform
    freq = 500e6;
    sweepBW = 5e6;
    fs = 2*sweepBW;
    wav = phased.LinearFMWaveform(SampleRate=fs, ...
        SweepBandwidth=sweepBW);
    rdr = radarTransceiver(Waveform=wav, ...
        MountingAngles=[-90 10 0], ...
        RangeLimits=[0 1.2e3]);
    element = phased.ShortDipoleAntennaElement;
    ula     = phased.ULA(Element=element);
    configureAntennas(rdr,Combined=ula);
    rdr.TransmitAntenna.OperatingFrequency = freq;
    rdr.ReceiveAntenna.OperatingFrequency = freq;
    rdr.Receiver.SampleRate = fs;
    rdrplat = platform(scene,Position=[0 0 10],Sensors=rdr);
    
    % Create clutter generator
    cluttergen = clutterGenerator(scene,rdr,Resolution=30, ...
        RangeLimit=1.2e3);
    
    % Advance scene and collect IQ
    advance(scene);
    iq = receive(scene);
    
    % Pulse compress
    mf = getMatchedFilter(rdr.Waveform);
    rngresp = phased.RangeResponse(SampleRate=fs);
    [iqPC,rngGrid] = rngresp(iq{1}(:,1),mf);
    figure
    nexttile
    plot(rngGrid,mag2db(abs(iqPC)))
    title(['Pulse 1, Element 1' newline 'Co-Polarized Surface'])
    xlabel('Range (m)')
    ylabel('Magnitude (dB)')
    grid on
    axis tight
    ylim([-80 60])

    Figure contains an axes object. The axes object with title Pulse 1, Element 1 Co-Polarized Surface, xlabel Range (m), ylabel Magnitude (dB) contains an object of type line.

    Update Scattering Matrix Values

    Update scattering matrix values for HH and VV components to make the surface cross-polarized and collect I/Q data.

    % Update scattering matrix values for HH and VV components.
    % Make the surface cross-polarized.
    Shh  = ones(40,40,2);
    Svv  = zeros(40,40,2);
    updateScatteringMatrix(srf,Shh=Shh,Svv=Svv)
    
    % Collect IQ
    iq = receive(scene);
    [iqPC,rngGrid] = rngresp(iq{1}(:,1),mf);
    nexttile
    plot(rngGrid,mag2db(abs(iqPC)))
    title(['Pulse 2, Element 1' newline ...
        'Cross-Polarized Surface'])
    xlabel('Range (m)')
    ylabel('Magnitude (dB)')
    grid on
    axis tight
    ylim([-80 60])
    sgtitle('Custom Surface')

    Figure contains 2 axes objects. Axes object 1 with title Pulse 1, Element 1 Co-Polarized Surface, xlabel Range (m), ylabel Magnitude (dB) contains an object of type line. Axes object 2 with title Pulse 2, Element 1 Cross-Polarized Surface, xlabel Range (m), ylabel Magnitude (dB) contains an object of type line.

    Input Arguments

    collapse all

    Surface, specified as a CustomSurface object.

    Name-Value Arguments

    Specify optional pairs of arguments as Name1=Value1,...,NameN=ValueN, where Name is the argument name and Value is the corresponding value. Name-value arguments must appear after other arguments, but the order of the pairs does not matter.

    Example: updateScatteringMatrix(surface,Shh=ones(40,40,2),Svv=zeros(40,40,2))

    Specify the complex-valued polarization scattering matrix co-polarized HH component, where HH represents horizontal transmission and horizontal reception, as an M-by-N-by-P matrix. M indicates the number of components in the x-direction, N indicates the number of components in the y-direction, and P corresponds to the number of elements in the Frequency vector. The matrix is bounded in space by the Boundary property limits.

    Data Types: double
    Complex Number Support: Yes

    Specify the complex-valued polarization scattering matrix co-polarized VV component, where VV represents vertical transmission and vertical reception, as an M-by-N-by-P matrix. M indicates the number of components in the x-direction, N indicates the number of components in the y-direction, and P corresponds to the number of elements in the Frequency vector. The matrix is bounded in space by the Boundary property limits.

    Data Types: double
    Complex Number Support: Yes

    Specify the complex-valued polarization scattering matrix cross-polarized HV component, where HV represents horizontal transmission and vertical reception, as an M-by-N-by-P matrix. M indicates the number of components in the x-direction, N indicates the number of components in the y-direction, and P corresponds to the number of elements in the Frequency vector. The matrix is bounded in space by the Boundary property limits.

    Data Types: double
    Complex Number Support: Yes

    Specify the complex-valued polarization scattering matrix cross-polarized VH component, where VH represents vertical transmission and horizontal reception, as an M-by-N-by-P matrix. M indicates the number of components in the x-direction, N indicates the number of components in the y-direction, and P corresponds to the number of frequencies in Frequency. The matrix is bounded in space by the Boundary property limits.

    Dependencies

    To enable this property, set the CrossPolarization property to "full".

    Data Types: double
    Complex Number Support: Yes

    Version History

    Introduced in R2024a