Citat:
Ursprungligen postat av
smurfarfrasse
Men kan du verkligen köra din early-late-detectering direkt på din signalen från din while loop? Du nämde FSK, vad är det för signal du får från din dongel egentligen? Innehåller inte I och Q samma information? och vad är din symbolhastighet?
JA, jag kan köra synkroniseringen från den sample som tas, det är det synkroniseringen är till för: att synkronisera två signaler i fas för att signalen skall bli korrekt så att du sedan kan få synkroniseringen till bitar.
FSK är frekvenssynkroniserad modulering/kodning och använder differenser i frekvensen för att skicka meddelanden i olika format (ljud, RSS, text osv.) Slå på din radio hemma så har du just alla rundradiostationer på vad som kallas för FM-bandet, vilket FM står för FrekvensModulering. Flyget använder t.ex. AM, amplitudmodulering. En del krypton och en del andra digitala versioner av kommunikationssystem använder PSK eller QPSK, fasmodulering/fassynkronisering
Den avkodningsfunktion som du ser är bara det första steget i att få signalen till binär kod, istället för att ha en signal som går över -1,1 får man då en signal som går i 1,0 eller som i detta fallet True,False. Det hominem upptäckte var den första avkodningen från IQ till en bool-array med True-False. Sedan kommer fler funktioner att avkoda denna bool-array till binär kod i 1,0 för att sedan avkoda det binär till ascii.
Så här fungerar all signalöverförning som går över etern oavsett om det är 200m långvåg eller 5G mobilnät.
Symbolhastigheten för Pocsag (inte ERMESS) är antingen 500bps, 1200bps eller 2400bps. Vanligast 1200bps.
Därför behöver jag få in över 1000 bit sample från en signal som går i 1200bps. Där har du kärnan i denna tråd, att gå från en loop som loopar några miljoner gånger till att loopa 1-2 gånger (kankse 3-4 för att säkra sampleration som bör vara det dubbla för att få en säker digital avkodning). För tar du in låt säga 4000bit per sample så täcker du meddelandet på en sekund. Det är just detta som är problemet då programmet loopar ett flertal gånger per sekund och hackar upp signalen. Signalen sprids då i över 100 arrayer.
Här funderar jag på att använda deque och försöka få med mig hela meddelandet i samma array innan man fortsätter att behandla signalen. För signalen/meddelandet/paketet är runt 1000bit.