Ausgangslage
HRV-Biofeedback braucht saubere Echtzeit-Signalverarbeitung — Sensorrauschen, Artefakte und Spektralanalyse müssen stimmen, sonst ist der Score wertlos. Die meisten Apps kaschieren das mit einer hübschen Animation; die Zahl darunter hält keiner Prüfung stand.
Lösung
Eine native iOS-App, die per CoreBluetooth den Heart-Rate-Service ausliest, RR-Intervalle bereinigt und kubisch interpoliert und über eine vDSP-FFT die LF-Power berechnet — alles on-device. Darauf setzen geführte Atem-Modi wie Resonanzfrequenz-Test und 4:6-Atmung. Die schwere Mathematik läuft nativ über Accelerate, damit der Score in Echtzeit steht.
Im Kern
BLE-Streaming
CoreBluetooth-Anbindung an den Heart-Rate-Service mit RR-Intervall-Parsing — direkt am Rohsignal, nicht an geglätteten Fremdwerten.
Artefakt-Cleaning
Signalqualitätsprüfung und kubische Interpolation in Echtzeit — schlechte Schläge fliegen raus, bevor sie den Score verfälschen.
FFT-Spektralanalyse
Hamming-Fensterung und vDSP-FFT für präzise LF-Power-Berechnung — Lehrbuch-Signalverarbeitung, nativ umgesetzt.
Geführte Atem-Modi
Resonanzfrequenz-Test, Resonanz-Modus und 4:6-Atmung — vom Messwert direkt in die Übung.
Code-Einblick
// Session-Score: LF-Power per FFT — alles on-device func computeSessionScore(rr: [Double]) -> Double { // 1. Kubische Interpolation @4 Hz let uniform = cubicInterpolate(rr, hz: 4.0) // 2. DC-Removal + Hamming-Fenster let windowed = hamming(removeDC(uniform)) // 3. FFT via Accelerate.vDSP let spectrum = vDSP.fft(windowed) // 4. LF-Band-Power (0.04–0.15 Hz) return spectrum.bandPower(low: 0.04, high: 0.15) }
Tech-Stack
Ergebnis
Native iOS-App mit anspruchsvoller Echtzeit-Signalverarbeitung — BLE-Streaming, Artefakt-Bereinigung und FFT-Spektralanalyse vollständig on-device über Accelerate/vDSP. Beweist Tiefe dort, wo es zählt: bei der Zahl unter der schönen Oberfläche.