Eng-Tips is the largest engineering community on the Internet

Intelligent Work Forums for Engineering Professionals

FFT distortion

Status
Not open for further replies.

zappedagain

Electrical
Jul 19, 2005
1,074
0
0
US
I'm getting an interesting FFT result (see attached diagram) off a pulse that I am digitizing. You can see that I have a lower magnitude alias at 16 KHz. This isn't at 2 times the Nyquist frequency but at about 0.64 times the Nyquist frequency. Why at that frequency?

In our system, we piece the sample data together from a non-linear time delay, and then interpolate it back to fixed time samples before it gets processed through the FFT. I believe I read a few years ago that this type of FFT anomaly is due to distortion in the time samples. I can't find that reference though.

Does anybody have any leads on how to track this issue down? Good books to reference? A name for this phenomenon?

Thanks,

Z
 
Replies continue below

Recommended for you

If you notice the shape, you can see it's like a mirror reflection off the 16 kHz. So we don't have to bother explaining the 0.64.

It looks a lot like "folding" (Wiki).
 
No, the Nyquist frequency is out at 50 KHz, 2 times the maximum frequency shown in the FFT (25 KHz). So it seems like my reconstructed sampling clock has a harmonic at 50 KHz and another at 50+(50-16)= 84 KHz that I am folding off; or possible a product off a higher harmonic.

 
Another *very* important point. These artifacts are 80dB (!) down from the peak of the target signal.

One perfectly reasonable approach to addressing them is to twiddle the controls to truncate the lower extreme of vertical scale so that these extremely weak artifacts disappear off the bottom of the display. Then you can go for lunch.

It's up to you if such tiny signals/artifacts at these extremely low amplitudes have any importance in the real world given your technical circumstances. At -80dB, it is probably unlikely that there's anything of real interest.
 
PS: Root cause, perhaps a 'spur' at 34kHz (50-16?) in the sampling clock. At such low levels, it could be a secondary or tertiary mixing product.

 
SNR is key in this application, so -80 dB is an issue. There are real artifacts within the spectrum of the signal that have value (not shown in the attached plot that I cobbled together to show the effect). When I average samples going into my FFT to drop the noise floor and improve SNR this 'image' doesn't drop. With enough averaging the slope of my main spectrum and the slope of the image intersect and additional averaging no longer improves the noise floor (see the second attachment).

A mixing product does make sense. This data is oversampled and then 'interpolated' back to 40 uS (25 KHz) samples that go into the FFT. I can shift the 'image' to other frequencies (0-1.0 * Nyquist/2) by changing my oversampling rate. I'm thinking there is some non-linearity in the interpolation math. I had one programmer who thought he had solved this a few years ago in the math. Now I have a new programmer and new algorithms and the problem is back...

Z
 
 http://files.engineering.com/getfile.aspx?folder=8c35d5e9-cdbc-4cf0-82ec-d7f4eb88a1cc&file=humptydump2.PNG
Artifacts are not random, and so would not be expected to drop in amplitude with averaging (as noise does).

"...in the interpolation math..."

You've opened up a new window there...
 
zappedagain said:
I had one programmer who thought he had solved this a few years ago in the math. Now I have a new programmer and new algorithms and the problem is back...

Well, then it shoudl be a simple matter to compare the two algorithms and determine where the bad juju is coming from.

Dan - Owner
Footwell%20Animation%20Tiny.gif
 
Yes, simple is a relative term. I suspect it may get to the level of 'this algorithm has sixteen double precision floating point operations and that one has 17'. That's why I'm back to the basics looking for theories to explore at the root of this.

Z
 
It seems to me that the lumps at 14 khz and 18khz are one of the following

1) truly there in the time history

2)something to do with your interpolation

3) something to do with your antialiasing filter

4) something to do with your DSP

I'd have thought if you posted a csv of the time history (the intial points, not your interpolated version) someone might check all that for you, it's a 10 minute job in matlab.



Cheers

Greg Locock


New here? Try reading these, they might help FAQ731-376
 
Unfortunately the raw samples are buried deep within the bowels of an embedded system...

So far the best explanation that I'm getting out of all this is that I have some timing distortion in my sampling signal that mixes back in as a spur in the spectrum and causes a mirror (alias) around the spur.

Z
 
That is interesting. Almost like the dither is resulting in a frequency modulation on the interpolated sampling frequency. I have multiple sources of clocking variation figuring into the logic to restore my samples back to 'linear' time. Any residual error in correcting for the variation could show up as a spur.

Z
 


1. evidently you are looking at the power spectra as there is no phase information displayed for your FFT

2. there are proven alternatives to FFT when variable time delays are involved, have you tried these, the artifacts in your spectra may be the result of your data manipulation

3. on close scrutiny of your spectral image, I am a bit puzzled by the random noise being so localized in the frequency as to appear pasted in, what sort of spectral window are you using?


 
Hacksaw,

1. That is correct, that is a power spectra being displayed.

2. Interesting. What other techniques are you referring to? We may be using them in other analysis.

3. Ha! You noticed my cut-n-paste window. You have a good eye for detail. This is simulated data that was reconstructed for this conversation. A system was not available to collect real data at the time I started this post.

As it turns out, we just tracked this down a few days ago. As stated earlier, our system collects data in real-time from a non-linear time delay system. When we switch 'time' domains from real-time to the delayed time, we have reference points in the delayed time base that we then need to interpolate between. This interpolation sets up a second sampling interval. We then experience inter-modulation-distortion products between the two sampling clocks and thus the 'images' show up at odd locations.

Z


 
Status
Not open for further replies.
Back
Top