I wish to simulate measured data for developing signal processing methods. All properly measured data will have been through an antialiasing filter. How do I generate such simulated data? I have looked on this site and not found a simple answer (perhaps I have missed something).

For example the naive and wrong way to do it is a follows. Suppose I wish to simulate an exponential decay (my actual equations are nonlinear and much more complicated) using this equation

$y(t) = Exp(-4.t) (0.3 sin(775 t)+cos(775 t))$

If I sample at 1500 samples per second for 4 seconds I get a time history (only part shown) of

Mathematica graphics

I can take the DFT of this and get a spectrum. The theoretical spectrum, based on working out the Fourier transform of the above equation is

$H(f)=(5.99061 + i 0.159155 f)/(15214.4 + i 1.27324 f - f^2)$

where f is frequency in Hz.

Comparing the modulus and phase gives

Mathematica graphics

Mathematica graphics

Clearly aliasing has created the difference. (Although the theoretical spectrum will be a little different due to the presence of the antialiasing filter.)

What options do I have for generating simulated time histories that look like they have been through an antialiasing filter?

My thought so far is to interpolate the data. Resample at a very high frequency, and pass through a digital antialiasing filter. However, the resampling at a high frequency will result in aliasing at that high frequency so I am not technically correct. However, if my time history has very little high frequency then this may be good enough. Am I on the correct lines?

  • $\begingroup$ Can I please ask what frequency do you want your sinusoids to run at? $\endgroup$ – A_A Dec 14 '18 at 14:05
  • $\begingroup$ if oversampling by 10X isn’t sufficient your requirements are very strict. the analog processing chain isn’t ideal either so aliasing is only one issue. dynamic range of analog filters is another effect. simulation can only capture so much. $\endgroup$ – user28715 Dec 14 '18 at 16:37
  • $\begingroup$ @A_A When capturing data I usually make the Nyquist frequency at least 3 times the frequency of interest. So the sample rate is 6 times the frequency of interest. These days sample rate is not so much a problem. $\endgroup$ – Hugh Dec 14 '18 at 18:47
  • $\begingroup$ @StanleyPawlukiewicz Good point about what is sufficient. One issue is that often one works out a Frequency Response Function by dividing the DFT of the output by the DFT of the input. When I am dealing with mechanical systems they have an infinite number of resonances so there is no natural roll-off I can exploit. $\endgroup$ – Hugh Dec 14 '18 at 18:51

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.