Well, I measured a 6dB improvement.
- SPECAN: SDR-IQ
- TAP: VK5HW (50dB)
- ATT: 20dB
- PWR: 1000W
- ANT: Dummy Load (VSWR 1.08:1)
- Software: SpectraVue V.3.44 Beta 0
Hello and welcome from Australia, or as it's friends like to call it "OZ". Here you'll find a few things I tinker with in my spare time (not that I have much of that), I hope you'll find some of the text informative. 73 Hauke
A quick update on my IM measurements for the ICOM IC-7610 with the new Version (V1.42). This Version is the third installment for the '7610 and this one has the I&Q output fixed. I've not tested this but I believe that quite a few forum members have done so and are over the moon.
Here are a few IM measurements I made after the Firmware upgrade.
Currently I do not use the dbx in the audio chain. I use an old HEIL PROSET PLUS (HPP) headset which I purchased second hand. Now the headset itself is just average, normally I'd be using a Sennheiser for its nice fit, excellent sound reproduction and lightweight. However, the HPP headset does have the original HC4 and HC5 microphone inserts and because the dbx in in service for a different radio I opted for the HPP for the time being.
The current setup is:
Well, let's answer that question first so you can move on to better things in life. And the answer is:
No it is not, because I use an S-Value indicator (S-Meter) that follows a Standard! The so called 6dB per S-Point (6dB/S) standard!
And that's it, 73 and catch you on the bands (as they say).
Oh, hello you are still here. So, it looks like you would like to know a bit more about this phenomena. Well, then read the below or maybe this "What is your S-Meter Really Displaying".
As far as I know, most Amateur Radios Transceivers from the three main manufactures, ICOM; YAESU and KENWOOD seem to display a 3dB/S scale below S9 (-73dBm).
So if I read a Noise Floor (NF) of S3 on my S-Meter, which by using the 6dB/S standard would be -109dBm or -2.0dBμV NF. And my QSO partner, i.e. you, is stating a NF of S2 which, using the applied 3dB/S scale would be a NF of -94dBm or -13dBμV.
So is my NOISE FLOOR really worse than yours?
Let's have a look at the below two Tables, the left one is scaled in 6dB per S-Value i.e. my S-Meter and the right in 3dB per S-Value like your S-Meter.
Received Power (Zin = 50 Ω) | Signal Strength S-Value 6dB step | Received Power (Zin = 50 Ω) | Signal Strength S-Value 3dB step | |
-121 dBm | 1 | -97 dBm | 1 | |
-115 dBm | 2 | -94 dBm | 2 | |
-109 dBm | 3 | -91 dBm | 3 | |
-103 dBm | 4 | -88 dBm | 4 | |
-97 dBm | 5 | -85 dBm | 5 | |
-91 dBm | 6 | -82 dBm | 6 | |
-85 dBm | 7 | -79 dBm | 7 | |
-79 dBm | 8 | -76 dBm | 8 | |
-73 dBm | 9 | -73 dBm | 9 |
Doesn't that shed some light on this (issue)?
According to the IARU Handbook (Ver 9.0) Paragraph 4.1.3 S-Meter Standards:
One S-point corresponds to a level difference of 6dB.
On the bands below 30 MHz a meter deviation of S-9 correspond to an available power of a CW signal generator connected to the receiver input terminals, of -73dBm.
On the bands above 30 MHz a meter deviation of S-9 correspond to an available power of a CW signal generator connected to the receiver input terminals, of -93dBm.
It has been a Standard for quite a while, but it seems that it has not been adapted widely.
Signal Level Strength Meter Calibration and IARU Standards
Well it was only a matter of time (a long time though) that one of the big three Amateur Radio Suppliers would follow the ANAN "PureSignal" crase.
So what is this Digital Pre-Distortion or DPD for short anyway.
Well, a tiny winey bit of techo talk first.
Every radio has an RF amplifier. This is a component which does add to the performance, and as such to the communication distance of the radio. Sometimes we use an external amplifiers to increase the performance of our radio and even though we call our amplifiers "Linear-amplifier", the RF amplifiers is quite a non-linear device. This nonlinearity creates spectral growth (IM) which leads to interference of adjacent channels.
Please note that the above is a very, and I really mean a very simplified view.
DPD is a technique to linearise an amplifier, which is basically a mechanism to improve the cleanliness of one's transmission, i.e. to reduce the spectral growth, also known as intermodulation (IM) products.
If you like to get a better understanding of DPD, checkout this description, an excellent read.
To enable DPD on the IC-7610 we need to update the Firmware of the radio to the latest firmware version, Ver. 1.40 available from ICOM Japan.
And before we go any further I'll answer the most important question first!
"So is it working?"
Yes!
To show you the difference between DPD and non-DPD I've created a few screenshots using 100W into a RF Dummy Load and using my SDR-IQ as a Spectrum Analyser. The transmitted output power of the radio has been set to 100W for these tests.
Pictures 1 and 2 are using a two tone signal recorded and installed onto the IC-7610 TX Voice memories.
So by cleaning up the signal to feed your amplifier you will gain lots of brownie points within the community.
The next step is to run the adjustments per band you'd like to operate and use DPD on.
Update:
hw@rapi4:~ $ ping -c 3 rf2k-s <-- use your amplifiers IP-address (ping 1.2.3.4)PING rf2k-s (192.168.1.11) 56(84) bytes of data.64 bytes from rf2k-s (192.168.1.11): icmp_seq=1 ttl=64 time=0.476 ms64 bytes from rf2k-s (192.168.1.11): icmp_seq=2 ttl=64 time=0.429 ms64 bytes from rf2k-s (192.168.1.11): icmp_seq=3 ttl=64 time=0.423 ms
--- rf2k-s ping statistics ---3 packets transmitted, 3 received, 0% packet loss, time 2004msrtt min/avg/max/mdev = 0.423/0.442/0.476/0.023 ms
The Weak Signal Propagation Reporter Network is a group of amateur radio operators using K1JT's MEPT_JT digital mode to probe radio frequency propagation conditions using very low power (QRP/QRPp) transmissions.
$ su -# echo "$(who am i | awk '{print $1}') ALL=(ALL) NOPASSWD: ALL" > /etc/sudoers.d/$(who am i | awk '{print $1}')# chmod 440 /etc/sudoers.d/$(who am i | awk '{print $1}')# ls /etc/sudoers.d/$(who am i | awk '{print $1}')-r--r----- 1 root root 27 May 28 20:21 /etc/sudoers.d/<your username>
$ echo "build-essentiallibusb-1.0-0-devlibusb-devlibncurses5-devlibfftw3-devlibbsd-devlibhackrf-devlibopus-devlibairspy-devlibairspyhf-devlibrtlsdr-devlibiniparser-devlibavahi-client-devportaudio19-devlibopus-dev" > /tmp/required
$ for _required in $(cat /tmp/required); do sudo apt install $_required -y; done
$ sudo systemctl mask sleep.target suspend.target hibernate.target hybrid-sleep.target
$ sudo systemctl start avahi-daemon.service$ sudo systemctl status avahi-daemon.service
avahi-daemon.service - Avahi mDNS/DNS-SD StackLoaded: loaded (/lib/systemd/system/avahi-daemon.service; enabled; vendor preset: enabled)Active: active (running) since Sun 2023-06-11 22:16:53 ACST; 3 days agoTriggeredBy: ● avahi-daemon.socketMain PID: 548 (avahi-daemon)Status: "avahi-daemon 0.8 starting up."Tasks: 2 (limit: 9342)Memory: 1.3MCPU: 15.899sCGroup: /system.slice/avahi-daemon.service├─548 avahi-daemon: running [sun.local]└─566 avahi-daemon: chroot helper
$ locale -aCC.UTF-8en_AU.utf8POSIX
$ sudo dpkg-reconfigure locales
Generating locales (this might take a while...)en_AU.UTF-8... doneen_US.UTF-8... doneGeneration complete.
$ locale -aCC.UTF-8en_AU.utf8en_US.utf8 <-- requiredPOSIX
$ mkdir tmp
$ cd tmp$ wget https://github.com/ka9q/ka9q-radio/archive/refs/heads/main.zip
$ unzip main.zip$ ls -ltotal 2.4Mdrwxr-xr-x 4 hw hw 4.0K May 28 16:15 ka9q-radio-main-rw-r--r-- 1 hw hw 2.4M May 28 18:16 main.zip
$ export LANG=en_US.UTF-8
$ cd ka9q-radio-main
$ ln -s Makefile.linux Makefile$ sudo make install
$ fftwf-wisdom -v -T 1 -o /tmp/wisdom rof500000 cof36480 cob1920 cob1200 cob960 cob800 cob600 cob480 cob320 cob300 cob200 cob160
$ time fftwf-wisdom -v -T 1 -o /tmp/wisdom rof500000 cof36480 cob1920 cob1200 cob960 cob800 cob600 cob480 cob320 cob300 cob200 cob160
fftw-wisdom: system-wisdom import failedPlanning transform: cob160Planning transform: cob200Planning transform: cob300Planning transform: cob320Planning transform: cob480Planning transform: cob600Planning transform: cob800Planning transform: cob960Planning transform: cob1200Planning transform: cob1920Planning transform: cof36480Planning transform: rof500000real 4m14.131suser 4m8.088ssys 0m0.048s
$ test -s /var/lib/ka9q-radio/wisdom && sudo mv /var/lib/ka9q-radio/wisdom /var/lib/ka9q-radio/wisdom.old
$ sudo mv /tmp/wisdom /var/lib/ka9q-radio/wisdom$ sudo chown $(who am i | awk '{print $1}').radio /var/lib/ka9q-radio/wisdom
$ sudo apt install wsjtx -y
$ ip a | grep "mtu 1500" | grep UP | awk '{print $2}'eno1: <- This is what the NIC is called on my system
Whatever the above command output shows, you'll might need to change the iface value in the below script. E.g. if it shows eth0 your iface line should read iface = eth0.
$ sudo mv /etc/radio/rx888d.conf /etc/radio/rx888d.conf.bck$ sudo cat << __EOF__ > /etc/radio/rx888d.conf[rx888-loop]# VK5HW customizeddescription = "RX888 40m Delta-Loop"firmware = SDDC_FX3.imgsamprate = 64800000 ; 2^8 * 3^4 * 5^5iface = eth0 ; replace this with your iface namestatus = rx888-status.localdata = rx888-pcm.localssrc = 10;gain = 1.5 ; dBgain = 10 ;dB - close to the Noise Floor, might have to increasegainmode = high ; higher gain range
__EOF__
$ sudo mv /etc/radio/radiod@wspr.conf /etc/radio/radiod@wspr.conf.old$ sudo cat << __EOF__ > /etc/radio/radiod@wspr.conf[global]overlap = 5blocktime = 20input = rx888-status.localsamprate = 12000mode = usbstatus = hf.localfft-threads = 2[WSPR]# Bottom of 200 Hz WSPR segments on each band. Center is 1500 Hz higher# sample rate must be 12 kHz as required by wsprddata = wspr-pcm.localfreq = "136k000 474k200 1m836600 3m568600 5m287200 7m038600 10m138700 14m095600 18m104600 21m094600 24m924600 28m124600"__EOF__
$ sudo reboot
$ /usr/local/sbin/rx888d rx888-loop &
$ Using config file /etc/radio/rx888d.confLoading firmware file /usr/local/share/ka9q-radio//SDDC_FX3.imgFirmware already loadedUSB speed: 4Successfully claimed interfaceSamprate 64,800,000, Gain 10.0 dB, Attenuation 0.0 dB, Dithering 0, Randomizer 0, USB Queue depth 16, USB Request size 8 * pktsize 16384 = 131,072 bytesservice 'RX888 40m Delta-Loop._ka9q-ctl._udp' -> rx888-status.local (239.132.105.12) establishedservice 'RX888 40m Delta-Loop._rtp._udp' -> rx888-pcm.local (239.10.102.92) establishedRX888 40m Delta-Loop: iface eno1; status -> 239.132.105.12:5006, data -> 239.10.102.92:5004 (TTL 0, TOS 48, 24576 samples/packet)
$ /usr/local/sbin/radiod /etc/radio/radiod@wspr.conf &
$ KA9Q Multichannel SDRCopyright 2018-2022 by Phil Karn, KA9Q; may be used under the terms of the GNU General Public LicenseLoading config file /etc/radio/radiod@wspr.conf...Acquired front end control stream rx888-status.local (239.132.105.12)Acquired front end data stream 239.10.102.92:5004 (239.10.102.92)Front end sample rate 64,800,000 Hz, real; block time 20.0 ms, 50.0 Hzfftwf_import_system_wisdom() failedfftwf_import_wisdom_from_filename(/var/lib/ka9q-radio/wisdom) succeededservice 'wspr._ka9q-ctl._udp' -> hf.local (239.83.95.156) establishedProcessing [wspr]service 'wspr._rtp._udp' -> wspr-pcm.local (239.72.24.12) established12 demodulators started12 total demodulators started
$ wspr-decoded wspr-pcm.local
$ <DecodeFinished><DecodeFinished><DecodeFinished><DecodeFinished><DecodeFinished><DecodeFinished>1518 -19 0.7 0.475683 0 VK6LX OF88 30<DecodeFinished><DecodeFinished><DecodeFinished>1518 -17 0.3 7.040113 0 RU0LL PN53 33<DecodeFinished>1518 -27 0.4 14.096975 0 WS5L EM13 371518 -12 0.2 14.096984 0 WB7AJP CN87 331518 -23 0.3 14.097017 0 <KR6RG> DM13EM 23<DecodeFinished><DecodeFinished>
$ ls -ltotal 104Kdrwxr-xr-x 2 hw hw 4.0K May 29 00:54 10138700drwxr-xr-x 2 hw hw 4.0K May 29 00:54 136000drwxr-xr-x 2 hw hw 4.0K May 29 00:54 14095600drwxr-xr-x 2 hw hw 4.0K May 29 00:54 18104600drwxr-xr-x 2 hw hw 4.0K May 29 00:54 1836600drwxr-xr-x 2 hw hw 4.0K May 29 00:54 21094600drwxr-xr-x 2 hw hw 4.0K May 29 00:54 24924600drwxr-xr-x 2 hw hw 4.0K May 29 00:54 28124600drwxr-xr-x 2 hw hw 4.0K May 29 00:54 3568600drwxr-xr-x 2 hw hw 4.0K May 29 00:54 474200drwxr-xr-x 2 hw hw 4.0K May 29 00:54 5287200drwxr-xr-x 2 hw hw 4.0K May 29 00:54 7038600
$ ls -l 5287200total 8.7M-rwxr-xr-x 1 hw hw 2.1M May 28 00:01 230527_1430.wav-rwxr-xr-x 1 hw hw 1.9M May 28 01:17 230527_1546.wav-rwxr-xr-x 1 hw hw 1.4M May 28 09:05 230527_2334.wav-rwxr-xr-x 1 hw hw 2.6M May 29 00:47 230528_1516.wav-rwxr-xr-x 1 hw hw 2.1M May 29 00:57 230528_1526.wav-rw-r--r-- 1 hw hw 0 May 28 00:33 ALL_WSPR.TXT-rw-r--r-- 1 hw hw 0 May 29 00:55 hashtable.txt-rw-r--r-- 1 hw hw 0 May 29 00:55 wspr_spots.txt-rw-r--r-- 1 hw hw 452 May 29 00:55 wspr_timer.out-rw-r--r-- 1 hw hw 2.0K May 29 00:55 wspr_wisdom.dat
$ ls -l 14095600total 8.8M-rwxr-xr-x 1 hw hw 2.1M May 28 00:01 230527_1430.wav-rwxr-xr-x 1 hw hw 1.9M May 28 01:17 230527_1546.wav-rwxr-xr-x 1 hw hw 1.4M May 28 09:05 230527_2334.wav-rwxr-xr-x 1 hw hw 2.6M May 29 00:47 230528_1516.wav-rwxr-xr-x 1 hw hw 2.1M May 29 00:59 230528_1528.wav-rw-r--r-- 1 hw hw 36K May 28 23:34 all_wspr.bck-rw-r--r-- 1 hw hw 3.0K May 29 00:57 ALL_WSPR.TXT-rw-r--r-- 1 hw hw 3.6K May 29 00:57 hashtable.txt-rw-r--r-- 1 hw hw 45K May 28 23:34 upload.log-rw-r--r-- 1 hw hw 74 May 29 00:57 wspr_spots.txt-rw-r--r-- 1 hw hw 452 May 29 00:57 wspr_timer.out-rw-r--r-- 1 hw hw 2.0K May 29 00:57 wspr_wisdom.dat
$ cat 14095600/ALL_WSPR.TXT230528 1508 -18 -0.91 14.0969794 DP0POL JQ26 37 0 0.12 3 1 0 0 34 33 -120230528 1508 -15 0.19 14.0969838 WB7AJP CN87 33 1 0.28 1 1 0 0 39 20 16
$ curl -F allmept=@ALL_WSPR.TXT -F call=<your call> -F grid=<your grid> http://wsprnet.org/meptspots.php