Skip to content

more flexible electrode configurations?  #5

Description

@JeanRintoul

I would like to model a larger array of varied electrode configurations, from the standard tetrapolar adjacent method, opposition method, to bipolar and other user defined electrode configurations that don't always have the same step size. Currently functions seem limited to tetrapolar adjacent/opposition only. Is there a way to allow a user defined file(example)
e_config.txt

Above is an example of a 32 electrode configuration running in random order. Ideally it should acquire the same results as running the simulator but it doesn't as there are dependencies in other files on electrode ordering.

Activity

  1. liubenyuan commented on Mar 28, 2018

    @liubenyuan
    Collaborator

    pyEIT does not constrain the stimulation pattern, for example, you can use the variable ex_mat for more flexible configurations of the stimulation electrodes. ex_mat is of size Nx2, for any row ex_mat_i, the ex_mat_i(0) is the current injection while ex_mat_i(1) is the sink.

    For a typical 16-electrodes configuration, the electrodes are at nodes:

    [1, 7, 86, 176, 288, 667, ..., 981]
    

    and ex_mat may be specified within the range [1..16]

    1, 3
    1, 7
    2, 9,
    1, 16,
    2, 15
    ...
    7, 1
    8, 2
    

    You may find an example in demo_stack_jac.py and demo_sensitivity2d.py

    But, as you see in the function voltage_meter, the measuring pattern is limited to skip k, while k is specified by the variable step. However, the measuring sequence only affects the dynamic range in real hardware, in simulation, the adjacent measurement method suffices.

  2. JeanRintoul commented on Mar 29, 2018

    @JeanRintoul
    ContributorAuthor

    Great - demo_dynamic_stack can vary A and B but is there a way to vary M and N as well?
    Also, is there a way to do bipolar measurements where M and N are non-existent? Intent is to use in hardware and experiment with different configurations here.

  3. liubenyuan commented on Mar 30, 2018

    @liubenyuan
    Collaborator

    The current code only varies A and B. M and N are fixed by a skip k pattern (step=k). However, given that,
    \int u_i = 0, i \in E_l, by measuring all adjacent voltage differences on the boundary electrodes, you may infer the voltage difference of any pair (exclude the A and B which have contact impedance). The way the voltage meter constructs only affect the dynamic ranges and noise performance in real hardware, in simulation, the DR and SNR (of ADC) are assumed infinity.

    However, pyEIT cannot handle the voltage meter while M and N are not electrodes. In this case, you may create pseudo electrodes. For example, 71 electrodes marked by el_pos, but keep in mind which of these electrodes are those actual 16 electrodes you want to use (or even, you can use any of these 71 electrodes as A and B), and write ex_mat (A and B) accordingly. M and N are also measured in an adjacent manner, then you may infer any voltage difference of these 71 measures.

  4. JeanRintoul commented on Apr 9, 2018

    @JeanRintoul
    ContributorAuthor

    Thanks for clarifying SNR assumed infinity in simulation. Currently integrating pyEIT into OpenEIT dashboard.

  5. liubenyuan commented on May 10, 2022

    @liubenyuan
    Collaborator

    Now electrode configurations has been merged into Protocol dataset as in #47. User could specify meas_pattern or build it if necessary.

  6. veelox321 commented on Oct 3, 2023

    @veelox321

    Hi, is there a reason i just cant seem to reconstruct using a different patern than adjacent? The ex_mat and meas_mat seems ok if i do skip2 but any reconstruction doesn't work even by adjusting the constant : w,lamb,n,....

  7. JeanRintoul commented on Oct 3, 2023

    @JeanRintoul
    ContributorAuthor

    Hello, If you want to try any sequence you specify you should also update the firmware to match. The firmware is also open source.

  8. veelox321 commented on Oct 3, 2023

    @veelox321

    Hello, If you want to try any sequence you specify you should also update the firmware to match. The firmware is also open source.

    Hi, thanks for your quick reply. I already have an updated firmware which match the excitation pattern im trying to reconstruct. Data are acquired on circular phantom

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions