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 20:57] m.schramm [1. Problem:] |
ss15:taktrueckgewinnung_1.2 [2016/05/10 14:46] (aktuell) |
||
---|---|---|---|
Zeile 66: | Zeile 66: | ||
tol = 0.002 * ma | tol = 0.002 * ma | ||
idx = np.where(np.abs(yh-s)<tol) | idx = np.where(np.abs(yh-s)<tol) | ||
- | + | # [...] | |
- | if l >= minl: | + | |
- | # [...] | + | |
</code> | </code> | ||
==== 2. Problem: ==== | ==== 2. Problem: ==== | ||
Zeile 85: | Zeile 83: | ||
übertragen. Der momentane Index wird mit dem nächstkommenden Index auf seinen | übertragen. Der momentane Index wird mit dem nächstkommenden Index auf seinen | ||
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 +-10% 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 142: | 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 158: | 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 164: | 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!__ |