Sì, è tutto ciò che è cambiato. MFSK utilizza la correzione degli errori in avanti, una tecnica per aggiungere informazioni ridondanti ai dati trasmessi in modo che, se una parte di esse viene persa, possa essere ricostruita dai dati ridondanti. Poiché gli errori tendono a verificarsi a raffica (crash statici, dissolvenza rapida, ecc.), È comune che gli schemi FEC utilizzino anche interleaving, che prende i bit da trasmettere e li distribuisce nel tempo. In questo modo, se una raffica di rumore provoca la manipolazione di una stringa di bit, dopo il deinterlacciamento non saranno bit consecutivi, quindi la FEC avrà maggiori possibilità di correggere l'errore.
Attivo HF, interleaving lungo può essere particolarmente utile. La ionosfera in continua evoluzione può effettuare cancellazioni di fase che vanno e vengono con un periodo di secondi. Se l'interleaving viene eseguito per lunghi periodi (in questo caso, 6.25s), questo non ha molta importanza. Per il decoder, non sembra che il segnale stia svanendo e si stia riprendendo, ma solo che il tasso di errore di bit è aumentato uniformemente ovunque. Finché la FEC codifica una ridondanza sufficiente, il messaggio viene comunque decodificato correttamente. Il costo è una maggiore latenza: la trasmissione non può essere completata fino a 6.25 secondi dopo che l'intero messaggio è disponibile. Piuttosto fastidioso per le conversazioni. Contrasta con PSK31, che non ha FEC e interleaving, quindi ogni carattere viene trasmesso non appena viene digitato.
Se vuoi immergerti nel dettagli specifici, ARRL specifica l'interleaving per MFSK come "auto-sincronizzazione, basato su 10 IZ8BLY interleaver diagonali concatenati a 4 × 4 bit." Puoi anche consultare il codice sorgente Fldigi o sfogliare il commit specifico responsabile su Berlios. Confronto tra due modalità in mfsk.cxx:
case MODE_MFSK64: samplerate = 8000; symlen = 128; simboli = 4; profondità = 10; basetone = 16; numtones = 16; preambolo = 180; cap | = CAP_IMG; rompere;
[...”
case MODE_MFSK64L: samplerate = 8000; symlen = 128; simboli = 4; profondità = 400; preambolo = 2500; basetone = 16; numtones = 16; break;
possiamo vedere che i due differiscono solo per pochi parametri.