1

I need to record a series of pulse waves for an experiment. The recording is done via Software Defined Radio (GNU Radio). The pulse waves are modulated in such a way that the amplitudes of each single pulse increase up to a certain point where it peaks. Afterwards, the amplitudes decrease. This behavior repeats.

I need to compute the peak amplitude value of these pulses. For that, I need to compute the envelope of the pulses to calculate the maximum. The following picture shows what I mean.

enter image description here

However, traditional envelope detectors are used to extract the original signal from the carrier wave and do not compute the envelope from a series of pulses. I might end up with the envelope for each pulse which is not what I need.

My question is whether there exists methods for computing such an envelope or how you would tackle this problem.

Edit: Since my problem statement wasn't clear enough, I want to clarify some things

  • The signal shown in the pictures is generated in GNU Radio by creating a signal wave and chopping it to pulses by multiplicating it with a vector
  • The "envelope" I described here is misleading. As @ZRHan pointed out, a simple interpolation would be enough. However, I have to investigate it further to give a clear answer

Edit: Since the question has been flagged as a duplicate, I want present the solution, that I have been using since asking the question. Since the goal is to determine the peak of the "fake envelope", I simply performed a polynomial regression of order 2 on the peaks of the single pulses, as @MBaz described. Then I can simply get the peak by getting the maximum of the fit model.

thehnm
  • 11
  • 2
  • 1
    It's not clear what you mean with "envelope", as you, yourself, say that what is traditionally meant with "envelope" is not what you mean. So, please be as mathematical precise as you can be when defining what you mean with envelope! It's also not clear what the blue bars in your graph are – your signal is certainly not composed of rectangular pulses, but of properly reconstructed time-domain samples (your rectangular pulses would have infinite bandwidth, and your SDR doesn't have infinite sampling rate, so that's impossible). Can you tell us exactly how your signal is generated? – Marcus Müller Jun 08 '22 at 19:16
  • 2
    I don't see why you need an "envelope". Isn't it enough to do peak detection? – MBaz Jun 08 '22 at 19:58
  • As MBaz said you don't need envelope to calculate the peak. If you still want it, I think a simple interpolation meets your demand as your picture shows. – ZR Han Jun 09 '22 at 01:03
  • 2
    There are several other posts here that further detail a "lossy peak detector" which I believe is what the OP is looking for, such as https://dsp.stackexchange.com/questions/35238/is-there-a-technical-term-for-this-simple-method-of-smoothing-out-a-signal/35245#35245. – Dan Boschen Jun 09 '22 at 12:23
  • @MarcusMüller In GNU Radio, the signal is generated as follows: I first generate a signal wave with the desired frequency. The signal wave then is chopped into pulses by multiplicating it with a vector. The amplitude of each pulse is modulated such that the size of the amplitude peaks at a certain point. The diagram should have pictured that. I am still familiarizing with DSP so my technical lingo is not the best – thehnm Jun 09 '22 at 17:50
  • @MBaz If I let the signal go through my peak detection algorithm, the peaks for each pulse would be calculated instead of the peak of the largest pulse. This was the idea I had in the beginning, so maybe I am mistaken – thehnm Jun 09 '22 at 18:00
  • @ZRHan This is the closest I think I can get to my original problem. Thanks for the input – thehnm Jun 09 '22 at 18:04
  • Yes, but then you find the peak of the peaks, i.e. the first peak that is lower than the previous one. – MBaz Jun 09 '22 at 19:57

0 Answers0