{"id":925,"date":"2020-09-29T22:23:10","date_gmt":"2020-09-29T21:23:10","guid":{"rendered":"https:\/\/www.sp3yor.net\/?p=925"},"modified":"2020-09-30T07:27:11","modified_gmt":"2020-09-30T06:27:11","slug":"fst4-vs-ft8-eng","status":"publish","type":"post","link":"https:\/\/www.sp3yor.net\/?p=925","title":{"rendered":"FST4 vs FT8 (eng)"},"content":{"rendered":"\n<p>The new beta version of WSJT-X by K1JT gives us access to another new digital mode called FST4.<\/p>\n\n\n\n<p>There are some similarities to FT8: it consumes a similar bandwidth, it&#8217;s also a single-carrier FSK (GFSK-4, to be exact), transmission period is (by default) 15 seconds.<\/p>\n\n\n\n<p>I&#8217;ve created two wav files using WSJT-X: one containing FT8 transmission (12.5 seconds of actual audio) and FST4 (just 9.5 (!) seconds &#8211; leaving over 5 seconds out of 15 second period to the operator). FT8 on top, FST4 at the bottom:<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" src=\"https:\/\/www.sp3yor.net\/wp-content\/uploads\/2020\/09\/image.png\" alt=\"\"\/><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">Test setup<\/h2>\n\n\n\n<p>Just so you know &#8211; it&#8217;s not a laboratory setup, just a quick compare of an old, well-known mode with new and.. better?<\/p>\n\n\n\n<p>I&#8217;ve created the following flowgraph in Gnuradio 3.8:<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" src=\"https:\/\/www.sp3yor.net\/wp-content\/uploads\/2020\/09\/image-1.png\" alt=\"\"\/><\/figure>\n\n\n\n<p>It can&#8217;t be simpler. It plays a .wav file, multiplies all of the samples with some predefined value &#8211; lowering the amplitude, then we add some random noise, and the noisy audio goes back out to an actual audio output, monitored by an instance of WSJT-X 2.3.<\/p>\n\n\n\n<p>I&#8217;ve also written a simple Linux shell script to take care of running the flowgraph in the right time:<\/p>\n\n\n\n<p><code>while [ 1 ]; do if [ date +%S == \"29\" ] || [ date +%S == \"14\" ] || [ date +%S == \"44\" ] || [ date +%S == \"59\" ]; then .\/ft8_vs_fst4.py; break; fi; sleep 0.05; done<\/code><\/p>\n\n\n\n<p>It starts playing the audio a second before period begins, so :59, :14, :29, :44. Convenient for testing.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Results<\/h2>\n\n\n\n<p>Let&#8217;s start with the new guy first, FST4. I&#8217;m playing the recorded message round and round with constant noise level, and gradually increase the signal level by a factor of 0.001. Finally, the message gets decoded with signal level of 0.041.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" src=\"https:\/\/www.sp3yor.net\/wp-content\/uploads\/2020\/09\/image-2.png\" alt=\"\"\/><\/figure>\n\n\n\n<p>It&#8217;s almost invisible in the waterfall &#8211; look at 1000 Hz:<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" src=\"https:\/\/www.sp3yor.net\/wp-content\/uploads\/2020\/09\/image-3.png\" alt=\"\"\/><\/figure>\n\n\n\n<p>Let&#8217;s see how FT8 decoder deals with such a weak transmission. I increase the amplitude to 0.050, then 0.055.. and still no decode. Even though some people would call the signal a <em>booming<\/em> one, by the way it looks:<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" src=\"https:\/\/www.sp3yor.net\/wp-content\/uploads\/2020\/09\/image-4.png\" alt=\"\"\/><\/figure>\n\n\n\n<p>Only when I reach amplitudes of 0.059 and 0.060, I get some decodes:<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" src=\"https:\/\/www.sp3yor.net\/wp-content\/uploads\/2020\/09\/image-5.png\" alt=\"\"\/><\/figure>\n\n\n\n<p>I&#8217;ve spotted an interesting difference between the built-in decoders: with FST4, WSJT-X gives me the decoded message about 10 seconds into the transmission period &#8211; lot of time for me to take some action before the next period. With FT8, decodes appear only during ~14th second. And it&#8217;s not that I&#8217;m running a Pentium III under the bonnet &#8211; it&#8217;s a semi decent i7-4702MQ.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Conclusions<\/h2>\n\n\n\n<p>The big one? FST4 is better. It&#8217;s quicker and it decodes with much weaker signal than FT8.<\/p>\n\n\n\n<p>Obviously it&#8217;s just a simulation and it may not translate well to the real life conditions, but in theory, FST4 can decode a message transmitted with 30% less power than FT8 needs.<\/p>\n\n\n\n<p>T<s>he difference between 100 W and 70 W is about 1.5 dB. Not much, huh? Still, enough to finish an FT8 QSO, where you missed it by just 0.5 dB \ud83d\ude09<\/s><\/p>\n\n\n\n<p>Morning update: we&#8217;re talking about amplitudes (aka voltages) here, so the difference in dB is 20*log(0.059\/0.041) = <strong>~3.16 dB<\/strong>. ~30% amplitude reduction is equal to a drop in power of a half. That&#8217;s even more impressive. A difference between 100W (FT8) and 50W (FST4).<\/p>\n\n\n\n<p>You can check it out on your own &#8211; I&#8217;ve posted Gnuradio 3.8 flowgraph, wav files (feel free to try your own!) and the terrible runner script in my Github repository: <a href=\"https:\/\/github.com\/olgierd\/ft8_vs_fst4\">https:\/\/github.com\/olgierd\/ft8_vs_fst4<\/a>. Get WSJT-X 2.3 from <a href=\"https:\/\/physics.princeton.edu\/pulsar\/K1JT\/wsjtx.html\">https:\/\/physics.princeton.edu\/pulsar\/K1JT\/wsjtx.html<\/a>.<\/p>\n\n\n\n<p><em>Olgierd SQ3SWF<\/em><\/p>\n","protected":false},"excerpt":{"rendered":"<p>The new beta version of WSJT-X by K1JT gives us access to another new digital mode called FST4. There are some similarities to FT8: it consumes a similar bandwidth, it&#8217;s also a single-carrier FSK (GFSK-4, to be exact), transmission period &hellip; <a href=\"https:\/\/www.sp3yor.net\/?p=925\">Czytaj dalej <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":3,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"ngg_post_thumbnail":0,"footnotes":""},"categories":[1],"tags":[],"class_list":["post-925","post","type-post","status-publish","format-standard","hentry","category-bez-kategorii"],"_links":{"self":[{"href":"https:\/\/www.sp3yor.net\/index.php?rest_route=\/wp\/v2\/posts\/925","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.sp3yor.net\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.sp3yor.net\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.sp3yor.net\/index.php?rest_route=\/wp\/v2\/users\/3"}],"replies":[{"embeddable":true,"href":"https:\/\/www.sp3yor.net\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=925"}],"version-history":[{"count":3,"href":"https:\/\/www.sp3yor.net\/index.php?rest_route=\/wp\/v2\/posts\/925\/revisions"}],"predecessor-version":[{"id":931,"href":"https:\/\/www.sp3yor.net\/index.php?rest_route=\/wp\/v2\/posts\/925\/revisions\/931"}],"wp:attachment":[{"href":"https:\/\/www.sp3yor.net\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=925"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.sp3yor.net\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=925"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.sp3yor.net\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=925"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}