Przejdź do treści

Decoupling (Pw:Hr) – co to jest i jak go policzyć z pliku FIT

Decoupling pokazuje, jak tętno odkleja się od mocy w długiej jeździe. Skąd dryf, kiedy wynik coś znaczy i jak go policzyć z pliku FIT w Pythonie.

Decoupling (Pw:Hr) to procentowy spadek stosunku mocy do tętna w drugiej połowie równej jazdy względem pierwszej. Jeśli przy tych samych watach serce bije coraz szybciej, wynik rośnie. Policzysz go z pliku FIT w niespełna 30 linijkach Pythona, ale tylko z jazdy, która się do tego nadaje – a większość się nie nadaje.

W skrócie

  • Wskaźnik wydajności (EF) to moc podzielona przez tętno. Decoupling mówi, o ile procent EF drugiej połowy jest niższy niż pierwszej.
  • Dryf tętna to fizjologia: w długiej jeździe tętno powoli rośnie, a serce wyrzuca mniej krwi na jeden skurcz. Odwodnienie i ciepło to nasilają.
  • Licz tylko równe jazdy: co najmniej 60 min w Z2, bez rozgrzewki w oknie, bez postojów, z paskiem na klatce. Zera z toczenia się bez pedałowania zostaw w średniej.
  • Próg „poniżej 5%” to reguła trenerska Joe Friela, nie wynik badań. Badania potwierdzają tylko kierunek: rosnące tętno przy tej samej mocy idzie w parze ze spadkiem mocy na progu.
  • Na pięciu moich jazdach sam wybór „z zerami czy bez” zmieniał wynik o prawie 9 punktów procentowych.

Co to jest EF i decoupling

Wskaźnik wydajności (EF, efficiency factor) to moc podzielona przez tętno. TrainingPeaks liczy go dla roweru jako moc znormalizowaną (NP) podzieloną przez średnie tętno (Friel 2011).

Decoupling to różnica EF pierwszej i drugiej połowy jazdy podzielona przez EF pierwszej połowy. Pw:Hr to skrót od power to heart rate, a biegacze mają Pa:Hr, czyli tempo do tętna.

Przykład: pierwsza połowa to 180 W przy średnim tętnie 135 ud./min, więc EF = 1,333. Druga – te same 180 W przy 142 ud./min, czyli EF = 1,268. Decoupling = (1,333 − 1,268) / 1,333 = 4,9%.

Wynik dodatni znaczy, że za tę samą moc płacisz w drugiej połowie większą liczbą uderzeń serca. Ujemny – że druga połowa wyszła „taniej”, co częściej jest artefaktem niż formą.

Skąd się bierze dryf tętna

Dryf sercowo-naczyniowy zaczyna się po ok. 10 minutach długiej jazdy w umiarkowanym tempie. Tętno powoli rośnie, a objętość wyrzutowa serca, czyli krew wyrzucana przy jednym skurczu, spada (Wingo i in. 2012).

Zespół Edwarda Coyle’a uważa, że objętość wyrzutowa spada głównie przez sam wzrost tętna, a nie przez przesuwanie krwi do skóry (Coyle i González-Alonso 2001). Po godzinie jazdy w 27 °C objętość wyrzutowa spadła o 13%, a tętno wzrosło o 11%. Gdy lek zablokował wzrost tętna, objętość wyrzutowa przestała spadać (Fritzsche i in. 1999).

Odwodnienie i ciepło wzmacniają ten efekt. Po 2 h jazdy w 22 °C bez picia tętno wzrosło o 10%, a przy piciu pokrywającym ubytek – o 5% (Hamilton i in. 1991). W 33 °C tętno rosło tym bardziej, im większe było odwodnienie (Montain i Coyle 1992).

W upale tętno rośnie średnio o ok. 3 ud./min na każdy 1% utraconej masy ciała (Adams i in. 2014).

Decoupling miesza więc w jednej liczbie wytrzymałość tlenową, nawodnienie, temperaturę i paliwo. Nawet przy idealnym piciu tętno trochę dryfuje. W upale wyższe tętno w końcówce nie jest błędem pomiaru, tylko naprawdę wyższą intensywnością, bo dryf idzie w parze ze spadkiem VO2max (Wingo i in. 2012).

Jak liczyć, żeby wynik coś znaczył

Warunki

Friel każe liczyć decoupling tylko na równej jeździe w pełni tlenowej, z niskim wskaźnikiem zmienności VI (Friel 2011). Jako sprawdzian wytrzymałości na rowerze podaje 2–4 h na progu tlenowym (Friel 2008). My przyjmujemy takie warunki:

  • blok co najmniej 60 min w Z2 (65–80% mocy krytycznej), lepiej 2 h i więcej;
  • VI (NP / średnia moc) najwyżej 1,05, średnia moc połówek różni się o mniej niż 3%;
  • pierwsze 10 min poza oknem – rozgrzewka i czas, w którym tętno się ustala; spokojny dojazd do domu też odcinasz;
  • bez postojów – każde zatrzymanie to spadek tętna i jego powolny powrót;
  • podobna temperatura na początku i na końcu – poranek, który zaczyna się w 17 °C, a kończy w 30 °C, sam podbije wynik;
  • pasek na klatce, nie optyka;
  • jedzenie i picie według planu, bo inaczej mierzysz bak, a nie bazę.

Z zerami czy bez?

Gdy się toczysz, miernik zapisuje 0 W. Te sekundy można wyrzucić i liczyć samo pedałowanie albo zostawić i liczyć średnią po czasie. My je zostawiamy, z trzech powodów:

  • Serce nie reaguje na pojedyncze sekundy: w moich plikach tętno dochodzi do nowego poziomu po ok. 1,5–2 min od zmiany mocy. Średnie tętno połówki odzwierciedla więc średnią moc w czasie – razem z przerwami w pedałowaniu.
  • Bez zer rośnie moc tej połówki, w której było więcej zjazdów, a jej tętno prawie się nie zmienia. Wygląda na wydajniejszą, choć nic się nie poprawiło.
  • NP, z którego TrainingPeaks liczy EF, też liczy się po czasie, z zerami.

Ważniejsze jest co innego: na naprawdę równej jeździe zer jest mało i obie wersje dają prawie to samo. Skrypt niżej liczy obie. Jeśli różnią się o więcej niż ok. 2 punkty procentowe (nasza robocza granica), jazda nie nadaje się do decouplingu.

JazdaOknoZeraPauzyMoc 1./2. połowyZ zeramiBez zer
27.06162 min11%25184 / 165 W+13,7%+10,4%
11.07140 min7%15186 / 184 W+3,9%−5,0%
18.07169 min5%13189 / 192 W+3,5%+0,5%
26.07121 min6%11179 / 185 W+1,4%−3,2%
10.08123 min11%12168 / 200 W−8,5%−7,9%
Moje jazdy z sezonu 2026, okno od 10. minuty do końca, policzone skryptem z tego artykułu. Pauzy to przerwy w zapisie (auto-pauza na postojach).

Żadna z tych jazd nie spełnia warunków: wszystkie mają postoje i 5–11% zer. W jeździe z 11.07 sam wybór metody zamienia „świetne” −5,0% na przeciętne +3,9%.

Kod w Pythonie

Potrzebujesz Pythona 3 i biblioteki fitparse. Skrypt zakłada zapis co 1 s, tak jak w Edge 1040, na którym liczyłem. Przy rzadszym zapisie jeden rekord to więcej niż sekunda i okno trzeba wycinać po znacznikach czasu.

import sys
from fitparse import FitFile                  # pip install fitparse

plik = sys.argv[1]
od = int(sys.argv[2]) * 60 if len(sys.argv) > 2 else 600     # start okna, domyślnie 10. min
do = int(sys.argv[3]) * 60 if len(sys.argv) > 3 else None    # koniec okna, domyślnie do końca

rec = [{p.name: p.value for p in m} for m in FitFile(plik).get_messages('record')]
okno = rec[od:do]                             # zapis co 1 s: jeden rekord = 1 s jazdy
pauzy = sum((b['timestamp'] - a['timestamp']).total_seconds() > 1 for a, b in zip(okno, okno[1:]))
pary = [(r['power'], r['heart_rate']) for r in okno
        if r.get('power') is not None and r.get('heart_rate')]   # 0 W zostaje, brak odczytu wypada

def decoupling(pary):
    h = len(pary) // 2
    ef1 = sum(w for w, _ in pary[:h]) / sum(hr for _, hr in pary[:h])
    ef2 = sum(w for w, _ in pary[h:]) / sum(hr for _, hr in pary[h:])
    return ef1, ef2, (ef1 - ef2) / ef1 * 100

for nazwa, dane in (('z zerami', pary), ('bez zer ', [x for x in pary if x[0] > 0])):
    ef1, ef2, d = decoupling(dane)
    print(f'{nazwa}  EF {ef1:.2f} -> {ef2:.2f}  decoupling {d:+.1f}%')

h = len(pary) // 2
moc = [sum(w for w, _ in c) / len(c) for c in (pary[:h], pary[h:])]
zera = sum(w == 0 for w, _ in pary) / len(pary) * 100
print(f'{len(pary) / 60:.0f} min, moc połówek {moc[0]:.0f}/{moc[1]:.0f} W, zera {zera:.0f}%, pauzy {pauzy}')

Uruchamiasz go tak: python decoupling.py jazda.fit 10 130, czyli okno od 10. do 130. minuty jazdy. Dostajesz EF połówek, decoupling w obu wersjach i kontrolę: okno, moc połówek, zera i pauzy.

Jeśli są pauzy albo moc połówek różni się o więcej niż 3%, przesuń okno albo odpuść tę jazdę. EF ze średniej mocy jest niższy niż EF z NP w TrainingPeaks, więc porównuj go tylko z samym sobą.

Jak czytać wynik

Większość trenerów używa skali Joe Friela. Poniżej 5% oznacza dobrą wytrzymałość tlenową przy tej intensywności, a 5–10% – ograniczenia wytrzymałości albo zmęczenie. Powyżej 10% jazda była raczej powyżej progu tlenowego albo brakuje wytrzymałości, żeby ją utrzymać.

Sam Friel przyznaje, że to praktyka trenerska, a nie reguła z badań (Friel 2008). Nie znaleźliśmy badania, które sprawdzałoby te progi.

Badania potwierdzają za to kierunek. U 51 wytrenowanych kolarzy im bardziej po ok. 2,5 h jazdy rosło tętno przy tych samych watach, tym bardziej spadała moc na pierwszym progu (VT1). Dryf tętna na kontrolowanym treningu może więc służyć jako praktyczna miara odporności na zmęczenie (Rothschild i in. 2025).

Po 2 h jazdy moc na VT1 spadła średnio z 217 do 196 W, a tętno na tym progu wzrosło ze 142 do 151 ud./min (Stevenson i in. 2022).

Ujemny wynik rzadko oznacza świetną formę. Tętno nie startuje od zera, bo serce bije, nawet gdy nie pedałujesz, więc stosunek mocy do tętna sam rośnie razem z mocą. Mocniejsza druga połowa, więcej zjazdów na początku albo chłodniejszy powrót dają minus bez żadnej poprawy.

Jazda krótsza niż godzina albo bardzo spokojna regeneracja to szum. Moja jazda regeneracyjna dzień po najdłuższej trasie dała −17,8% i nic z tego nie wynika.

Patrz też na kadencję. U 17 kolarzy, którzy co miesiąc jechali godzinę na 75% FTP (mocy progowej), spadek kadencji w drugiej połowie szedł w parze z większym dryfem i decouplingiem. Każdy 1 obr./min spadku to średnio 0,58% decouplingu więcej (Barsumyan i in. 2026).

Co psuje wynik

Upał i rosnąca temperatura

Letnia jazda o świcie zaczyna się w chłodzie i kończy w słońcu, a ciepło i utrata płynów podnoszą tętno niezależnie od formy (Montain i Coyle 1992; Adams i in. 2014). Porównuj jazdy w podobnych warunkach i sprawdzaj temperaturę obu połówek. Licznik zapisuje ją w każdym rekordzie (pole temperature).

Brak jedzenia i picia

Picie wprost ogranicza dryf (Hamilton i in. 1991). Dla węglowodanów dowód jest pośredni: po 2 h mocnej jazdy moc krytyczna była o 9% niższa przy placebo, a przy 60 g węglowodanów na godzinę nie spadła (Clark i in. 2019).

U mnie w tym sezonie paliwo wpływało na wynik najmocniej, choć to porównanie nie jest czyste. Ile jeść, piszemy w tekście o węglowodanach na godzinę.

  • 27.06: 76 km, 2,9 h, NP 210 W, IF 0,82, 16 g/h węglowodanów – decoupling +10,4%, w końcówce ściana.
  • 18.07: 82 km, 3,0 h, NP 226 W, IF 0,89 (cięższa jazda), ok. 60 g/h – decoupling +0,5%.
  • Z zerami: +13,7% i +3,5%. Różnica ok. 10 punktów zostaje.
  • Haczyk: 27.06 druga połowa była średnio o 6,6 °C cieplejsza (19,2 → 25,8 °C), 18.07 – o 2,9 °C (20,1 → 23,0 °C). Część różnicy to upał, a obie jazdy miały postoje.
  • EF (NP / średnie tętno całej jazdy) urósł z 1,34 do 1,68, ale to porównanie jazdy zakończonej „ścianą” z jazdą godzinną. Uczciwiej: 25.07 i 13.08, obie ok. 1 h przy NP 236 i 234 W – EF 1,53 → 1,68, czyli +10% w niecałe trzy tygodnie.

Jeden zawodnik, amator – to wskazówka, nie reguła.

Optyczny pomiar tętna

W porównaniu z EKG pasek na klatce miał zgodność 0,996, a zegarki i opaski optyczne 0,67–0,92. Na rowerze akceptowalny poziom osiągnęły tylko trzy z pięciu urządzeń optycznych (Gillinov i in. 2017).

Do decouplingu, w którym liczy się kilka uderzeń, potrzebny jest pasek. Źródło tętna widać w wiadomościach device_info:

for m in FitFile(plik).get_messages('device_info'):
    d = {x.name: x.value for x in m}
    if d.get('antplus_device_type') == 'heart_rate' or d.get('source_type') == 'bluetooth_low_energy':
        print(d.get('manufacturer'), d.get('garmin_product'), d.get('source_type'))

U mnie pasek HRM 600 łączy się przez BLE (garmin_product 4607), a zegarek nadający tętno – przez ANT+ jako heart_rate z numerem 255. U ciebie numery będą inne, więc sprawdź plik z jazdy, o której wiesz, że była na pasku.

Drugi objaw optyki to płaskie, „zamrożone” tętno przy skokach mocy. W moich plikach trzy razy sprint albo stromy podjazd przeszedł bez reakcji pulsu.

Zmienna moc i teren

Jazda 10.08 dała w moim dzienniku −7,9%, co wyglądało na świetną wytrzymałość. Druga połowa była jednak o 19% mocniejsza od pierwszej, więc wynik mówi głównie o trasie.

W górach trudno o dwie godziny równej Z2 z podjazdem w środku. Wybierz albo dzień bazowy po płaskim, albo dzień górski.

Decoupling a odporność na zmęczenie

Maunder i in. (2021) opisują odporność na zmęczenie (ang. durability) jako to, kiedy i jak bardzo pogarszają się progi i moc w trakcie długiej jazdy. Progi i strefy mierzy się na świeżo, a po dwóch–trzech godzinach jazdy przestają się zgadzać.

U amatorów po 1000 kJ pracy moc 20-minutowa spadała o 6,5% u lepszych zawodników i o 12,5% u słabszych (Barsumyan i in. 2025). Decoupling to najtańsza namiastka takiego pomiaru: wystarczy równa jazda z pomiarem mocy i paskiem. Nie zastąpi testu mocy po zmęczeniu, ale pokaże trend.

Co mówią badania

W badaniu Hamiltona i in. (1991) jazda bez picia kosztowała 2,9% masy ciała, a objętość wyrzutowa spadła o 15%; przy piciu się utrzymała. W 33 °C temperatura głęboka ciała i tętno rosły, a objętość wyrzutowa spadała proporcjonalnie do odwodnienia (Montain i Coyle 1992).

W badaniu Rothschilda i in. (2025) korelacja dryfu tętna ze spadkiem mocy na VT1 wyniosła r = −0,76.

Co z tym zrobić

  1. Wybierz pętlę kontrolną: płaską, bez świateł, na 2 h i więcej. Jedź ją co 4–6 tygodni o tej samej porze, w Z2, ze stałą mocą.
  2. Jedz i pij jak na długiej jeździe (ok. 60 g węglowodanów na godzinę) i zapisz, ile poszło.
  3. Policz wynik skryptem i sprawdź pauzy, zera, moc połówek oraz różnicę między wersjami. Gdy warunki nie są spełnione, nie interpretuj.
  4. Patrz na trend: wyższy EF przy tej samej mocy i temperaturze, mniejszy decoupling w coraz dłuższym oknie. Friel uznaje bazę za dobrze rozwiniętą, gdy 2–4 h da się przejechać poniżej 5%. Utrzymujący się dryf to dla niego sygnał, że przed dokładaniem intensywności trzeba więcej jazdy tlenowej.
  5. W końcówce długiej jazdy obniżaj docelową moc, bo po 2 h te same waty to wyższa intensywność względna (Stevenson i in. 2022).
  6. Jazdy w upale nie porównuj z jazdą w chłodzie. Waż się przed jazdą i po niej – ubytek masy pokaże, ile nie dopiłeś.

Decoupling to wskaźnik treningowy, nie badanie serca. Jeśli tętno skacze bez powodu, rytm jest nierówny, czujesz kołatanie albo ból w klatce – zejdź z roweru i idź do lekarza.

Źródła

  1. Friel J. (2008, aktualizacja 2026). Aerobic Decoupling and Heart Rate Drift Explained. TrainingPeaks – praktyka trenerska, nie badanie z recenzją. https://www.trainingpeaks.com/learn/articles/aerobic-endurance-and-decoupling/
  2. Friel J. (2011, aktualizacja 2026). Efficiency Factor and Decoupling. TrainingPeaks – praktyka trenerska, nie badanie z recenzją. https://www.trainingpeaks.com/blog/efficiency-factor-and-decoupling/
  3. Wingo JE, Ganio MS, Cureton KJ (2012). Cardiovascular drift during heat stress: implications for exercise prescription. Exercise and Sport Sciences Reviews, 40(2), 88–94. doi:10.1097/JES.0b013e31824c43af
  4. Coyle EF, González-Alonso J (2001). Cardiovascular drift during prolonged exercise: new perspectives. Exercise and Sport Sciences Reviews, 29(2), 88–92. doi:10.1097/00003677-200104000-00009
  5. Fritzsche RG, Switzer TW, Hodgkinson BJ, Coyle EF (1999). Stroke volume decline during prolonged exercise is influenced by the increase in heart rate. Journal of Applied Physiology, 86(3), 799–805. doi:10.1152/jappl.1999.86.3.799
  6. Hamilton MT, Gonzalez-Alonso J, Montain SJ, Coyle EF (1991). Fluid replacement and glucose infusion during exercise prevent cardiovascular drift. Journal of Applied Physiology, 71(3), 871–877. doi:10.1152/jappl.1991.71.3.871
  7. Montain SJ, Coyle EF (1992). Influence of graded dehydration on hyperthermia and cardiovascular drift during exercise. Journal of Applied Physiology, 73(4), 1340–1350. doi:10.1152/jappl.1992.73.4.1340
  8. Adams WM, Ferraro EM, Huggins RA, Casa DJ (2014). Influence of body mass loss on changes in heart rate during exercise in the heat: a systematic review. Journal of Strength and Conditioning Research, 28(8), 2380–2389. doi:10.1519/JSC.0000000000000501
  9. Gillinov S, Etiwy M, Wang R, i in. (2017). Variable accuracy of wearable heart rate monitors during aerobic exercise. Medicine & Science in Sports & Exercise, 49(8), 1697–1703. doi:10.1249/MSS.0000000000001284
  10. Rothschild JA, Gallo G, Hamilton K, i in. (2025). Durability of the moderate-to-heavy intensity transition can be predicted using readily available markers of physiological decoupling. European Journal of Applied Physiology, 125(10), 2911–2920. doi:10.1007/s00421-025-05815-0
  11. Stevenson JD, Kilding AE, Plews DJ, Maunder E (2022). Prolonged cycling reduces power output at the moderate-to-heavy intensity transition. European Journal of Applied Physiology, 122(12), 2673–2682. doi:10.1007/s00421-022-05036-9
  12. Barsumyan A, Soost C, Graw JA, Burchard R (2026). The relationship between cadence decline, cardiovascular drift and aerobic decoupling as a marker of fatigue in well trained cyclists. BMC Sports Science, Medicine and Rehabilitation, 18(1), 179. doi:10.1186/s13102-026-01678-w
  13. Clark IE, Vanhatalo A, Thompson C, i in. (2019). Dynamics of the power-duration relationship during prolonged endurance exercise and influence of carbohydrate ingestion. Journal of Applied Physiology, 127(3), 726–736. doi:10.1152/japplphysiol.00207.2019
  14. Maunder E, Seiler S, Mildenhall MJ, Kilding AE, Plews DJ (2021). The importance of ‘durability’ in the physiological profiling of endurance athletes. Sports Medicine, 51(8), 1619–1628. doi:10.1007/s40279-021-01459-0
  15. Barsumyan A, Soost C, Burchard R (2025). Enhanced durability predicts success in amateur road cycling: evidence of power output declines. Frontiers in Sports and Active Living, 7, 1530162. doi:10.3389/fspor.2025.1530162

Piszemy na podstawie badań z recenzją i udokumentowanej praktyki. Zasady redakcyjne

Czytaj dalej