Question about using the "impulse" waveform option for FMCW excitation

287 views
Skip to first unread message

Khurram

unread,
Oct 30, 2023, 6:39:51 PM10/30/23
to gprMax-users
Hello! I recently started looking at gprMax for my work and have a few questions / observations about using the impulse waveform option. Let me put down my thoughts as bullet points. Here goes:

  • I have seen the youtube video explaining the impulse option and how it was used for SFCW excitation. I want to do the same but for FMCW. I have also looked at all the conversations in this group that had anything to do with either of those two waveforms to avoid asking duplicate questions.
  • My first observation is that when Antonis did the youtube video, I noticed that he set the pulse duration equal to 0.5e-6 which is the same time as the time window given to gprMax. Is this just a coincidence or is there a deeper meaning here?
  • Unless I am missing something, I would expect that those two time periods can be different. I am looking at this from an LTI perspective. gprMax gives me the impulse response. The critical thing probably is to ensure that the impulse response has "died down sufficiently" in the time window we gave as input. I am not sure about this since I am not a gprMax expert. But assuming that what we get from gprMax is the impulse response, we should be able to convolve that with any signal (of course respecting the frequency limits of the FDTD) of any length and we should be good. Is that correct?
  • I generated the impulse response using the same input file that Antonis used in the video. Then I basically generated a chirp from 0.8 to 1.2 GHz but of a longer duration (10e-6) than the time window given to gprMax. I then convolved this chirp with the impulse response and did all of the subsequent FMCW signal processing. But I can't seem to be able to explain things. I can add more details about this point but I first want to ensure that the observations / questions I had above are dealt with. I did ramp up the chirp slowly as has been suggested in a lot of places.
  • Lastly, is it worthwhile to sort of follow the approach that Antonis did in the video but for FMCW? Basically break down the FMCW chirp into lets say 100 parts. Give each one of them as a separate input. Its not clear in my head how this would help if at all.
I appreciate all the help I can get on this. Cheers!

Antonis Giannopoulos

unread,
Oct 31, 2023, 6:22:44 AM10/31/23
to gprMax-users
Hi Khurram,

You are making some very good points and questions and show to many other people that once you have done your research what you ask is better formed and specific so it can be answered more directly. Thank you for that.

Your 3rd point is the key to accuracy here. If you run the FDTD (gprMax) for the time duration of the original response then your process of convolution of the forcing function (pulse) with it should produce an answer within numerical precision. There is an added trick here that the sampling of the fields are not at the same time as the specification of the actual source for a transparent dipole or line source (i.e. a current density term). This contribution might result to a slightly higher error and prevent you from going down to rounding error precision which can be achieved. However, the assumption that the impulse response can be effectively zero padded to the end is a key one. In 2D the impulse response of a line source will never go down to zero (it is an invite source ...) In 3D things can be a bit better but this truncation introduces error that needs to be checked to see how acceptable it is or not. It can be fine to have this error if you can keep it under control and save on computation. Alternatively, you can be more sophisticated and use extrapolation methods (e.g. Prony's method) to extrapolate the impulse response after it has sufficiently reduced instead of zero padding. This has been done before for improving the computation of resonant frequencies from high-Q structures that otherwise will need millions of iterations. There are methods available and well tested.

I personally have not done the FMCW process as most people use the computationally simpler SFCW which is commercially available and I did this to respond to that demand. I have presented in a more detail the SFCW process at the recent Near Surface Geoscience conference in Edinburgh but it is essentially the same as in the YouTube video. 

This paper (https://ieeexplore.ieee.org/stamp/stamp.jsp?arnumber=9749913) from the RIMFAX (the GPR onboard the NASA Mars Rover "Perseverance") team details a process to model FMCW using gprMax, as RIMFAX is an FMCW GPR, without doing the complete (naive) implementation and it might help you. If you cannot get the paper email me privately and can give you a copy. 

Hope this helps and good luck. If you find an efficient accurate way to do this it would be nice to do an example and a notebook so other people can benefit. This is my plan for the SFCW case but this is much easier.

Best wishes

Antonis

Khurram

unread,
Oct 31, 2023, 7:16:13 PM10/31/23
to gprMax-users
Hello Antonis,

Thank you for responding to my post! Also, thank you for the paper. I just finished reading it. I don't think they are doing quite what I want. Unless I missed something, they basically model the whole FMCW waveform and its RX processing finally ending up with a reflection series of the sub-surface model. After that they basically use gprMax with a gaussian waveform and show how to get from what gprMax gives you to the reflection series. That involves background subtraction and deconvolution of the gaussian pulse used by gprMax. Once they show this analytically, they don't actually go through the process of getting the impulse response from gprMax using the impulse option and convolving it with the FMCW waveform. In other words, they don't quite do what you did in the youtube video. They establish equivalence analytically and then simply use gpMax with the Gaussian pulse.

I have a few follow-up clarifications / questions from your response. I hope you and possibly other people can join in on these.

-- You said that if I run gprMax for the duration of my original response (I am guessing you mean the duration of my FMCW pulse) and then convolve it with my FMCW pulse, that should produce an answer that's within the numerical precision. I think I agree with that. The problem, however, is that would results in 10-50 million iterations of gprMax because my FMCW pulse is so long, about 50 micr0 seconds or so. My question is: Why can not I run gprMax for a smaller time period (let's say 1 us) and then convolve the resulting impulse response of 1 us with my FMCW pulse of duration 50 us? What's wrong in doing that?

-- I did not quite understand your point about the sampling of the fields but I do not think that's my main problem right now. I could live with a simulation that has some higher error as long as it makes sense.

-- I also do not quite understand your point about the difference between the 2D and 3D simulations. Once again, I am a beginner when it comes to gprMax and might not know some of the nitty gritties. What I understood was that the impulse response might not actually be going down to 0 and should be either zero padded or extrapolated, preferably the second option. And that it might be better to do this in 3D instead of 2D. What I don't get here (based on what I understood from your response) is that how were then you able to simulate the FMCW with 0.05 us duration? You only ran gprMax with time window of 0.05 us but the impulse response might actually be non-zero for longer.

I am sorry if i sound confused and come across as not having done my homework but this is what I understand right now. I appreciate your help with this and if you can think of a way to simulate FMCW in a somewhat similar way that you did SFCW, please shoot suggestions my way. Thank you!

Antonis Giannopoulos

unread,
Nov 1, 2023, 8:02:39 AM11/1/23
to gprMax-users
Hi Khurram,

There is a big difference between 2D and 3D simulations apart from the obvious assumption of the invariance of the targets in one direction. This is often the easiest assumption to fulfil especially if you work with pipe like targets. The biggest assumption is that the fields are also 2D. Your source is not an theoretical hertzian dipole but an infinite long line source. The spreading loss is not in a volume but on a surface and 2D results will be of higher amplitudes than 3D. Again the usability of a model depends on what is intended to do and the limitations we have with computing resources. If you try to compare real A-scans with 2D simulations this will not be easy or meaningful for realistic situations (people have done some work on converting 2D results to 3D for amplitude variations but this is limited and breaks down when you move from homogenous backgrounds).

The difference with the time sampling of fields is minor but noticeable if you are trying to compare the two different ways of obtaining a response. Electric and magnetic fields in FDTD are staggered in time and they are 0.5 DT apart. A current source is specified 0.5 DT apart from the electric field that it produces. Hence if you convolve your source function sampled at the same time instance as the electric field there will be a small difference when compared with the actual gprMax result. This is OK but it is good to expect it and understand why you see it. 

The big question is why you cannot sample for only 1us the FDTD and then convolve with a 50us forcing function. The answer to this is that it depends on what you are simulating. If you have captured the impulse response properly with the 1us simulation it can work although there will be some error if you compare the results obtained by running the simulation for 50us. The error can be acceptable and so what you do is OK. However, if you do not capture everything properly then the error will be more significant.You can actually test this by doing simple models with a gaussian source and an impulse source and then convolution and quantify the errors. 

The paper creates a process to model the FMCW response in an equivalent way using a gaussian pulse that produces similar results but it does not reproduce the actual FMCW process as can be seen from a system perspective. At the end it all depends on what you need. 

My advice is to try and quantify the errors by not creating an impulse response as long as the actual FMCW chirp. If these are acceptable for shorter impulses then you have a good process. If not, then you need to try and see if you can account for these in different ways than brute force modelling that is obviously unrealistic in the demands of computational resources. To quantify the errors and the differences you can test with much shorter functions than the actually FMCW chirp that needs millions of time-steps. 

Best

Antonis

Khurram

unread,
Nov 1, 2023, 8:44:45 AM11/1/23
to gprMax-users
Thank you for all that information Antonis! I will have to spend some more time to really understand it. I also agree with your comment about the paper that they established equivalence and did not actually reproduce the FMCW process using gprMax.

Just a couple of quick follow-up questions to help me work through your above response. When you say "if you captured the impulse response properly",  what does that mean exactly? How is properly defined in your / gprMax dictionary? Secondly when you say "try and quantify the errors by not creating an impulse response as long as the actual FMCW chirp", what am i comparing my output against? Should i compare it with let's say the response I get from gprMax when I use a Gaussian pulse? The two responses should be highly correlated with maybe some more ringing in the FMCW response. Is that what you meant?

Antonis Giannopoulos

unread,
Nov 1, 2023, 12:11:35 PM11/1/23
to gprMax-users
Hi Khurram,

What I mean by "captured properly" is that the impulse response has sufficiently captured the phenomena that you are trying to model. If it is a resonant problem that might lead to a lot more iterations than a transient one. So, basically have a proper time window to capture the variation of the fields according to your problem. To see how truncating or resampling the impulse response and how well the convolution with a forcing function works in comparison with a "standard gprMax model" you can use a simple gaussian or other similar tests. The "effects" will be similar and you save time in understanding the limitations. 

Hope this helps to clarify things.

Best

Antonis

Reply all
Reply to author
Forward
0 new messages