1
$\begingroup$

I'm new to dsp. I've got a complex signal that was sampled at 192kHz then an fft of 16384 bins created. This now needs to be plotted on a graph for a real time spectrum display. The problem is if you want to plot the whole spectrum consisting of a 192kHz span, you will be plotting 16384 points on a display that many times will be 1600 pixels wide for example. The result is you get an ugly mess on the screen. So far I have been downsampling the signal by just plotting every 8th point. The problem is though, when I look at other spectrum displays that also perform 16384 fft's, they show much more data. I have effectively dropped some on the peaks that the other software doesn't. So the question is, how does one do the downsampling properly? Thanks

$\endgroup$
1
  • $\begingroup$ You can also use what is sometimes called Polyphase FFT or Presum FFT. Here are some links: link1, link2, link3. $\endgroup$
    – Matt L.
    Nov 18 '14 at 8:23
1
$\begingroup$

Ok, here is the answer...hopefully this will help someone else. Read this thesis:

http://skemman.is/stream/get/1946/15343/37285/3/SS_MSthesis.pdf

This gives a very easy and comprehensive overview of how to do just what I needed. I do believe this particular case is different than the usual downsampling. It fits the situation perfectly. The thesis describes several methods of downsampling for display purposes. For example the practice of just dropping every nth sample, performing an average over the bucket of samples corresponding to the downsample ratio and more advanced methods. The one I will be looking at is called Largest Triangle Three Bucket. Basically you divide your original samples into buckets consisting of samples equal to your downsampling factor. For example if you have a sample set of 10,000 points and you want to only display 2000, you will divide your original samples into 2000 buckets containing 5 sample each. You then rank every point in the bucket by calculating the area of a triangle it forms with the selected point in the last bucket and the average point in the next bucket. This seems to work really well in preserving the visual representation of data.

$\endgroup$
1
  • 1
    $\begingroup$ Could you please describe the parts of the thesis that are relevant to your question? The link could become invalid. $\endgroup$
    – Deve
    Nov 18 '14 at 8:22

Your Answer

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

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