Hier werden die Unterschiede zwischen zwei Versionen gezeigt.
Beide Seiten der vorigen Revision Vorhergehende Überarbeitung Nächste Überarbeitung | Vorhergehende Überarbeitung | ||
ss15:taktrueckgewinnung_1.2 [2015/10/06 22:18] m.schramm [2. Problem:] |
ss15:taktrueckgewinnung_1.2 [2016/05/10 14:46] (aktuell) |
||
---|---|---|---|
Zeile 84: | Zeile 84: | ||
Abstand überprüft und nur als 'richtig' übertragen, wenn diese im Taktabstand | Abstand überprüft und nur als 'richtig' übertragen, wenn diese im Taktabstand | ||
mit einer Toleranz von +-5% vom Taktabstand zueinander stehen. Somit fallen | mit einer Toleranz von +-5% vom Taktabstand zueinander stehen. Somit fallen | ||
- | sofort alle Indices raus, dessen Abstand ungleich des Taktabstandes zum | + | sofort alle Indizes raus, deren Abstand ungleich des Taktabstandes zum |
nächsten Index ist, also die der gleichen Flanke angehören oder die den | nächsten Index ist, also die der gleichen Flanke angehören oder die den | ||
'falschen' Flanken angehören, die sich zwischenmogeln könnten. | 'falschen' Flanken angehören, die sich zwischenmogeln könnten. | ||
Zeile 140: | Zeile 140: | ||
if n==len(v): | if n==len(v): | ||
for x in sorted(v,reverse=True): # v-liste von hinten nochmal durchgehen, damit letzte Takt-Flanke noch in h hinzugefügt wird | for x in sorted(v,reverse=True): # v-liste von hinten nochmal durchgehen, damit letzte Takt-Flanke noch in h hinzugefügt wird | ||
- | if h[-1]+takt+0.1*takt>x and h[-1]+takt-0.1*takt<x: | + | if h[-1]+takt+0.1*takt>x and h[-1]+takt-0.05*takt<x: |
h.append(x) # die letzte richtige Taktflanke | h.append(x) # die letzte richtige Taktflanke | ||
break | break | ||
- | elif x+takt+0.1*takt>v[n] and x+takt-0.1*takt<v[n]: # nächste Flanke ist einen Takt mit Tolerant von +-10% entfernt | + | elif x+takt+0.05*takt>v[n] and x+takt-0.05*takt<v[n]: # nächste Flanke ist einen Takt mit Toleranz von +-5% entfernt |
- | if k!=0 and v[n-k-1]+takt+0.1*takt>x and v[n-k-1]+takt-0.1*takt<x: | + | if k!=0 and v[n-k-1]+takt+0.05*takt>x and v[n-k-1]+takt-0.05*takt<x: |
h.append(v[n-k-1]) # vergangene richtige Takt-Flanke, die nun durch einer nachfolgenden Takt-Flanke gefunden wurde | h.append(v[n-k-1]) # vergangene richtige Takt-Flanke, die nun durch einer nachfolgenden Takt-Flanke gefunden wurde | ||
h.append(x) | h.append(x) | ||
Zeile 156: | Zeile 156: | ||
h=sorted(h+e) # fülle Lücken in der richtigen Takt-Liste | h=sorted(h+e) # fülle Lücken in der richtigen Takt-Liste | ||
break | break | ||
- | elif not (x+takt+0.1*takt>h[m] and x+takt-0.1*takt<h[m]): # findet Lücken | + | elif not (x+takt+0.05*takt>h[m] and x+takt-0.05*takt<h[m]): # findet Lücken |
e.append(int(x+takt)) | e.append(int(x+takt)) | ||
return h | return h | ||
Zeile 162: | Zeile 162: | ||
====Resultat:==== | ====Resultat:==== | ||
Wir erhalten die genauen Zeitpunkte eines Wechsels der Lautstärke der Takt-Frequenz und damit lässt sich die Takteinteilung des Signals ablesen. | Wir erhalten die genauen Zeitpunkte eines Wechsels der Lautstärke der Takt-Frequenz und damit lässt sich die Takteinteilung des Signals ablesen. | ||
- | |||
- | __Bilder folgen noch!__ |