R2025b

Bug Fixes

Quality and stability improvements

R2025b delivers quality and stability improvements, building on the new features introduced in R2025a.

R2025a

New Features, Compatibility Considerations

 New field analysis functions for AIAntenna object

This release adds two new analysis functions for the AIAntenna (R2025a) object.

  • Use the beamwidth (R2025a) function to calculate the HPBW.

  • Use the peakRadiation (R2025a) function to calculate the maximum radiation point.

Calculate RCS at specified distance

Use the new Range name-value argument in the rcs (R2025a) function to set the observation point distance. This allows you to calculate RCS at any specified distance from the object of interest.

conformalArray object update: Added support for 2-D and 3-D shapes

You can now add 2-D and 3-D shapes to the conformal array configuration. To add a shape as an element to the conformal array, set the Element property of the conformalArray (R2025a) object using at least one antenna element and any of these shape objects:

 SADEA and TR-SADEA optimizer API

You can now optimize custom antennas and arrays, antenna and array catalog elements for a custom objective using the new optimizer API on the command line. This API gives you a direct access to the SADEA and TR-SADEA optimizers. Use the new

You can define the optimization objective along with the geometric constraints and set the properties of these objects. You can then run their object functions to view and set other optimization parameters, run the optimization, and query for the optimization results.

Antenna Designer and Antenna Array Designer app update: Optimize antennas and arrays using TR-SADEA algorithm

Optimize large antennas and arrays using the TR-SADEA algorithm in the Antenna Designer (R2025a) and Antenna Array Designer (R2025a) apps. To select the TR-SADEA as your optimizer, select TR-SADEA option under the Optimizer drop down menu in the OPTIMIZER tab.

Optimizer tab with a drop down menu to select TR-SADEA as the optimizer.

You can use the TR-SADEA algorithm to optimize antennas and arrays for various objective functions within the associated constraints. To use this feature, you need a Statistics and Machine Learning Toolbox™ license.

PCB Antenna Designer app update: Triangular shape is now added to shapes catalog

The shapes catalog in the PCB Antenna Designer app now has a triangular shape.

PCB Antenna Designer canvas with cursor placed on triangle shape.

PCB Antenna Designer app update: Import polygon vertices data

The PCB Antenna Designer app now lets you import polygon vertices data from a workspace variable.

PCB Antenna Designer canvas with option to import polygon vertices data.

Support for frequency dependent dielectric

The dielectric (R2025a) object now lets you choose a dispersion model to include the effect of frequency variation on the dielectric properties of the material. The supported dispersion models are constant, Djordjevic-Sarkar, the mean of Djordjevic-Sarkar, and table driven. To specify a frequency for the dielectric, use the new Frequency property of the dielectric object. To specify a dispersion model, use the new FrequencyModel property with any of the following values:

  • Constant — Dielectric material properties remain constant throughout the frequency range.

  • DjordjevicSarkar — Dielectric material properties follow Djordjevic-Sarkar model for the specified frequency.

  • MeanDjordjevicSarkar — Calculates and uses the mean of Djordjevic-Sarker model over the frequency range for the dielectric material properties.

  • TableDriven — Uses a rational fit on the data provided for dielectric material properties.

The following 3-D shape objects now allow you to specify a dispersion model using their new FrequencyModel property:

The dispersion models supported by these shapes are:

  • Constant — Dielectric material properties remain constant throughout the frequency range.

  • DjordjevicSarkar — Dielectric material properties follow Djordjevic-Sarkar model for the specified frequency.

  • MeanDjordjevicSarkar — Calculates and uses the mean of Djordjevic-Sarker model over the frequency range for the dielectric material properties.

Use frequency sweep interpolation to calculate S-parameters

The sparameters (R2025a) function now lets you interpolate frequency sweep to calculate the S-parameters. To interpolate frequency sweep, use the new SweepOption name-value argument in the sparameters function. You can specify the SweepOption argument as one of the following options:

  • direct — No interpolation. Calculates S-parameters at each frequency point.

  • interp — Interpolation using rational fitting.

  • interpWithGrad — Interpolation using rational fitting with gradient calculation.

Alternatively, you can also specify the SweepOption argument using the frequencySweep (R2025a) object. This allows you to manually set the interpolation parameters such as error tolerance, number of frequency points, and number of iterations.

To use this feature, you need an RF Toolbox™ license in addition to the Antenna Toolbox™ license.

Gerber enhancements: Support edge connector, enable/disable signature and connector label

The PCBWriter (R2025a) object now allows you to enable or disable the watermark signature and connector labels in the Gerber files. Use the new:

  • EnableSignature property to enable or disable watermark signature.

  • EnableConnectorLabel property to enable or disable connector labels.

Faster execution of PO solver computations involving GPU

The PO solver computations when GPU is enabled are much faster now as compared to the previous release.

Navigate Site Viewer using camera functions

Programmatically navigate Site Viewer by using object functions that control the camera position and camera rotation angles.

  • Use the campos (R2025a) function to control the position of the camera.

  • Use the camheight (R2025a) function to control the height of the camera.

  • Use the camroll (R2025a), campitch (R2025a), and camheading (R2025a) functions to rotate the camera around its x-, y-, and z-axes, respectively.

Accelerate ray tracing analysis using GPU

Perform accelerated ray tracing analysis by using a GPU. This capability requires Parallel Computing Toolbox™. For an example, see Accelerate Ray Tracing Analysis Using GPU (R2025a).

 Perform ray tracing analysis using additional materials

The siteviewer (R2025a) object and the RayTracing (R2025a) propagation model object support 23 additional materials, including acrylic, ice, and steel. For a siteviewer object, you can view the scene materials imported from a glTF™ file, an OpenStreetMap® file, or a geospatial table by querying the Materials (R2025a) property. For a RayTracing object, you can specify the building, terrain, or surface material to use for ray tracing analysis by using the BuildingsMaterial (R2025a), TerrainMaterial (R2025a), or SurfaceMaterial (R2025a) property, respectively.

 Compatibility Considerations

As a result of this change:

  • The Materials property of siteviewer (R2025a) objects can represent different scene materials in R2025a compared to previous releases.

  • The raytrace (R2025a) function can return different propagation rays in R2025a compared to previous releases.

  • When used with a RayTracing (R2025a) object as input, the sigstrength (R2025a), coverage (R2025a), sinr (R2025a), link (R2025a), and pathloss (R2025a) functions can return different values in R2025a compared to previous releases.

 Perform ray tracing analysis using improved algorithms

Ray tracing functions use improved algorithms and constant values.

  • Ray tracing functions that use the shooting-and-bouncing rays (SBR) method use additional edges in the scene as candidates for diffraction. As a result, the SBR method can find more rays in R2025a compared to previous releases.

  • When you specify transmitters and receivers that have polarized antennas from Antenna Toolbox or Phased Array System Toolbox™, ray tracing functions calculate the phase shifts of rays using an improved algorithm that differently incorporates the far-field patterns of the antennas.

  • Ray tracing functions, the buildingMaterialPermittivity (R2025a) function, and the earthSurfacePermittivity (R2025a) function use the absolute permittivity of free-space constant that is recommended by the 2022 Committee on Data of the International Science Council (CODATA) adjustment of fundamental constants. In previous releases, the functions use the constant from International Telecommunication Union Recommendations (ITU-R) P.2040 and P.527.

 Compatibility Considerations

As a result of this change:

  • The raypl (R2025a), buildingMaterialPermittivity (R2025a), and earthSurfacePermittivity (R2025a) functions can return different values in R2025a compared to previous releases.

  • The raytrace (R2025a) function can return different propagation rays in R2025a compared to previous releases.

  • When used with a RayTracing object as input, the sigstrength (R2025a), coverage (R2025a), sinr (R2025a), link (R2025a), and pathloss (R2025a) functions can return different values in R2025a compared to previous releases.

Ray tracing analysis with sinr function shows improved performance in scenes with buildings

The sinr (R2025a) function shows improved performance in scenes with buildings when you specify a RayTracing (R2025a) propagation model object as input.

For example, the following code creates a coverage map for two antenna sites in an urban scene by using the sinr function and a RayTracing propagation model object created using the propagationModel (R2025a) function. The code that creates the SINR map is about 1.7x faster in R2025a than in R2024b.

function t = timingTest
    % Create Site Viewer and sites
    sv = siteviewer(Buildings="chicago.osm",Terrain="none");
    tx = txsite(Latitude=[41.88 41.8807], ...
        Longitude=[-87.6295 -87.6308]);

    % Create RayTracing object
    pm = propagationModel("raytracing");

    % Create SINR map
    t0 = tic;
    sinr(tx,pm)
    t = toc(t0);

    % Close Site Viewer
    close(sv)
end

The approximate execution times are:

  • R2025a: 6.8 s

  • R2024b: 11.6 s

This code was timed on a Windows® 11, AMD EPYC™ 74F3 24-Core Processor @ 3.19 GHz test system by calling the function timingTest.

You can download the OpenStreetMap file used in this example from https://www.openstreetmap.org, which provides access to crowd-sourced map data all over the world. The data is licensed under the Open Data Commons Open Database License (ODbL), https://opendatacommons.org/licenses/odbl/.

earthSurfacePermittivity and buildingMaterialPermittivity support 0 Hz

The earthSurfacePermittivity (R2025a) and buildingMaterialPermittivity (R2025a) functions support carrier frequencies of 0 Hz.

 Functionality being removed or changed

earthSurfacePermittivity will not support "dry-ice"

Still runs

The earthSurfacePermittivity (R2025a) function will not support the "dry-ice" input in a future release. Use the "pure-ice" input instead. The behavior of "dry-ice" and "pure-ice" is the same.

RayTracing will not support "perfect-reflector"

Still runs

The BuildingsMaterial, SurfaceMaterial, and TerrainMaterial properties of RayTracing (R2025a) objects will not support "perfect-reflector" in a future release. Use "PEC" instead. The behavior of "perfect-reflector" and "PEC" is the same.

R2024b

New Features

Interactively add multiple feed points to custom antenna arrays

The createFeed (R2024b) function of customAntenna (R2024b) now enables you to interactively add multiple single-edge and multi-edge feed points to the custom antenna or array.

Provide customAntenna object as the only input argument to the createFeed function to open an interactive window. Click the feed edges to select them.

Interactive window to select feed edges.

After selecting the edges, click OK to create feed points.

Custom antenna array with multiple feed points.

Calculate and plot maximum radiation of antenna or array

Use the new peakRadiation (R2024b) function to calculate and plot the maximum radiation of an antenna or array. This function calculates and plots maximum gain:

  • For the antennas with a dielectric substrate other than air.

  • For the antennas with conductor metal other than PEC.

This function calculates and plots maximum directivity:

  • For the antennas without a dielectric substrate or with the air substrate.

  • For the antennas with PEC conductor.

Radiation pattern of a helix antenna at 2GHz with an arrow marker for peak directivity mentioning the peak directivity value in dBi along with its azimuth and elevation angles.

Antenna Designer and Antenna Array Designer: Design antennas and arrays with dielectric substrate

You can now use the Antenna Designer and Antenna Array Designer apps to design an antenna or array with a dielectric substrate. You can choose a predefined dielectric material from a drop-down list or you can specify your own material by changing the default dielectric properties. You can also specify multiple dielectric materials by providing vector inputs to the dielectric properties.

This image shows the Antenna Designer toolstrip with the option to select the dielectric substrate.

Antenna designer app toolstrip with highlighted dielectric section.

This image shows the Antenna Array Designer toolstrip with the option to select the dielectric substrate.

Antenna Array designer app toolstrip with highlighted dielectric section.

To create a custom dielectric, change the default substrate properties.

Antenna designer app properties panel with highlighted dielectric properties.

To specify multiple dielectrics, select Multiple in the Catalog list and specify values as a vector.

Antenna designer app properties panel with highlighted dielectric section mentioning multiple dielectrics.

 Antenna Designer and Antenna Array Designer: Optimize antennas and arrays for geometric constraints

Use custom geometric constraints defined by linear equalities and inequalities and nonlinear inequalities for antenna or array optimization. You can define the custom geometric constraints in the Geometric Constraints panel of the Optimizer tab using the coefficients of linear inequalities (A, b), equalities (Aeq, beq), and nonlinear inequalities (nlcon, nrlv).

Antenna designer app geometric constraints panel in the optimizer tab.

For additional information on linear and nonlinear equalities and nonlinear inequalities, see the fmincon (R2024b) (Optimization Toolbox) function documentation.

optimize function update: Support for custom geometric constraints defined using linear equalities and nonlinear inequalities

You can now use custom geometric constraints defined by linear equalities and nonlinear inequalities for antenna or array optimization. In the previous release, the optimize (R2024b) function supported custom geometric constraints defined by linear inequalities only.

You can define the custom geometric constraints in the GeometricConstraints property of the optimize function using the opt structure that contains the coefficients of linear inequalities (A, b) and equalities (Aeq, beq) and nonlinear inequalities (nlcon, nrlv). For example, to maximize the gain of a dipole antenna operating at 75 MHz with constraints on its length and width, use this code:

optAnt = optimize(dipole, 75e6, "maximizeGain", {"Length", "Width"},... 
  {opt.lb; opt.ub}, Iterations=150, GeomConstraints=opt);
opt = 

  struct with fields:

        A: [100×2 double]
        b: [100×1 double]
      Aeq: [-1 5]
      beq: 0
    nlcon: @btw
     nrlv: [1 1]
For additional information on linear and nonlinear equalities and nonlinear inequalities, see the fmincon (R2024b) (Optimization Toolbox) function documentation.

Optimize antennas and arrays using Training Cost Reduced SADEA (TR-SADEA) algorithm

Optimize large antennas and arrays using the TR-SADEA algorithm in the optimize (R2024b) function. Set the new UseAlgorithm argument in the optimize function to "TR-SADEA" to use TR-SADEA algorithm for your optimization task. You can use the TR-SADEA algorithm to optimize antennas and arrays for various objective functions within the associated constraints. To use this feature, you need a license for Statistics and Machine Learning Toolbox in addition to Antenna Toolbox.

Support for anonymous function handle in optimization

You can now use an anonymous function handle to define antenna or array optimization objectives in the optimize (R2024b) function or the Antenna Designer (R2024b), Antenna Array Designer (R2024b) and PCB Antenna Designer (R2024b) apps.

AIAntenna object update: Support for AI-based model of horn antenna

The AIAntenna (R2024b) object now supports the horn (R2024b) antenna type. Use the tunable properties of the AIAntenna object to explore the design space and quickly analyze the antenna design for the resonant frequency and bandwidth. Using AI-based antenna models over conventional full-wave solvers significantly reduces the simulation time required to fine-tune the antenna to meet your design goals. To use this feature, you need a license for Statistics and Machine Learning Toolbox in addition to Antenna Toolbox.

Enhanced mesh quality

This release contains major upgrades to the mesh infrastructure. You can expect enhanced mesh quality in terms of degree of structural similarity of the mesh triangles to an equilateral triangle.

Ray tracing analysis with SBR method can find paths with more reflections

When you perform ray tracing analysis using the shooting and bouncing rays (SBR) method, you can now find propagation paths with up to 100 reflections. In previous releases, the limit is 10 reflections. To specify the maximum number of path reflections, create a RayTracing (R2024b) object and set its MaxNumReflections property.

Ray tracing analysis with coverage function shows improved performance in scenes with buildings

The coverage (R2024b) function shows improved performance in scenes with buildings when you specify a RayTracing (R2024b) propagation model object as input.

For example, the following code creates a coverage map for an antenna site in an urban scene by using the coverage function and a RayTracing propagation model object created using the propagationModel (R2024b) function. The code that creates the coverage map is about 1.2x faster in R2024b than in R2024a.

function timingTest
    % Create Site Viewer and site
    sv = siteviewer(Buildings="chicago.osm");
    tx = txsite(Latitude=41.88,Longitude=-87.6295, ...
           TransmitterFrequency=2.5e9);
    
    % Create RayTracing object
    pm = propagationModel("raytracing", ...
        MaxNumReflections=1,MaxNumDiffractions=1);

    % Create coverage map
    t1 = tic;
    coverage(tx,pm)
    toc(t1)

    close(sv)
end

The approximate execution times are:

  • R2024b: 112 s

  • R2024a: 133 s

This code was timed on a Windows 11, AMD EPYC 74F3 24-Core Processor @ 3.19 GHz test system by calling the function timingTest.

You can download the OpenStreetMap file used in this example from https://www.openstreetmap.org, which provides access to crowd-sourced map data all over the world. The data is licensed under the Open Data Commons Open Database License (ODbL), https://opendatacommons.org/licenses/odbl/.

Application Examples

This release introduces one new example on designing custom antenna and an update to one existing example on antenna design optimization.

New Example

Updates to Existing Example

R2024a

New Features, Compatibility Considerations

Visualize 3-D radiation patterns of multiple antennas mounted on platform

Use the new patternSystem (R2024a) function to simultaneously visualize the 3-D radiation patterns of multiple antennas mounted on a platform.

Radiation patterns of antennas installed on a glider's wings.

 Reconstruct 3-D radiation pattern from 2-D pattern data using deep learning

Use the new AI-based patternFromAI (R2024a) function to reconstruct the 3-D radiation pattern from two orthogonal pattern slices. To use this feature, you need a license to Deep Learning Toolbox™ in addition to Antenna Toolbox.

Antenna Designer and Antenna Array Designer: Generate mesh manually by setting mesh parameter values

You can now generate a mesh manually by setting the mesh parameters such as maximum edge length, minimum edge length, and growth rate in the Antenna Designer (R2024a) and Antenna Array Designer (R2024a). You can set these parameters by clicking the Analysis Settings button in the Settings section and changing the mesh mode to manual.

Manual mesh settings window in the antenna designer app.

Antenna Designer and Antenna Array Designer: View and modify memory requirement to solve mesh

You can now view the memory required by the Antenna Designer (R2024a) and Antenna Array Designer (R2024a) apps to solve an antenna or array mesh. You can view the estimated memory by clicking the Memory Estimate button in the Mesh section of the app toolstrip. You can reduce the memory requirement by clicking the Analysis Settings button in the Settings section, changing the mesh mode from automatic to manual and adjusting the mesh parameter values.

Dialogue box mentioning the memory requirement to solve a dipole antenna mesh.

Antenna and Array Optimization: Use custom objective function

You can now specify a custom objective function to define antenna or array optimization objectives in the optimize (R2024a) function or the Antenna Designer (R2024a), Antenna Array Designer (R2024a) and PCB Antenna Designer (R2024a) apps.

Antenna Designer App canvas with open optimizer tab.

 Antenna and Array Optimization: Use custom geometric constraints

Use custom geometric constraints defined by linear inequalities for antenna or array optimization. You can define the custom geometric constraints in the new GeometricConstraints property of the optimize (R2024a) function using the opt structure that contains the coefficients of the linear inequalities. For example, to maximize the gain of a dipole antenna operating at 75 MHz with constraints on its length and width, use this code:

optAnt = optimize(dipole, 75e6, "maximizeGain", {"Length", "Width"},... 
  {opt.lb; opt.ub}, Iterations=150, GeomConstraints=opt);
For additional information on linear inequalities, see the fmincon function documentation.

AIAntenna object: AI-based models of additional catalog elements

The AIAntenna (R2023b) object now supports dipoleHelix (R2024a) and waveguide (R2024a) as its AntennaType. Use the tunable properties of the AIAntenna object to explore the design space and quickly analyze the antenna design for the resonant frequency. Using AI-based antenna models over conventional full-wave solvers significantly reduces the simulation time required to fine-tune the antenna to meet your design goals. To use this feature, you need a license to Statistics and Machine Learning Toolbox in addition to Antenna Toolbox.

AIAntenna object: Calculate bandwidth at resonant frequency

Use the new bandwidth (R2024a) function to calculate the bandwidth of the AIAntenna (R2023b) at the resonant frequency for these antenna types:

New port analysis functions for antennas

This release introduces two new port analysis functions: bandwidth (R2024a) and resonantFrequency (R2024a). Use bandwidth to calculate absolute bandwidth around each resonant frequency and its lower and upper bounds, and S-parameters for the entire frequency sweep.

Use resonantFrequency to calculate the resonant frequency of the antenna, the impedance or S-parameters corresponding to each resonance and entire frequency sweep, and conditionally, the type of resonance (series or parallel).

Expedite port analysis computations using parallel computing

You can now use parallel computing to expedite the computation for these port analysis functions:

Set the UseParallel property to true to start the parallel pool during the computation. To use this feature, you need a license to Parallel Computing Toolbox in addition to Antenna Toolbox.

New dielectric lens catalog element

This release introduces dielectricLens (R2024a), a new catalog element for a hemispherical dielectric lens. To analyze this lens, use it as an element in the planeWaveExcitation (R2024a) object and set the SolverType property of the object to "FMM".

Analyze 2-D and 3-D structures in plane wave excitation environment

Starting R2024a, custom 2-D and 3-D Shapes with Material Properties (R2024a) can be analyzed in a plane wave excitation environment created using the planeWaveExcitation (R2024a) object. Use these shapes in the Element property of the object for the analysis.

measuredAntenna object: Calculate total electric field using embedded electric field data

The measuredAntenna (R2024a) object now has three additional properties: AmplitudeTaper, PhaseShift, and CalculateTotalField.

Use AmplitudeTaper to specify the excitation voltage for each element in the antenna array. Use PhaseShift to specify the phase shift for each element in the array. Set CalculateTotalField to true to calculate the total electric field using the embedded electric field data. The EHfields (R2024a) and pattern (R2024a) functions use the calculated total electric field values for their output.

 Antenna Toolbox is now available in MATLAB Online environment

Antenna Toolbox is now available in the MATLAB® Online™ environment. For more information, see MATLAB Online (R2024a) (MATLAB Online Server).

Antenna Toolbox in MATLAB Online supports dark theme visualization. To select the dark theme, on the Home tab, in the Environment section, click Preferences. Select MATLAB > Appearance and set the Theme to Dark.

MATLAB Online window using dark theme.

 RF propagation functions and objects model materials using updated ITU recommendations

RF propagation objects and functions model most materials using the methods and equations in International Telecommunication Union Recommendations (ITU-R) P.2040-3 and ITU-R P.527-5 through ITU-R P.527-6. In previous releases, the functions and objects used ITU-R P.2040-1. In addition:

  • The siteviewer (R2024a) object, the RayTracing (R2024a) propagation model object, the raypl (R2024a) function, and the buildingMaterialPermittivity (R2024a) function support plywood and marble.

  • The earthSurfacePermittivity (R2024a) function now refers to pure ice as "pure-ice" instead of "dry-ice". To update your code, replace instances of "dry-ice" with "pure-ice".

  • The earthSurfacePermittivity function supports multiyear ice, dry snow, and wet snow. The pure water, sea water, and pure ice inputs have updated temperature limits. The sea water input has updated salinity limits.

 Compatibility Considerations

As a result of these changes:

  • The raypl, buildingMaterialPermittivity, and earthSurfacePermittivity functions can return different values in R2024a compared to previous releases.

  • The raytrace (R2024a) function can return different comm.Ray (R2024a) objects in R2024a compared to previous releases.

  • When used with a RayTracing object as input, the sigstrength (R2024a), coverage (R2024a), sinr (R2024a), and pathloss (R2024a) functions can return different values in R2024a compared to previous releases.

pathloss function returns number of diffractions along propagation paths

The pathloss (R2024a) function returns the number of diffractions along ray tracing propagation paths.

Application Examples

This release introduces new application examples in the areas such as antenna optimization, custom antenna, electromagnetic interference (EMI) calculation, and 3-D radiation pattern reconstruction using deep learning. This release also contains updates to two examples which now use the new features from this release.

Updated Examples

R2023b

New Features, Compatibility Considerations

Site Viewer and ray tracing enhancements

Import glTF files

Read a scene model from a GL Transmission Format (glTF) file with the .gltf or .glb extension into Site Viewer by using the siteviewer (R2023b) function. Specify the name of the model by using the SceneModel name-value argument. Site Viewer displays the model using the colors and textures stored in the file.

This figure shows a Site Viewer window with a scene model read from a glTF file. The file was created using RoadRunner.

Site Viewer displaying a model with roads, buildings, street signs, and foliage

Display buildings using colors from OpenStreetMap files

When you read buildings data from an OpenStreetMap file into Site Viewer, Site Viewer displays the buildings using the colors stored in the file.

Import customized buildings data

Import customized buildings data into Site Viewer by using geospatial tables that contain buildings data. This capability requires Mapping Toolbox™.

  1. Read buildings from an OpenStreetMap file with the .osm extension into a geospatial table by using the readgeotable (R2023b) (Mapping Toolbox) function. Specify the Layer name-value argument as "buildings" or "buildingparts".

  2. Customize the buildings by editing the geospatial table. For example, you can change the footprints, heights, colors, and materials of the buildings.

  3. Import the geospatial table into Site Viewer by using the siteviewer (R2023b) function. Specify the geospatial table using the Buildings name-value argument. Site Viewer displays the buildings using the colors stored in the table.

For an example that shows how to import customized buildings data into Site Viewer, see Customize Buildings for Ray Tracing Analysis (R2023b).

Perform ray tracing analysis using multiple materials in the same scene

When you perform ray tracing analysis on a scene created from a glTF file, an OpenStreetMap file, or a geospatial table, the ray tracing analysis uses the materials specified by the file or table. Functions that can perform ray tracing analysis include raytrace (R2023b), coverage (R2023b), sigstrength (R2023b), link (R2023b), and sinr (R2023b).

When you create a scene from a glTF file, an OpenStreetMap file, or a geospatial table, Site Viewer assigns materials to the surfaces in the scene by matching the material names stored in the file or table with the material names supported by the RayTracing (R2023b) propagation model object. Then, Site Viewer stores the material names in the Materials property. When you perform ray tracing analysis by using a function such as raytrace or coverage, the function uses the material names stored in the Materials property. The Materials property is read-only.

Scale the size of scene models

You can now change the scale of scene models created from glTF files, STL files, and triangulation objects by specifying the SceneModelScale name-value argument of the siteviewer (R2023b) function. By default, Site Viewer interprets scene models using units of meters with a 1:1 scale.

Create custom antennas using predefined 2-D and 3-D geometric shapes with material properties

You can now create custom antennas from 2-D and 3-D shapes with material properties. The existing Custom 2-D and 3-D Antenna (R2023b) geometric shapes catalog now contains these shapes:

Use these shapes with shape operators, manipulation functions, and visualization functions to create a custom shape with material properties. You can also use these shapes to create an STL file using stlwrite (R2023b) function and use this file as a platform (R2023b) in the installedAntenna (R2023b) analysis.

The existing Custom 2-D and 3-D Antenna (R2023b) objects catalog now contains the customAntenna (R2023b) object. To create a custom antenna, set the Shape property of the customAntenna object to a 2-D or 3-D shape object and use the createFeed (R2023b) function to define the feed. You can also perform port, surface, and field analysis on this custom antenna.

Use measured antenna array pattern and S-parameters data for field analysis

Import the measured total pattern, embedded field pattern, and S-parameters data of an antenna array to a measuredAntenna (R2023b) object and perform field analysis with the pattern (R2023b), EHfields (R2023b), and sparameters (R2023b) functions.

Design, tune, and analyze antennas using AI-based models

Design, tune, and analyze these antennas using AI-based models:

To create an AIAntenna (R2023b) object, enable the ForAI flag in the design (R2023b) function. Use the tunable properties of the AIAntenna object to explore the design space and quickly analyze the design for the resonant frequency. Using AI-based antenna models over conventional full-wave solvers significantly reduces the simulation time required to fine-tune the antenna to meet your design goals. To use this feature, you need license to the Statistics and Machine Learning Toolbox in addition to the Antenna Toolbox.

Get structural, dimensional and quality details of mesh

Read the structural, dimensional, and quality information about the mesh of an antenna from Antenna Catalog (R2023b), array from Array Catalog (R2023b), or custom 2-D and 3-D antenna or array from Custom 2-D and 3-D Antenna (R2023b) catalog using the new MeshReader (R2023b) object. For instance,

m = mesh(dipole,MaxEdgeLength=0.1)
creates a MeshReader object with read-only properties containing information about the number of points, triangles, and tetrahedra, maximum and minimum edge lengths, and quality of the dipole antenna mesh.

Create custom antennas and platforms from STEP and IGES files

  • Create a custom antenna from geometry defined in Standard for the Exchange of Product Model Data (STEP) and Initial Graphics Exchange Specification (IGES) files using the customAntennaStl (R2023b) object.

    1. Using STEP file:

      c = customAntennaStl(FileName="SampleGeometry.stp", Units="mm")
      createFeed(c);

    2. Using IGES file:

      c = customAntennaStl(FileName="SampleGeometry.igs", Units="mm")
      createFeed(c);

  • Create a platform for installed antenna analysis from geometry defined in STEP and IGES files using the platform (R2023b) object.

    1. Using STEP file:

      p = platform(FileName="SampleGeometry.stp", Units="mm");
      i = installedAntenna(Platform=p, Element=cloverleaf)

    2. Using IGES file:

      p = platform(FileName="SampleGeometry.igs", Units="mm");
      i = installedAntenna(Platform=p, Element=cloverleaf)

Read Gerber file with any extension

You can now use the gerberRead (R2023b) function to import and read a Gerber file containing information about PCB layers with any file extension.

Ray tracing analysis with SBR method shows improved performance in complex scenes

The raytrace (R2023b), coverage (R2023b), sigstrength (R2023b), sinr (R2023b), and link (R2023b) functions show improved performance with complex scenes when you specify a RayTracing (R2023b) propagation model object that uses the shooting and bouncing rays (SBR) method as input.

For example, this code finds ray tracing propagation paths between two antenna sites in an urban scene by using the raytrace function and a RayTracing object. Create the RayTracing object by using the propagationModel function. The code that finds the propagation paths is about 2x faster in R2023b than in R2023a.

function timingTest
    % Create Site Viewer and sites
    sv = siteviewer(Buildings="chicago.osm");
    tx = txsite(Latitude=41.88,Longitude=-87.6295,...
           TransmitterFrequency=2.5e9);
    rx = rxsite(Latitude=41.881,Longitude=-87.62951);
    
    % Create RayTracing object
    pm = propagationModel("raytracing",BuildingsMaterial="concrete",...
           MaxNumReflections=2,MaxNumDiffractions=2);

    % Find propagation paths
    t1 = tic;
    raytrace(tx,rx,pm)
    toc(t1)

    close(sv)
end

The approximate execution times are:

  • R2023b: 252.47 s

  • R2023a: 502.76 s

This code was timed on a Windows 10 Intel® Xeon® CPU W-2133 @ 3.6 GHz test system, by calling the function timingTest.

The time that MATLAB requires to perform ray tracing analysis depends on the scene and on the properties of the RayTracing object, such as the AngularSeparation, MaxNumDiffractions, MaxNumReflections, MaxAbsolutePathLoss, and MaxRelativePathLoss properties. In some cases, with moderate values of the MaxAbsolutePathLoss and MaxRelativePathLoss properties, the ray tracing analysis can be more than 2x faster in R2023b than in R2023a.

You can download the OpenStreetMap file used in this example from https://www.openstreetmap.org, which provides access to crowd-sourced map data all over the world. The data is licensed under the Open Data Commons Open Database License (ODbL), https://opendatacommons.org/licenses/odbl/.

 Functionality being removed or changed

RayTracing objects have new defaults for BuildingsMaterial, SurfaceMaterial, SurfaceMaterialPermittivity, and SurfaceMaterialConductivity properties

Behavior change

The default value of the BuildingsMaterial and SurfaceMaterial properties of the RayTracing (R2023b) propagation model object is now 'auto'.

  • When BuildingsMaterial is 'auto' and you perform ray tracing analysis on a scene created from an OpenStreetMap file, the ray tracing analysis uses the materials specified by the file. If the file does not specify materials, or if the ray tracing analysis does not support a material specified by the file, then the ray tracing analysis uses concrete materials.

  • When SurfaceMaterial is 'auto' and you perform ray tracing analysis on a scene created from an STL file or a triangulation object, the ray tracing analysis uses concrete materials.

Previously, the default value of the BuildingsMaterial property was 'concrete' and the default value of the SurfaceMaterial property was 'plasterboard'.

In addition, the default values of the SurfaceMaterialPermittivity and SurfaceMaterialConductivity properties of the RayTracing propagation model object are now 5.31 and 0.0548, respectively. These values correspond to the real relative permittivity and conductivity of concrete at 1.9 GHz. In previous releases, the default values were 2.94 and 0.0183, respectively.

R2023a

New Features, Compatibility Considerations

Construct and analyze backing structures without exciter

Construct the backing structures for Cavity Antennas (R2023a) and Reflector Antennas (R2023a) by assigning empty value to the 'Exciter' property. Use these structures as Element in the conformalArray (R2023a) and planeWaveExcitation (R2023a) environments to perform fundamental analysis on them.

Create multifilar dipole helix antenna wound around dielectric core

You can now use the Substrate property to include a dielectric (R2022b) core in the dipoleHelixMultifilar (R2023a) object. This configuration creates a multifilar (bi or quad) dipole helix antenna wound around a dielectric core.

PO solver support for reflector antenna analysis

The below mentioned curved Reflector Antennas (R2023a) now support Physical Optics (PO) solver for the pattern (R2023a) and current (R2023a) analysis:

Use custom incident pattern data to excite curved reflector antennas

Import the measured pattern data of an antenna to the MATLAB workspace using the new measuredAntenna (R2023a) object. Use this object as an exciter for the select curved Reflector Antennas (R2023a) from the Antenna Catalog (R2023a) as listed below:

Use eggCrate array as an exciter for cavity and reflector type antennas

You can now use the eggCrate (R2023a) array of vivaldi (R2023a) and vivaldiOffsetCavity (R2023a) antennas as the exciter for all the backing structures in the Cavity Antennas (R2023a) and Reflector Antennas (R2023a) catalog.

Create triangular shape for the metal layer in the PCB Antennas

Use the new antenna.Triangle (R2023a) object to create a triangular shape for the metal layer of the PCB antenna created using the pcbStack (R2023a) object.

Calculate RCS of pure dielectric structures using the Fast Multipole Method (FMM) solver

The rcs function now can calculate the cross section of pure dielectric structures using the FMM Solver.

gerberRead update: Support for Aperture Macro (AM), Aperture Block (AB), and Step Repeat (SR)

The gerberRead (R2023a) function now supports the AM, AB, and SR commands from the imported gerber files. AM combines multiple basic shapes into a template. AB combines standard flashes and strokes to form a block. SR copies graphic objects along x and y axes.

Display multiple shapes in the same figure

Use the hold on functionality to display multiple shapes from the shape catalog on the same figure.

show(antenna.Rectangle)
hold on
show(antenna.Circle)

Circular shape overlaid on rectangular shape

View the position and magnitude data on plots using data tip

Use the Data Tip option under Tools menu in the figure window to view the values of position and magnitude at that position for pattern, current, and charge plots. Data Tip on a:

  1. pattern (R2023a) plot shows azimuth, elevation and magnitude in dBi.

    3D Radiation pattern of a dipole antenna with a data tip showing the direction and gain in decibel over isotropic at that direction

  2. current (R2023a) plot shows the coordinates of the selected point and the current density in mA/m. at that point.

    Current distribution plot of a dipole antenna with a data tip showing the location and magnitude of current density in mili Ampere per meter at that location.

  3. charge (R2023a) plot shows the coordinates of the selected point and the charge density in pC/m. at that point.

    Charge distribution plot of a dipole antenna with a data tip showing the location and magnitude of current density in mili Ampere per meter at that location.

Ray tracing with SBR method supports edge diffractions

Ray tracing models that use the shooting and bouncing rays (SBR) method support the diffraction of rays at surface edges. To specify the maximum number of edge diffractions, create a RayTracing (R2023a) object and set its MaxNumDiffractions property. For an example that illustrates edge diffractions, see the Visualize Indoor Propagation Paths (R2023a) example.

Most analysis functions, such as raytrace (R2023a) and sigstrength (R2023a), support up to two edge diffractions. The coverage (R2023a) and sinr (R2023a) functions support up to one edge diffraction.

 Discard ray tracing paths based on path loss threshold

Ray tracing models enable you to discard propagation paths based on path loss thresholds. To specify the thresholds, create a RayTracing (R2023a) object and set its MaxAbsolutePathLoss and MaxRelativePathLoss properties.

  • Specify an absolute threshold by using the MaxAbsolutePathLoss property. For example, you can discard paths with more than 100 decibels of path loss by specifying MaxAbsolutePathLoss as 100. The default value is Inf, which does not discard paths based on absolute path loss.

  • Specify a threshold relative to the strongest propagation path by using the MaxRelativePathLoss property. The default value is 40, which discards paths that are more than 40 decibels weaker than the strongest path.

This capability can simplify visualizations in Site Viewer. For example, these two images visualize propagation paths for the same transmitter and receiver. The image on the left uses a model where MaxRelativePathLoss is Inf, and the image on the right uses a model where MaxRelativePathLoss is 40 (the default).

Comparison of visualizations that keep or discard paths based on relative path loss

 Compatibility Considerations

The default value of the MaxRelativePathLoss property is 40. As a result, code from previous releases that does not specify a MaxRelativePathLoss value can be affected in these ways:

  • The raytrace (R2023a) function can return fewer comm.Ray (R2023a) objects in R2023a compared to previous releases.

  • The sigstrength (R2023a), coverage (R2023a), sinr (R2023a), and link (R2023a) functions can return different values in R2023a compared to previous releases.

  • The pathloss (R2023a) function can return different path loss values in R2023a compared to previous releases.

To avoid discarding propagation paths, set the MaxRelativePathLoss property of the ray tracing object to Inf.

 Ray tracing with SBR method calculates paths using increased precision

When you find propagation paths by using the raytrace (R2023a) function with a ray tracing model that uses the shooting and bouncing rays (SBR) method, MATLAB calculates the results by using double-precision floating-point computations. In previous releases, the function used single-precision floating-point computations.

 Compatibility Considerations

The raytrace function can return different comm.Ray (R2023a) objects in R2023a compared to previous releases.

 Functionality being removed or changed

propagationModel("raytracing-image-method") syntax has been removed

Errors

The propagationModel("raytracing-image-method") syntax has been removed from the propagationModel (R2023a) function.

Use the propagationModel("raytracing") syntax instead, which uses the shooting and bouncing rays (SBR) method by default. To use the image method, specify the Method name-value argument as "image", for example propagationModel("raytracing",Method="image").

NumReflections name-value argument of the raytrace function has been removed

Errors

The NumReflections name-value argument of the raytrace (R2023a) function has been removed.

Instead, create a propagation model by using the propagationModel (R2023a) function and specify the MaxNumReflections name-value argument. Then, use the raytrace function with the propagation model as an input. This code shows the recommended workflow.

pm = propagationModel("raytracing",MaxNumReflections=3);
rays = raytrace(tx,rx,pm);

Application Examples

This release presents eight new featured examples and one updated example. These examples cover the design, analysis, and fabrication of PCB antennas, the effect of material properties of the conductor on the performance of the antenna, Metasurface antenna, Intelligent Reflecting Surfaces(IRS), wideband Eggcrate array backed by parabolic reflector, performance analysis of the antenna installed on a large platform, Surface Integrated Waveguide(SIW) based Filtenna design, and patch array for S-band monopulse RADAR.

Updated Example

R2022b

New Features, Compatibility Considerations

PCB Antenna Designer App Update: Optimize PCB antenna designs

You can now optimize PCB antenna designs using the SADEA and surrogate optimization methods in the PCB Antenna Designer app. Create design variables to enable the optimization process. Optimize your designs for bandwidth, gain, front-to-back-lobe ratio, and area.

PCB Antenna Designer App design workspace

Create dipole helix antenna wound around dielectric core

You can now use the Substrate property to include a dielectric (R2022b) core in the dipoleHelix object. This configuration creates a dipole helix antenna wound around a dielectric core.

Add Via to infinite array using pcbStack element

The infiniteArray object now supports pcbStack as an element. Use the pcbStack object to add Via to the infinite array design. Use this functionality to include the vertical component of the surface current in your analysis.

mesh Update: Additional mesh parameters support for all antenna and array elements

The mesh function now takes these new name-value arguments

  • MinEdgeLength -- Generate a mesh using the smallest edge length of your feature.

  • GrowthRate -- Control the growth rate of the mesh. This input defines the gradation in the triangle sizes of the mesh.

current Update: Visualize direction of current flow and complex current on metal surface

The current function now takes these new name-value arguments

  • Type -- Choose between the absolute, real, or imaginary values of the current vector to plot the current distribution.

  • Direction -- Plot the direction of the current flow overlaid on the distribution plot.

Real current distribution plot of rectangular spiral antenna with flow direction

Determine antenna orientation and polarization to capture maximum power from plane-wave

Use the design function of planeWaveExcitation object to determine the required orientation and polarization for a receiver antenna to capture the maximum power from an incident plane-wave at a given frequency.

Choose solver for analysis of planeWaveExcitation objects

The planeWaveExcitation object now supports multiple solvers for your analysis. Use the SolverType property to specify the solver.

gerberRead update: Support for new shapes

The gerberRead function now supports three new shapes: clockwise & anticlockwise circular arc, curved regions, and obround aperture.

 RF Propagation: Ray tracing with SBR method finds paths with exact geometric accuracy

When you find propagation paths by using the raytrace (R2022b) function and the shooting and bouncing rays (SBR) method, MATLAB corrects the results so that the geometric accuracy of each path is exact, using single-precision floating-point computations. In previous releases, the paths have approximate geometric accuracy.

For example, this code finds propagation paths between a transmitter and receiver by using the default SBR method and returns the paths as comm.Ray objects. In R2022b, the raytrace function finds seven propagation paths. In earlier releases, the function approximates eight propagation paths, one of which is a duplicate path.

viewer = siteviewer(Buildings="hongkong.osm");
 
tx = txsite(Latitude=22.2789,Longitude=114.1625,AntennaHeight=10, ...
   TransmitterPower=5,TransmitterFrequency=28e9);
rx = rxsite(Latitude=22.2799,Longitude=114.1617,AntennaHeight=1);
 
rSBR = raytrace(tx,rx)
raytrace(tx,rx)

R2022bR2022a
rSBR =

  1×1 cell array

    {1×7 comm.Ray}

Propagation paths in R2022b

rSBR =

  1×1 cell array

    {1×8 comm.Ray}

Propagation paths in R2022a, including a duplicate path

Paths calculated using the SBR method in R2022b more closely align with paths calculated using the image method. The image method finds all possible paths with exact geometric accuracy. For example, this code uses the image method to find propagation paths between the same transmitter and receiver.

viewer = siteviewer(Buildings="hongkong.osm");
 
tx = txsite(Latitude=22.2789,Longitude=114.1625, ...
   AntennaHeight=10,TransmitterPower=5, ...
   TransmitterFrequency=28e9);
rx = rxsite(Latitude=22.2799,Longitude=114.1617, ...
   AntennaHeight=1);
 
pm = propagationModel("raytracing",Method="image",MaxNumReflections=2);
 
rImage = raytrace(tx,rx,pm)
rImage =

  1×1 cell array

    {1×7 comm.Ray}

In this case, the SBR method finds the same number of propagation paths as the image method. In general, the SBR method finds a subset of the paths found by the image method. When both the image and SBR methods find the same path, the points along the path are the same within a tolerance of machine precision for single-precision floating-point values.

This code compares the path losses, within a tolerance of 0.0001, calculated by the SBR and image methods.

abs([rSBR{1}.PathLoss]-[rImage{1}.PathLoss]) < 0.0001
ans =

  1×7 logical array

   1   1   1   1   1   1   1

The path losses are the same within the specified tolerance.

 Compatibility Considerations

The raytrace function can return different results in R2022b compared to previous releases.

  • The function can return a different number of comm.Ray objects because it discards invalid or duplicate paths.

  • The function can return different comm.Ray objects because it calculates exact paths rather than approximate paths.

These differences can also affect the path losses calculated by the raypl (R2022b) and pathloss (R2022b) functions.

 RF Propagation: Ray tracing functions consider multipath interference

When calculating received power using ray tracing models, the sigstrength (R2022b), coverage (R2022b), sinr (R2022b), and link (R2022b) functions now incorporate multipath interference by using a phasor sum. In previous releases, the functions used a power sum. As a result, the calculations in R2022b are more accurate than in previous releases.

 Compatibility Considerations

The sigstrength, coverage, sinr, and link functions can return different results in R2022b compared to previous releases.

RF Propagation: Customize spacing of launched rays for ray tracing with SBR method

When performing ray tracing using the shooting and bouncing rays (SBR) method, you can customize the spacing of launched rays by specifying the AngularSeparation property of the RayTracing (R2022b) object as a numeric value in degrees. In previous releases, the AngularSeparation property supported only the options "high", "medium", and "low".

To improve the accuracy of the number of paths found by the SBR method, decrease the value of AngularSeparation. Decreasing the value of AngularSeparation can increase the amount of time MATLAB requires to perform the analysis.

Application Example: Custom geometry pcbStack antenna

This release contains a new featured example showcasing the design and analysis of a custom geometry pcbStack antenna for ultra-wideband applications:

R2022a

New Features

PCB Antenna Designer App Update: Define variables in PCB antenna designer app

You can now define variables in the PCB Antenna Designer (R2022a) app and use them to set the properties of the shape and dielectric objects within a layer of a pcbStack object. The antenna design along with variables created can be exported for further analysis to a script or a workspace.

infiniteArray Object Update: Faster solution for infinite arrays without ground planes

The method of moments (MoM) solver in the infiniteArray object is now about 30 percent faster when solving infinite arrays without the ground plane.

Direction of Arrival Determination: Determine direction of transmission source using mutual coupling effects

You can use the new doa function on the conformalArray (R2022a) and planeWaveExcitation (R2022a) objects to determine the direction of arrival of an incoming signal transmitted from a far-field source, with respect to the center of the receiver array. The doa function uses s-parameters to calculate the angles of arrival in the spherical coordinate system. If the transmission source in your model / analysis / use case is:

Both the objects use a uniform homogenous linear or rectangular array in the horizontal plane and centered at the origin, as a receiver.

Slicer Interactivity in Mesh, Charge, and Current Plots: View interior or inaccessible parts of meshed antenna geometry

You can now use the Slicer name-value argument in the:

  • mesh (R2022a) function to see the internal parts of an antenna geometry

  • charge (R2022a) or current (R2022a) functions to see the charge or current distributions over specific cross sections of an antenna geometry.

patternPlotOptions Update: Use pattern plot options on all 3-D pattern visualizations

You can now use the PatternPlotOptions (R2022a) on all 3-D pattern plots created using the patternMultiply (R2022a), arrayFactor (R2022a), patternFromSlices (R2022a), and patternCustom (R2022a) functions.

Custom Dual-Reflector Antenna: Design, visualize, and analyze dual-reflector antenna using customized properties

The new customDualReflectors (R2022a) antenna object creates a dual-reflector antenna with conical horn antenna as the exciter and empty geometries for the reflectors. Use its properties to:

  • Assign custom geometry to the main and sub reflector.

  • Change the exciter element

  • Change the position and orientation of the reflectors and the exciter.

Dual-Reflector antenna has a very high gain and a low spillover and is used as a ground station antenna in satellite communications.

Helix and Multifilar Helix Antenna Update: Create helix and multifilar helix antennas wound around dielectric core

You can now use the Substrate property to include a dielectric (R2022a) core in the helix (R2022a) and the helixMultifilar (R2022a) objects. This creates helix and multifilar helix antennas wound around a dielectric core.

Monopole Top-Hat Antenna Update: Create monopole top-hat antenna with dielectric substrate

You can now use the Substrate property to include a dielectric (R2022a) substrate in the monopoleTopHat (R2022a) object. This creates a monopole top-hat antenna with a dielectric substrate placed between the ground plane and the top hat. The monopoleTopHat (R2022a) object lets you specify multiple dielectric layers also.

RF Propagation Update: Improved performance for SBR ray tracing point-to-area coverage and point-to-point analysis cases

The shooting and bouncing rays (SBR) ray tracing method shows improved performance for point-to-area coverage and point-to-point analysis cases with low angular separation.

As the angular separation decreases (and the number of launched rays increases), performance improvements are greater for the point-to-area coverage cases. For example, this code runs up to five times faster than the previous release for the point-to-area coverage case with low angular separation:

viewer = siteviewer("Buildings","chicago.osm");
tx = txsite("Latitude",41.8800,"Longitude",-87.6295);
pm = propagationModel("raytracing", ...
    "Method","sbr", ...
    "AngularSeparation","low", ...
    "MaxNumReflections",3);
 
timeit(@() coverage(tx,pm,"MaxRange",250))

The approximate execution times are:

  • R2021b: 182 s

  • R2022a: 29 s

On the same test platform, this code runs two times faster than the previous release for the point-to-point analysis case with low angular separation:

sv = siteviewer("SceneModel","conferenceroom.stl");
tx = txsite("cartesian", ...
    "AntennaPosition",[-1.45; -1.4; 1.5]);
rx = rxsite("cartesian", ...
    "AntennaPosition",[.3; .2; .5]);
pm = propagationModel("raytracing", ...
    "CoordinateSystem","cartesian", ...
    "Method","sbr", ...
    "AngularSeparation","low", ...
    "MaxNumReflections",10);

timeit(@() raytrace(tx,rx,pm))

The approximate execution times are:

  • R2021b: 6.3 s

  • R2022a: 3.0 s

These code segments were timed on a Windows 10, Intel Xeon CPU E5-1650 v4 @ 3.60 GHz test system.

Application Examples: Custom geometry pcbStack antenna, Direction of arrival

This release contains three new featured examples showing the design and analysis of custom geometry pcbStack antenna for various applications:

R2021b

New Features, Compatibility Considerations

PCB Antenna Designer App: Design, analyze, and fabricate PCB antennas

Use the PCB Antenna Designer (R2021b) app to:

  • Create various shapes for the metal layer of a PCB antenna by using Boolean operations on basic shapes.

  • Create a custom PCB stack antenna with multiple metal and dielectric layers.

  • Add vias and feeds to metal layers.

  • Design a PCB antenna using Gerber files

  • Analyze the design at the desired frequency.

  • Export a design to the workspace or a MATLAB script.

  • Modify the mesh of an antenna using mesh parameters.

STL Files: Detect bad features in STL file

Use the stlFileChecker object to detect and enlist bad features in an STL file, such as nonmanifold edges and vertices, slivers, and duplicate vertices.

Fast Multipole Method (FMM): Support for electrically large antennas and installed antennas

The FMM solver allows you to capture higher order effects such as diffraction, creeping wave, and traveling wave effects when you analyze installed antenna and radar cross-sections (RCS). In addition, the solver now has a reduced memory requirement for large meshes. You can also analyze antennas mounted on platforms using the FMM.

Method of Moments (MoM) Physical Optics (PO): Faster performance for analysis of electrically large structures

The MoM-PO solver now yields faster performance when you solve and analyze electrically large structures.

Infinite Arrays: Support for metal-dielectric structures and metal antennas without ground plane

You can now design infinite arrays of metal-dielectric structures. Also, starting in R2021b, you can design infinite arrays of metal antennas without an infinite ground plane.

Realized Gain: Calculate and visualize realized gain of antennas and arrays

You can now calculate and visualize the realized gain of antennas and arrays with a single or multiple ports using the pattern function.

EHfields enhancements: Support for polarization and calculating fields for spherical coordinate system

EHFields now enables you to calculate the electric and magnetic fields of antennas using a spherical coordinate system. EHFields also now supports horizontal and vertical polarization options.

Backing Structures Update: Support for metal-dielectric exciters

You can now use metal-dielectric antennas and array structures as exciters for backing structures.

RF Propagation: Perform ray tracing analysis using SBR method

  • The default ray tracing method is now 'sbr' with up to two reflections (instead of 'image' with up to one reflection).

  • Minor improvements to ray precision and the number of rays computed.

For more information, see Choose a Propagation Model (R2021b) and propagationModel (R2021b).

RF Propagation: Import and view propagation paths within indoor scenes

In Site Viewer, you can now import and view standard tessellation language (STL) models or triangulation representations that have Cartesian coordinates by using the siteviewer (R2021b) object. The object has these added properties to support Cartesian coordinates.

PropertyDescription
SceneModelSTL model file or triangulation (R2021b) object
TransparencyTransparency of model
ShowOriginOption to show origin
ShowEdgesOption to show edges of model

These functions now support txsite (R2021b) and rxsite (R2021b) objects that have Cartesian coordinates.

  • Display RF propagation rays by using the raytrace (R2021b) function.

  • Display the line-of-sight (LOS) visibility status between sites by using the los (R2021b) function.

  • Display the communication link status between sites by using the link (R2021b) function.

  • Display the radiation patterns for a site by using the pattern (R2021b) function.

  • Control the visibility of sites by using the show (R2021b) and hide (R2021b) functions.

When you import a scene using Site Viewer, analysis functions such as raytrace and los use the scene as the 3-D environment.

 Functionality being removed or changed

Meshing infrastructure

Behavior change

Starting in R2021b, you might see a slight variation in antenna analysis results due to an update to the meshing infrastructure.

Default value of Method name-value argument for propagationModel function is now shooting and bouncing rays method

Behavior change

Starting in R2021b, when you create a propagation model using the syntax propagationModel('raytracing'), MATLAB returns a RayTracing model with the Method name-value argument value set to 'sbr' and two reflections (instead of 'image' and one reflection as in previous releases). To create ray tracing propagation models that use the image method, use the syntax propagationModel('raytracing','Method','image'). For more information, see Choose a Propagation Model (R2021b) and propagationModel (R2021b).

raytrace, coverage, link, sigstrength, and sinr use shooting and bouncing rays method

Behavior change

Starting in R2021b, when you use the raytrace (R2021b), coverage (R2021b), link (R2021b), sigstrength (R2021b), or sinr (R2021b) function and specify the propmodel argument or PropagationModel name-value argument as 'raytracing', the function uses the shooting and bouncing rays (SBR) method and calculates up to two reflections. In previous releases, the functions use the image method and calculate up to one reflection.

If you prefer to use the image method instead of the SBR method, create a propagation model by using the propagationModel (R2021b) function. Then, use the raytrace, coverage, link, sigstrength, or sinr function with the propagation model as input. This example shows how to update your code.

pm = propagationModel('raytracing','Method','image');
coverage(txs,pm)

For information about the SBR and image methods, see Choose a Propagation Model (R2021b).

ReflectionLocations and NumReflections properties of the comm.Ray object have been removed

Errors

The ReflectionLocations and NumReflections properties have been removed from the comm.Ray (R2021b) object. To accommodate reflections, use the Interactions property to replace the ReflectionLocations property and use the NumInteractions property to replace the NumReflections property.

NumReflections property of the raytrace function will be removed

Still runs

The NumReflections property of the raytrace (R2021b) function will be removed in a future release. The NumReflections property now applies to only the image ray tracing method. Instead, create a propagation model by using the propagationModel (R2021b) function with its MaxNumReflections name-value argument. Then, use the raytrace function with the propagation model as an input. This example shows the recommended workflow given transmitter site tx and receiver site rx.

pm = propagationModel('raytracing','Method',...
                'image','MaxNumReflections',2);
rays = raytrace(tx,rx,pm);