[hpsdr] frequency-specific frequency domain AGC

Roger Rehr W3SZ w3sz73 at gmail.com
Fri Jul 14 08:57:10 PDT 2017


Hi Helmut,

Thanks for the note!  I am sorry that my original post was not clear on
what I am doing.

Also, I apologize for the horrible formatting of the code in my prior
email!  I cut and pasted my code into that email directly from Visual
Studio, and it looked fine on the email that I sent.  But obviously
there were hidden characters that on my original email were "spaces" but
which appeared as "A" with a caret above the A on the emails.  Had I
known that this was going to happen I would have "pasted without
formatting" instead of "pasting".

The issue that I described in that prior post is potentially present on
any frequency, and as I noted the issue is NOT one of RF overload or
overload of the receive chain at any stage prior to the final audio
stage.  The system gain chain is properly designed and implemented and
there is no overload at any portion of the receive chain prior to the
final audio / baseband stage.  And that stage ONLY overloads if AGC is
disabled.

The first part of the issue is that when audio AGC is removed, the audio
channel cannot handle the range of signal strengths without the presence
of AGC to compress the amplitude dimension.

And the second part of the issue is that the problem with conventional
AGC is that it is time domain, and acts across all frequencies in the
baseband / audio spectrum.

For anyone who has ever listened to any of the WSJT-X modes or looked at
the waterfall display on one of the "digital" frequencies on any band,
it should be clear that with any of the WSJT-X signals this
across-the-spectrum action of time-domain AGC is a problem; what we want
to do is to provide the amount of AGC necessary to prevent audio channel
overload for each individual frequency in the baseband /audio spectrum
without unnecessarily affecting other frequencies that will not cause
overload.  In that way we can prevent the giant signals from overloading
the final audio stage when we are trying to listen to a very weak signal
buried in the noise and at the same time not suppress the very weak
signals by also amplitude compressing them.

I do this by applying such correction using the equations given in my
first post for each individual FFT bin, adding this step between the
filter convolution step and the reverse FFT step to return to the time
domain.

This may make it clearer:

The "normal" receive chain in the SDR (simplified) is:

|
FFT
|
Filter (Convolution)
|
Reverse FFT
|
AGC
|
Demod
|
Audio Output

with the frequency-specific frequency domain AGC (FAGC) that I have
implemented and am now using primarily for digital signals, this chain
is changed to:

|
FFT
|
Filter (Convolution)
|
FAGC
|
Reverse FFT
|
Demod
|
Audio Output

While my band of interest happens to be 6 meters, which I operate using
a transverter feeding my openHPSDR hardware, the use of a transverter
and the specific RF frequencies involved are immaterial, except insofar
as propagation characteristics and the background noise levels of the
frequency in use affect the potential range of signal amplitudes to be
dealt with.  The issue can occur on any frequency and in fact I used HF
bands to test the effectiveness of the code as I was working on it, and
am currently primarily using the code on HF because I haven't been able
to get out to my remote site where my VHF gear is located.

To focus on the presence or absence of a transverter or the
characteristics of the RF hardware proximal to the openHPSDR IF radio
would miss entirely the point of my initial communication which relates
to inadequate dynamic range in the final stage of the receive chain
occurring only when the AGC is disabled, and I know that you are not
doing that Helmut, but that you are rather seeking additional "clinical"
data about my particular operating conditions for your own edification.
But I mention this here so that others less well versed in the elements
of this discussion will not misinterpret the reasons for your question.

Thanks again for a very interesting question Helmut, and for all that
you do.

Please note that I will be off the reflector for a few days after
tonight.  Please do not mistake my absence for rudeness or a lack of
interest in continuing this discussion at this time.  Rather,
immediately after I sent my initial email to the list on this subject
yesterday morning I went to say goodbye to my wife before heading out to
lunch with some microwave buddies as I do every other Thursday, and at
that time I discovered my wife to be lying on the floor having just
suffered a disabling stroke (her first significant health problem of any
kind).  Of course I went with her straight to the hospital and I spent
the day there yesterday.  I suspect that I will be busy and preoccupied
for some time dealing with her illness and disability and likely won't
have the chance to check back in here or think about
radio/SDR/programming issues for some days to weeks, depending upon how
she does.  She has held our house and family together for more than 40
years but it is now my turn to do so.  Please excuse my absence while I
learn how to do that.  I am QRT for now.

Very 73,

Roger Rehr
W3SZ

On 7/13/2017 2:08 PM, Helmut wrote:
>
> Roger,
>
>
>
> about what frequencies you are talking? Seems you are using a
transverter perhaps on 2 m in front of a HPSDR setup. Is that right?
>
>
>
> 73, Helmut, DC6NY


More information about the Hpsdr mailing list