Giter Club home page Giter Club logo

layermodel_lib's Introduction

DOI

LayerModel_lib - A Python Toolkit to Compute the Transmission Behaviour of Plane Electromagnetic Waves Through Human Tissue

Introduction and Motivation

This repository provides a library to calculate transfer functions, path loss, channel capacity and various other properties of in-body to on-body ultra wideband commincation using the layer modeling approach as introduced in [Bru24]. Instead of simulating the wave propagation inside the human body using numerical methods, the transmission from transmitter TX to receiver RX is simplified by a plane wave travelling through a multi-layered dielectric. The layers of this multi-layered dielectric can be determined from arbitrary voxel models.

It was shown in [Bru24], [BB17b], [BKB19], and [BB19] that the results from this layer modeling approach fit well to the results that have been published in the literature so far for similar transmission setups. For more details on this modeling technique refer to [Bru24]. The actual results in [BB17a], [BB17b], [BB17c] and [BKB19] were computed using MATLAB. LayerModel_lib is a Python implementation of the same functionality.

The results from [BB19] were simulated using this library and the resulting data can be found in int/in-body/ismict2019>.

Citation

This code is distributed under MIT license. When using this code or parts of it for publications or research please cite this repository as:

[Bru23] J.-C. Brumm, "LayerModel_lib. A Python toolkit to compute the transmission behaviour of plane electromagnetic waves through human tissue." DOI: 10.5281/zenodo.10459541

Installation and Requirements

  1. Download and install at least Python 3.6

  2. The following Python packages are required:

    1. scipy
    2. numpy
    3. texttable
    4. progressbar2
    5. matplotlib
    6. opencv-python
    7. scikit-learn
    8. networkx

    When using Anaconda the supplied environment.yml can be used to create a new environment with all dependencies.

  3. Clone the git repository

  4. Install the LayerModel_lib package using

python setup.py install

Voxel Models

Due to license restrictions no voxel models are included in this package. In phantom_import/Readme.md a list of all supported voxel models can be found together with a detailed explanation how to import the voxel models. For all of the models mentioned therein an import script is available in the folder phantom_import.

Example

A short example on how to calculate the transfer function between a transmitter placed in the gastrointestinal tract and a receiver on the body surface is given in the following:

import os
from LayerModel_lib import VoxelModel, LayerModel

# set the working directory where the imported voxel models can be found 
VoxelModel.working_directory = os.path.join('..', 'Phantoms')
# Load a virtual human model
vm = VoxelModel('AustinWoman_v2.5_2x2x2')

# generate 10 random endpoints (receiver locations) on the abdominal surface
e = vm.get_random_endpoints('trunk', 10)

# get 10 random startpoints (transmitter locations) in the gastrointestinal tract
s = vm.get_random_startpoints('trunk', 'GIcontents', 10)

# calculate the layer model between two of these points
lm = LayerModel(voxel_model=vm, startpoint=s[1], endpoint=e[1])

# compute the transfer function 
transfer_function, f = lm.transfer_function()

More examples can be found in the examples folder.

References

[Bru24] J.-C. Brumm, "Channel Modeling and Performance Analysis of Ultra Wideband In-Body Communication", PhD thesis, TU Hamburg, 2024, https://doi.org/10.15480/882.9047

[BB19] J.-C. Brumm, and G. Bauch, “Influence of Physiological Properties on the Channel Capacity for Ultra Wideband In-Body Communication,” in 13th International Symposium on Medical Information and Communication Technology (ISMICT'2019). Oslo, 2019.

[BKB19] J.-C. Brumm, J. Kohagen, and G. Bauch, “Improving Ultra Wideband In- Body Communication Using Space Diversity,” in 12th International ITG Conference on Systems, Communications and Coding 2019 (SCC’2019). Rostock, 2019.

[BB17c] J.-C. Brumm and G. Bauch, “On the Shadowing Distribution for Ultra Wideband In-Body Communication Path Loss Modeling,” in IEEE AP-S Symposium on Antennas and Propagation and USNC-URSI Radio Science Meeting. San Diego, USA, July 2017.

[BB17b] J.-C. Brumm and G. Bauch, “On the Placement of On-Body Antennas for Ultra Wideband Capsule Endoscopy,” IEEE Access, vol. 5, pp. 10141–10149, 2017. http://dx.doi.org/10.1109/ACCESS.2017.2706300

[BB17a] J.-C. Brumm and G. Bauch, “Channel Capacity and Optimum Transmission Bandwidth of In-Body Ultra Wideband Communication Links,” in 11th International ITG Conference on Systems, Communications and Coding 2017 (SCC’2017). Hamburg, Germany, 2017.

[TT+12] P. Theilmann, M. A. Tassoudji, E. H. Teague, D. F. Kimball, and P. M. Asbeck, “Computationally Efficient Model for UWB Signal Attenuation Due to Propagation in Tissue for Biomedical Implants,” Progress In Electromagnetics Research B, vol. 38, pp. 1–22, 2012.

layermodel_lib's People

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.