Tak, to wszystko się zmieniło. MFSK wykorzystuje wyprzedzającą korekcję błędów, technikę dodawania nadmiarowych informacji do przesyłanych danych, tak aby w przypadku utraty części można było je zrekonstruować z nadmiarowych danych. Ponieważ błędy zdarzają się zwykle w pakietach (statyczne awarie, szybkie zanikanie itp.), Często schematy FEC używają również funkcji przeplatania, która pobiera bity do przesłania i rozdziela je w czasie. W ten sposób, jeśli seria szumów spowoduje zniekształcenie ciągu bitów, po usunięciu przeplotu nie będą one kolejnymi bitami, dzięki czemu FEC będzie miał większe szanse na poprawienie błędu.
Włączony Szczególnie przydatne może być HF, długie przeplatanie. Wciąż zmieniająca się jonosfera może powodować anulowanie faz, które pojawiają się i znikają w ciągu kilku sekund. Jeśli przeplot jest wykonywany przez długie okresy (w tym przypadku 6,25 s), to nie ma to większego znaczenia. Dla dekodera nie wygląda to tak, jakby sygnał zanikał i był odtwarzany, ale po prostu, że stopa błędów bitowych jest wszędzie równomiernie zwiększana. Dopóki FEC koduje wystarczającą nadmiarowość, wiadomość jest nadal pomyślnie dekodowana. Koszt to zwiększone opóźnienie: transmisja nie może być zakończona przed upływem 6,25 s po udostępnieniu całej wiadomości. Raczej irytujące podczas rozmów. W przeciwieństwie do PSK31, który nie ma FEC ani przeplotu, więc każdy znak jest przesyłany zaraz po wpisaniu.
Jeśli chcesz zagłębić się w naprawdę specyficznych szczegółach, ARRL określa przeplot dla MFSK jako „samosynchronizujący się, oparty na 10 połączonych 4 × 4 bitach IZ8BLY ukośnych przeplotach”. Możesz również zapoznać się z kodem źródłowym Fldigi lub przejrzeć konkretną deklarację odpowiedzialną za Berlios. Porównanie dwóch trybów w mfsk.cxx:
case MODE_MFSK64: samplerate = 8000; symlen = 128; symbits = 4; głębokość = 10; baseton = 16; numtones = 16; preambuła = 180; cap | = CAP_IMG; złamać;
[...]
case MODE_MFSK64L: samplerate = 8000; symlen = 128; symbits = 4; głębokość = 400; preambuła = 2500; baseton = 16; numtones = 16; break;
widzimy, że różnią się tylko kilkoma parametrami.