GPR anomaly due to a buried cylinder anomaly (like pipe or cave)

The large white circle represents a cross section of buried cylinder anomaly like pipe, cave or lava tube in the subsurface. Brown surrounding area is the soil while blue represents the air. Two black rectangules are the transmitter and receiver of GPR antenna. The signal wave on the right shows two recorded pulses, top one is direct wave reflected from the ground surface. Second pulse represent the diffracted electromagnetic pulse from the buried anomaly. To start collcting data click on 'Collect Data' button. If you change the location of anomaly by mouse, you can see the changes in location of second wave as well.

This code is wrriten in P5. You can find more information about P5 javascripts here: p5js.org

The link to this bellow P5 code

If you are intersted to know how GPR signals work see bellow video:

To ckeck the mathematic behind this code please find the P5 javascript source code and also you can check here where a MATLAB algorithm to perform convolution can be found. Also, it is recommended that reader checks the 'conv' MATLAB function and read the 'Discrete convolution' section here