Closed K4RCG closed 4 years ago
Hey @K4RCG, can you include a screenshot that demonstrates this phenomenon? If you copy a screenshot (comparing Argo to FSKview) to the clipboard, you can paste it right in the comment box as you type a response in GitHub.
My suspicion is that Argo is configured to use a different contrast setting. FSKview allows the user to select the Argo colormap and to adjust brightness, but a contrast adjustment was intentionally omitted since increasing contrast is achieved by deleting data (turn contrast to 100% for an extreme example). That said, if a contrast adjustment would really be useful, I can try putting one in! Seeing the comparison would help get a better understanding for what makes Argo and FSKview different
Here it is...not a super example, but you get my drift.
Thanks for the screenshot! I cropped a region of Argo and cropped the same region of FSKview, then I stretched the FSKview screenshot vertically by 2x (to compensate for the "compress" option enabled in FSKview).
Argo | FSKview |
---|---|
automatic gain control: The largest difference between the two is what happens to the low-power signals when high-power WSPR transmissions begin. Both screenshots start off about the same, but once that strong WSPR transmission begins it really hurts the weak signals as seen in FSKview. This is probably because Argo is applying some type of frequency-windowed automatic gain control. I'll code something similar for FSKview and leave this issue open to track progress as I do. Thanks for providing this screenshot!
colormap note: The Turbo colormap is useful for some applications, but the Viridis colormap is probably the best for representing sensitivity to human eyes. If you want a slight extra advantages toward increased sensitivity, the Viridis colormap may give it to you!
@K4RCG actually I have one more idea... does your radio have AGC enabled? If so, turn it off, and your sensitivity with your existing software may stabalize!
Excellent analysis and explanation. And yes, I have AGC (Fast) enabled. I'll shut it off and see what happens. I always thought the WSJT decoder was not affected by AGC and left it enabled.
Bob
On Fri, Jul 3, 2020 at 8:49 PM Scott W Harden notifications@github.com wrote:
@K4RCG https://github.com/K4RCG actually I have one more idea... does your radio have AGC enabled? If so, turn it off, and your sensitivity with your existing software may stabalize!
— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/swharden/FSKview/issues/15#issuecomment-653674106, or unsubscribe https://github.com/notifications/unsubscribe-auth/AQEHCPLSIGSU5EQXT6LME6DRZY74RANCNFSM4OQBCQPQ .
Excellent analysis and explanation. And yes, I have AGC (Fast) enabled. I'll shut it off and see what happens.
If you try another Argo vs FSKview comparison with AGC off, share the new screenshot here! I'm interested to see what this looks like too...
I always thought the WSJT decoder was not affected by AGC and left it enabled.
This may still be true, since WSPR relies entirely on frequency measurement (not amplitude measurement) so a flickering loud/quiet audio signal may not affect its ability to decode 🤔
Ugh; turned off AGC and signals really became distorted. Not worth the comparison. It was a mess! There was a W3 station relatively close to my QTH and his sig was not the cleanest; with AGC off, the spurs were horrible. I’ll try again in the future, but for now, AGC Fast back on.
Bob
On Fri, Jul 3, 2020 at 19:14 Scott W Harden notifications@github.com wrote:
Excellent analysis and explanation. And yes, I have AGC (Fast) enabled. I'll shut it off and see what happens.
If you try make another Argo vs FSKview comparison, share the new screenshot here! I'm interested to see what this looks like too...
I always thought the WSJT decoder was not affected by AGC and left it enabled.
This may still be true, since WSPR relies entirely on frequency measurement (not amplitude measurement) so a flickering loud/quiet audio signal may not affect its ability to decode 🤔
— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/swharden/FSKview/issues/15#issuecomment-653693657, or unsubscribe https://github.com/notifications/unsubscribe-auth/AQEHCPOEADGCGFCD7OQD26DRZZQ45ANCNFSM4OQBCQPQ .
I’ll try again in the future, but for now, AGC Fast back on.
Sounds good! Next time you try, glance at FSKview's level meter (the green bar on the top left) to ensure the audio isn't too loud. Often when disabling the AGC the volume jumps up. I look forward to seeing what it looks like when conditions quiet down on your side!
RRR I turned the RF gain down to reduce; just like the old days! People actually adjusted the RF gain!!
Bob
On Fri, Jul 3, 2020 at 19:58 Scott W Harden notifications@github.com wrote:
I’ll try again in the future, but for now, AGC Fast back on.
Sounds good! Next time you try, glance at FSKview's level meter (the green bar on the top left) to ensure the audio isn't too loud. Often when disabling the AGC the volume jumps up. I look forward to seeing what it looks like when conditions quiet down on your side!
— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/swharden/FSKview/issues/15#issuecomment-653697787, or unsubscribe https://github.com/notifications/unsubscribe-auth/AQEHCPPQ4NI3ONAJOFXD3TDRZZWCLANCNFSM4OQBCQPQ .
Screenshot with AGC OFF -- strong RTTY QRM present however.
I'll implement this in the Spectrogram library, and track progress over at https://github.com/swharden/Spectrogram/issues/17
From Argo's readme notes:
https://digilander.libero.it/i2phd/argo/readme1_134.txt
[Argo] makes the mapping
above mentioned between the spectrum values and the color
saturation on the waterfall such that it depends only on the
ratio between the instantaneous value and the low quartile
boundary increased by 3 dB, which is a good representation
of the current noise level (thanks to Andrew Talbot G4JNT,
for this idea).
With AGC off, the absolute value of the current spectrum
sample is used instead, with a fixed gain selected between
Low and High.
This type of AGC makes sense when you view a small sliver of audio (a few 100 Hz, like Argo does) but perhaps not when you view kHz of audio all in one image like FSKview does...
I'll try a 10% (rather than quartile) noise floor normalization method and see what happens...
I tried implementing this... but it makes the image worse in the narrow QRSS region
The fundamental difference is that the noise floor in the QRSS region is simply different than the noise floor of the whole audio spectrum that FSKview has to work with. I could restrict it to just the WSPR band, but this is starting to get really details / application specific and I really don't want to do that 🤔
default | full-band AGC |
---|---|
probably the way to fix this is some type of moving window normalization...
Whew! This is getting complex!!! Perhaps “perfect is the enemy of the good”?
Bob
On Wed, Aug 5, 2020 at 22:08 Scott W Harden notifications@github.com wrote:
From Argo's readme notes:
https://digilander.libero.it/i2phd/argo/readme1_134.txt
[Argo] makes the mapping
above mentioned between the spectrum values and the color saturation on the waterfall such that it depends only on the ratio between the instantaneous value and the low quartile boundary increased by 3 dB, which is a good representation of the current noise level (thanks to Andrew Talbot G4JNT, for this idea).
With AGC off, the absolute value of the current spectrum sample is used instead, with a fixed gain selected between Low and High.
This type of AGC makes sense when you view a small sliver of audio (a few 100 Hz, like Argo does) but perhaps not when you view kHz of audio all in one image like FSKview does...
[image: image] https://user-images.githubusercontent.com/4165489/89482483-02b1d180-d768-11ea-92e9-d7b18dccc3ad.png
I'll try a 10% (rather than quartile) noise floor normalization method and see what happens...
— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/swharden/FSKview/issues/15#issuecomment-669640135, or unsubscribe https://github.com/notifications/unsubscribe-auth/AQEHCPKYP2TEXHBGPVGP7LDR7IGA7ANCNFSM4OQBCQPQ .
I added an implementation of "spectral AGC" which slides along the vertical axis and tries to normalize spectral power to the noise floor (the 20 percentile quietest data). The result looks really subtle on my receiver because I expect this to kick in when there are strong adjacent signals (like the screenshots above) and I don't have that at my receiving location. Here's an example of what it looks like on my system. If you run this, you may want to increase brightness to compensate for the noise reduction this method performs.
original | spectral AGC |
---|---|
If you want to try this download 1.1.6 or newer https://swharden.com/software/FSKview/#latest-version and enable the option in the settings menu
If you run and old version and a new version at the same time, I'd be interested to see what the difference looks like with your recording setups.
The code is designed so new/experimental AGC modes can be easily added. For reference, this method of AGC is here: https://github.com/swharden/FSKview/blob/f8dc1a974e81fd7ced94097773a89b1a108fdad4/src/FSKview/AGC.cs#L11-L33
Actually, if you increase the brightness to compensate for the noise floor reduction the apparent sharpening / increased visual sensitivity starts to become apparent. Again though, this is barely evident on my system because this is primarily designed to help visualization of signals adjacent to strong signals (like those shown in the screenshots above) which is a problem my recording environment doesn't really have...
Tnx for the update, I'll give it a try soonest. I'm tinkering with a DMR hotspot at the moment. :-)
73 de Bob K4RCG
On Thu, Aug 13, 2020 at 3:12 PM Scott W Harden notifications@github.com wrote:
I added an implementation of "spectral AGC" which slides along the vertical axis and tries to normalize spectral power to the noise floor (the 20 percentile quietest data). The result looks really subtle on my receiver because I expect this to kick in when there are strong adjacent signals (like the screenshots above) and I don't have that at my receiving location. Here's an example of what it looks like on my system. If you run this, you may want to increase brightness to compensate for the noise reduction this method performs. original spectral AGC [image: image] https://user-images.githubusercontent.com/4165489/90151509-ca585780-dd54-11ea-9445-d7479994d1d7.png [image: image] https://user-images.githubusercontent.com/4165489/90151576-d9d7a080-dd54-11ea-84c2-c5e3092fc465.png Trying it out
If you want to try this download 1.1.6 or newer https://swharden.com/software/FSKview/#latest-version and enable the option in the settings menu
[image: image] https://user-images.githubusercontent.com/4165489/90151983-4f437100-dd55-11ea-926a-8357d3e63100.png
If you run and old version and a new version at the same time, I'd be interested to see what the difference looks like with your recording setups. Adding new AGC modes
The code is designed so new/experimental AGC modes can be easily added. For reference, this method of AGC is here:
— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/swharden/FSKview/issues/15#issuecomment-673536652, or unsubscribe https://github.com/notifications/unsubscribe-auth/AQEHCPOXTZFQY4RI5AJH6QLSAP7F5ANCNFSM4OQBCQPQ .
Following up again, here's a good example of the difference it makes. It's subtle, but improved.
Spectral AGC off | Spectral AGC on |
---|---|
Running Argo side-by-side to FSKView using same soundcard source. Argo seems to produce 'crisper' images. Can FSKView sensitivity be inccreased?