Main Content

phased.RectangularRIS

Rectangular reconfigurable intelligent surface (RIS)

Since R2025a

Description

phased.RectangularRIS creates a rectangular Reconfigurable Intelligent Surface (RIS) System object™. An RIS surface consists of an array of unit cells lying in the yz plane with the array normal pointing along the x–axis.

To create and use a phased.RectangularRIS System object:

  1. Create the phased.RectangularRIS object and set its properties.

  2. Call the object with arguments, as if it were a function.

To learn more about how System objects work, see What Are System Objects?

Creation

Description

ris = phased.RectangularRIS creates a Reconfigurable Intelligent Surface (RIS) System object, ris. This object models a rectangularly-shaped RIS surface. The surface lies in the y-z plane and the surface normal points along x-axis. The default surface consists of unit cells having a cosine-shaped pattern.

example

ris = phased.RectangularRIS(Name=Value) creates a Reconfigurable Intelligent Surface (RIS) System object, ris, with each specified property Name set to the specified Value.

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.

Properties

expand all

Unless otherwise indicated, properties are nontunable, which means you cannot change their values after calling the object. Objects lock when you call them, and the release function unlocks them.

If a property is tunable, you can change its value at any time.

For more information on changing property values, see System Design in MATLAB Using System Objects.

Unit cell used in the RIS, specified as an element belonging to either the Phased Array System Toolbox or Antenna Toolbox. All elements in a RIS must be identical.

Example: UnitCell=phased.GaussianAntennaElement(Beamwidth=[15 15])

Size of the RIS, specified as a positive integer or by 1-by-2 positive integer vector. If Size is a vector, it takes the form of [NumberOfRows NumberOfColumns] where rows are along y–axis and columns are along z–axis. If Size is a scalar, the surface has the same number of elements along both axes.

Example: Size=[12 6]

Data Types: double

Unit cell spacing, specified as a positive scalar or a 1-by-2 real-valued vector of positive values. If the Spacing is a 1-by-2 vector, it takes the form of [SpacingBetweenRows SpacingBetweenColumns]. Rows are defined along y–axis and columns are defined along z–axis. If Spacing is a scalar, the spacing along both axes are the same. Units are in meters.

Example: Spacing=[2 2]

Data Types: double

Usage

Description

resp = ris(freq,angin,angout) returns the RIS unit cell responses resp at the operating frequency freq coming from incident directions specified by angin, into the directions specified by angout.

example

Input Arguments

expand all

Operating frequencies, specified as a length-L row vector with positive values. Units are in Hz.

Example: [30e6,50e6]

Data Types: double

Incident angle, specified as a real-valued length-M row vector or real-valued 2-by-M matrix.

  • If angin is a length-M row vector, then each element specifies the incident direction azimuth angle, and the corresponding elevation angle is assumed to be zero.

  • If angin is a real-valued 2-by-M matrix, each column of the matrix specifies the incident direction in the form [azimuth; elevation]. The azimuth angle should be between [-180 180] degrees and the elevation angle should be between [-90 90] degrees. Units are in degrees.

Example: [-30 2]

Data Types: double

Reflected angle, specified as a real-valued length-M row vector or real-valued 2-by-M matrix.

  • If angout is a length-M row vector, then each element specifies the incident direction azimuth angle, and the corresponding elevation angle is assumed to be zero.

  • If angout is a real-valued 2-by-M matrix, each column of the matrix specifies the incident direction in the form [azimuth; elevation]. The azimuth angle should be between [-180 180] degrees and the elevation angle should be between [-90 90] degrees. Units are in degrees.

Example: [-35 20]

Data Types: double

Output Arguments

expand all

Reflected surface response, returned as a complex-valued N-by-M-by-L MATLAB array or a MATLAB struct.

  • If the surface is not capable of simulating polarization, resp has dimensions N-by-M-by-L where N is the number of unit cells in the RIS. Each column of resp contains the responses of the surface unit cell for the corresponding incident direction specified in angin and reflection direction specified in angout. Each page of resp contains the responses of the surface for the given frequency specified in freq.

  • If the surface is capable of simulating polarization, resp is a struct containing four fields, HH, HV, VH, and VVVV.

    • HH represents the surface's response when the incident signal is in horizontal polarization and the reflection signal is also in horizontal polarization.

    • HV represents the surface's response when the incident signal is in vertical polarization and the reflection signal is in horizontal polarization.

    • VH represents the surface's response when the incident signal is in horizontal polarization and the reflection signal is in vertical polarization.

    • VV represents the surface's response when the incident signal is in vertical polarization and the reflection signal is also in vertical polarization.

    Each field is a complex-valued N-by-M-by-L MATLAB array whose columns contains the responses of the surface unit cells for the corresponding direction and frequency.

Data Types: double
Complex Number Support: Yes

Object Functions

To use an object function, specify the System object as the first input argument. For example, to release system resources of a System object named obj, use this syntax:

release(obj)

expand all

getNumElementsNumber of elements on rectangular Reconfigurable Intelligent Surface (RIS)
isPolarizationCapableRIS responds to polarized fields
patternPlot 3D scattering pattern of RIS
stepRun System object algorithm
releaseRelease resources and allow changes to System object property values and input characteristics
resetReset internal states of System object

Examples

collapse all

Create a 20-by-30 RIS consisting of cosine antenna elements. The elements have a cosine power of two. The operating frequency is 300 MHz.

fc = 300e6;
c = physconst("LightSpeed");
lambda = c/fc;
d = 0.5*lambda;
ris = phased.RectangularRIS( ...
    UnitCell=phased.CosineAntennaElement(CosinePower=2), ...
    Size=[20 30],Spacing=[d,d]);

Find the RIS element responses for a signal incident at (10,15) in azimuth and elevation and reflected in the direction (20,15) in azimuth and elevation.

resp = ris(fc,[10;15],[20;15]);

Plot the response pattern for the same incident direction.

pattern(ris,fc,[10;15],-45:45,-45:45)

Figure contains an axes object. The hidden axes object with title 3D Response Pattern contains 13 objects of type surface, line, text, patch.

Compute a signal scattered from a 25-by-25 Reconfigurable Intelligent Surface (RIS). The incident angle to the surface is10° in azimuth and the reflected direction is -10°in azimuth. Apply uniform weights to the RIS. RIS elements are half-wavelength apart.

fc = 300e6;
c = physconst("LightSpeed");
lambda = c/fc;
d = 0.5*lambda;

Create a rectangular RIS surface from cosine antenna elements.

ris = phased.RectangularRIS(...
    UnitCell=phased.CosineAntennaElement(CosinePower=2), ...
    Size=[25 25],Spacing=[d,d]);

Create the RIS reflector from the surface.

reflector = phased.RISReflector(Surface=ris);

Reflect a random signal.

x = randn(50,1);

Apply uniform weights to the array elements.

w = ones(getNumElements(reflector.Surface),1);

Display the array response.

y = reflector(x,[10;0],[-10;0],w)
y = 50×1
103 ×

    0.3161
    1.0781
   -1.3279
    0.5069
    0.1874
   -0.7688
   -0.2549
    0.2014
    2.1037
    1.6281
   -0.7936
    1.7842
    0.4264
   -0.0371
    0.4202
      ⋮

pattern(ris,fc,[10;0],-45:45,-45:45)

Figure contains an axes object. The hidden axes object with title 3D Response Pattern contains 13 objects of type surface, line, text, patch.

References

[1] Mohamed A. Elmossallamy, Hongliang Zhang, Lingyang Song, Karim Seddik, Zhu Han, and Geoffrey Li, "Reconfigurable Intelligent Surfaces for Wireless Communications: Principles, Challenges and Opportunities", IEEE Trans. on Cognitive Communications and Networking, V9l. 6, No. 3, September 2020

[2] Qingqing Wu, Shuowen Zhang, Beixiong Zheng, Changsheng You, and Rui Zhang, "Intelligent Reflecting Surface-Aided Wireless Communications: A Tutorial", IEEE Trans. on Communications, Vol. 9, No. 5, May 2021

Extended Capabilities

expand all

C/C++ Code Generation
Generate C and C++ code using MATLAB® Coder™.

Version History

Introduced in R2025a