# E1 — PPG encoding decision *PhysioJEPA — Oz Labs — 2026-04-14* Script: `scripts/e1_ppg_encoding.py` Raw JSON: `docs/e1_stage1_report.json` --- ## Decision **v1 uses raw 200 ms PPG patches (25 samples @ 125 Hz) → linear projection → d=256 tokens.** Morphological encoding is *viable* on this data but is held as ablation **A1** per the research plan (`RESEARCH_DEVELOPMENT.md` §2 v1 spec, §Change-log bullet 3). The Stage-2 linear-probe comparison that would justify switching to morphology cannot run until AF labels are in place; it runs as part of A1 after E5a. ## Numbers (Stage 1, neurokit2 v5 on 500 random segments) | Metric | Value | |---|---| | Segments attempted | 500 | | Segments non-empty | 500 | | Segments where morphology extraction was valid (detected/expected in [0.70, 1.30]) | **493 (98.6%)** | | Median beats detected per ~60-s segment | 76 | | Mean beats detected per ~60-s segment | 76.6 | Extraction rate 0.986 ≫ 0.70 threshold → Stage 1 pass → rule routes to Stage 2 comparison. ## Why we still pick raw patches for v1 1. **Spec alignment.** `RESEARCH_DEVELOPMENT.md` §2 v1 locks raw patches. Morphology is explicitly called out as ablation A1. Changing v1 silently would contradict the revision-2 change log. 2. **Stage 2 is blocked on AF labels.** The deciding comparison (`morph_AUROC > raw + 0.02`) requires the frozen-encoder AF probe that depends on AF labels. That decision arrives post-E5a. 3. **Minimise moving parts in v1.** The core claim is about Δt — not about PPG feature engineering. Raw patches remove a failure surface from the Day-6–8 E3 run. 4. **Stage-2 still runs.** Ablation A1 is the formal Stage-2 comparison; it executes after E3 passes K2 and we have AF labels. If A1 wins by ≥0.02 AUROC we adopt morphology for the camera-ready run. ## Implementation - `src/physiojepa/ppg_encoder.py` — `PPGPatchTokeniser(patch_size=25, d_model=256)`. - `src/physiojepa/ecg_encoder.py` — `ECGPatchTokeniser(patch_size=50, d_model=256)` for single-lead II @ 250 Hz (paired change; see `docs/e0_data_card.md` architectural implications). ## Follow-ups - A1 (morphology probe) is scheduled for Weeks 3–4 after E3 passes K2. - The 1.4% of segments where neurokit2 fails extraction will be filtered out of A1 but kept for raw-patch training (no PPG feature engineering means these are still usable).