Time Delay and Frequency Response of the Filters in Perseus SDR Receiver

Chavdar Levkov LZ1AQ

Last revision v.1.0  december 2014

 

I need an SDR radio with acceptable time delay between  antenna input and audio output in order to work in CW contests.  My  usual setup is HDSDR [2]  with  ASIO4ALL driver and direct conversion (DC)  receiver connected to PC soundcard. The SDR frequency is synchronized with my ICOM 756pro transceiver [4].  The time delay is somewhere in the range of 200 ms which is the upper limit of acceptable delay (no QSK).  But there are  two problems – the image rejection  which is in the range of 40 dB (unacceptable for contest work) and  some dynamic range problems due to the simple hardware used for the DC receiver. I have a Perseus [1] receiver but using  it with HDSDR software give unacceptable delay  between 500 and 600 ms.  The original Perseus software at first glance gives delays  in the range of 300 ms but I noticed that  the delay can be reduced to lower levels by playing with filters BW range settings and number of filter taps. Unfortunately  there is no  documentation about these topics so I think that my findings will help to other users of Perseus.

The original Perseus software is not very convenient for contest work mainly due to the need of double clicking  to set the desired frequency on the waterfall display and also the limited size of the spectrum  window but these are very  minor drawbacks. To control the Icom transceiver I use Bobcat v.31  program  [5]  but it does not work with Perseus software v.4.1a by unknown reasons so at the end I used v.4.0b which for  my goals has all the features I need for CW work. The user must be aware that Bobcat has other bugs e.g. in certain position it sets the com-port RTS signal to  negative voltage  which in my case removes the supply from the Icom CIV interface.

 

1. Time delay

I have measured the time delay  with Perseus software v.4.0b . The procedure is described in  http://www.lz1aq.signacor.com/docs/std/Measurements_of_Signal_Time_Delays_in_Several_SDR.htm  [3] . It must be noted that measured time delays  are within errors of 10 ms , moreover that the time delay is not  very stable and floats within a range of 10 to 20 ms. Time delay floating exists in the  most of  SDR software measured by me and Perseus software  is not an exception but it is the one with the most stable time delays. I noticed that  after the start, the delay is somewhat longer and after 20 - 30 sec stabilizes to  certain lower value and this value is plotted on Fig. 1. Interestingly, the delay change must lead to discontinuity of the audio signal and some clicks but I could not notice such effects  which means that measures are taken in  the software to mask these effects. The most of the measurements are performed only for 400 Hz band pass filter width but they can be extrapolated for other filters bandwidths since the delay does not depend on flilter bandwidth but only on BW range setting and the number of filter taps.  The audio latency variable in setup was set to minimal value of 4 and  I do not notice any signal discontinuity  at least with my measurement  setup. ( I do not know the exact function of this variable, just a guess that it reserves additional buffer length for the case of slow preprocessing in the operating system data stream). Only 3 tap sets were measured  -  32,  128 and 512.  A linear regression line can  predict the  delays with other taps settings (Fig.1) , since the number of filter taps determine the length of the data buffer and thus the time delay.

 

 

Fig.1  Time delay for 400 Hz bandpass filter width  in Perseus software  versus number of filter taps and BW range  settings. Perseus runs in WinXP SP3, Intel Core 2 duo, 2.6 GHz, 2Gb RAM, Realtek high def.audio chip set (Esprimo Mobile laptop). 

 

 

2. Filters frequency response

I have measured the frequency response of Perseus  filters with different BW range settings and filter taps in order to find the optimal compromise between time delay and filter steepness.

 

Setup

A wideband noise signal is fed at Perseus input. The noise generator spectrum density level   is -95.5 dBm at 1KHz bandwidth ( measured with Perseus with filter 1KHz /1.6KHz range 512 taps) .  The receiving frequency was 7 MHz. The AF output of Perseus receiver was fed to 16 bits soundcard of another PC. Perseus was set at 125KHz s/rate, AGC=ATT=Presel=Preamp=Dither=off.  Versions:  Hw 1.0, Sw 4.1a, DLL 3.6. 

A commercial spectrum analyzer software was used to analyze the AF output. ( S/rate 48KHz , FFT size 4096, Blackman window). Infinite averaging was used until the frequency response curve is smoothed sufficiently.  This setup has approximately 60 dB dynamic range which is sufficient to estimate  quite accurately the frequency response.  

 

 

Results

The following pictures are self explaining:

Remark:  I have measured in the same way the Winrad (HDSDR)  filters – they correspond approximately to Perseus filters with 512 taps.

 

 

 

 

Fig.2 Taps=32,   CW mode;   filter bandwidth is fixed to 400Hz

Red -  0.8 KHz BW range,  Viol - 1.6 KHz BW range,  Yellow -  3 KHz BW range

 

 

Fig.3 Taps=128,  CW mode;   filter bandwidth  is fixed to 400Hz

Red - @ 0.8 KHz BW range, Viol -@ 1.6 KHz BW range, Yellow - @ 3 KHz BW range

 

   

Fig.4 Taps=512, CW mode;   filter bandwidth is fixed to 400Hz

Red - @ 0.8 KHz BW range, Viol -@ 1.6 KHz BW range, Yellow - @ 3 KHz BW range

 

  

Fig.4a Taps=512, CW mode;   filter bandwidth is fixed to 400Hz. Wideband BW range settings.

Viol - @ 3 KHz BW range, Blue-@ 6 KHz BW range, Yellow - @ 12 KHz BW range.

 

 

Fig.5 CW mode ;  BW range =1.6KHz;    filter bandwidth  is fixed to  400Hz

Red - 512 taps, Viol - 128 taps, Blue -  64 taps,  Yellow - 32 taps

 

 

3.CW peak filter

 

The CW peak filter must be used in order to improve the selectivity.  The time delay  is not increased if the CW peak filter is switched on – even a small delay reduction is noticed. It is in order of -10%  for medium position of the CW filter slider. The notch filter also does not change the time delay .

 The Perseus CW peak filter  is an adaptive filter. It works only if there is  a carrier, otherwise the adaptation procedure will not take place.  If only a noise signal is applied at the input of this filter we can not see a stable  frequency response. Along with the noise,  additional carrier must be injected at the input.  There is a slider  with “fast” and “slow”  markings which determines the speed at which the filter adaptation takes place. In “fast” adaptation,   the filter forms its frequency response quickly but  also looses it quickly if the signal drops down. At “slow” side of the slider the  frequency response  is much more stable  but you need more time  for filter adaptation. The filter also tracks the carrier frequency.

 Fig.6  shows the  CW peak filter response to two carriers with slightly different frequencies. This picture  is obtained by injecting a carrier at the beginning. After the adaptation the  CW signal is switched off. Since the filter is in slow mode, it still preserves its coefficient values and we can see its frequency response. This is not possible in “fast” mode – the filter almost immediately begin to change its coefficients and the frequency response becomes unstable – the filter is searching a carrier.  The CW filter  steepness also depends from the BW range settings (Fig.7).

 

Fig.6  64 taps 0.8KHz  BW range. 400 Hz bandwidth setting. Slow adaptation.

Viol- without CW filter, Red – CW signal at 420 Hz, Yellow – CW signal at 460 Hz

 

 

Fig.7   The steepness of CW peak filter depends from BW range settings. There is a carrier in this spectrogram – the peak of the filter frequency response is somewhere at -60 dB level. The carrier frequency is deliberately changed in each case to show the carrier frequency adaptation. The filter is in “slow” adaptation mode, 64 taps. The peaks above 800 Hz are the harmonics of the input signal.

Red – 3 KHz BW,  Viol. – 1.6 KHz BW, Yellow – 0.8 KHz BW

 

 

Fig.8   The difference in frequency response between “fast” and “slow” settings of the slider. There is a carrier in this spectrogram – the real  peak of the filter frequency response is somewhere at -60 dB level – the same as with the case without peak filter. The filter notches are much more deeper in the “slow” mode.

Red – “fast” ,   Yellow – “slow”,   Viol. – without CW peak  filter

 

 

4. Conclusions

·         BW range settings in Perseus GUI have effect on the filter steepness (including CW peak filter)  and signal delay.

·         Changing the filter bandwidth  in the  small spectrum window does not affect the time delay when  BW range setting is fixed.

·         The CW peak filter does not increase the basic time delay – even there is some decrease of the delay with 5 – 10 %.

·         The CW peak filter is adaptive and there must be appropriate procedure to use it properly.  I will suggest at the beginning to peak the CW signal in “fast” position and then to move the slider to “slow” position.  This will tune filter quickly to exact carrier frequency and then will stabilize the response avoiding fading effects.

·         CW peak filter is effective at BW range  settings below 3KHz (Fig.7) .    

·         The minimal Perseus time delays are not suitable for QSK  but delays below 200 ms are acceptable for normal CW work even at contests. My personal compromise is 64 or 128 taps at 1.6 KHz BW range. The delay is 200-220 ms and with CW peak filter, the frequency response becomes quite sharp. 256  taps at 3KHz BW gives quite good filter with low time delay of 170 ms.  6 and 12KHz BW  range can be used with larger number of taps, e.g. at 6 KHz and 512 taps  the filter is quite sharp with delay of only  150 ms but there the CW peak filter is not very effective and changing the filter width in the window is somewhat  difficult due to rough resolution of the small spectrum window. 

·         The lowest measured delay  is  110 ms at 32 taps and 12KHz BW range settings.

 

5. Links

1.  http://microtelecom.it/index.html

2.  http://www.hdsdr.de/        http://www.weaksignals.com/ 

3.  http://www.lz1aq.signacor.com/docs/std/Measurements_of_Signal_Time_Delays_in_Several_SDR.htm

4. http://www.lz1aq.signacor.com/docs/Integrating-Software-Defined-Radio_II_HP_eng/Integrating%20Software%20Defined%20Radio_II_v41.htm

5. http://www.woodboxradio.com/freeware.html

 

Sofia, December 2014

Chavdar,  LZ1AQ   lz1aq@abv.bg   www.lz1aq.signacor.com