Dies ist eine alte Version des Dokuments!
Wir wissen, dass jeder Datentyp ein Vielfaches von 4 als Bit-Anzahl besitzt und damit eine gerade Anzahl hat. So endet bei einem ständigen Wechsel zwischen An/Aus die Takt-Frequenz immer gleich. Wenn wir nun neben der 0 und 1 Codierung eine Takt-Frequenz als zusätzliche Info miteinbringen wollen, so kommen wir auf 4 verschiedene Kombinationen an Tönen. Die erhaltene Bit-Liste aus der Datei wird deshalb umgeschrieben. Durch die Hinzugabe der Takt-Frequenz geht die 0 und 1 Codierung auch nicht verloren, da die Frequenzen keine Auswirkungen aufeinander haben. Sehr wichtig ist, dass auf jeder geraden Stelle der Liste die Takt-Frequenz gespielt wird, damit es auch damit endet. Dies ist für die Taktrückgewinnung relevant!
Legende:
0: 0-Codierung ohne Takt-Frequenz
1: 1-Codierung ohne Takt-Frequenz
2: 0-Codierung mit Takt-Frequenz
3: 1-Codierung mit Takt-Frequenz
def code(l): '''erzeugt aus der Bit-Liste l Töne''' a=0 for y in l: if y == 0 and a%2 == 1: #jeder ungerade index wird geändert l[a] = 2 if y == 1 and a%2 == 1: #jeder ungerade index wird geändert l[a] = 3 a+=1 # Erzeugung der Sinus-Signale signale=[sinewave(f_0, RATE, dauer_bit),sinewave(f_1, RATE, dauer_bit),(sinewave(f_0, RATE, dauer_bit)+sinewave(f_t, RATE, dauer_bit))/2,(sinewave(f_1, RATE, dauer_bit)+sinewave(f_t, RATE, dauer_bit))/2] signal=np.concatenate([signale[x] for x in l]) playsnd(signal,RATE)