0

I am trying to apply an AC signal with a continuous "band" of frequencies, I generate the waveform in MATLAB and use the welch spectrum analysis to get a nice continuous band of frequencies from f1 to f2. When I actually generate the wave with a function generator, the signal reads back as a bunch of discrete frequencies between f1 and f2. I'm assuming its a problem of sampling in discrete time but I am unsure how to fix it. The end goal is to apply the AC voltages to something and find/track the resonance frequency within the band.

More specifically I am looking at 300-400 kHz and my sampling rates on the generator can range from 1MHz to 2.4GHz, I'm using a linear frequency change with respect to time (the one with sin(At^2 + f0t)).

Any idea on how I can get a more continuous signal?

I don't think its a measurement issue (not sure) because it is independent of window functions, measuring the signal applied or directly from the generator, sampling rates, etc.). I'm not sure how to check that definitively so if you know how to confirm that issue that would also be helpful.

Here's the formula for the sine wave.

y=sin(2pi((f_width/(2*tmax))t.^2+f1t));

t is a 1xn vector (solved for so that the time matches the sampling rate of the generator) and everything else is constant.

I have also used the built-in function in the generator (zurich instruments) and gotten similiar issues.

  • This question is lacking a lot of necessary detail about what you generated and how you measured it, because you're assuming that this is a "problem with sampling in discrete time", but it's not. If I had to guess, I'd guess that the problem is playing the same n samples repeatedly and then measuring over a longer time frame. – Matt Timmermans Apr 01 '22 at 01:37
  • Its a chirp signal, a sine wave with a linearly increasing frequency with time. I'm generating the "wave" which is just a vector with elements that are the amplitude at the sample point, in matlab and sending it to a function generator. When I run spectrum analysis on the matlab waveform vs measuring the function generator output I see it go from a nice band of frequencies generated in the code to a series of discrete frequencies. I've thought about that too, but waiting for the wave to end before replaying, joining multiple waves, etc. hasn't changed it. How would I verify your concern? – Steven Baro Apr 01 '22 at 05:19
  • Do you send exactly one chirp to the function generator? If you replay a signal periodically at, say, 1000 times/sec, then you create a signal composed only of frequencies that are multiples of 1000Hz. What is the spacing of discrete frequencies when you measure it? – Matt Timmermans Apr 01 '22 at 11:31
  • I've tried both sending one and generating a wave with two periods, there is a difference in spacing but it is still discretized. The spacing for the stand-alone generated wave is ~0.3-0.4 kHz and if I double the wave (just append the same waveform to itself) the spacing goes down to 0.2 kHz. – Steven Baro Apr 01 '22 at 18:16
  • Ah, that's not the problem I was thinking of. Oh well... Signals composed of discrete frequencies with 400Hz spacing are signals that repeat every 2.5ms, though. There's no way around that. – Matt Timmermans Apr 02 '22 at 16:59
  • Ah, so the series of peaks are common multiples of the signal spacing then? Would a high-pass filter fix that? – Steven Baro Apr 03 '22 at 21:27

0 Answers0