Als von Anfang an:
Du empfängst einen RDS Datenstrom mit hilfer der Clock und Daten
Signale.
Innerhalb des Datenstroms gibt es keinen Anhaltspunkt für den Start und
das Ende eines Blocks. Um einen Block zu empfangen must du den Empfänger
als erstes in Bit- und Blocksynchronität zum Datenstrom bringen.
Das geht wie folgt:
Du empfängst 26 Bit aus dem Datenstrom. Jetzt überprüfst du diesen
Datensatz auf gültige CRC. Das geht am einfachstem mit vorberechneten
CRC Werten für jedes einzelne Bit. Für jedes 1 Bit wird der
entsprechende CRC Wert mit der empfangenen CRC XOR verknüpft.
Wenn du das gemacht hast bleibt am Ende das Syndrom übrig. Für jeden
der 5 Blöcke gibt es ein Syndrom, du braucht nun nur das eben
berechnete zu prüfen und weist welchen Block du empfangen hast,
vorausgesetzt die CRC und das Syndrom waren gültig.
Wenn du kein gültiges Syndrom nach der Berechnung erhalten hast,
schiebst du die 26 Bit um eins nach links und hängst am Ende EIN
weiteres empfangenes Bit an, nun fürst du die obige Berechnung wieder
durch und überprüfst wieder auf ein gültiges Syndrom.
Das ganze machst du solange bis Du ein gültiges Syndrom gefunden hast.
Nun ist der Empfänger Bit- und Blocksynchron zum Datenstrom.
Solltest Du ab jetzt ein ungültiges Syndrom berechnen, must du sofort
wieder bei Null anfangen und erneut die Synchronität herstellen, das
man davon ausgehen muss das diese nicht mehr gegben ist.
Mit dieser Prozedur stellst du spätestens nach 26 weiteren empfangenen
Bits die Synchronität her, wenn der Datenstrom nicht unterbrochen
wurde.
Anhand des gültigen Syndrom kannst Du nun festellen welchen der 5
Blöcke du empfangen hast, und die enthaltenen Daten verarbeiten.