Filter Quality vs Panadapter Bandwidth

  • 1
  • Question
  • Updated 5 years ago
  • Answered
It is my understanding that with the Flex 5000 as you move from a 48 KHz to 192 Khz panadapter bandwidth the filters become less steep. Does the same type of thing happen with the Flex 6500 or does it no longer have that limitation?
Photo of Alan - KA4B

Alan - KA4B

  • 111 Posts
  • 11 Reply Likes

Posted 5 years ago

  • 1
Photo of Steve - N5AC

Steve - N5AC, VP Engineering / CTO

  • 1031 Posts
  • 1002 Reply Likes
Official Response
The filter quality is a function of the time value of samples that are passed through the filter. The filter that consumes 10ms worth of samples is twice as good as the filter that consumes 5ms worth of samples, as a general rule. So in PowerSDR, if you quadruple the sampling rate and leave the buffer size the same, you have cut the time value of the samples in the filter by a factor of four and consequentially, your filter is not as steep. In PowerSDR, you have two knobs to turn, the buffer size and the sampling rate. To see how much time data spends in the filter, just take the buffer size and divide by the sampling rate (this is a slight oversimplification because of the overlap buffer, but it will do for this discussion).

So at 192,000Hz and a buffer size of 512, the filter will get 2.67ms of data. This will not be a great filter, but it will be low latency. Contrast this to a 2048 sample buffer at 48kHz and you get 42.7ms. These two knobs that you can turn in PowerSDR are settable per session -- so you can change them, but you end up restarting PowerSDR when you reset them. It's not quite as simple as moving a slider while you are operating to select a new filter.

In SmartSDR, the sampling rate is fixed at 24kHz for a slice receiver. But the buffer size is variable starting with v1.1. We dynamically adjust the buffer size (number of filter taps) for the kind of operating. So when you are in sideband and latency is not an issue, the filters are set to "brick wall." However in CW, as you reduce the width of the filter, we also reduce the number of filter taps to reduce latency. This lets us make a 100Hz filter really 100Hz, but also reduce latency for the CW op that needs lower latency and selects a 400+ Hz filter. The steepest or best filters in SmartSDR consume around 85.3ms of samples to calculate the filter. This makes the filter more computationally expensive, but results in a better filter.

Finally, all of the filters in SmartSDR today are FIR filters. They are computationally more expensive than their brother, the IIR filter, but they have a couple of key advantages:

1. They are linear phase so as not to distort phase data which is very important for many digital modes
2. There is no feedback (output to input) in a FIR filter so they will not ring. Ringing occurs in IIR filters when they are hit with impulses -- after the input stimulus has gone away they can continue to output samples reflective of the original signal.

In PowerSDR, the panadapter spectrum is computed using a Fast Fourier Transform of the data present based on the sampling rate. If the sampling rate is 192ksps, the spectrum displayed will be 192kHz (they are equal for I/Q data). Again, in PowerSDR, you can zoom in but the sampling rate is set at the time that the program is setup. In SmartSDR, we can dynamically look at different sampling rates. We have written the software to dynamically select the best match of sampling rate and then grab only the bins that are of interest based on how you have the panadapter zoomed. You can see the effects of altering the sampling rate, though, because as you zoom out you will see a sudden rise in the noise floor. This is where a sampling rate change has occurred. All of this is done "under the covers" to give you a seamless view of up to 14.4MHz of spectrum per panadapter. The sampling rate of each panadapter is adjustable and independent (they can all be different). This allows you to look at the entire HF spectrum by using panadapters to select different 14MHz swaths of the bands -- one could show 0-14MHz, the next 14-28MHz, etc.