-
Notifications
You must be signed in to change notification settings - Fork 32
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Faulty SNR reports #110
Comments
Hi, I’m checking my received spots and I confirm they’re too high compared
to the results obtained with old version of rtlsdr_wsprd
I hope Guenael can have a look into the code
Alfredo IZ7BOJ
Il giorno mer 22 dic 2021 alle 18:26 helioshk ***@***.***> ha
scritto:
… Hi,
A number of errornous SNR reports popped up on wsprnet, all of them
reporting version rtlsdr-wspr.
The users report much too high SNR, up to +60 dB.
Let me know if you need examples.
—
Reply to this email directly, view it on GitHub
<#110>, or unsubscribe
<https://github.com/notifications/unsubscribe-auth/AJCWU3XD2R6EKHN3YZUE6ULUSIC5ZANCNFSM5KTA47PQ>
.
Triage notifications on the go with GitHub Mobile for iOS
<https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675>
or Android
<https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub>.
You are receiving this because you are subscribed to this thread.Message
ID: ***@***.***>
|
Hum... I will check the code, but wsprd is supposed to calculate the SNR, and your input signal should have no impact. |
I'm not running rtlsdr-wsprd, I only noticed the anomalous spots. Perhaps @IZ7BOJ can provide the config but numerous users seem to be affected. |
@Guenael On this site it is possible to search for spots submitted by specific versions: http://wspr.rocks/ in the "advanced search" menu. The query is |
@helioshk Nice, TIL!! 👍 |
I upgraded to a more recent version of wsprd, it could have fixed this issue at the same time. |
I tried 0.5.0 and I am still seeing the elevated snr. At the moment I am using pihole to block wsprnet.org to stop the reporting. I have already uploaded too many of these spots. rtl-sdr + gqrx + wsjt-x rtl-sdr + rtlsdr-wsprd I then used rtl-sdr + gqrx + wsjt-x to record a cycle and decoded it with wsprd and rtlsdr-wsprd. wsprd 211223_1102.c2 ./rtlsdr_wsprd -r 211223_1102.c2 It decodes samples provided by wsjt-x fine. I am only seeing the snr problem with data rtlsdr-wsprd collects itself. |
@Rilapy Just to be sure that I understand. With
|
I opened this branch, to try to fix this issue: |
That is correct. |
This is a tricky one... WSPRnet format didn't change, the string is formatted adequately, I tested a fake spot and it works. When decoded from a file, it looks good. I will need some help! Can someone:
Thanks! |
6m wspr into a dummy load. Power low enough I can not see it on my power meter. Rtlsdr + rpi 3B+ as the receiver. commit 0e9c8d2 commit 72f528c 72f528c is the 1st bad snr for me. Latest commit was 1a3f36b 0.5.2 when I started the following console spot on wsprnet.org rtlsdr-wspr decoding the .iq file For comparison is here is a .c2 from gqrx + wsjt which is close to what I get with an old rtlsdr-wsprd wsprd ../211224_0230.c2 ./rtlsdr_wsprd -f 6m -c vk4xjb -l qg52xh -r ../211224_0230.c2 Not the same cycle but this is an example of a wsjt-x spot from the wsprnet site. On the same hw wsjt-x is reporting -5 while rtlsdr-wsprd is reporting about +50 or higher. |
@Rilapy Many thanks for this investigations and your time! 💟 I misunderstood how the SNR was calculated, but today I learned! I plaid guilty on this one! :) I updated the FIR coefs, with one specific side effect. The calculated noise floor of the total BW changed, because I removed the unused part of the spectrum (the search algo is limited to +/- 110Hz by default) with this new FIR. It could explain this issue. I hope you will able to get back an accurate SNR. I created this branch : https://github.com/Guenael/rtlsdr-wsprd/tree/fir-bw-issue You can also remove the FIR for testing: diff --git a/rtlsdr_wsprd.c b/rtlsdr_wsprd.c
index 351d878..5c08da9 100644
--- a/rtlsdr_wsprd.c
+++ b/rtlsdr_wsprd.c
@@ -214,21 +214,23 @@ static void rtlsdr_callback(unsigned char *samples, uint32_t samples_count, void
Qt2z = Qt2y;
Qt2y = Qy1;
- /* FIR compensation filter */
- float Isum = 0.0,
- Qsum = 0.0;
- for (uint32_t j = 0; j < FIR_TAPS; j++) {
- Isum += firI[j] * zCoef[j];
- Qsum += firQ[j] * zCoef[j];
- if (j < FIR_TAPS-1) {
- firI[j] = firI[j + 1];
- firQ[j] = firQ[j + 1];
- }
- }
- firI[FIR_TAPS-1] = (float)Iy2;
- firQ[FIR_TAPS-1] = (float)Qy2;
- Isum += firI[FIR_TAPS-1] * zCoef[FIR_TAPS];
- Qsum += firQ[FIR_TAPS-1] * zCoef[FIR_TAPS];
+ float Isum = (float)Iy2;
+ float Qsum = (float)Qy2;
/* Save the result in the buffer */
uint32_t idx = rx_state.bufferIndex;
|
Results copy/pasted from the wsprnet site. The 7:34 time stamp is wsjt-x and 7:26 time stamp is rtlsdr-wsprd with the above FIR removal patch. +4 is a lot closer than the +51 I was getting earlier. 2021-12-24 07:34 VK4XJB 50.294544 -6 -2 QG52xh 5 VK4XJB/PI QG52xh 0 0 2 |
Nice, but the FIR filter was here to compensate the CIC (significant db loss at higher frequencies). It didn't give good results with the legacy filter? |
Bingo. 2021-12-24 07:54 VK4XJB 50.294483 -4 0 QG52xh 5 VK4XJB/PI QG52xh 0 0 2 I did not think to update. I applied that FIR patch in the comment to the code I already had. Did a git pull and tried again. That is copy/past from wsprnet. That looks good. |
Not sure to understand with these two options. Could you confirm? |
Had tried that patch that removed FIR because that was the 1st thing I saw and it was close. Did not think to update till later. git log says I am now on The good signals have been since I changed to this commit. |
@Rilapy OK, thank you for this confirmation! |
Hi,
A number of erroneous SNR reports popped up on wsprnet, all of them reporting version rtlsdr-wspr.
The users report much too high SNR, up to +60 dB.
Let me know if you need examples.
The text was updated successfully, but these errors were encountered: