Giter Club home page Giter Club logo

calc-scatpat's Introduction

calc-ScatPat

MATLAB implementation of the Huygens-Fresnel principle (HFP) for the calculation of the scattering pattern produced from the illumination of a rectangular metasurface.

This repositories includes the following three m-files:

  1. The core-function calc_ScatPat.m
  2. A test-script (test_script.m) to showcase the execution
  3. The plot_3D_Pattern.m function (can also be found in my other repository), with modified parameters.

Here are the two figures produced by the execution of test_script.m

MS_config

Fig.1 : Phase (left) and amplitude (right) profile of the reflection coefficient of each cell across the metasurface. Note that the reflection coefficient profile is assumed homogenized, i.e., any coupling between adjacent cells has been accounted for.

Pattern

Fig.2 : Scattering pattern produced from olbique (30 deg) illumination in the far-field. Left is in spherical coordinates, right is in cylindrical (also known as "U-V") coordinates. Note that the present HFP implementation is scalar, i.e., it works with only one polarization or, equivalently, it produces only the co-polarized scattering pattern.

The resulting scattering pattern can be post-processed to extract various metrics, e.g., directivity, HPBW, SLL, etc.

Extensions to this HFP implementation for the response in the transmissive (refractive) hemisphere or from non-uniformely arranged scatterers can be easily implemented. The most strong limitations for HFP validity are:

  • (i) The incident wavefront is spatially coherent, i.e., it has large curvature-over-lambda. Equivalently, it means that all (point) sources are far from the scatterer-array.
  • (ii) The arrangement of the scatterers that make up the metasurface forms a convex, flat, or only mildly-concave aperture (so that there's no wave bouncing between scatterers).
  • (iii) The obliquity is generally low, i.e., incidence/scattering is mostly from/towards the "broadside" of the aperture (angles up to 45-60 deg).

If you use these functions for research, please cite my 2022 paper "Multi-functional metasurface architecture for amplitude, polarization and wavefront control". These functions have been used also in other papers such as "Multiwideband Terahertz Communications Via Tunable Graphene-Based Metasurfaces in 6G Networks" and "Scalability Analysis of Programmable Metasurfaces for Beam Steering".

A similar physical-optics tool, Fresnel-Kirchhoff diffraction (FKD) from a finite-aperture metasurface, that can be used for imaging or for wireless path-loss calculation between two antennas with scattering off a metasurface, can be found in Section III.A-B of my 2023 paper "On the Mobility Effect in UAV-Mounted Absorbing Metasurfaces: A Theoretical and Experimental Study". A broader discussion/perspective on the physical/wave-optics usage in wireless-communications with metasurfaces can be found in Section III.C therein. I plan to add FKD to the present MATLAB toolpack, as it complements HFP.

Thanks for reading/visiting =)

calc-scatpat's People

Contributors

alexpiti avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.