MIMO PLC Channel Emulator
The multiple-input, multiple-output (MIMO) power line communication (PLC) channel emulator is a MATLAB-based tool to determine the transfer functions between any two points in a MIMO PLC network.The software is freely usable provided that publications resulting from the use of this software cite the publications listed here and include a link to this website.
It consists of three main packages:
mtlPUL: per unit length parameter computation unit
The per unit length (PUL) parameter computation unit uses a numerical solver to determine the per unit length parameters for arbitrary MTL setups, under the assumption of quasi-TEM propagation. It is used by the HarnessTF package. The readme for this package is available as PDF, or as HTML version. There are two examples included in the package: A three conductor symmetric cable with a circular outer sheath, and a setup with two three conductor ribbon cables stacked vertically. The examples can be executed by running the script_pul_symm.m, and script_pul_ribbon.m MATLAB-files in the mtlPUL directory.

MTLTF: transfer function for MTL setups
The multiconductor transmission line (MTL) transfer function (TF) computation module determines the SIMO transfer function between an arbitrary wire and node. The input consists of the schematics of the MTL setup, the per unit length parameters of the MTLs, and the loads. The readme for this package again is available as PDF, or as HTML version. An example with three multiconductor transmission lines is included in the package and can be executed by running the script file script_MTL.m in the MTLTF folder.
HarnessTF: Transfer function for a cable harness
This package is closely related to the MTLTF package. However we do not specify a MTL setup for this package, but we specify the physical appearance of the cable harness (plastic tubes, junctions connecting those tubes, etc.), and a set of wires. The algorithm will then try to figure out how the wires run through the plastic tubes, and from that data will generate the MTL setup. It will then use the mtlPUL package to compute the per unit length parameters, and then compute the SISO transfer function between any two points in the harness. Furthermore one can either specify the loads directly, or use randomized loads. The readme is available as PDF, or as HTML version. Two examples come with the package: one simple cable harness with only a bunch of cables, and a more complex example: A real car harness. The examples can be executed by running the script files script_simpleHarness.m , and script_carHarness.m , respectively, in the HarnessTF folder.
