1
$\begingroup$

I have a stationary signal from a train of Gaussian pulses. My sampling window is too wide (cannot be reduced). In the example 1 ms. So it is not possible to clearly distinguish one pulse from another.

The advantage is that I can resample the signal several times by moving sampling start with a delay. For example, I sample the signal 5 times, moving 0.2 ms in each one.

I need to build an inverse model that given the sampled signals (the 5 signals below), original signal can be reconstructed.

Is there any algorithm that solves this inverse problem?

sample problem

UPDATE

source code: https://github.com/angel-zeitoune/gaussian-pulses-recover

$\endgroup$
5
  • $\begingroup$ Maybe you can model the arrival of the pulses as a known process such as a poisson arrival process. Then, if you utilize different sampling patterns, you have a set of observations. Finally, you can utilize an estimation methos such as maximum likelyhood estimation in order to estimate the arrival rate of the previously modeled arrival process. Now that you have a model of the process and a set of observations, you can find the train of pulses that maximizes the consistency between the observations and the arrival process model. $\endgroup$
    – strahd
    Commented Feb 5, 2020 at 20:53
  • $\begingroup$ Do you have a CSV or a code to build the data? Could you tell the parameters of the Gaussian? $\endgroup$
    – Royi
    Commented Jun 30, 2021 at 18:05
  • $\begingroup$ I built the train of Gaussian pulses directly in matlab. Then I simulated several samples of the signal would look like. It's only a simulation with the intention of applying it to a real problem $\endgroup$
    – Crandel
    Commented Jun 30, 2021 at 22:16
  • $\begingroup$ @Crandel If you can share your MATLAB code I can demonstrate the solution I presented in terms of recreating the input samples from the 5 output samples, assuming that is your intention. $\endgroup$ Commented Jul 1, 2021 at 13:19
  • $\begingroup$ source code github.com/angel-zeitoune/gaussian-pulses-recover $\endgroup$
    – Crandel
    Commented Jul 2, 2021 at 19:36

1 Answer 1

1
$\begingroup$

The reconstruction can be done by commutating through each output resulting is a 5 kSps representation of the signal after having been passed through a 5 sample moving-average filter (5 tap FIR with unity gain coefficients). Thus any frequency content above 2.5 KHz will be aliased into the 0 to 2.5 KHz first Nyquist zone, and the overall result will be low pass filtered. Such a moving average filter would have its first null at 1 KHz. By reducing the time delay (and creating proportionally more outputs to commutate) the equivalent sampling rate of the resulting signal can be increased to reduce the aliasing but the first null of the resulting frequency response will always be at 1 KHz (the frequency response will approach a Sinc function as the time delay is reduced).

This is clear by observing the equivalent block diagram of the process below:

Functional Diagram of Process

On each cycle of the 5 kSps clock, the input is fed into each 5 sample moving average filter ($MAF5$) with each filter input delayed by one sample. Once each filter has received 5 samples, the output is decimated by 5, thus providing a new sum over 5 samples, every 5 samples. Each decimated output is offset by one sample. Thus it is clear that each of these outputs is simply the output of the first $MAF5$ after each sample of the 5 kSps clock, as shown in the diagram below.

Equivalent Diagram

The magnitude of the frequency response for this process is shown in the figure below:

Frequency Response

The process will result in distortion from both the aliasing from frequency content above the 2.5 KHz Nyquist Frequency and the frequency response of the 5 sample moving average filter. As stated in the introduction, reducing the delay and increasing the number of outputs will increase the effective sampling rate, thus reducing aliasing distortion, but the first null of the frequency response of the equivalent moving average filter will remain unchanged.

$\endgroup$
12
  • $\begingroup$ Thanks. It opened my focus. What is not clear to me is why should I commutate the outputs? This generates the MAF filter with the first null in 1 KHz. $\endgroup$
    – Crandel
    Commented Feb 6, 2020 at 15:08
  • $\begingroup$ What generates the null at 1KHz is the 1 ms aperture. If you commutate the outputs then you get access to every output sample from the equivalent MAF, appropriately indexed. Any one output is the decimated version of the same thing at the 1 KSps rate (meaning changes/updates won't occur more frequently regardless of how often you sample each output). So commutating the outputs gets you ALL the information that is available. $\endgroup$ Commented Feb 6, 2020 at 16:51
  • $\begingroup$ @DanBoschen, I am not sure your system even tries to solve the inverse problem. It just models the system. $\endgroup$
    – Royi
    Commented Jun 30, 2021 at 18:10
  • $\begingroup$ @Royi I am not sure what you mean- the output is the original signal as represented by the 5 signals from the OP. This is what he is asking for if you read the details. I think the term “inverse” is misused. $\endgroup$ Commented Jun 30, 2021 at 18:20
  • 1
    $\begingroup$ @DanBoschen, Hence the solution should be from the world of statistical estimation and not classic signal processing filtering. If the OP knows the parameters of the gaussians then it becomes an estimation problem of the parameters of the time of each gaussian. If not, it will be much more difficult (Estimating Variance, maybe amplitude and time?). $\endgroup$
    – Royi
    Commented Jul 1, 2021 at 4:06

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.