[hpsdr] frequency-specific frequency domain AGC

Roger Rehr W3SZ w3sz73 at gmail.com
Fri Jul 14 20:59:54 PDT 2017


Thanks Warren!

Fortunately, it was clear to me from across the room that Catherine had
had a stroke, so I was on the phone with 911 getting an ambulance to the
house within 15 seconds of seeing her on the floor, and the ambulance
house is just around the corner so things moved rather quickly.  :)

Thanks for the tip on the weighted overlap add and your CFC code!  That
sort of advice is EXACTLY what I was looking for, Warren!  I will look
at the resources you provided and make up a version with code
implementing your suggestions and then I can do some A/B tests comparing
it with the simple code I wrote.

The simple code I wrote works beyond my expectations, and I am sure that
the FAGC will work even better with the changes that you suggest.

Having the frequency domain space after the filter is just the perfect
place to do this sort of thing, and your recommendations are so inviting
that I think playing with this will be fun and provide a great stress
relief in addition to even better performance :)

Again, Warren, your recommendation and comments are EXACTLY the sort of
input that I was hoping for, and I am hoping to get a jump on getting
them implemented quickly, before I get busy with helping Catherine
recover once she gets home from the hospital in a couple of weeks or so.
 Thanks for that, and thanks too for your very kind words regarding
Catherine!

73,

Roger
W3SZ

On 7/14/2017 12:32 PM, Warren C. Pratt wrote:
> ***** High Performance Software Defined Radio Discussion List *****
> 
> Hi Roger,
> 
> First of all, I wish your wife and you the very best as she recovers.  I
> certainly hope that she has a speedy and complete recovery.  It sounds
> like you got her to the hospital right way, which is a very important
> factor.
> 
> The 'FAGC' sounds very interesting.  If there is sufficient interest,
> I'd like to put this on my list of future enhancements to the WDSP
> library.  Interestingly, it's very similar in concept to the CFC
> transmit compressor that I recently added.  This compressor looks at the
> magnitude of the signal in each frequency bin and compresses the bin
> accordingly.
> 
> You stated:
> 
> "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."
> 
> One thing that I should mention (perhaps for discussion at some future
> time) is that inserting instantaneous non-linear gain changes within a
> normal FFT-Convolution filter creates some level of
> artifacts/distortion.  The extent of it will depend upon the relative
> amplitudes and frequencies of the signals and I don't know if it
> "bothers" your decoder algorithm.  The more common way of dealing with
> this situation is using Weighted Overlap Add (WOLA).  Here's a link to a
> discussion/description:
> 
> <https://www.dsprelated.com/freebooks/sasp/Weighted_Overlap_Add.html>
> 
> 73,
> 
> Warren  NR0V
> 


More information about the Hpsdr mailing list